skill-creator 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/CHANGELOG.md +51 -2
  2. package/dist/cli.js +4714 -2051
  3. package/dist/cli.js.map +4 -4
  4. package/dist/daemon.js +3278 -1085
  5. package/dist/daemon.js.map +4 -4
  6. package/dist/package.json +1 -1
  7. package/dist/webui/_app/immutable/assets/0.Dbnkcm0y.css +2 -0
  8. package/dist/webui/_app/immutable/chunks/1aUphu7Y.js +1 -0
  9. package/dist/webui/_app/immutable/chunks/{BfKHhAfw.js → 8hp3I3ac.js} +1 -1
  10. package/dist/webui/_app/immutable/chunks/{CRrxCnau.js → B0-OMyfG.js} +1 -1
  11. package/dist/webui/_app/immutable/chunks/B5sWuF6v.js +1 -0
  12. package/dist/webui/_app/immutable/chunks/{C4d-joyd.js → BEPs9Z9s.js} +1 -1
  13. package/dist/webui/_app/immutable/chunks/{DAvb_BTz.js → BIfnT_mK.js} +1 -1
  14. package/dist/webui/_app/immutable/chunks/BOPkZ98B.js +1 -0
  15. package/dist/webui/_app/immutable/chunks/BT2vrlul.js +1 -0
  16. package/dist/webui/_app/immutable/chunks/BdXWsCWd.js +3 -0
  17. package/dist/webui/_app/immutable/chunks/BkEnd9_Z.js +1 -0
  18. package/dist/webui/_app/immutable/chunks/BkjUgGsE.js +1 -0
  19. package/dist/webui/_app/immutable/chunks/{DsOfMPqr.js → Bl0jjuyR.js} +1 -1
  20. package/dist/webui/_app/immutable/chunks/{BXwUnloU.js → Bs27XW8_.js} +1 -1
  21. package/dist/webui/_app/immutable/chunks/ByW1yjUW.js +1 -0
  22. package/dist/webui/_app/immutable/chunks/{b00Wice3.js → C5MrAfWf.js} +1 -1
  23. package/dist/webui/_app/immutable/chunks/CI1OXbBG.js +1 -0
  24. package/dist/webui/_app/immutable/chunks/{BpM7GQdD.js → CPbfZBJo.js} +3 -3
  25. package/dist/webui/_app/immutable/chunks/{LKyxHDTu.js → CQD9uzpA.js} +1 -1
  26. package/dist/webui/_app/immutable/chunks/{BpPdtmVY.js → CeR4do8T.js} +1 -1
  27. package/dist/webui/_app/immutable/chunks/{DYphEAOV.js → CgxChsUX.js} +1 -1
  28. package/dist/webui/_app/immutable/chunks/ChvFFUWR.js +1 -0
  29. package/dist/webui/_app/immutable/chunks/CpRvgjpe.js +1 -0
  30. package/dist/webui/_app/immutable/chunks/Cr5YUwJg.js +1 -0
  31. package/dist/webui/_app/immutable/chunks/{xHmEZGe9.js → D3qCeXbe.js} +1 -1
  32. package/dist/webui/_app/immutable/chunks/{y5ROg0gY.js → D8Der6oM.js} +1 -1
  33. package/dist/webui/_app/immutable/chunks/DApmS1g_.js +1 -0
  34. package/dist/webui/_app/immutable/chunks/DKQHhdJ1.js +1 -0
  35. package/dist/webui/_app/immutable/chunks/DKepoBN5.js +8 -0
  36. package/dist/webui/_app/immutable/chunks/DOjT7y5f.js +1 -0
  37. package/dist/webui/_app/immutable/chunks/DXKynIUR.js +1 -0
  38. package/dist/webui/_app/immutable/chunks/DiaaOubc.js +1 -0
  39. package/dist/webui/_app/immutable/chunks/{BZOx0Qre.js → DnPeA-9c.js} +1 -1
  40. package/dist/webui/_app/immutable/chunks/DwIX6ZFE.js +1 -0
  41. package/dist/webui/_app/immutable/chunks/E8LHILEh.js +1 -0
  42. package/dist/webui/_app/immutable/chunks/{DxUS3G9A.js → F_BrNiaz.js} +1 -1
  43. package/dist/webui/_app/immutable/chunks/HopcQwhZ.js +1 -0
  44. package/dist/webui/_app/immutable/chunks/{CmWHiR19.js → UeEccMjN.js} +1 -1
  45. package/dist/webui/_app/immutable/chunks/j76fpbnQ.js +2 -0
  46. package/dist/webui/_app/immutable/chunks/myIHotqu.js +2 -0
  47. package/dist/webui/_app/immutable/chunks/{CX1CHr5A.js → oxP0dM6z.js} +1 -1
  48. package/dist/webui/_app/immutable/chunks/{WSgbVOcX.js → p_ObVaZi.js} +1 -1
  49. package/dist/webui/_app/immutable/entry/{app.wmUVPoAL.js → app.BQ4neDVJ.js} +2 -2
  50. package/dist/webui/_app/immutable/entry/start.BqwTCU7F.js +1 -0
  51. package/dist/webui/_app/immutable/nodes/{0.B1MRgs82.js → 0.uOFdFHyI.js} +119 -119
  52. package/dist/webui/_app/immutable/nodes/{1.DmFrzXB8.js → 1.BhX-6aiQ.js} +1 -1
  53. package/dist/webui/_app/immutable/nodes/{2.C5_mWJeB.js → 2.C7Br-rQ1.js} +1 -1
  54. package/dist/webui/_app/version.json +1 -1
  55. package/dist/webui/index.html +32 -26
  56. package/package.json +5 -2
  57. package/dist/webui/_app/immutable/assets/0.CT0Z92yp.css +0 -2
  58. package/dist/webui/_app/immutable/chunks/0k4S-8Dm.js +0 -1
  59. package/dist/webui/_app/immutable/chunks/BD8KMBgQ.js +0 -1
  60. package/dist/webui/_app/immutable/chunks/BLKqTz4e.js +0 -1
  61. package/dist/webui/_app/immutable/chunks/BTdzDCtA.js +0 -1
  62. package/dist/webui/_app/immutable/chunks/Bm81ovyU.js +0 -8
  63. package/dist/webui/_app/immutable/chunks/CUkgSGd5.js +0 -1
  64. package/dist/webui/_app/immutable/chunks/CaRy05kX.js +0 -1
  65. package/dist/webui/_app/immutable/chunks/CokLx9SK.js +0 -3
  66. package/dist/webui/_app/immutable/chunks/D-GGMKF5.js +0 -1
  67. package/dist/webui/_app/immutable/chunks/D00gXCrF.js +0 -2
  68. package/dist/webui/_app/immutable/chunks/DlRJa6Rp.js +0 -1
  69. package/dist/webui/_app/immutable/chunks/n3HFLfXO.js +0 -1
  70. package/dist/webui/_app/immutable/entry/start.DeqHj237.js +0 -1
@@ -1 +0,0 @@
1
- import{A as e,At as t,B as n,Ct as r,F as i,G as a,N as o,R as s,S as c,St as l,W as u,X as d,ct as f,d as p,ft as m,gt as h,kt as g,lt as _,m as v,mt as y,nt as b,o as x,ot as S,p as C,rt as w,s as T,st as E,x as D}from"./CmCJ0SKP.js";import{t as O}from"./BfKHhAfw.js";import"./xihTtKlq.js";import"./CaRy05kX.js";import{i as k,n as A}from"./0k4S-8Dm.js";import{i as ee}from"./CX1CHr5A.js";import{n as j,t as M}from"./WSgbVOcX.js";import{i as N}from"./BZOx0Qre.js";import{a as P,i as F,n as I,o as te,s as L,t as R}from"./DYphEAOV.js";var z=new Set([`$$slots`,`$$events`,`$$legacy`]);function B(e,t){let n=x(t,z),r=[[`path`,{d:`M15 3h6v6`}],[`path`,{d:`M10 14 21 3`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`}]];k(e,T({name:`external-link`},()=>n,{get iconNode(){return r}}))}var V=n(`<span class="text-amber-600 dark:text-amber-400">stale · rescan for latest</span>`),H=n(`<span> </span> <span class="font-mono"> </span> <!>`,1),U=n(`<span class="italic">Not scanned yet</span>`),W=n(`<a target="_blank" rel="noreferrer noopener" class="inline-flex h-7 items-center gap-1 rounded-md border border-border px-2 text-[11px] text-muted-foreground transition-colors hover:bg-muted/50"><!> Home</a>`),G=n(`<button type="button" class="ml-auto inline-flex h-7 items-center gap-1 rounded-md px-2 text-[11px] text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive"><!></button>`),ne=n(`<article class="flex h-full flex-col gap-2 rounded-lg border border-border bg-card p-3 text-left transition-colors hover:border-primary/40"><header class="flex items-start gap-2"><div class="min-w-0 flex-1"><div class="flex items-center gap-1.5"><h3 class="truncate text-sm font-medium text-foreground"> </h3> <span> </span></div> <p class="mt-0.5 line-clamp-2 text-[11px] leading-4 text-muted-foreground"> </p></div></header> <dl class="mt-auto flex flex-wrap items-center gap-x-3 gap-y-0.5 text-[11px] text-muted-foreground"><!></dl> <footer class="flex shrink-0 items-center gap-2"><button type="button" class="inline-flex h-7 items-center rounded-md bg-primary px-2.5 text-[11px] font-medium text-primary-foreground transition-colors hover:bg-primary/90">Scan</button> <!> <!></footer></article>`);function re(e,n){r(n,!0);var u=ne(),d=S(u),p=S(d),m=S(p),h=S(m),y=f(h,!0),x=_(h,2),C=f(x,!0);t(m);var w=_(m,2),T=f(w,!0);t(p),t(d);var O=_(d,2),k=S(O),A=e=>{var t=H(),r=E(t),a=f(r),c=_(r,2),l=f(c,!0),u=_(c,2),d=e=>{var t=V();s(e,t)};o(u,e=>{n.stale&&e(d)}),b(()=>{i(a,`${n.scanSummary.skillCount??``} skills`),i(l,n.scanSummary.commitPrefix)}),s(e,t)},ee=e=>{var t=U();s(e,t)};o(k,e=>{n.scanSummary?e(A):e(ee,-1)}),t(O);var j=_(O,2),P=S(j),F=_(P,2),I=e=>{var r=W();B(S(r),{class:`h-3 w-3`}),g(),t(r),b(()=>{v(r,`href`,n.homepage),v(r,`aria-label`,`Open ${n.label} homepage`)}),s(e,r)};o(F,e=>{n.homepage&&e(I)});var te=_(F,2),L=e=>{var r=G(),i=S(r);M(i,{class:`h-3.5 w-3.5`}),t(r),b(()=>v(r,`aria-label`,`Remove ${n.label}`)),a(`click`,r,function(...e){n.onremove?.apply(this,e)}),s(e,r)};o(te,e=>{!n.builtIn&&n.onremove&&e(L)}),t(j),t(u),b(e=>{i(y,n.label),D(x,1,e),i(C,n.builtIn?`Built-in`:`Custom`),i(T,n.description||n.gitUrl)},[()=>c(N(`shrink-0 rounded px-1.5 py-0.5 text-[10px] font-medium`,n.builtIn?`bg-primary/10 text-primary`:`bg-muted text-muted-foreground`))]),a(`click`,P,function(...e){n.onscan?.apply(this,e)}),s(e,u),l()}u([`click`]);var ie=n(`<p class="py-8 text-center text-xs text-muted-foreground">Loading sources…</p>`),ae=n(`<p class="py-8 text-center text-xs text-destructive"> </p>`),oe=n(`<p class="py-8 text-center text-xs text-muted-foreground"> </p>`),se=n(`<div class="grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3"></div>`),ce=n(`<li><button type="button" class="flex w-full items-center justify-between rounded px-2 py-1 text-left text-xs transition-colors hover:bg-muted/60"><span class="truncate font-medium text-foreground"> </span> <span class="ml-2 shrink-0 text-muted-foreground"> </span></button></li>`),le=n(`<section class="rounded-lg border border-border bg-muted/20 p-3"><h2 class="text-xs font-medium text-muted-foreground">Recent scans</h2> <ul class="mt-2 space-y-1"></ul></section>`),ue=n(`<p class="text-xs text-destructive"> </p>`),de=n(`<div class="fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4"><div class="w-full max-w-md rounded-lg border border-border bg-background p-4 shadow-lg"><h2 class="text-sm font-semibold">Add custom source</h2> <p class="mt-0.5 text-xs text-muted-foreground">Paste an <code class="font-mono">https</code> Git URL. It persists across restarts.</p> <div class="mt-3 space-y-2"><label class="block text-xs"><span class="text-muted-foreground">Label</span> <input class="mt-1 h-8 w-full rounded-md border border-border bg-background px-2 text-sm" placeholder="My skills repo"/></label> <label class="block text-xs"><span class="text-muted-foreground">Git URL (https only)</span> <input class="mt-1 h-8 w-full rounded-md border border-border bg-background px-2 font-mono text-xs" placeholder="https://github.com/me/skills.git"/></label> <label class="block text-xs"><span class="text-muted-foreground">Description (optional)</span> <input class="mt-1 h-8 w-full rounded-md border border-border bg-background px-2 text-sm" placeholder="What kind of skills?"/></label> <!></div> <div class="mt-4 flex justify-end gap-2"><button type="button" class="h-8 rounded-md border border-border px-3 text-xs hover:bg-muted/50">Cancel</button> <button type="button" class="h-8 rounded-md bg-primary px-3 text-xs font-medium text-primary-foreground hover:bg-primary/90 disabled:opacity-50"> </button></div></div></div>`),fe=n(`<div class="flex h-full flex-col overflow-y-auto p-5"><header class="flex shrink-0 items-center gap-3 border-b border-border pb-4"><div class="min-w-0 flex-1"><h1 class="text-lg font-semibold">Discover skills</h1> <p class="mt-0.5 text-xs text-muted-foreground">Browse curated and custom skill repositories, then scan to install.</p></div> <button type="button" class="inline-flex h-8 shrink-0 items-center rounded-md border border-border px-3 text-xs font-medium transition-colors hover:bg-muted/50">Add source</button></header> <div class="mx-auto mt-4 w-full max-w-4xl flex-1 space-y-4"><div class="flex items-center gap-2"><input type="search" placeholder="Filter sources by name or description…" class="h-9 w-full rounded-md border border-border bg-background px-3 text-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" aria-label="Filter sources"/></div> <!> <!></div></div> <!> <!>`,1);function K(n,c){r(c,!0);let u=ee(),g=h(()=>u?.()?.q?.trim()??``),v=y(``);w(()=>{m(v,d(g),!0)}),w(()=>{P()});let x=h(()=>[...L.builtIn.map(e=>({id:e.id,label:e.label,description:e.description,gitUrl:e.gitUrl,homepage:e.homepage,builtIn:!0})),...L.user.map(e=>({id:e.id,label:e.label,description:e.description,gitUrl:e.gitUrl,homepage:void 0,builtIn:!1}))]),T=h(()=>{let e=d(g).toLowerCase();return e?d(x).filter(t=>t.label.toLowerCase().includes(e)||t.description.toLowerCase().includes(e)):d(x)}),D=h(()=>{let e=[];for(let t of d(x)){let n=R(t.id);n&&e.push({id:t.id,label:t.label,summary:n})}return e.sort((e,t)=>(t.summary?.scannedAt??0)-(e.summary?.scannedAt??0)),e.slice(0,5)}),k=y(!1),M=y(``),N=y(``),z=y(``),B=y(null),V=y(!1);function H(e){let t=e.trim(),n=`/repository${t?`?q=${encodeURIComponent(t)}`:``}`;O(n,{replaceState:!0})}function U(){let e=d(v).trim(),t=e?`?q=${encodeURIComponent(e)}`:``;O(`/repository${t}`)}function W(e){O(`/repository/scan/${encodeURIComponent(e)}`)}function G(){m(k,!0),m(M,``),m(N,``),m(z,``),m(B,null)}async function ne(){let e=d(M).trim(),t=d(N).trim();if(!e||!t){m(B,`Label and Git URL are required.`);return}m(V,!0),m(B,null);try{await F({label:e,gitUrl:t,description:d(z).trim()||void 0})&&m(k,!1)}catch(e){m(B,e instanceof Error?e.message:String(e),!0)}finally{m(V,!1)}}let K=y(null),q=y(!1),J=y(!1);function pe(e,t){m(K,{id:e,label:t},!0),m(q,!0)}w(()=>{d(q)||m(K,null)});async function me(){let e=d(K);if(e){m(J,!0);try{await te(e.id)&&(m(q,!1),A(`Removed source ${e.label}.`))}catch(e){A(e instanceof Error?e.message:String(e))}finally{m(J,!1)}}}var Y=fe(),X=E(Y),Z=S(X),he=_(S(Z),2);t(Z);var ge=_(Z,2),Q=S(ge),$=S(Q);C($),t(Q);var _e=_(Q,2),ve=e=>{var t=ie();s(e,t)},ye=e=>{var t=ae(),n=f(t,!0);b(()=>i(n,L.error)),s(e,t)},be=e=>{var t=oe(),n=f(t);b(()=>i(n,`No sources match “${d(g)??``}”.`)),s(e,t)},xe=n=>{var r=se();e(r,21,()=>d(T),e=>e.id,(e,t)=>{{let n=h(()=>R(d(t).id)),r=h(()=>I(R(d(t).id))),i=h(()=>d(t).builtIn?void 0:()=>pe(d(t).id,d(t).label));re(e,{get label(){return d(t).label},get description(){return d(t).description},get gitUrl(){return d(t).gitUrl},get homepage(){return d(t).homepage},get builtIn(){return d(t).builtIn},get scanSummary(){return d(n)},get stale(){return d(r)},onscan:()=>W(d(t).id),get onremove(){return d(i)}})}}),t(r),s(n,r)};o(_e,e=>{L.loading?e(ve):L.error?e(ye,1):d(T).length===0?e(be,2):e(xe,-1)});var Se=_(_e,2),Ce=n=>{var r=le(),o=_(S(r),2);e(o,21,()=>d(D),e=>e.id,(e,n)=>{var r=ce(),o=S(r),c=S(o),l=f(c,!0),u=_(c,2),p=f(u);t(o),t(r),b(()=>{i(l,d(n).label),i(p,`${d(n).summary?.skillCount??0??``} skills`)}),a(`click`,o,()=>W(d(n).id)),s(e,r)}),t(o),t(r),s(n,r)};o(Se,e=>{d(D).length>0&&e(Ce)}),t(ge),t(X);var we=_(X,2),Te=e=>{var n=de(),r=S(n),c=_(S(r),4),l=S(c),u=_(S(l),2);C(u),t(l);var h=_(l,2),g=_(S(h),2);C(g),t(h);var v=_(h,2),y=_(S(v),2);C(y),t(v);var x=_(v,2),w=e=>{var t=ue(),n=f(t,!0);b(()=>i(n,d(B))),s(e,t)};o(x,e=>{d(B)&&e(w)}),t(c);var T=_(c,2),E=S(T),D=_(E,2),O=f(D,!0);t(T),t(r),t(n),b(()=>{D.disabled=d(V),i(O,d(V)?`Adding…`:`Add`)}),p(u,()=>d(M),e=>m(M,e)),p(g,()=>d(N),e=>m(N,e)),p(y,()=>d(z),e=>m(z,e)),a(`click`,E,()=>m(k,!1)),a(`click`,D,ne),s(e,n)};o(we,e=>{d(k)&&e(Te)});var Ee=_(we,2);{let e=h(()=>d(K)?`Remove ${d(K).label} from your Discover feed? Installed skills stay on disk.`:``);j(Ee,{title:`Remove custom source`,get description(){return d(e)},confirmLabel:`Remove`,get busy(){return d(J)},onConfirm:()=>void me(),get open(){return d(q)},set open(e){m(q,e,!0)}})}a(`click`,he,G),a(`input`,$,()=>H(d(v))),a(`keydown`,$,e=>{e.key===`Enter`&&U()}),p($,()=>d(v),e=>m(v,e)),s(n,Y),l()}u([`click`,`input`,`keydown`]);export{K as default};
@@ -1 +0,0 @@
1
- import{$ as e,ut as t}from"./CmCJ0SKP.js";import{n}from"./0k4S-8Dm.js";import{a as r,s as i,t as a}from"./BpM7GQdD.js";import{a as o}from"./xHmEZGe9.js";function s(e){return i().creator.save(e)}function c(e,t){return i().creator.load({...e,skillId:t})}async function l(e){await i().creator.remove({workspaceId:e.target.workspaceId,providerId:e.target.providerId,skillId:e.skillId,expectedRevision:e.expectedRevision})}var u=a(r),d=a(r),f=a(r),p=a(r),m=a(r),h=t({target:null,skills:[],selected:null,loading:!1,refreshing:!1,error:null,query:``});async function g(t){let n=u.issue(),r=()=>n.isCurrent()&&x(h.target,t),a=e(()=>!x(h.target,t)),o=e(()=>h.skills.length>0);a&&(d.invalidate(),h.target=t,h.skills=[],h.selected=null),h.loading=!o,h.refreshing=o,h.error=null;try{let{skills:e}=await i().skills.list({...t,includeDisabled:!0});if(!r())return;h.skills=e,h.selected&&!e.some(e=>e.id===h.selected?.id)&&(h.selected=null)}catch(e){if(!r())return;h.error=e instanceof Error?e.message:String(e)}finally{n.isLatest()&&(h.loading=!1,h.refreshing=!1)}}async function _(e){let t=h.target;if(!t)return;let n=d.issue(),r=()=>n.isCurrent()&&x(h.target,t);h.error=null;try{let n=await i().skills.info({...t,skillId:e,includeDisabled:!0});r()&&(h.selected=n)}catch(e){if(!r())return;h.error=e instanceof Error?e.message:String(e)}}async function v(e,t){let n=h.target;if(!n)return null;let r=f.issue(),a=()=>r.isCurrent()&&x(h.target,n),o;try{o=await i().skills.toggle({...n,skillIds:e,mode:t})}catch(e){if(!a())return null;throw e}return!a()||(await g(n),!a())?null:(h.selected&&e.includes(h.selected.id)&&await _(h.selected.id),a()?o:null)}async function y(e){let t=h.target;if(!t)return null;let n=p.issue(),r=()=>n.isCurrent()&&x(h.target,t);try{let n=await i().skills.validate({...t,skillId:e});return r()?n:null}catch(e){if(!r())return null;throw e}}function b(e,t){return i().skills.info({...e,skillId:t,includeDisabled:!0})}function x(e,t){return e?.workspaceId===t?.workspaceId&&e?.providerId===t?.providerId}var S=t({query:``,results:[],searching:!1,error:null});async function C(e,t=20){let n=e.trim();if(!n){E();return}let r=m.issue();S.query=n,S.searching=!0;try{let{results:e}=await i().skills.search({query:n,limit:t});if(!r.isCurrent())return;S.results=e,S.error=null}catch(e){if(!r.isCurrent())return;S.error=e instanceof Error?e.message:String(e),console.debug(`[skill-search] search failed`,S.error)}finally{r.isLatest()&&(S.searching=!1)}}var w=!1;async function T(){if(!w){w=!0;try{await i().skills.searchConfig.open({})}catch(e){n(e instanceof Error?e.message:String(e))}finally{w=!1}}}function E(){m.invalidate(),S.query=``,S.results=[],S.searching=!1,S.error=null}function D(e,t){let n=o.workspaces.find(t=>t.id===e);if(!n)return`${e} / ${t}`;let r=n.providers.find(e=>e.id===t);return`${n.label} / ${r?.label??t}`}var O=t({groups:[],loading:!1,error:null}),k=a(r);async function A(){let e=k.issue();O.loading=!0,O.error=null;try{let{groups:t}=await i().skills.duplicates({});if(!e.isCurrent())return;O.groups=t}catch(t){if(!e.isCurrent())return;O.error=t instanceof Error?t.message:String(t),console.debug(`[skill-search] duplicates load failed`,O.error)}finally{e.isLatest()&&(O.loading=!1)}}export{T as a,S as c,x as d,v as f,s as g,l as h,g as i,O as l,c as m,D as n,E as o,y as p,A as r,C as s,b as t,h as u};
@@ -1,8 +0,0 @@
1
- import{$ as e,A as t,At as n,B as r,Ct as i,F as a,G as o,N as s,R as c,S as l,St as u,U as d,V as f,W as p,X as m,ct as h,ft as g,gt as _,j as v,kt as y,lt as b,m as x,mt as S,nt as C,o as w,ot as T,rt as E,s as D,st as O,ut as k,x as ee,z as A}from"./CmCJ0SKP.js";import"./xihTtKlq.js";import{i as j,n as M}from"./0k4S-8Dm.js";import{a as te,i as ne,r as re}from"./CX1CHr5A.js";import{a as N,b as P,s as F,t as I,v as ie,x as ae}from"./BpM7GQdD.js";import{i as oe,t as se,u as L}from"./BTdzDCtA.js";import{n as R,t as z}from"./BZOx0Qre.js";import{t as ce}from"./CmWHiR19.js";import{t as le}from"./DAvb_BTz.js";import{t as ue}from"./BXwUnloU.js";import{t as de}from"./BpPdtmVY.js";import{t as B}from"./DsOfMPqr.js";import{t as fe}from"./y5ROg0gY.js";var V=I(N),H=I(N),U=I(N),W=I(N),G=I(N);async function pe(e){let t=V.issue();try{let n=await F().skillIntelligence.analyze({selections:e});return t.isCurrent()?{report:n.report,failures:n.failures,error:null}:{report:null,failures:[],error:null}}catch(e){return t.isCurrent()?{report:null,failures:[],error:e instanceof Error?e.message:String(e)}:{report:null,failures:[],error:null}}}async function me(e){let t=H.issue();try{let n=await F().skillIntelligence.propose(e);return t.isCurrent()?{proposal:n.proposal,error:null}:{proposal:null,error:null}}catch(e){return t.isCurrent()?{proposal:null,error:e instanceof Error?e.message:String(e)}:{proposal:null,error:null}}}async function he(){let e=U.issue();try{let t=await F().skillIntelligence.list({});return e.isCurrent()?{proposals:t.proposals,error:null}:{proposals:null,error:null}}catch(t){return e.isCurrent()?{proposals:null,error:t instanceof Error?t.message:String(t)}:{proposals:null,error:null}}}async function ge(e){let t=W.issue();try{return await F().skillIntelligence.reject({proposalId:e}),t.isCurrent()?{rejected:!0,error:null}:{rejected:!1,error:null}}catch(e){return t.isCurrent()?{rejected:!1,error:e instanceof Error?e.message:String(e)}:{rejected:!1,error:null}}}async function _e(e){let t=G.issue();try{let n=await F().skillIntelligence.approve({proposalId:e});return t.isCurrent()?{result:n,error:null}:{result:null,error:null}}catch(e){return t.isCurrent()?{result:null,error:e instanceof Error?e.message:String(e)}:{result:null,error:null}}}var K=new Set([`$$slots`,`$$events`,`$$legacy`]);function ve(e,t){let n=w(t,K),r=[[`circle`,{cx:`18`,cy:`18`,r:`3`}],[`circle`,{cx:`6`,cy:`6`,r:`3`}],[`path`,{d:`M6 21V9a9 9 0 0 0 9 9`}]];j(e,D({name:`git-merge`},()=>n,{get iconNode(){return r}}))}var q=new Set([`$$slots`,`$$events`,`$$legacy`]);function ye(e,t){let n=w(t,q),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 16v-4`}],[`path`,{d:`M12 8h.01`}]];j(e,D({name:`info`},()=>n,{get iconNode(){return r}}))}var J=new Set([`$$slots`,`$$events`,`$$legacy`]);function be(e,t){let n=w(t,J),r=[[`path`,{d:`M18.36 6.64A9 9 0 0 1 20.77 15`}],[`path`,{d:`M6.16 6.16a9 9 0 1 0 12.68 12.68`}],[`path`,{d:`M12 2v4`}],[`path`,{d:`m2 2 20 20`}]];j(e,D({name:`power-off`},()=>n,{get iconNode(){return r}}))}var xe=new Set([`$$slots`,`$$events`,`$$legacy`]);function Se(e,t){let n=w(t,xe),r=[[`circle`,{cx:`6`,cy:`6`,r:`3`}],[`path`,{d:`M8.12 8.12 12 12`}],[`path`,{d:`M20 4 8.12 15.88`}],[`circle`,{cx:`6`,cy:`18`,r:`3`}],[`path`,{d:`M14.8 14.8 20 20`}]];j(e,D({name:`scissors`},()=>n,{get iconNode(){return r}}))}var Ce=r(`<!> Analyzing…`,1),we=r(`<!> `,1),Te=r(`<div class="flex items-center gap-2 py-6 text-xs text-muted-foreground"><!> Loading skills…</div>`),Ee=r(`<div class="flex flex-col items-start gap-2 py-6 text-xs text-destructive"><p class="break-words"> </p> <!></div>`),De=r(`<div class="flex flex-col items-center gap-2 py-16 text-center text-muted-foreground"><!> <p class="text-sm font-medium text-foreground">No report yet</p> <p class="max-w-xs text-xs">Run a read-only analysis to surface duplicates, conflicts, shared resources, and
2
- structural findings with evidence.</p></div>`),Oe=r(`<li class="text-muted-foreground"> </li>`),ke=r(`<section class="mb-4 rounded-md border border-destructive/40 bg-destructive/5 px-3 py-2 text-xs" aria-label="Analysis failures"><p class="font-medium text-destructive">Some skills could not be analyzed:</p> <ul class="mt-1 space-y-0.5"></ul></section>`),Ae=f(`<line></line>`),je=f(`<g class="cursor-pointer" role="button" tabindex="0"><title> </title><circle r="16" fill="var(--background, white)" stroke="var(--border, gray)"></circle><text text-anchor="middle" font-size="9" fill="var(--foreground, black)"> </text></g>`),Me=r(`<section class="mb-4" aria-label="Skill relations graph"><h2 class="mb-2 text-xs font-medium text-muted-foreground">Relations</h2> <div class="overflow-x-auto rounded-md border border-border bg-muted/20"><svg role="img" aria-label="Skill relation graph" class="mx-auto block"><!><!></svg></div> <p class="mt-1 text-[10px] text-muted-foreground">Solid red = conflict · solid blue = overlap · dashed gray = shared resource. Click a
3
- node to open its detail.</p></section>`),Ne=r(`<p class="py-6 text-xs text-muted-foreground">No findings at this severity.</p>`),Pe=r(`<li class="text-[11px] leading-4"><span class="font-medium text-muted-foreground"> </span> <code class="break-words rounded bg-muted/60 px-1 py-0.5 text-[10px]"> </code></li>`),Fe=r(`<button type="button" class="text-[11px] text-primary underline-offset-2 hover:underline"> </button>`),Ie=r(`<!> Propose edit`,1),Le=r(`<!> Propose disable`,1),Re=r(`<li class="rounded-md border border-border"><div class="flex flex-wrap items-center gap-2 border-b border-border/60 px-3 py-2"><!> <span class="min-w-0 flex-1 text-xs"> </span> <!></div> <div class="space-y-1.5 px-3 py-2"><ul class="space-y-1"></ul> <div class="flex flex-wrap items-center gap-1.5 pt-1"><!> <span class="flex-1"></span> <!> <!></div></div></li>`),ze=r(`<ul class="space-y-2"></ul>`),Be=r(`<!> Refresh`,1),Ve=r(`<p class="py-4 text-xs text-muted-foreground">No pending proposals. Propose a fix from any finding above; nothing is applied until you
4
- approve it here.</p>`),He=r(`<!> Reject`,1),Ue=r(`<!> Approve`,1),We=r(`<p> </p>`),Ge=r(`<p class="mt-1 text-destructive">This proposal is stale. Re-analyze, then create a fresh proposal.</p>`),Ke=r(`<div class="border-b border-border/60 px-3 py-2 text-[11px]"><!> <!></div>`),qe=r(`<li class="flex flex-wrap items-baseline gap-1"><button type="button" class="text-primary underline-offset-2 hover:underline"> </button> <code class="break-all text-[10px] text-muted-foreground"> </code></li>`),Je=r(`<p class="leading-4 text-muted-foreground"> </p>`),Ye=r(`<p class="text-muted-foreground">Loading current document…</p>`),Xe=r(`<div class="grid gap-2 md:grid-cols-2"><div class="rounded border border-border bg-muted/20 p-2"><p class="mb-1 font-medium">Before</p> <!></div> <div class="rounded border border-border bg-muted/20 p-2"><p class="mb-1 font-medium">After (proposal)</p> <p class="leading-4 text-muted-foreground"> </p></div></div> <details><summary class="cursor-pointer text-muted-foreground">Preview body</summary> <pre class="mt-1 max-h-48 overflow-auto rounded bg-muted/40 p-2 text-[10px] whitespace-pre-wrap"> </pre></details>`,1),Ze=r(`<p class="rounded border border-border bg-muted/20 p-2 leading-4"> </p>`),Qe=r(`<li><span class="font-medium"> </span> <span class="text-muted-foreground"> </span></li>`),$e=r(`<ul class="space-y-1"></ul>`),et=r(`<p><span class="font-medium"> </span> <span class="text-muted-foreground"> </span></p> <p class="text-muted-foreground"> </p>`,1),tt=r(`<div class="space-y-2 px-3 py-2 text-[11px]"><p class="text-muted-foreground"> </p> <p class="text-muted-foreground"> </p> <ul class="space-y-1"></ul> <!></div>`),nt=r(`<li class="rounded-md border border-border"><div class="flex flex-wrap items-center gap-2 border-b border-border/60 px-3 py-2"><!> <button type="button" class="min-w-0 flex-1 truncate text-left text-xs font-medium"> </button> <!> <!></div> <!> <!></li>`),rt=r(`<section class="mb-4 flex flex-wrap items-center gap-2 text-xs" aria-label="Report summary"><!> <!> <!> <!> <!> <span class="flex-1"></span> <div class="flex items-center gap-1" role="group" aria-label="Severity filter"></div></section> <!> <!> <section aria-label="Findings"><h2 class="mb-2 text-xs font-medium text-muted-foreground">Findings</h2> <!></section> <section class="mt-6" aria-label="Proposal review"><div class="mb-2 flex items-center gap-2"><h2 class="text-xs font-medium text-muted-foreground">Proposals</h2> <!> <span class="flex-1"></span> <!></div> <!></section>`,1),it=r(`<div class="flex h-full min-h-0 flex-col overflow-y-auto"><header class="shrink-0 border-b border-border px-5 py-4"><div class="flex flex-wrap items-center gap-3"><!> <div class="min-w-0 flex-1"><h1 class="truncate text-base font-semibold">Skill Intelligence</h1> <p class="mt-0.5 text-xs text-muted-foreground"> </p></div> <!></div></header> <div class="min-h-0 flex-1 px-5 py-4"><!></div></div>`);function at(r,f){i(f,!0);let p=re(),w=ne(),D=_(()=>p?.()?.wsId),j=_(()=>p?.()?.providerId),F=_(()=>w?.()??{}),V=_(()=>m(F).severity??`all`),H=_(()=>{if(!m(D)||!m(j))return null;let e=ae.safeParse(m(D)),t=P.safeParse(m(j));return!e.success||!t.success?null:{workspaceId:e.data,providerId:t.data}}),U=S(null),W=S(k([])),G=S(!1),K=S(null);I(N),E(()=>{m(H)&&oe(m(H))});async function q(){let t=m(H);if(!t||m(G))return;let n=e(()=>L.skills);if(n.length===0){M(`No skills discovered in this provider.`);return}g(G,!0),g(K,null);try{let e=await pe(n.map(e=>({...t,skillId:e.id})));if(!e.report&&!e.error)return;if(g(U,e.report,!0),g(W,e.failures,!0),g(K,e.error,!0),e.report){let t=J(e.report.findings);M(`Analyzed ${e.report.snapshots.length} skills · ${t.error} errors · ${t.warning} warnings.`)}}finally{g(G,!1)}}function J(e){return{error:e.filter(e=>e.severity===`error`).length,warning:e.filter(e=>e.severity===`warning`).length,info:e.filter(e=>e.severity===`info`).length}}let xe=_(()=>m(U)?m(V)===`all`?m(U).findings:m(U).findings.filter(e=>e.severity===m(V)):[]);function at(e){m(D)&&m(j)&&te(`workspaces.intelligence`,{wsId:m(D),providerId:m(j)},{severity:e===`all`?void 0:e},`REPLACE`)}let ot=_(()=>{let e=new Map;for(let t of m(U)?.snapshots??[])e.set(t.skillId,t.name);return t=>e.get(t)??t});function st(e){m(D)&&m(j)&&te(`workspaces.provider`,{wsId:m(D),providerId:m(j)},{skill:e,view:`detail`})}let ct=S(k([])),lt=S(!1),Y=S(!1),X=S(null),Z=S(null),ut=S(null),dt=S(k({})),ft=S(null);E(()=>{Q()});async function Q(){g(lt,!0);try{let e=await he();e.proposals&&g(ct,e.proposals,!0)}finally{g(lt,!1)}}async function pt(e){if(g(ft,m(ft)===e.id?null:e.id,!0),m(ft)===e.id&&e.payload.kind===`edit`)for(let t of e.payload.edits){let e=ie.safeParse(t.selection.skillId);if(e.success)try{let n=await se(t.selection,e.data);g(dt,{...m(dt),[t.selection.skillId]:n},!0)}catch{}}}async function mt(e){if(!m(X)){g(X,e.id,!0);try{let{result:t,error:n}=await _e(e.id);if(n){M(n);return}if(!t)return;g(ut,{proposalId:e.id,result:t},!0),t.conflicts>0?M(`${t.conflicts} conflict(s): skill changed after the proposal. Re-analyze.`,{label:`Re-analyze`,run:()=>void q()}):t.failed>0?M(`Applied with ${t.failed} failure(s).`):M(`Applied ${t.applied} change(s).`),await Q(),await ht()}finally{g(X,null)}}}async function ht(){let e=m(H);e&&await oe(e)}async function gt(e){if(!m(Z)){g(Z,e.id,!0);try{let{error:t}=await ge(e.id);t&&M(t),await Q()}finally{g(Z,null)}}}async function _t(e){let t=m(H);if(t&&!m(Y)){g(Y,!0);try{let{proposal:n,error:r}=await me({payload:{kind:`disable`,selections:e.skillIds.map(e=>({...t,skillId:e})),reason:e.message},findingIds:[e.id],rationale:`Address "${e.kind}": ${e.message}`});r&&M(r),n&&(M(`Disable proposal drafted for review.`),await Q())}finally{g(Y,!1)}}}async function vt(e){let t=m(H);if(t&&!m(Y)&&e.skillIds.length===1){g(Y,!0);try{let n=ie.safeParse(e.skillIds[0]);if(!n.success)return;let r=await se(t,n.data),{frontmatter:i,body:a}=yt(r.content),o=`${i.description??``} Reviewed via skill intelligence (${e.kind}).`.trim(),{proposal:s,error:c}=await me({payload:{kind:`edit`,edits:[{selection:{...t,skillId:n.data},frontmatter:{...i,name:r.name,description:o},body:a}]},findingIds:[e.id],rationale:`Address "${e.kind}": ${e.message}`});c&&M(c),s&&(M(`Edit proposal drafted for review.`),await Q())}catch(e){M(e instanceof Error?e.message:String(e))}finally{g(Y,!1)}}}function yt(e){let t=e.replace(/\r\n/g,`
5
- `);if(!t.startsWith(`---`))return{frontmatter:{},body:t};let n=t.split(`
6
- `),r=n.findIndex((e,t)=>t>0&&e.trim()===`---`);if(r===-1)return{frontmatter:{},body:t};let i={};for(let e of n.slice(1,r)){let t=e.indexOf(`:`);t<=0||(i[e.slice(0,t).trim()]=e.slice(t+1).trim())}return{frontmatter:i,body:n.slice(r+1).join(`
7
- `).replace(/^\n/,``)}}let $=_(()=>{let e=m(U)?.snapshots??[];if(e.length<2)return null;let t=Math.min(1600,Math.max(560,e.length*72)),n=e.length>14?420:360,r=t/2-70,i=n/2-70,a={x:t/2,y:n/2},o=e.map((t,n)=>{let o=n/e.length*Math.PI*2-Math.PI/2;return{skillId:t.skillId,name:t.name,label:t.name.length>14?`${t.name.slice(0,13)}…`:t.name,labelDy:n%2==0?32:-26,x:a.x+r*Math.cos(o),y:a.y+i*Math.sin(o)}}),s=new Map(o.map((e,t)=>[e.skillId,t]));return{width:t,height:n,nodes:o,edges:(m(U)?.edges??[]).map(e=>{let t=s.get(e.skillIds[0]),n=s.get(e.skillIds[1]);return t===void 0||n===void 0?null:{kind:e.kind,from:o[t],to:o[n]}}).filter(e=>e!==null)}}),bt={error:`destructive`,warning:`secondary`,info:`outline`};var xt=it(),St=T(xt),Ct=T(St),wt=T(Ct);ce(wt,{class:`h-5 w-5 text-primary`});var Tt=b(wt,2),Et=b(T(Tt),2),Dt=h(Et);n(Tt);var Ot=b(Tt,2);R(Ot,{size:`sm`,class:`h-8 gap-1.5`,get disabled(){return m(G)},onclick:()=>void q(),children:(e,t)=>{var n=A(),r=O(n),i=e=>{var t=Ce(),n=O(t);z(n,{class:`h-3.5 w-3.5 animate-spin`}),y(),c(e,t)},o=e=>{var t=we(),n=O(t);fe(n,{class:`h-3.5 w-3.5`});var r=b(n);C(()=>a(r,` Analyze ${(L.skills.length||``)??``}`)),c(e,t)};s(r,e=>{m(G)?e(i):e(o,-1)}),c(e,n)},$$slots:{default:!0}}),n(Ct),n(St);var kt=b(St,2),At=T(kt),jt=e=>{var t=Te(),r=T(t);z(r,{class:`h-3.5 w-3.5 animate-spin`}),y(),n(t),c(e,t)},Mt=e=>{var t=Ee(),r=T(t),i=h(r,!0),o=b(r,2),l=e=>{R(e,{variant:`outline`,size:`sm`,class:`h-7 text-xs`,onclick:()=>void oe(m(H)),children:(e,t)=>{y();var n=d(`Retry`);c(e,n)},$$slots:{default:!0}})};s(o,e=>{m(H)&&e(l)}),n(t),C(()=>a(i,L.error)),c(e,t)},Nt=e=>{var t=Ee(),r=T(t),i=h(r,!0),o=b(r,2);R(o,{variant:`outline`,size:`sm`,class:`h-7 text-xs`,onclick:()=>void q(),children:(e,t)=>{y();var n=d(`Retry analysis`);c(e,n)},$$slots:{default:!0}}),n(t),C(()=>a(i,m(K))),c(e,t)},Pt=e=>{var t=De(),r=T(t);de(r,{class:`h-8 w-8 opacity-50`}),y(4),n(t),c(e,t)},Ft=e=>{var r=rt(),i=O(r),u=T(i);B(u,{variant:`outline`,children:(e,t)=>{y();var n=d();C(()=>a(n,`${m(U).snapshots.length??``} skills`)),c(e,n)},$$slots:{default:!0}});var f=b(u,2);B(f,{variant:`destructive`,children:(e,t)=>{y();var n=d();C(e=>a(n,`${e??``} errors`),[()=>J(m(U).findings).error]),c(e,n)},$$slots:{default:!0}});var p=b(f,2);B(p,{variant:`secondary`,children:(e,t)=>{y();var n=d();C(e=>a(n,`${e??``} warnings`),[()=>J(m(U).findings).warning]),c(e,n)},$$slots:{default:!0}});var g=b(p,2);B(g,{variant:`outline`,children:(e,t)=>{y();var n=d();C(e=>a(n,`${e??``} info`),[()=>J(m(U).findings).info]),c(e,n)},$$slots:{default:!0}});var S=b(g,2),w=e=>{B(e,{variant:`destructive`,children:(e,t)=>{y();var n=d();C(()=>a(n,`${m(W).length??``} failed to analyze`)),c(e,n)},$$slots:{default:!0}})};s(S,e=>{m(W).length>0&&e(w)});var E=b(S,4);t(E,20,()=>[`all`,`error`,`warning`,`info`],e=>e,(e,t)=>{{let n=_(()=>m(V)===t?`default`:`outline`);R(e,{get variant(){return m(n)},size:`sm`,class:`h-7 px-2 text-xs capitalize`,onclick:()=>at(t),children:(e,n)=>{y();var r=d();C(()=>a(r,t)),c(e,r)},$$slots:{default:!0}})}}),n(E),n(i);var D=b(i,2),k=e=>{var r=ke(),i=b(T(r),2);t(i,21,()=>m(W),e=>e.message,(e,t)=>{var n=Oe(),r=h(n);C(()=>a(r,`${m(t).code??``}: ${m(t).message??``}`)),c(e,n)}),n(i),n(r),c(e,r)};s(D,e=>{m(W).length>0&&e(k)});var A=b(D,2),j=e=>{var r=Me(),i=b(T(r),2),s=T(i),l=T(s);t(l,17,()=>m($).edges,v,(e,t)=>{var n=Ae();C(()=>{x(n,`x1`,m(t).from.x),x(n,`y1`,m(t).from.y),x(n,`x2`,m(t).to.x),x(n,`y2`,m(t).to.y),x(n,`stroke`,m(t).kind===`conflict`?`var(--destructive, crimson)`:m(t).kind===`overlap`?`var(--primary, steelblue)`:`var(--muted-foreground, gray)`),x(n,`stroke-width`,m(t).kind===`conflict`?2:1.2),x(n,`stroke-dasharray`,m(t).kind===`shared-resource`?`4 3`:void 0)}),c(e,n)});var u=b(l);t(u,17,()=>m($).nodes,e=>e.skillId,(e,t)=>{var r=je(),i=T(r),s=h(i,!0),l=b(i),u=b(l),d=h(u,!0);n(r),C(()=>{x(r,`aria-label`,`Open ${m(t).name??``} detail`),a(s,m(t).name),x(l,`cx`,m(t).x),x(l,`cy`,m(t).y),x(u,`x`,m(t).x),x(u,`y`,m(t).y+m(t).labelDy),a(d,m(t).label)}),o(`click`,r,()=>st(m(t).skillId)),o(`keydown`,r,e=>e.key===`Enter`&&st(m(t).skillId)),c(e,r)}),n(s),n(i),y(2),n(r),C(()=>{x(s,`width`,m($).width),x(s,`height`,m($).height)}),c(e,r)};s(A,e=>{m($)&&e(j)});var M=b(A,2),te=b(T(M),2),ne=e=>{var t=Ne();c(e,t)},re=e=>{var r=ze();t(r,21,()=>m(xe),e=>e.id,(e,r)=>{var i=Re(),l=T(i),u=T(l),f=e=>{ue(e,{class:`h-4 w-4 shrink-0 text-destructive`})},p=e=>{de(e,{class:`h-4 w-4 shrink-0 text-amber-600 dark:text-amber-400`})},g=e=>{ye(e,{class:`h-4 w-4 shrink-0 text-muted-foreground`})};s(u,e=>{m(r).severity===`error`?e(f):m(r).severity===`warning`?e(p,1):e(g,-1)});var _=b(u,2),v=h(_,!0),x=b(_,2);B(x,{get variant(){return bt[m(r).severity]},class:`text-[10px]`,children:(e,t)=>{y();var n=d();C(()=>a(n,m(r).kind)),c(e,n)},$$slots:{default:!0}}),n(l);var S=b(l,2),w=T(S);t(w,21,()=>m(r).evidence,e=>e.label+e.snippet,(e,t)=>{var r=Pe(),i=T(r),o=h(i),s=b(i,2),l=h(s,!0);n(r),C(()=>{a(o,`${m(t).label??``}:`),a(l,m(t).snippet)}),c(e,r)}),n(w);var E=b(w,2),D=T(E);t(D,16,()=>m(r).skillIds,e=>e,(e,t)=>{var n=Fe(),r=h(n,!0);C(e=>a(r,e),[()=>m(ot)(t)]),o(`click`,n,()=>st(t)),c(e,n)});var k=b(D,4),ee=e=>{R(e,{variant:`outline`,size:`sm`,class:`h-7 gap-1 px-2 text-[11px]`,get disabled(){return m(Y)},onclick:()=>void vt(m(r)),children:(e,t)=>{var n=Ie(),r=O(n);ce(r,{class:`h-3 w-3`}),y(),c(e,n)},$$slots:{default:!0}})};s(k,e=>{m(r).skillIds.length===1&&m(r).kind!==`duplicate-name`&&e(ee)});var A=b(k,2);R(A,{variant:`outline`,size:`sm`,class:`h-7 gap-1 px-2 text-[11px]`,get disabled(){return m(Y)},onclick:()=>void _t(m(r)),children:(e,t)=>{var n=Le();be(O(n),{class:`h-3 w-3`}),y(),c(e,n)},$$slots:{default:!0}}),n(E),n(S),n(i),C(()=>a(v,m(r).message)),c(e,i)}),n(r),c(e,r)};s(te,e=>{m(xe).length===0?e(ne):e(re,-1)}),n(M);var N=b(M,2),P=T(N),F=b(T(P),2),I=e=>{z(e,{class:`h-3 w-3 animate-spin text-muted-foreground`})};s(F,e=>{m(lt)&&e(I)});var ie=b(F,4);R(ie,{variant:`ghost`,size:`sm`,class:`h-7 gap-1 px-2 text-xs`,onclick:()=>void Q(),children:(e,t)=>{var n=Be(),r=O(n);le(r,{class:`h-3 w-3`}),y(),c(e,n)},$$slots:{default:!0}}),n(P);var ae=b(P,2),oe=e=>{var t=Ve();c(e,t)},se=e=>{var r=ze();t(r,21,()=>m(ct),e=>e.id,(e,r)=>{let i=_(()=>m(ut)?.proposalId===m(r).id?m(ut).result:null);var u=nt(),d=T(u),f=T(d),p=e=>{ce(e,{class:`h-4 w-4 shrink-0 text-primary`})},g=e=>{be(e,{class:`h-4 w-4 shrink-0 text-amber-600 dark:text-amber-400`})},v=e=>{Se(e,{class:`h-4 w-4 shrink-0 text-primary`})},x=e=>{ve(e,{class:`h-4 w-4 shrink-0 text-primary`})};s(f,e=>{m(r).payload.kind===`edit`?e(p):m(r).payload.kind===`disable`?e(g,1):m(r).payload.kind===`split`?e(v,2):e(x,-1)});var S=b(f,2),w=h(S),E=b(S,2);{let e=_(()=>m(Z)===m(r).id);R(E,{variant:`outline`,size:`sm`,class:`h-7 px-2 text-[11px]`,get disabled(){return m(e)},onclick:()=>void gt(m(r)),children:(e,t)=>{var n=He(),i=O(n),a=e=>{z(e,{class:`h-3 w-3 animate-spin`})};s(i,e=>{m(Z)===m(r).id&&e(a)}),y(),c(e,n)},$$slots:{default:!0}})}var D=b(E,2);{let e=_(()=>m(X)===m(r).id||m(i)!==null&&m(i).conflicts>0);R(D,{size:`sm`,class:`h-7 px-2 text-[11px]`,get disabled(){return m(e)},onclick:()=>void mt(m(r)),children:(e,t)=>{var n=Ue(),i=O(n),a=e=>{z(e,{class:`h-3 w-3 animate-spin`})};s(i,e=>{m(X)===m(r).id&&e(a)}),y(),c(e,n)},$$slots:{default:!0}})}n(d);var k=b(d,2),A=e=>{var r=Ke(),o=T(r);t(o,17,()=>m(i).results,e=>e.skillId,(e,t)=>{var n=We(),r=h(n);C(e=>{ee(n,1,l(m(t).status===`applied`?`text-emerald-600 dark:text-emerald-400`:m(t).status===`conflict`?`text-destructive`:`text-muted-foreground`)),a(r,`${e??``} — ${m(t).status??``}${m(t).error?`: ${m(t).error}`:``}`)},[()=>m(ot)(m(t).skillId)]),c(e,n)});var u=b(o,2),d=e=>{var t=Ge();c(e,t)};s(u,e=>{m(i).conflicts>0&&e(d)}),n(r),c(e,r)};s(k,e=>{m(i)&&e(A)});var j=b(k,2),M=e=>{var i=tt(),l=T(i),u=h(l,!0),d=b(l,2),f=h(d),p=b(d,2);t(p,21,()=>m(r).observedRevisions,e=>e.skillId,(e,t)=>{var r=qe(),i=T(r),s=h(i,!0),l=b(i,2),u=h(l);n(r),C((e,t)=>{a(s,e),a(u,`${t??``}…`)},[()=>m(ot)(m(t).skillId),()=>m(t).revision.slice(0,19)]),o(`click`,i,()=>st(m(t).skillId)),c(e,r)}),n(p);var g=b(p,2),v=e=>{let t=_(()=>m(r).payload.edits[0]),i=_(()=>m(dt)[m(t).selection.skillId]);var o=Xe(),l=O(o),u=T(l),d=b(T(u),2),f=e=>{var t=Je(),n=h(t,!0);C(()=>a(n,m(i).description)),c(e,t)},p=e=>{var t=Ye();c(e,t)};s(d,e=>{m(i)?e(f):e(p,-1)}),n(u);var g=b(u,2),v=b(T(g),2),y=h(v,!0);n(g),n(l);var x=b(l,2),S=b(T(x),2),w=h(S,!0);n(x),C(()=>{a(y,m(t).frontmatter.description),a(w,m(t).body)}),c(e,o)},y=e=>{var t=Ze(),n=h(t);C(()=>a(n,`Reason: ${m(r).payload.reason??``}`)),c(e,t)},x=e=>{var i=$e();t(i,21,()=>m(r).payload.targets,e=>e.directoryName,(e,t)=>{var r=Qe(),i=T(r),o=h(i,!0),s=b(i,2),l=h(s);n(r),C(()=>{a(o,m(t).directoryName),a(l,`— ${m(t).frontmatter.description??``}`)}),c(e,r)}),n(i),c(e,i)},S=e=>{var t=et(),i=O(t),o=T(i),s=h(o,!0),l=b(o,2),u=h(l);n(i);var d=b(i,2),f=h(d);C(()=>{a(s,m(r).payload.target.directoryName),a(u,`— ${m(r).payload.target.frontmatter.description??``}`),a(f,`Merges ${m(r).payload.sources.length??``} sources; approving removes them revision-safely.`)}),c(e,t)};s(g,e=>{m(r).payload.kind===`edit`?e(v):m(r).payload.kind===`disable`?e(y,1):m(r).payload.kind===`split`?e(x,2):m(r).payload.kind===`merge`&&e(S,3)}),n(i),C(e=>{a(u,m(r).rationale),a(f,`Created ${e??``} · affects
8
- ${m(r).observedRevisions.length??``} skill(s).`)},[()=>new Date(m(r).createdAt).toLocaleString()]),c(e,i)};s(j,e=>{m(ft)===m(r).id&&e(M)}),n(u),C(()=>a(w,`${m(r).payload.kind??``} · ${m(r).rationale??``}`)),o(`click`,S,()=>void pt(m(r))),c(e,u)}),n(r),c(e,r)};s(ae,e=>{m(ct).length===0?e(oe):e(se,-1)}),n(N),c(e,r)};s(At,e=>{L.loading?e(jt):L.error?e(Mt,1):m(K)?e(Nt,2):m(U)?e(Ft,-1):e(Pt,3)}),n(kt),n(xt),C(()=>a(Dt,`${m(j)??`—`??``} · read-only analysis with revision-locked review.`)),c(r,xt),u()}p([`click`,`keydown`]);export{at as default};
@@ -1 +0,0 @@
1
- import{$ as e,A as t,At as n,B as r,Ct as i,F as a,G as o,Mt as s,N as c,R as l,S as u,St as d,U as f,W as p,X as m,_t as h,a as g,ct as _,d as v,ft as y,g as b,gt as x,j as S,k as ee,kt as C,l as te,lt as w,m as T,mt as E,nt as D,o as O,ot as k,p as ne,rt as A,s as j,st as M,ut as re,x as ie,z as ae}from"./CmCJ0SKP.js";import"./xihTtKlq.js";import{i as N,n as P}from"./0k4S-8Dm.js";import{a as F,i as oe,r as se}from"./CX1CHr5A.js";import{_ as ce,a as le,b as ue,r as de,s as I,t as fe,u as pe,v as me,x as he}from"./BpM7GQdD.js";import{a as ge,c as L,d as R,f as _e,g as ve,i as ye,l as be,o as xe,p as Se,r as Ce,s as we,t as Te,u as z}from"./BTdzDCtA.js";import{i as Ee,n as B,t as V}from"./BZOx0Qre.js";import{t as De}from"./C4d-joyd.js";import{n as Oe,r as ke,t as Ae}from"./n3HFLfXO.js";import{n as je,t as Me}from"./DxUS3G9A.js";import{n as Ne,t as Pe}from"./s48N5eaK.js";import{t as H}from"./DsOfMPqr.js";import{t as Fe}from"./y5ROg0gY.js";var Ie=fe(le),U=re({target:null,checking:!1,applying:!1,checkError:null,results:[],applyResults:null});async function Le(e,t){let n=Ie.issue(),r=()=>n.isCurrent()&&R(U.target,e);U.target=e,U.checking=!0,U.checkError=null,U.results=[],U.applyResults=null;try{let{results:n}=await I().skills.update.check({...e,skillIds:t});if(!r())return;U.results=n}catch(e){if(!r())return;U.checkError=e instanceof Error?e.message:String(e)}finally{n.isLatest()&&(U.checking=!1)}}async function Re(e,t){let n=Ie.issue(),r=()=>n.isCurrent()&&R(U.target,e);U.applying=!0;try{let{results:n}=await I().skills.update.apply({...e,skillIds:t});return r()?(U.applyResults=n,n):null}catch(e){if(!r())return null;throw e}finally{n.isLatest()&&(U.applying=!1)}}function ze(){Ie.invalidate(),U.results=[],U.applyResults=null,U.checkError=null}function Be(e){let t=0,n=0,r=0,i=0;for(let a of e)a.status===`updated`?t+=1:a.status===`already-current`?n+=1:a.status===`failed`?r+=1:i+=1;return{outdated:t,current:n,failed:r,unavailable:i}}function Ve(e){let t=0,n=0,r=0;for(let i of e)i.status===`updated`?t+=1:i.status===`already-current`?n+=1:r+=1;return{updated:t,current:n,failed:r}}var W=new Set([`$$slots`,`$$events`,`$$legacy`]);function He(e,t){let n=O(t,W),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`line`,{x1:`10`,x2:`10`,y1:`15`,y2:`9`}],[`line`,{x1:`14`,x2:`14`,y1:`15`,y2:`9`}]];N(e,j({name:`circle-pause`},()=>n,{get iconNode(){return r}}))}var Ue=new Set([`$$slots`,`$$events`,`$$legacy`]);function We(e,t){let n=O(t,Ue),r=[[`path`,{d:`M7 7h10v10`}],[`path`,{d:`M7 17 17 7`}]];N(e,j({name:`arrow-up-right`},()=>n,{get iconNode(){return r}}))}var G=r(`<span title="Disabled (paused)" class="shrink-0"><!></span>`),Ge=r(`<span class="shrink-0 text-xs uppercase tracking-wide text-amber-600 dark:text-amber-400">disabled</span>`),K=r(`<span class="inline-flex shrink-0 items-center gap-0.5 text-xs text-muted-foreground/80"><!> <span class="tabular-nums"> </span></span>`),Ke=r(`<span class="mt-0.5 line-clamp-2 text-xs leading-4"> </span>`),q=r(`<span class="mt-0.5 line-clamp-2 text-xs italic leading-4 text-muted-foreground/70">No description</span>`),qe=r(`<button type="button"><!> <span class="min-w-0 flex-1"><span class="flex items-center gap-2"><span class="truncate text-[13px] font-medium text-foreground"> </span> <!> <!></span> <!></span></button>`);function Je(e,t){i(t,!0);let r=g(t,`selected`,3,!1),s=g(t,`sameContentCount`,3,0),f=x(()=>`Same content as ${s()} other ${s()===1?`installation`:`installations`}`);var p=qe(),h=k(p),v=e=>{var t=G();He(k(t),{class:`mt-0.5 h-4 w-4 text-amber-600 dark:text-amber-400`}),n(t),l(e,t)},y=e=>{Oe(e,{class:`mt-0.5 h-4 w-4 shrink-0 text-muted-foreground`})};c(h,e=>{t.skill.disabled?e(v):e(y,-1)});var b=w(h,2),S=k(b),ee=k(S),C=_(ee,!0),te=w(ee,2),E=e=>{var t=Ge();l(e,t)};c(te,e=>{t.skill.disabled&&e(E)});var O=w(te,2),ne=e=>{var t=K(),r=k(t);We(r,{class:`h-3 w-3`,"aria-hidden":`true`});var i=w(r,2),o=_(i,!0);n(t),D(()=>{T(t,`title`,m(f)),a(o,s())}),l(e,t)};c(O,e=>{s()>0&&e(ne)}),n(S);var A=w(S,2),j=e=>{var n=Ke(),r=_(n,!0);D(()=>a(r,t.skill.description)),l(e,n)},M=e=>{var t=q();l(e,t)};c(A,e=>{t.skill.description?e(j):e(M,-1)}),n(b),n(p),D(e=>{T(p,`data-skill-id`,t.skill.id),T(p,`aria-pressed`,r()),ie(p,1,e),a(C,t.skill.name)},[()=>u(Ee(`group flex min-h-14 w-full items-start gap-2.5 border-b border-border/70 px-3 py-2.5 text-left transition-colors`,r()?`bg-accent text-foreground`:`text-muted-foreground hover:bg-accent/60 hover:text-foreground`))]),o(`click`,p,function(...e){t.onclick?.apply(this,e)}),l(e,p),d()}p([`click`]);var Ye=new Set([`$$slots`,`$$events`,`$$legacy`]);function Xe(e,t){let n=O(t,Ye),r=[[`path`,{d:`m12 19-7-7 7-7`}],[`path`,{d:`M19 12H5`}]];N(e,j({name:`arrow-left`},()=>n,{get iconNode(){return r}}))}var Ze=new Set([`$$slots`,`$$events`,`$$legacy`]);function Qe(e,t){let n=O(t,Ze),r=[[`path`,{d:`M12 17V3`}],[`path`,{d:`m6 11 6 6 6-6`}],[`path`,{d:`M19 21H5`}]];N(e,j({name:`arrow-down-to-line`},()=>n,{get iconNode(){return r}}))}var $e=new Set([`$$slots`,`$$events`,`$$legacy`]);function et(e,t){let n=O(t,$e),r=[[`path`,{d:`M12 2v10`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`}]];N(e,j({name:`power`},()=>n,{get iconNode(){return r}}))}var tt=new Set([`$$slots`,`$$events`,`$$legacy`]);function nt(e,t){let n=O(t,tt),r=[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`}],[`path`,{d:`m9 12 2 2 4-4`}]];N(e,j({name:`shield-check`},()=>n,{get iconNode(){return r}}))}var rt=r(`<div class="flex shrink-0 items-start gap-2 border-b border-border px-4 py-2 text-xs text-destructive" role="alert" data-testid="search-fallback"><span class="min-w-0 flex-1 break-words"> </span> <button class="shrink-0 underline underline-offset-2">Retry</button></div>`),it=r(`<p class="flex shrink-0 items-center gap-2 border-b border-border px-4 py-2 text-xs text-muted-foreground" role="status"><!> Checking upstream sources…</p>`),at=r(`<div class="flex shrink-0 items-start gap-2 border-b border-border px-4 py-2 text-xs text-destructive" role="alert"><span class="min-w-0 flex-1 break-words"> </span> <button class="shrink-0 underline underline-offset-2">Retry</button></div>`),ot=r(`<span class="text-muted-foreground"> </span>`),st=r(`<span class="text-destructive"> </span>`),ct=r(`<p class="min-w-0 flex-1 text-xs"><span class="font-medium">Applied</span> <!> <!> <!></p>`),lt=r(`<span class="font-medium text-primary"> </span>`),ut=r(`<span class="font-medium">All current</span>`),dt=r(`<!> `,1),ft=r(`<p class="min-w-0 flex-1 text-xs"><!> <!> <!> <!></p> <!>`,1),pt=r(`<li class="pl-3 text-xs text-muted-foreground"> </li>`),mt=r(`<li class="flex items-baseline gap-1.5"><span class="min-w-0 flex-1 truncate"> </span> <!></li> <!>`,1),ht=r(`<ul class="mt-1.5 max-h-40 space-y-1 overflow-y-auto text-xs"></ul>`),gt=r(`<section class="shrink-0 border-b border-border px-4 py-2.5" aria-label="Update report" data-testid="update-report"><div class="flex items-center gap-2"><!> <button class="flex h-7 w-7 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground" aria-label="Dismiss update report"><!></button></div> <!></section>`),_t=r(`<div class="flex flex-col items-start gap-2 px-4 py-6 text-xs text-destructive"><p class="break-words"> </p> <!></div>`),vt=r(`<button class="shrink-0 underline underline-offset-2">Retry</button>`),yt=r(`<div class="flex items-start gap-2 px-4 py-2.5 text-xs text-destructive" role="alert"><span class="min-w-0 flex-1 break-words"> </span> <!></div> <!>`,1),bt=r(`<div class="flex items-center gap-2 px-4 py-6 text-xs text-muted-foreground"><!> Loading skills…</div>`),xt=r(`<div class="flex items-center gap-2 px-4 py-6 text-xs text-muted-foreground" role="status" data-testid="search-loading"><!> Searching skills…</div>`),St=r(`<p class="px-4 py-6 text-xs text-muted-foreground" data-testid="search-scoped-empty">No skills match in this provider. <button class="underline underline-offset-2">Search all workspaces (⌘K)</button></p>`),Ct=r(`<p class="px-4 py-6 text-xs text-muted-foreground">No skills match.</p>`),wt=r(`<span class="shrink-0 text-xs uppercase tracking-wide text-amber-600 dark:text-amber-400">disabled</span>`),Tt=r(`<span class="inline-flex shrink-0 items-center gap-0.5 text-xs text-muted-foreground/80"><!> <span class="tabular-nums"> </span></span>`),Et=r(`<button type="button"><!> <span class="min-w-0 flex-1"><span class="flex items-center gap-2"><span class="truncate text-[13px] font-medium text-foreground"> </span> <!> <!></span> <span class="mt-0.5 line-clamp-2 text-xs leading-4"> </span></span></button>`),Dt=r(`<div class="m-auto flex flex-col items-center justify-center gap-2 px-8 py-10 text-center text-muted-foreground"><!> <p class="text-sm font-medium text-foreground">Select a skill</p> <p class="max-w-xs text-xs">Inspect its frontmatter, rendered body, and validation status.</p></div>`),Ot=r(`<div class="flex h-full items-center justify-center gap-2 text-xs text-muted-foreground"><!> Loading skill…</div>`),kt=r(`<div class="flex h-full flex-col items-center justify-center gap-2 px-8 text-center"><p class="text-sm font-medium text-destructive">Skill not found</p> <p class="text-xs text-muted-foreground">This skill could not be loaded. It may have been moved, renamed, or deleted.</p> <p class="max-w-md break-all font-mono text-xs text-muted-foreground/70"> </p> <!></div>`),At=r(`<h2 class="truncate text-base font-semibold"> </h2>`),jt=r(`<textarea rows="2" class="mt-1 w-full resize-y rounded-md border border-input bg-input/20 px-2 py-1 text-xs leading-5 outline-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30" aria-label="Skill description"></textarea>`),Mt=r(`<p class="mt-0.5 text-xs leading-5 text-muted-foreground"> </p>`),Nt=r(`<!> Save`,1),Pt=r(`<!> Validate`,1),Ft=r(`<!> Valid skill`,1),It=r(`<!> Validation issues`,1),Lt=r(`<p class="mt-1 text-xs text-destructive"> </p>`),Rt=r(`<p class="mt-1 text-xs text-amber-700 dark:text-amber-300"> </p>`),zt=r(`<section class="mb-4 border-b border-border pb-3" aria-live="polite"><div class="flex items-center gap-2 text-xs font-medium"><!></div> <!> <!></section>`),Bt=r(`<div><dt class="bg-muted/40 px-2 py-1 text-xs font-medium text-muted-foreground"> </dt> <dd class="break-words px-2 py-1 text-xs"> </dd></div>`),Vt=r(`<section class="mb-4"><h3 class="mb-2 text-xs font-medium text-muted-foreground">Frontmatter</h3> <dl class="overflow-x-auto rounded-md border border-border"></dl></section>`),Ht=r(`<div class="provider-detail-inner flex min-h-0 flex-1 flex-col svelte-9qjypz"><header tabindex="-1" class="detail-header shrink-0 border-b border-border px-4 py-3 focus:outline-none svelte-9qjypz"><div class="flex items-start gap-2"><button class="provider-back mt-0.5 hidden h-8 w-8 items-center justify-center svelte-9qjypz" aria-label="Back to skills"><!></button> <div class="min-w-0 flex-1"><!> <!></div> <div class="flex shrink-0 items-center gap-1.5"><!> <!> <!></div></div> <div class="mt-2 flex flex-wrap gap-1.5"><!> <!> <!></div></header> <div class="min-h-0 flex-1 overflow-y-auto px-4 py-3"><!> <!> <section><h3 class="mb-2 text-xs font-medium uppercase tracking-wide text-muted-foreground">SKILL.md</h3> <div class="prose prose-sm max-w-none overflow-x-auto"></div></section></div></div>`),Ut=r(`<div class="provider-surface flex h-full min-h-0 w-full min-w-0 svelte-9qjypz"><section aria-label="Skills"><header class="shrink-0 border-b border-border px-4 py-3"><div class="flex flex-wrap items-center gap-x-2 gap-y-1.5"><h1 class="min-w-0 truncate text-base font-semibold"> </h1> <!> <div class="ml-auto flex items-center gap-1"><!> <!></div></div> <div class="relative mt-2"><!> <input class="h-7 w-full rounded-md border border-input bg-input/20 pl-7 pr-8 text-xs outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30" placeholder="Filter skills" aria-label="Filter skills"/> <button type="button" class="absolute right-1 top-1/2 flex h-6 w-6 -translate-y-1/2 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground" aria-label="Open search config" title="Open search config (search-config.toml)"><!></button></div></header> <!> <!> <div class="min-h-0 flex-1 overflow-y-auto"><!></div></section> <section aria-label="Skill detail"><!></section></div>`);function J(r,u){i(u,!0);let p=se(),g=oe(),O=x(()=>p?.()?.wsId),j=x(()=>p?.()?.providerId),N=x(()=>g?.()??{}),I=x(()=>m(N).skill),R=x(()=>m(N).q??``),Ee=x(()=>m(N).view??`list`),Ie=fe(le),W=E(null),Ue=E(!1),G=E(null),Ge=E(!1),K=E(null),Ke=E(!1),q=E(!1),qe=E(``),Ye=E(``),Ze=E(null),$e=E(null),tt=null,J=x(()=>{if(!m(O)||!m(j))return null;let e=he.safeParse(m(O)),t=ue.safeParse(m(j));return!e.success||!t.success?null:{workspaceId:e.data,providerId:t.data}});A(()=>{m(J)&&ye(m(J))}),A(()=>{let e=m(R).trim();if(!e)return;let t=setTimeout(()=>void we(e),150);return()=>clearTimeout(t)});let Wt=E(re(de.status));A(()=>{let t=de.status,n=e(()=>m(Wt));if(y(Wt,t,!0),n===`connected`||t!==`connected`)return;let r=e(()=>m(R).trim());r?we(r):z.target!==null&&z.skills.length===0&&!z.loading&&z.error!==null&&ye(z.target)}),A(()=>()=>xe());let Gt=!1;A(()=>{Gt||de.status!==`connected`||(Gt=!0,Ce())});let Kt=x(()=>{let e=new Map;for(let t of be.groups){let n=t.members.length-1;for(let r of t.members)e.set(r.id,n)}return e}),qt=x(()=>L.query===m(R).trim()),Jt=x(()=>{let e=m(J);return e?L.results.filter(t=>t.installations.some(t=>t.workspaceId===e.workspaceId&&t.providerId===e.providerId)):[]}),Y=x(()=>m(R).trim()?L.searching?{mode:`searching`}:m(qt)&&L.error?{mode:`fallback`}:m(qt)?{mode:`results`,rows:m(Jt)}:{mode:`fallback`}:{mode:`full`}),Yt=x(()=>m(Y).mode===`fallback`&&m(qt)?L.error:null);A(()=>{let e=m(J),t=m(I);if(!e||!t){y(W,null),y(G,null);return}Xt(e,t)});async function Xt(e,t){let n=Ie.issue(),r=me.safeParse(t);if(!r.success){y(W,null),y(G,`Invalid skill id in URL.`);return}y(Ue,!0),y(G,null),y(K,null);try{let t=await Te(e,r.data);if(!n.isCurrent())return;y(W,t,!0);let{frontmatter:i}=Ne(t.content),a=pe.safeParse(i);y(qe,a.success?a.data.name:t.name,!0),y(Ye,a.success?a.data.description:t.description,!0)}catch(e){if(!n.isCurrent())return;y(W,null),y(G,e instanceof Error?e.message:String(e),!0)}finally{n.isLatest()&&y(Ue,!1)}}let Zt=x(()=>{let e=m(R).trim().toLowerCase(),t=z.skills;return e?t.filter(t=>[t.name,t.description,t.provider].some(t=>t.toLowerCase().includes(e))):t}),Qt=x(()=>m(Y).mode===`results`?m(Y).rows.length:m(Zt).length),X=x(()=>m(W)?Ne(m(W).content):null),$t=x(()=>m(X)?Pe(m(X).body):``),en=x(()=>m(J)!==null&&m(J).workspaceId!==`~`);function tn(e){m(O)&&m(j)&&F(`workspaces.provider`,{wsId:m(O),providerId:m(j)},{...m(N),skill:e,view:`detail`})}function nn(e){if(!m(O)||!m(j))return;let t=z.skills.find(t=>t.name===e);if(!t)return;let{q:n,...r}=m(N);F(`workspaces.provider`,{wsId:m(O),providerId:m(j)},{...r,skill:t.id,view:`detail`})}function rn(e){m(O)&&m(j)&&F(`workspaces.provider`,{wsId:m(O),providerId:m(j)},{...m(N),q:e||void 0},`REPLACE`)}function an(){m(O)&&m(j)&&(tt=m(I)??null,F(`workspaces.provider`,{wsId:m(O),providerId:m(j)},{...m(N),view:`list`}))}let on=`list`;A(()=>{let t=m(Ee),n=e(()=>on),r=e(()=>tt);on=t,t===`list`&&n===`detail`&&r&&(tt=null,(document.querySelector(`button[data-skill-id="${CSS.escape(r)}"]`)??m($e))?.focus())}),A(()=>{m(Ee)!==`detail`||m(Ue)||m(W)?.id!==void 0&&m(Ze)?.focus()});async function sn(){let e=m(W);if(!e||!m(J)||m(q))return;y(q,!0);let t=e.disabled?`enable`:`disable`;try{let n=await _e([e.id],t);if(!n)return;let r=n.results.find(t=>t.skillId===e.id);r&&(r.status===`conflict`?P(`${r.name}: ${t} conflict${r.error?` — ${r.error}`:`.`}`):r.status===`failed`?P(`${r.name}: ${t} failed — ${r.error??`unknown error`}`):r.status===`skipped`?P(`${r.name}: already ${t===`enable`?`enabled`:`disabled`}.`):P(`${r.name} ${r.status}.`)),await Xt(m(J),e.id)}catch(e){P(e instanceof Error?e.message:String(e))}finally{y(q,!1)}}let cn=x(()=>U.results.filter(e=>e.status===`updated`).map(e=>e.skillId)),Z=x(()=>Be(U.results)),Q=x(()=>U.applyResults?Ve(U.applyResults):null);A(()=>{m(J)&&ze()});async function ln(){m(J)&&!U.checking&&await Le(m(J))}async function un(){if(m(J)&&!U.applying&&m(cn).length!==0)try{let e=await Re(m(J),m(cn));if(!e)return;let t=Ve(e),n=[t.updated>0?`${t.updated} updated`:null,t.current>0?`${t.current} already current`:null,t.failed>0?`${t.failed} failed`:null].filter(e=>e!==null);P(n.length>0?n.join(` · `):`No changes applied.`),await ye(m(J))}catch(e){P(e instanceof Error?e.message:String(e))}}async function dn(){if(m(W)&&m(J)){y(Ge,!0),y(K,null);try{let e=await Se(m(W).id);e&&y(K,{success:e.success,errors:e.errors,warnings:e.warnings},!0)}catch(e){y(K,{success:!1,errors:[e instanceof Error?e.message:String(e)],warnings:[]},!0)}finally{y(Ge,!1)}}}async function fn(){let e=m(W),t=m(J),n=m(X)?.body;if(!e||!t||n===void 0)return;let r=m(qe).trim(),i=m(Ye).trim();if(!r||!i){P(`Name and description cannot be empty.`);return}y(Ke,!0);try{let a=m(X)?m(X).frontmatter:{},o=pe.safeParse({...a,name:r,description:i});if(!o.success){P(`Frontmatter is invalid after edit.`);return}let s=o.data,c=await ve({mode:`update`,workspaceId:t.workspaceId,providerId:t.providerId,skillId:e.id,expectedRevision:e.revision,frontmatter:s,body:n});y(W,{...e,revision:c.document.revision,name:r,description:i},!0),P(`Saved.`)}catch(e){e instanceof ce&&e.code===`CONFLICT`?P(`This skill changed elsewhere. Reload to view the latest.`,{label:`Reload`,run:()=>{t&&m(W)&&Xt(t,m(W).id)}}):P(e instanceof Error?e.message:String(e))}finally{y(Ke,!1)}}var pn=Ut(),mn=k(pn),hn=k(mn),gn=k(hn),_n=k(gn),vn=_(_n,!0),yn=w(_n,2),bn=e=>{V(e,{class:`h-3.5 w-3.5 shrink-0 animate-spin text-muted-foreground`,title:`Refreshing skills`})},xn=e=>{H(e,{variant:`secondary`,children:(e,t)=>{C();var n=f();D(()=>a(n,m(Qt))),l(e,n)},$$slots:{default:!0}})};c(yn,e=>{z.refreshing||m(Y).mode===`searching`?e(bn):e(xn,-1)});var Sn=w(yn,2),Cn=k(Sn);B(Cn,{variant:`ghost`,size:`icon`,class:`h-7 w-7`,title:`Insights — read-only analysis: duplicates, conflicts, shared resources`,"aria-label":`Insights`,onclick:()=>{m(O)&&m(j)&&F(`workspaces.intelligence`,{wsId:m(O),providerId:m(j)},{})},children:(e,t)=>{Fe(e,{class:`h-3.5 w-3.5`})},$$slots:{default:!0}});var wn=w(Cn,2);B(wn,{variant:`ghost`,size:`icon`,class:`h-7 w-7`,title:`Updates — compare installed skills against their upstream sources`,"aria-label":`Updates`,get disabled(){return U.checking},onclick:()=>void ln(),children:(e,t)=>{var n=ae(),r=M(n),i=e=>{V(e,{class:`h-3.5 w-3.5 animate-spin`})},a=e=>{Qe(e,{class:`h-3.5 w-3.5`})};c(r,e=>{U.checking?e(i):e(a,-1)}),l(e,n)},$$slots:{default:!0}}),n(Sn),n(gn);var Tn=w(gn,2),En=k(Tn);je(En,{class:`pointer-events-none absolute left-2 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground`});var $=w(En,2);ne($),te($,e=>y($e,e),()=>m($e));var Dn=w($,2),On=k(Dn);Me(On,{class:`h-3.5 w-3.5`}),n(Dn),n(Tn),n(hn);var kn=w(hn,2),An=e=>{var t=rt(),r=k(t),i=_(r),s=w(r,2);n(t),D(()=>a(i,`Search unavailable — filtering loaded skills. ${m(Yt)??``}`)),o(`click`,s,()=>void we(m(R).trim())),l(e,t)};c(kn,e=>{m(Yt)&&e(An)});var jn=w(kn,2),Mn=e=>{var t=it(),r=k(t);V(r,{class:`h-3.5 w-3.5 animate-spin`}),C(),n(t),l(e,t)},Nn=e=>{var t=at(),r=k(t),i=_(r,!0),s=w(r,2);n(t),D(()=>a(i,U.checkError)),o(`click`,s,()=>void ln()),l(e,t)},Pn=e=>{var r=gt(),i=k(r),s=k(i),u=e=>{var t=ct(),r=w(k(t),2),i=e=>{var t=ot(),n=_(t);D(()=>a(n,`· ${m(Q).updated??``} updated`)),l(e,t)};c(r,e=>{m(Q).updated>0&&e(i)});var o=w(r,2),s=e=>{var t=ot(),n=_(t);D(()=>a(n,`· ${m(Q).current??``} already current`)),l(e,t)};c(o,e=>{m(Q).current>0&&e(s)});var u=w(o,2),d=e=>{var t=st(),n=_(t);D(()=>a(n,`· ${m(Q).failed??``} failed`)),l(e,t)};c(u,e=>{m(Q).failed>0&&e(d)}),n(t),l(e,t)},d=e=>{var t=ft(),r=M(t),i=k(r),o=e=>{var t=lt(),n=_(t);D(()=>a(n,`${m(Z).outdated??``} outdated`)),l(e,t)},s=e=>{var t=ut();l(e,t)};c(i,e=>{m(Z).outdated>0?e(o):e(s,-1)});var u=w(i,2),d=e=>{var t=ot(),n=_(t);D(()=>a(n,`· ${m(Z).current??``} up to date`)),l(e,t)};c(u,e=>{m(Z).current>0&&e(d)});var f=w(u,2),p=e=>{var t=ot(),n=_(t);D(()=>a(n,`· ${m(Z).unavailable??``} unavailable`)),l(e,t)};c(f,e=>{m(Z).unavailable>0&&e(p)});var h=w(f,2),g=e=>{var t=st(),n=_(t);D(()=>a(n,`· ${m(Z).failed??``} failed`)),l(e,t)};c(h,e=>{m(Z).failed>0&&e(g)}),n(r);var v=w(r,2),y=e=>{B(e,{size:`sm`,class:`h-7 gap-1.5 px-2 text-xs`,get disabled(){return U.applying},onclick:()=>void un(),children:(e,t)=>{var n=dt(),r=M(n),i=e=>{V(e,{class:`h-3.5 w-3.5 animate-spin`})},o=e=>{Qe(e,{class:`h-3.5 w-3.5`})};c(r,e=>{U.applying?e(i):e(o,-1)});var s=w(r);D(()=>a(s,` Update ${m(cn).length??``}`)),l(e,n)},$$slots:{default:!0}})};c(v,e=>{m(cn).length>0&&e(y)}),l(e,t)};c(s,e=>{m(Q)?e(u):e(d,-1)});var p=w(s,2),h=k(p);De(h,{class:`h-3.5 w-3.5`}),n(p),n(i);var g=w(i,2),v=e=>{let r=x(()=>U.applyResults??U.results);var i=ht();t(i,21,()=>m(r),e=>e.skillId,(e,t)=>{var r=mt(),i=M(r),o=k(i),s=_(o,!0),u=w(o,2),d=e=>{H(e,{variant:`secondary`,class:`text-xs`,children:(e,t)=>{C();var n=f();D(()=>a(n,m(Q)?`reinstalled`:`outdated`)),l(e,n)},$$slots:{default:!0}})},p=e=>{H(e,{variant:`outline`,class:`text-xs`,children:(e,t)=>{C();var n=f(`current`);l(e,n)},$$slots:{default:!0}})},h=e=>{H(e,{variant:`destructive`,class:`text-xs`,children:(e,t)=>{C();var n=f(`failed`);l(e,n)},$$slots:{default:!0}})},g=e=>{H(e,{variant:`outline`,class:`text-xs`,children:(e,t)=>{C();var n=f(`unavailable`);l(e,n)},$$slots:{default:!0}})};c(u,e=>{m(t).status===`updated`?e(d):m(t).status===`already-current`?e(p,1):m(t).status===`failed`?e(h,2):e(g,-1)}),n(i);var v=w(i,2),y=e=>{var n=pt(),r=_(n,!0);D(()=>a(r,m(t).error)),l(e,n)};c(v,e=>{m(t).error&&e(y)}),D(()=>a(s,m(t).name)),l(e,r)}),n(i),l(e,i)};c(g,e=>{(U.applyResults??U.results)&&e(v)}),n(r),o(`click`,p,()=>ze()),l(e,r)};c(jn,e=>{U.checking?e(Mn):U.checkError?e(Nn,1):(U.results.length>0||U.applyResults)&&e(Pn,2)});var Fn=w(jn,2),In=k(Fn),Ln=e=>{var t=_t(),r=k(t),i=_(r,!0),o=w(r,2),s=e=>{B(e,{variant:`outline`,size:`sm`,class:`h-7 text-xs`,onclick:()=>void ye(m(J)),children:(e,t)=>{C();var n=f(`Retry`);l(e,n)},$$slots:{default:!0}})};c(o,e=>{m(J)&&e(s)}),n(t),D(()=>a(i,z.error)),l(e,t)},Rn=e=>{var r=yt(),i=M(r),s=k(i),u=_(s,!0),d=w(s,2),f=e=>{var t=vt();o(`click`,t,()=>void ye(m(J))),l(e,t)};c(d,e=>{m(J)&&e(f)}),n(i);var p=w(i,2);t(p,17,()=>m(Zt),e=>e.id,(e,t)=>{{let n=x(()=>m(t).id===m(I)),r=x(()=>m(Kt).get(m(t).id)??0);Je(e,{get skill(){return m(t)},get selected(){return m(n)},get sameContentCount(){return m(r)},onclick:()=>tn(m(t).id)})}}),D(()=>a(u,z.error)),l(e,r)},zn=e=>{var t=bt(),r=k(t);V(r,{class:`h-3.5 w-3.5 animate-spin`}),C(),n(t),l(e,t)},Bn=e=>{var t=xt(),r=k(t);V(r,{class:`h-3.5 w-3.5 animate-spin`}),C(),n(t),l(e,t)},Vn=e=>{var t=ae(),r=M(t),i=e=>{var t=St(),r=w(k(t));n(t),o(`click`,r,()=>globalThis.dispatchEvent(new KeyboardEvent(`keydown`,{key:`k`,metaKey:!0}))),l(e,t)},a=e=>{var t=Ct();l(e,t)};c(r,e=>{L.results.length>0?e(i):e(a,-1)}),l(e,t)},Hn=e=>{var r=ae(),i=M(r);t(i,17,()=>m(Y).rows,e=>e.id,(e,t)=>{var r=Et(),i=k(r),s=e=>{He(e,{class:`mt-0.5 h-4 w-4 shrink-0 text-amber-600 dark:text-amber-400`})},u=e=>{Oe(e,{class:`mt-0.5 h-4 w-4 shrink-0 text-muted-foreground`})};c(i,e=>{m(t).disabled?e(s):e(u,-1)});var d=w(i,2),f=k(d),p=k(f),h=_(p,!0),g=w(p,2),v=e=>{var t=wt();l(e,t)};c(g,e=>{m(t).disabled&&e(v)});var y=w(g,2),b=e=>{var r=Tt(),i=k(r);We(i,{class:`h-3 w-3`,"aria-hidden":`true`});var o=w(i,2),s=_(o,!0);n(r),D(()=>{T(r,`title`,`Same content as ${m(t).duplicates.length??``} other installation${m(t).duplicates.length===1?``:`s`}`),a(s,m(t).duplicates.length)}),l(e,r)};c(y,e=>{m(t).duplicates.length>0&&e(b)}),n(f);var x=w(f,2),S=_(x,!0);n(d),n(r),D(()=>{T(r,`data-skill-id`,m(t).id),T(r,`aria-pressed`,m(t).id===m(I)),ie(r,1,`group flex min-h-14 w-full items-start gap-2.5 border-b border-border/70 px-3 py-2.5 text-left transition-colors ${m(t).id===m(I)?`bg-accent text-foreground`:`text-muted-foreground hover:bg-accent/60 hover:text-foreground`}`),a(h,m(t).name),a(S,m(t).description||`No description`)}),o(`click`,r,()=>nn(m(t).name)),l(e,r)}),l(e,r)},Un=e=>{var t=Ct();l(e,t)},Wn=e=>{var n=ae(),r=M(n);t(r,17,()=>m(Zt),e=>e.id,(e,t)=>{{let n=x(()=>m(t).id===m(I)),r=x(()=>m(Kt).get(m(t).id)??0);Je(e,{get skill(){return m(t)},get selected(){return m(n)},get sameContentCount(){return m(r)},onclick:()=>tn(m(t).id)})}}),l(e,n)};c(In,e=>{z.error&&z.skills.length===0?e(Ln):z.error?e(Rn,1):z.loading?e(zn,2):m(Y).mode===`searching`?e(Bn,3):m(Y).mode===`results`&&m(Y).rows.length===0?e(Vn,4):m(Y).mode===`results`?e(Hn,5):m(Zt).length===0?e(Un,6):e(Wn,-1)}),n(Fn),n(mn);var Gn=w(mn,2),Kn=k(Gn),qn=e=>{var t=Dt(),r=k(t);Oe(r,{class:`h-6 w-6`}),C(4),n(t),l(e,t)},Jn=e=>{var t=Ot(),r=k(t);V(r,{class:`h-4 w-4 animate-spin`}),C(),n(t),l(e,t)},Yn=e=>{var t=kt(),r=w(k(t),4),i=_(r,!0),o=w(r,2),s=e=>{B(e,{variant:`outline`,size:`sm`,onclick:()=>Xt(m(J),m(I)),children:(e,t)=>{C();var n=f(`Retry`);l(e,n)},$$slots:{default:!0}})};c(o,e=>{m(J)&&m(I)&&e(s)}),n(t),D(()=>a(i,m(G))),l(e,t)},Xn=e=>{let r=x(()=>m(en));var i=Ht(),u=k(i),d=k(u),p=k(d);Xe(k(p),{class:`h-4 w-4`}),n(p);var g=w(p,2),b=k(g),T=e=>{ke(e,{class:`h-8 text-base font-semibold`,"aria-label":`Skill name`,get value(){return m(qe)},set value(e){y(qe,e,!0)}})},E=e=>{var t=At(),n=_(t,!0);D(()=>a(n,m(W).name)),l(e,t)};c(b,e=>{m(r)?e(T):e(E,-1)});var O=w(b,2),ne=e=>{var t=jt();h(t),v(t,()=>m(Ye),e=>y(Ye,e)),l(e,t)},A=e=>{var t=Mt(),n=_(t,!0);D(()=>a(n,m(W).description)),l(e,t)};c(O,e=>{m(r)?e(ne):e(A,-1)}),n(g);var j=w(g,2),re=k(j),N=e=>{B(e,{size:`sm`,class:`h-8 gap-1.5`,onclick:fn,get disabled(){return m(Ke)},children:(e,t)=>{var n=ae(),r=M(n),i=e=>{var t=Nt(),n=M(t);V(n,{class:`h-3.5 w-3.5 animate-spin`}),C(),l(e,t)},a=e=>{var t=f(`Save`);l(e,t)};c(r,e=>{m(Ke)?e(i):e(a,-1)}),l(e,n)},$$slots:{default:!0}})};c(re,e=>{m(r)&&e(N)});var P=w(re,2);B(P,{variant:`outline`,size:`sm`,class:`h-8 gap-1.5`,onclick:dn,get disabled(){return m(Ge)},children:(e,t)=>{var n=Pt(),r=M(n),i=e=>{V(e,{class:`h-3.5 w-3.5 animate-spin`})},a=e=>{nt(e,{class:`h-3.5 w-3.5`})};c(r,e=>{m(Ge)?e(i):e(a,-1)}),C(),l(e,n)},$$slots:{default:!0}});var F=w(P,2);{let e=x(()=>m(W).disabled?`default`:`outline`);B(F,{size:`sm`,get variant(){return m(e)},class:`h-8 gap-1.5`,get disabled(){return m(q)},onclick:sn,children:(e,t)=>{var n=dt(),r=M(n),i=e=>{V(e,{class:`h-3.5 w-3.5 animate-spin`})},o=e=>{et(e,{class:`h-3.5 w-3.5`})};c(r,e=>{m(q)?e(i):e(o,-1)});var s=w(r);D(()=>a(s,` ${m(W).disabled?`Enable`:`Disable`}`)),l(e,n)},$$slots:{default:!0}})}n(j),n(d);var oe=w(d,2),se=k(oe);H(se,{variant:`secondary`,children:(e,t)=>{C();var n=f();D(()=>a(n,m(W).provider)),l(e,n)},$$slots:{default:!0}});var ce=w(se,2);H(ce,{variant:`outline`,children:(e,t)=>{C();var n=f();D(()=>a(n,m(W).directoryName)),l(e,n)},$$slots:{default:!0}});var le=w(ce,2),ue=e=>{H(e,{variant:`outline`,class:`text-amber-700 dark:text-amber-300`,children:(e,t)=>{C();var n=f(`Disabled`);l(e,n)},$$slots:{default:!0}})};c(le,e=>{m(W).disabled&&e(ue)}),n(oe),n(u),te(u,e=>y(Ze,e),()=>m(Ze));var de=w(u,2),I=k(de),fe=e=>{var r=zt(),i=k(r),o=k(i),s=e=>{var t=Ft(),n=M(t);Ae(n,{class:`h-4 w-4 text-emerald-600`}),C(),l(e,t)},u=e=>{var t=It();nt(M(t),{class:`h-4 w-4 text-destructive`}),C(),l(e,t)};c(o,e=>{m(K).success?e(s):e(u,-1)}),n(i);var d=w(i,2);t(d,17,()=>m(K).errors,S,(e,t)=>{var n=Lt(),r=_(n,!0);D(()=>a(r,m(t))),l(e,n)});var f=w(d,2);t(f,17,()=>m(K).warnings,S,(e,t)=>{var n=Rt(),r=_(n,!0);D(()=>a(r,m(t))),l(e,n)}),n(r),l(e,r)};c(I,e=>{m(K)&&e(fe)});var pe=w(I,2),me=e=>{var r=Vt(),i=w(k(r),2);t(i,21,()=>Object.entries(m(X).frontmatter),S,(e,t,r)=>{var i=x(()=>s(m(t),2));let o=()=>m(i)[0],c=()=>m(i)[1];var u=Bt();ie(u,1,`grid grid-cols-[120px_minmax(0,1fr)] ${r>0?`border-t border-border`:``}`);var d=k(u),f=_(d,!0),p=w(d,2),h=_(p,!0);n(u),D(e=>{a(f,o()),a(h,e)},[()=>c()===null?`null`:String(c())]),l(e,u)}),n(i),n(r),l(e,r)};c(pe,e=>{m(X)&&e(me)});var he=w(pe,2),ge=w(k(he),2);ee(ge,()=>m($t),!0),n(ge),n(he),n(de),n(i),o(`click`,p,an),l(e,i)};c(Kn,e=>{m(I)?m(Ue)?e(Jn,1):m(G)?e(Yn,2):m(W)&&e(Xn,3):e(qn)}),n(Gn),n(pn),D(()=>{ie(mn,1,`provider-list flex min-h-0 flex-col border-r border-border ${m(Ee)===`detail`?`provider-list-hidden`:``}`,`svelte-9qjypz`),a(vn,m(j)??`—`),b($,m(R)),ie(Gn,1,`provider-detail flex min-h-0 flex-col ${m(Ee)===`list`?`provider-detail-hidden`:``}`,`svelte-9qjypz`)}),o(`input`,$,e=>rn(e.currentTarget.value)),o(`click`,Dn,()=>void ge()),l(r,pn),d()}p([`input`,`click`]);export{J as default};
@@ -1 +0,0 @@
1
- import"./BfKHhAfw.js";
@@ -1,3 +0,0 @@
1
- import{A as e,At as t,B as n,Ct as r,D as i,F as a,G as o,Mt as s,N as c,R as l,St as u,U as d,W as f,X as p,_t as m,bt as h,ct as g,d as _,ft as v,gt as y,j as b,k as x,kt as S,lt as C,mt as w,nt as T,o as E,ot as D,rt as O,s as k,st as A,ut as j,wt as M,x as N,xt as P}from"./CmCJ0SKP.js";import{t as F}from"./BfKHhAfw.js";import"./xihTtKlq.js";import{t as I}from"./CRrxCnau.js";import"./CaRy05kX.js";import{i as L,n as R}from"./0k4S-8Dm.js";import{i as z,r as B}from"./CX1CHr5A.js";import{_ as V,a as H,b as U,l as ee,s as W,t as G,x as K}from"./BpM7GQdD.js";import{g as te,h as ne,m as re}from"./BTdzDCtA.js";import{n as ie,t as ae}from"./WSgbVOcX.js";import{n as q,t as J}from"./BZOx0Qre.js";import{n as oe,r as se,t as Y}from"./n3HFLfXO.js";import{n as X,r as ce,t as le}from"./LKyxHDTu.js";import{t as ue}from"./BYNWtKcf.js";import{t as de}from"./s48N5eaK.js";import{t as Z}from"./BpPdtmVY.js";var fe=new Set([`$$slots`,`$$events`,`$$legacy`]);function pe(e,t){let n=E(t,fe),r=[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`}],[`path`,{d:`m9 11 3 3L22 4`}]];L(e,k({name:`circle-check-big`},()=>n,{get iconNode(){return r}}))}var me=new Set([`$$slots`,`$$events`,`$$legacy`]);function he(e,t){let n=E(t,me),r=[[`path`,{d:`M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2`}],[`path`,{d:`M6.453 15h11.094`}],[`path`,{d:`M8.5 2h7`}]];L(e,k({name:`flask-conical`},()=>n,{get iconNode(){return r}}))}var ge=n(`<button><!> </button>`),_e=n(`<div class="flex shrink-0 items-center gap-1 border-b border-border px-2"></div>`);function ve(n,s){r(s,!0);let c=[{id:`file`,label:`File`,icon:oe},{id:`log`,label:`History`,icon:X},{id:`preview`,label:`Preview`,icon:le},{id:`validate`,label:`Validate`,icon:pe},{id:`test`,label:`Test`,icon:he}],d=z(),f=y(()=>d?.()?.subview??`file`);function m(e){let t=new URLSearchParams(I.url.search);t.set(`subview`,e),F(`${I.url.pathname}?${t.toString()}`)}var h=_e();e(h,21,()=>c,e=>e.id,(e,n)=>{var r=ge(),s=D(r);i(s,()=>p(n).icon,(e,t)=>{t(e,{class:`h-3.5 w-3.5`})});var c=C(s);t(r),T(()=>{N(r,1,`flex items-center gap-1.5 px-3 py-2 text-xs font-medium transition-colors ${p(f)===p(n).id?`border-b-2 border-primary text-primary`:`text-muted-foreground hover:text-foreground`}`),a(c,` ${p(n).label??``}`)}),o(`click`,r,()=>m(p(n).id)),l(e,r)}),t(h),l(n,h),u()}f([`click`]);function ye(e,t=``){return{mode:`new`,target:e,skillId:null,name:``,description:``,body:``,revision:null,extraFrontmatter:{},directoryName:t}}var be={workspaceId:K.parse(`~`),providerId:U.parse(`user`)};function xe(){return{mode:`new`,target:be,skillId:null,name:``,description:``,body:``,revision:null,extraFrontmatter:{},directoryName:``}}function Se(e,t){return{mode:`edit`,target:e,skillId:t,name:``,description:``,body:``,revision:null,extraFrontmatter:{},directoryName:``}}function Ce(e){return{...e.extraFrontmatter,name:e.name,description:e.description}}var we=Symbol(`skill-creator:creator-editor`);function Te(e){let t=j(e),n={get draft(){return t},hydrateFromDocument(e){t.skillId=e.skillId,t.name=String(e.frontmatter.name??``),t.description=String(e.frontmatter.description??``),t.body=e.body,t.revision=e.revision,t.directoryName=e.directoryName;let{name:n,description:r,...i}=e.frontmatter;t.extraFrontmatter=i},advanceRevision(e){t.revision=e}};return M(we,n),n}function Q(){if(!P(we))throw Error(`[creator-editor] useCreatorEditor 必须在 <CreatorWorkspace> 内调用`);return h(we)}function $(e,t,n){return e?`${t}:${e.workspaceId}/${e.providerId}${n===null?``:`/${n}`}`:null}var Ee=new Map,De=new Set;function Oe(e){return{...e,target:{...e.target},extraFrontmatter:{...e.extraFrontmatter}}}function ke(e,t){Ee.set(e,Oe(t))}function Ae(e){let t=Ee.get(e);return t===void 0?null:Oe(t)}function je(e){Ee.delete(e)}function Me(e){De.add(e)}function Ne(e){return De.has(e)}function Pe(e){De.delete(e)}var Fe=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ie(e,t){let n=E(t,Fe),r=[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`}]];L(e,k({name:`save`},()=>n,{get iconNode(){return r}}))}var Le=new Set([`$$slots`,`$$events`,`$$legacy`]);function Re(e,t){let n=E(t,Le),r=[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`}],[`path`,{d:`M21 3v5h-5`}]];L(e,k({name:`rotate-cw`},()=>n,{get iconNode(){return r}}))}var ze=n(`<!> Reload`,1),Be=n(`<!> <span class="hidden sm:inline">Delete</span>`,1),Ve=n(`<!> `,1),He=n(`<div class="flex flex-1 items-center justify-center gap-2 text-xs text-muted-foreground"><!> Loading…</div>`),Ue=n(`<div class="flex flex-1 flex-col items-center justify-center gap-2 px-8 text-center"><p class="text-xs text-destructive"> </p> <!></div>`),We=n(`<span class="text-[11px] text-destructive">Use lowercase letters, numbers, and hyphens.</span>`),Ge=n(`<label class="block space-y-1"><span class="text-[11px] font-medium text-muted-foreground">Directory name</span> <!> <!></label>`),Ke=n(`<div class="min-h-0 flex-1 space-y-3 overflow-y-auto p-4"><!> <label class="block space-y-1"><span class="text-[11px] font-medium text-muted-foreground">Name</span> <!></label> <label class="block space-y-1"><span class="text-[11px] font-medium text-muted-foreground">Description</span> <textarea rows="2" class="w-full resize-y rounded-md border border-input bg-input/20 px-2 py-1 text-xs leading-5 outline-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30" placeholder="What this skill does"></textarea></label> <label class="block flex min-h-0 flex-1 flex-col space-y-1"><span class="text-[11px] font-medium text-muted-foreground">Body (Markdown)</span> <textarea rows="16" class="w-full flex-1 resize-y rounded-md border border-input bg-input/20 px-2 py-1.5 font-mono text-xs leading-5 outline-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30" placeholder="## When to Use
2
-
3
- Describe when this skill should be invoked."></textarea></label></div>`),qe=n(`<div class="flex h-full flex-col"><div class="flex shrink-0 items-center justify-between border-b border-border px-4 py-2"><span class="text-xs font-medium"> </span> <div class="flex items-center gap-1.5"><!> <!> <!></div></div> <!></div> <!>`,1);function Je(e,n){r(n,!0);let i=Q(),o=i.draft,s=G(H),f=w(!1),h=w(null),b=w(!1);O(()=>{if(o.mode!==`edit`||o.skillId===null)return;let e=$(o.target,`edit`,o.skillId);e!==null&&Ne(e)||x(o.target,o.skillId)});async function x(e,t){let n=s.issue();v(f,!0),v(h,null);try{let r=await re(e,t);if(!n.isCurrent())return;i.hydrateFromDocument(r);let a=$(e,`edit`,t);a!==null&&Me(a)}catch(e){if(!n.isCurrent())return;v(h,e instanceof Error?e.message:String(e),!0)}finally{n.isLatest()&&v(f,!1)}}function E(){if(o.mode===`edit`&&o.skillId){let e=$(o.target,`edit`,o.skillId);e!==null&&Pe(e),x(o.target,o.skillId)}}let k=y(()=>o.mode!==`new`||ee.safeParse(o.directoryName).success),j=y(()=>!p(b)&&o.name.trim().length>0&&o.description.trim().length>0&&(o.mode===`edit`||p(k))&&o.revision!==null==(o.mode===`edit`));async function M(){if(o.mode===`edit`){if(o.skillId===null||o.revision===null)return;v(b,!0);try{let e=await te({mode:`update`,workspaceId:o.target.workspaceId,providerId:o.target.providerId,skillId:o.skillId,expectedRevision:o.revision,frontmatter:Ce(o),body:o.body});i.advanceRevision(e.document.revision),R(`Saved.`)}catch(e){N(e)}finally{v(b,!1)}return}let e=ee.safeParse(o.directoryName);if(!e.success){R(`Directory name must be lowercase letters, numbers, and hyphens.`);return}v(b,!0);try{let t=await te({mode:`create`,workspaceId:o.target.workspaceId,providerId:o.target.providerId,directoryName:e.data,frontmatter:Ce(o),body:o.body});i.hydrateFromDocument(t.document);let n=$(o.target,`edit`,t.document.skillId);n!==null&&Me(n),R(`Skill created.`)}catch(e){N(e)}finally{v(b,!1)}}function N(e){if(e instanceof V&&e.code===`CONFLICT`){R(`This skill changed elsewhere. Reload to view the latest.`,{label:`Reload`,run:E});return}R(e instanceof Error?e.message:String(e))}let P=w(!1),I=w(!1),L=y(()=>o.mode===`edit`&&o.skillId!==null&&o.revision!==null);async function z(){if(!p(L)||p(I))return;let e=o.skillId,t=o.revision;if(e!==null&&t!==null){v(I,!0);try{await ne({target:o.target,skillId:e,expectedRevision:t}),v(P,!1),R(`Skill deleted.`);let n=$(o.target,`edit`,e);n!==null&&(je(n),Pe(n)),await F(`/creator`)}catch(e){e instanceof V&&e.code===`CONFLICT`?(v(P,!1),R(`This skill changed elsewhere. Reload before deleting.`,{label:`Reload`,run:E})):R(e instanceof Error?e.message:String(e))}finally{v(I,!1)}}}var B=qe(),U=A(B),W=D(U),K=D(W),oe=g(K,!0),Y=C(K,2),X=D(Y),ce=e=>{q(e,{variant:`outline`,size:`sm`,class:`h-7 gap-1.5`,onclick:E,get disabled(){return p(f)},children:(e,t)=>{var n=ze();Re(A(n),{class:`h-3.5 w-3.5`}),S(),l(e,n)},$$slots:{default:!0}})};c(X,e=>{o.mode===`edit`&&o.skillId&&e(ce)});var le=C(X,2),ue=e=>{{let t=y(()=>!p(L)||p(I));q(e,{variant:`ghost`,size:`sm`,class:`h-7 gap-1.5 px-2 text-destructive hover:text-destructive`,title:`Delete this skill`,get disabled(){return p(t)},onclick:()=>v(P,!0),children:(e,t)=>{var n=Be(),r=A(n);ae(r,{class:`h-3.5 w-3.5`}),S(2),l(e,n)},$$slots:{default:!0}})}};c(le,e=>{o.mode===`edit`&&e(ue)});var de=C(le,2);{let e=y(()=>!p(j));q(de,{size:`sm`,class:`h-7 gap-1.5`,onclick:M,get disabled(){return p(e)},children:(e,t)=>{var n=Ve(),r=A(n),i=e=>{J(e,{class:`h-3.5 w-3.5 animate-spin`})},s=e=>{Ie(e,{class:`h-3.5 w-3.5`})};c(r,e=>{p(b)?e(i):e(s,-1)});var u=C(r);T(()=>a(u,` ${o.mode===`new`?`Create`:`Save`}`)),l(e,n)},$$slots:{default:!0}})}t(Y),t(W);var Z=C(W,2),fe=e=>{var n=He(),r=D(n);J(r,{class:`h-4 w-4 animate-spin`}),S(),t(n),l(e,n)},pe=e=>{var n=Ue(),r=D(n),i=g(r,!0),s=C(r,2),u=e=>{q(e,{variant:`outline`,size:`sm`,onclick:E,children:(e,t)=>{S();var n=d(`Retry`);l(e,n)},$$slots:{default:!0}})};c(s,e=>{o.mode===`edit`&&o.skillId&&e(u)}),t(n),T(()=>a(i,p(h))),l(e,n)},me=e=>{var n=Ke(),r=D(n),i=e=>{var n=Ge(),r=C(D(n),2);se(r,{class:`h-8 font-mono text-xs`,placeholder:`my-skill`,get value(){return o.directoryName},set value(e){o.directoryName=e}});var i=C(r,2),a=e=>{var t=We();l(e,t)};c(i,e=>{p(k)||e(a)}),t(n),l(e,n)};c(r,e=>{o.mode===`new`&&e(i)});var a=C(r,2),s=C(D(a),2);se(s,{class:`h-8 text-sm`,placeholder:`Skill name`,get value(){return o.name},set value(e){o.name=e}}),t(a);var u=C(a,2),d=C(D(u),2);m(d),t(u);var f=C(u,2),h=C(D(f),2);m(h),t(f),t(n),_(d,()=>o.description,e=>o.description=e),_(h,()=>o.body,e=>o.body=e),l(e,n)};c(Z,e=>{p(f)?e(fe):p(h)?e(pe,1):e(me,-1)}),t(U);var he=C(U,2);{let e=y(()=>`Delete this skill from ${o.target.providerId}? Its SKILL.md directory is removed from disk.`);ie(he,{title:`Delete skill`,get description(){return p(e)},confirmLabel:`Delete`,get busy(){return p(I)},onConfirm:()=>void z(),get open(){return p(P)},set open(e){v(P,e,!0)}})}T(()=>a(oe,o.mode===`new`?`New SKILL.md`:`SKILL.md`)),l(e,B),u()}var Ye=n(`<!> Refresh`,1),Xe=n(`<div class="flex flex-1 items-center justify-center px-8 text-center text-xs text-muted-foreground">Save the skill first to see its change history.</div>`),Ze=n(`<div class="flex flex-1 items-center justify-center gap-2 text-xs text-muted-foreground"><!> Loading history…</div>`),Qe=n(`<div class="flex flex-1 flex-col items-center justify-center gap-2 px-8 text-center"><p class="text-xs text-destructive"> </p> <!></div>`),$e=n(`<div class="flex flex-1 items-center justify-center px-8 text-center text-xs text-muted-foreground">No revisions recorded yet.</div>`),et=n(`<span class="rounded-sm bg-emerald-500/10 px-1.5 py-0.5 text-[10px] font-medium text-emerald-700 dark:text-emerald-300">latest</span>`),tt=n(`<span class="text-[10px] text-muted-foreground/70">snapshot pruned</span>`),nt=n(`<div><p class="mb-1 text-[10px] font-medium uppercase tracking-wide text-muted-foreground">Diff vs previous</p> <pre class="overflow-x-auto rounded-md border border-border bg-muted/30 p-2 font-mono text-[10px] leading-4"> </pre></div>`),rt=n(`<div><p class="mb-1 text-[10px] font-medium uppercase tracking-wide text-muted-foreground">Full snapshot</p> <pre class="max-h-72 overflow-auto rounded-md border border-border bg-muted/30 p-2 font-mono text-[10px] leading-4"> </pre></div>`),it=n(`<p class="text-[10px] text-muted-foreground/70">Initial revision — no diff and no persisted snapshot.</p>`),at=n(`<div class="mt-2 space-y-2 pl-5"><!> <!> <!></div>`),ot=n(`<li class="px-4 py-3"><button type="button" class="flex w-full items-start gap-2 text-left"><!> <div class="min-w-0 flex-1"><div class="flex items-center gap-2"><span class="text-xs font-medium"> </span> <!> <!></div> <p class="mt-0.5 truncate font-mono text-[10px] text-muted-foreground"> </p></div></button> <!></li>`),st=n(`<ol class="min-h-0 flex-1 divide-y divide-border overflow-y-auto"></ol>`),ct=n(`<div class="flex h-full flex-col"><div class="flex shrink-0 items-center justify-between border-b border-border px-4 py-2"><span class="text-xs font-medium">Change history</span> <!></div> <!></div>`);function lt(n,i){r(i,!0);let s=Q().draft,f=G(H),m=w(!1),h=w(null),_=w(j([])),b=j({});O(()=>{s.mode===`edit`&&s.skillId!==null&&x(s.skillId)});async function x(e){let t=f.issue();v(m,!0),v(h,null);try{let n=await W().creator.revisions({workspaceId:s.target.workspaceId,providerId:s.target.providerId,skillId:e});if(!t.isCurrent())return;v(_,[...n.revisions].sort((e,t)=>t.timestamp-e.timestamp),!0)}catch(e){if(!t.isCurrent())return;v(h,e instanceof Error?e.message:String(e),!0)}finally{t.isLatest()&&v(m,!1)}}function E(e){b[e]=!b[e]}function k(){s.mode===`edit`&&s.skillId&&x(s.skillId)}function M(e){try{return new Date(e).toLocaleString()}catch{return String(e)}}var N=ct(),P=D(N),F=C(D(P),2),I=e=>{q(e,{variant:`outline`,size:`sm`,class:`h-7 gap-1.5`,onclick:k,get disabled(){return p(m)},children:(e,t)=>{var n=Ye();Re(A(n),{class:`h-3.5 w-3.5`}),S(),l(e,n)},$$slots:{default:!0}})};c(F,e=>{s.mode===`edit`&&s.skillId&&e(I)}),t(P);var L=C(P,2),R=e=>{var t=Xe();l(e,t)},z=e=>{var n=Ze(),r=D(n);J(r,{class:`h-4 w-4 animate-spin`}),S(),t(n),l(e,n)},B=e=>{var n=Qe(),r=D(n),i=g(r,!0),o=C(r,2),u=e=>{q(e,{variant:`outline`,size:`sm`,onclick:k,children:(e,t)=>{S();var n=d(`Retry`);l(e,n)},$$slots:{default:!0}})};c(o,e=>{s.skillId&&e(u)}),t(n),T(()=>a(i,p(h))),l(e,n)},V=e=>{var t=$e();l(e,t)},U=n=>{var r=st();e(r,23,()=>p(_),e=>e.revision,(e,n,r)=>{var i=ot(),s=D(i),u=D(s);{let e=y(()=>b[p(n).revision]?`rotate-90`:``);ce(u,{get class(){return`mt-0.5 h-3.5 w-3.5 shrink-0 text-muted-foreground transition-transform ${p(e)??``}`}})}var d=C(u,2),f=D(d),m=D(f),h=g(m,!0),_=C(m,2),v=e=>{var t=et();l(e,t)};c(_,e=>{p(r)===0&&e(v)});var x=C(_,2),S=e=>{var t=tt();l(e,t)};c(x,e=>{p(n).content===null&&e(S)}),t(f);var w=C(f,2),O=g(w);t(d),t(s);var k=C(s,2),A=e=>{var r=at(),i=D(r),o=e=>{var r=nt(),i=C(D(r),2),o=g(i,!0);t(r),T(()=>a(o,p(n).diff)),l(e,r)};c(i,e=>{p(n).diff&&e(o)});var s=C(i,2),u=e=>{var r=rt(),i=C(D(r),2),o=g(i,!0);t(r),T(()=>a(o,p(n).content)),l(e,r)};c(s,e=>{p(n).content!==null&&e(u)});var d=C(s,2),f=e=>{var t=it();l(e,t)};c(d,e=>{p(n).diff===null&&p(n).content===null&&e(f)}),t(r),l(e,r)};c(k,e=>{b[p(n).revision]&&e(A)}),t(i),T((e,t)=>{a(h,e),a(O,`${t??``}…`)},[()=>M(p(n).timestamp),()=>p(n).revision.slice(0,16)]),o(`click`,s,()=>E(p(n).revision)),l(e,i)}),t(r),l(n,r)};c(L,e=>{s.mode===`new`?e(R):p(m)?e(z,1):p(h)?e(B,2):p(_).length===0?e(V,3):e(U,-1)}),t(N),l(n,N),u()}f([`click`]);var ut=n(`<p class="text-[11px] text-muted-foreground/70">Only name and description — no additional metadata.</p>`),dt=n(`<div><dt class="bg-muted/40 px-2 py-1 text-[11px] font-medium text-muted-foreground"> </dt> <dd class="break-words px-2 py-1 text-[11px]"> </dd></div>`),ft=n(`<dl class="overflow-x-auto rounded-md border border-border"></dl>`),pt=n(`<p class="text-xs text-muted-foreground/70">Nothing to preview yet.</p>`),mt=n(`<div class="prose prose-sm max-w-none overflow-x-auto"></div>`),ht=n(`<div class="flex h-full flex-col overflow-y-auto p-4"><section class="mb-4"><h1 class="text-base font-semibold"> </h1> <p class="mt-0.5 text-xs leading-5 text-muted-foreground"> </p></section> <section class="mb-4"><h2 class="mb-2 text-[11px] font-medium text-muted-foreground">Frontmatter</h2> <!></section> <section class="min-h-0 flex-1"><h2 class="mb-2 text-[11px] font-medium text-muted-foreground">Body</h2> <!></section></div>`);function gt(n,i){r(i,!0);let o=Q().draft,d=y(()=>Ce(o)),f=y(()=>de(o.body)),m=y(()=>Object.entries(p(d)).filter(([e])=>e!==`name`&&e!==`description`));var h=ht(),_=D(h),v=D(_),b=g(v,!0),S=C(v,2),w=g(S,!0);t(_);var E=C(_,2),O=C(D(E),2),k=e=>{var t=ut();l(e,t)},A=n=>{var r=ft();e(r,23,()=>p(m),([e,t])=>e,(e,n,r)=>{var i=y(()=>s(p(n),2));let o=()=>p(i)[0],c=()=>p(i)[1];var u=dt(),d=D(u),f=g(d,!0),m=C(d,2),h=g(m,!0);t(u),T(e=>{N(u,1,`grid grid-cols-[120px_minmax(0,1fr)] ${p(r)>0?`border-t border-border`:``}`),a(f,o()),a(h,e)},[()=>c()===null?`null`:String(c())]),l(e,u)}),t(r),l(n,r)};c(O,e=>{p(m).length===0?e(k):e(A,-1)}),t(E);var j=C(E,2),M=C(D(j),2),P=e=>{var t=pt();l(e,t)},F=y(()=>o.body.trim().length===0),I=e=>{var n=mt();x(n,()=>p(f),!0),t(n),l(e,n)};c(M,e=>{p(F)?e(P):e(I,-1)}),t(j),t(h),T(()=>{a(b,o.name||`Untitled skill`),a(w,o.description||`No description yet.`)}),l(n,h),u()}var _t=n(`<!> Re-validate`,1),vt=n(`<div class="flex flex-1 items-center justify-center px-8 text-center text-xs text-muted-foreground">Save the skill first to validate it.</div>`),yt=n(`<div class="flex flex-1 items-center justify-center gap-2 text-xs text-muted-foreground"><!> Validating…</div>`),bt=n(`<div class="flex flex-1 flex-col items-center justify-center gap-2 px-8 text-center"><p class="text-xs text-destructive"> </p> <!></div>`),xt=n(`<div class="flex items-center gap-2 text-xs text-emerald-700 dark:text-emerald-300"><!> Skill passes all checks.</div>`),St=n(`<li class="flex gap-2 rounded-md bg-destructive/10 px-2 py-1.5 text-xs text-destructive"><!> <span class="break-words"> </span></li>`),Ct=n(`<section><h3 class="mb-1.5 text-[11px] font-medium uppercase tracking-wide text-destructive"> </h3> <ul class="space-y-1"></ul></section>`),wt=n(`<li class="flex gap-2 rounded-md bg-amber-500/10 px-2 py-1.5 text-xs text-amber-700 dark:text-amber-300"><!> <span class="break-words"> </span></li>`),Tt=n(`<section><h3 class="mb-1.5 text-[11px] font-medium uppercase tracking-wide text-amber-700 dark:text-amber-300"> </h3> <ul class="space-y-1"></ul></section>`),Et=n(`<!> <!>`,1),Dt=n(`<div class="min-h-0 flex-1 space-y-3 overflow-y-auto p-4"><!></div>`),Ot=n(`<div class="flex h-full flex-col"><div class="flex shrink-0 items-center justify-between border-b border-border px-4 py-2"><span class="text-xs font-medium">Validation</span> <!></div> <!></div>`);function kt(n,i){r(i,!0);let o=Q().draft,s=G(H),f=w(!1),m=w(null),h=w(null);O(()=>{o.mode===`edit`&&o.skillId!==null&&_(o.skillId)});async function _(e){let t=s.issue();v(f,!0),v(m,null);try{let n=await W().skills.validate({workspaceId:o.target.workspaceId,providerId:o.target.providerId,skillId:e});if(!t.isCurrent())return;v(h,n,!0)}catch(e){if(!t.isCurrent())return;v(m,e instanceof Error?e.message:String(e),!0),v(h,null)}finally{t.isLatest()&&v(f,!1)}}function y(){o.mode===`edit`&&o.skillId&&_(o.skillId)}var x=Ot(),E=D(x),k=C(D(E),2),j=e=>{q(e,{variant:`outline`,size:`sm`,class:`h-7 gap-1.5`,onclick:y,get disabled(){return p(f)},children:(e,t)=>{var n=_t(),r=A(n),i=e=>{J(e,{class:`h-3.5 w-3.5 animate-spin`})},a=e=>{Z(e,{class:`h-3.5 w-3.5`})};c(r,e=>{p(f)?e(i):e(a,-1)}),S(),l(e,n)},$$slots:{default:!0}})};c(k,e=>{o.mode===`edit`&&o.skillId&&e(j)}),t(E);var M=C(E,2),N=e=>{var t=vt();l(e,t)},P=e=>{var n=yt(),r=D(n);J(r,{class:`h-4 w-4 animate-spin`}),S(),t(n),l(e,n)},F=e=>{var n=bt(),r=D(n),i=g(r,!0),s=C(r,2),u=e=>{q(e,{variant:`outline`,size:`sm`,onclick:y,children:(e,t)=>{S();var n=d(`Retry`);l(e,n)},$$slots:{default:!0}})};c(s,e=>{o.skillId&&e(u)}),t(n),T(()=>a(i,p(m))),l(e,n)},I=n=>{var r=Dt(),i=D(r),o=e=>{var n=xt(),r=D(n);Y(r,{class:`h-4 w-4`}),S(),t(n),l(e,n)},s=n=>{var r=Et(),i=A(r),o=n=>{var r=Ct(),i=D(r),o=g(i),s=C(i,2);e(s,21,()=>p(h).errors,b,(e,n)=>{var r=St(),i=D(r);Z(i,{class:`mt-0.5 h-3.5 w-3.5 shrink-0`});var o=C(i,2),s=g(o,!0);t(r),T(()=>a(s,p(n))),l(e,r)}),t(s),t(r),T(()=>a(o,`Errors (${p(h).errors.length??``})`)),l(n,r)};c(i,e=>{p(h).errors.length>0&&e(o)});var s=C(i,2),u=n=>{var r=Tt(),i=D(r),o=g(i),s=C(i,2);e(s,21,()=>p(h).warnings,b,(e,n)=>{var r=wt(),i=D(r);Z(i,{class:`mt-0.5 h-3.5 w-3.5 shrink-0`});var o=C(i,2),s=g(o,!0);t(r),T(()=>a(s,p(n))),l(e,r)}),t(s),t(r),T(()=>a(o,`Warnings (${p(h).warnings.length??``})`)),l(n,r)};c(s,e=>{p(h).warnings.length>0&&e(u)}),l(n,r)};c(i,e=>{p(h).success&&p(h).errors.length===0&&p(h).warnings.length===0?e(o):e(s,-1)}),t(r),l(n,r)};c(M,e=>{o.mode===`new`?e(N):p(f)&&p(h)===null?e(P,1):p(m)?e(F,2):p(h)&&e(I,3)}),t(x),l(n,x),u()}var At=n(`<div class="flex flex-1 items-center justify-center p-4 text-center text-xs text-muted-foreground">Invalid workspace target.</div>`),jt=n(`<div class="flex h-full items-center justify-center p-6 text-center text-xs text-muted-foreground"><div class="space-y-1"><p class="font-medium text-foreground">Test run</p> <p>Exercising this skill inside the DSH-hosted agent session lands here.</p> <p class="text-muted-foreground/60">(Not yet implemented.)</p></div></div>`),Mt=n(`<!> <div class="min-h-0 flex-1 overflow-hidden"><!></div>`,1),Nt=n(`<div class="flex h-full flex-col overflow-hidden"><header class="flex shrink-0 items-center gap-2 border-b border-border px-4 py-2"><span class="text-sm font-medium"> </span> <span class="text-xs text-muted-foreground"> </span></header> <div class="flex min-h-0 flex-1 flex-col"><!></div></div>`);function Pt(e,n){r(n,!0);let i=B(),o=y(()=>i?.()),s=y(()=>p(o)?.mode),d=y(()=>p(o)?.wsId),f=y(()=>p(o)?.providerId),m=y(()=>p(o)?.skillId),h=z(),_=y(()=>h?.()??{}),v=y(()=>p(_).subview??`file`),b=y(()=>!p(d)||!p(f)?null:{workspaceId:p(d),providerId:p(f)}),x=y(()=>{if(!p(b))return xe();if(p(s)===`edit`&&p(m))return Se(p(b),p(m));let e=p(_).template?ue.find(e=>e.id===p(_).template):void 0,t=ye(p(b),e?e.name:``);return e&&(t.name=e.name,t.description=e.description,t.body=e.body),t}),S=Te(xe()),w=y(()=>$(p(b),p(s)===`edit`?`edit`:`new`,p(m)??null));O(()=>{let e=p(w),t=p(x),n=e===null?null:Ae(e),r=n??t;S.draft.mode=r.mode,S.draft.target=r.target,S.draft.skillId=r.skillId,S.draft.name=r.name,S.draft.description=r.description,S.draft.body=r.body,S.draft.revision=r.revision,S.draft.extraFrontmatter=r.extraFrontmatter,S.draft.directoryName=r.directoryName,n!==null&&e!==null&&Me(e)}),O(()=>()=>{let e=S.draft;if(e.target.workspaceId===`~`)return;let t=$(e.target,e.mode,e.skillId);t!==null&&ke(t,e)});var E=Nt(),k=D(E),j=D(k),M=g(j,!0),N=C(j,2),P=g(N);t(k);var F=C(k,2),I=D(F),L=e=>{var t=At();l(e,t)},R=e=>{var n=Mt(),r=A(n);ve(r,{});var i=C(r,2),a=D(i),o=e=>{Je(e,{})},s=e=>{lt(e,{})},u=e=>{gt(e,{})},d=e=>{kt(e,{})},f=e=>{var t=jt();l(e,t)},m=e=>{Je(e,{})};c(a,e=>{p(v)===`file`?e(o):p(v)===`log`?e(s,1):p(v)===`preview`?e(u,2):p(v)===`validate`?e(d,3):p(v)===`test`?e(f,4):e(m,-1)}),t(i),l(e,n)};c(I,e=>{p(b)?e(R,-1):e(L)}),t(F),t(E),T(e=>{a(M,e),a(P,`${p(d)??``} / ${p(f)??``}`)},[()=>p(s)===`new`?`New skill`:p(m)?`Edit: ${p(m).slice(0,12)}…`:`Editor`]),l(e,E),u()}export{Pt as default};
@@ -1 +0,0 @@
1
- import{o as e,s as t,ut as n}from"./CmCJ0SKP.js";import"./xihTtKlq.js";import{i as r,n as i}from"./0k4S-8Dm.js";import{A as a,C as o,E as s,O as c,S as ee,T as te,a as l,d as ne,h as re,k as ie,m as ae,o as u,s as d,t as f}from"./BpM7GQdD.js";var oe=new Set([`$$slots`,`$$events`,`$$legacy`]);function se(n,i){let a=e(i,oe),o=[[`path`,{d:`M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z`}],[`path`,{d:`m7 16.5-4.74-2.85`}],[`path`,{d:`m7 16.5 5-3`}],[`path`,{d:`M7 16.5v5.17`}],[`path`,{d:`M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z`}],[`path`,{d:`m17 16.5-5-3`}],[`path`,{d:`m17 16.5 4.74-2.85`}],[`path`,{d:`M17 16.5v5.17`}],[`path`,{d:`M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z`}],[`path`,{d:`M12 8 7.26 5.15`}],[`path`,{d:`m12 8 4.74-2.85`}],[`path`,{d:`M12 13.5V8`}]];r(n,t({name:`boxes`},()=>a,{get iconNode(){return o}}))}var ce=n({open:!1});function le(){ce.open=!0}var ue=new Set([`$$slots`,`$$events`,`$$legacy`]);function de(n,i){let a=e(i,ue),o=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`}],[`path`,{d:`M2 12h20`}]];r(n,t({name:`globe`},()=>a,{get iconNode(){return o}}))}var fe=new Set([`$$slots`,`$$events`,`$$legacy`]);function pe(n,i){let a=e(i,fe),o=[[`path`,{d:`M12 10v6`}],[`path`,{d:`M9 13h6`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`}]];r(n,t({name:`folder-plus`},()=>a,{get iconNode(){return o}}))}var me=new Set([`$$slots`,`$$events`,`$$legacy`]);function he(n,i){let a=e(i,me),o=[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`}]];r(n,t({name:`message-square`},()=>a,{get iconNode(){return o}}))}var p=`sc.composer.busyEnter`,m=`sc.composer.draft.`;function ge(){try{return localStorage.getItem(p)===`steer`?`steer`:`queue`}catch{return`queue`}}var h=n({mode:ge()});function _e(){return h.mode}function ve(e){h.mode=e;try{localStorage.setItem(p,e)}catch{}}function ye(e,t){return e?t===`queue`?`steer`:`queue`:t}var g=n({items:[]}),_=0;function be(e){_+=1,g.items=[...g.items,{id:_,text:e}]}function v(e){let t=g.items.findIndex(t=>t.text===e);t>=0&&(g.items=g.items.filter((e,n)=>n!==t))}function xe(){g.items=[]}function y(e,t){try{t.length===0?localStorage.removeItem(m+e):localStorage.setItem(m+e,t)}catch{}}function Se(e){try{return localStorage.getItem(m+e)??``}catch{return``}}var b=`__new__`,x=n({text:``,images:[],files:[],references:[],editing:null}),S=new Map,C=b,w=0;function T(){return{text:``,images:[],files:[],references:[],editing:null}}function E(){return{text:x.text,images:[...x.images],files:[...x.files],references:[...x.references],editing:x.editing}}function D(e){x.text=e.text,x.images=e.images,x.files=e.files,x.references=e.references,x.editing=e.editing}function Ce(e){w+=1;let t=w;return x.references=[...x.references,{...e,uid:t}],t}function we(e){x.references=x.references.filter(t=>t.uid!==e)}function O(e){if(e===C)return;y(C,E().text),S.set(C,E());let t=S.get(e)??T();S.delete(e),C=e,t.text.length===0&&(t.text=Se(e)),D(t)}function Te(e){S.delete(e),y(e,``),e===C&&D(T())}function Ee(e,t){if(e===t)return;let n=S.get(e);n!==void 0&&(S.delete(e),y(e,``),y(t,n.text),C===t?D(n):S.has(t)||S.set(t,n))}function De(e){x.editing=e,x.text=e}function Oe(){x.editing=null}var ke={"image/png":!0,"image/jpeg":!0,"image/webp":!0,"image/gif":!0},k={maxCount:4,maxSizeBytes:4194304},A={maxCount:2,maxSizeBytes:524288};function j(e,t){let n={tooMany:`Too many attachments: ${t}. Nothing was added.`,fileTooLarge:`"${t}" exceeds its size limit. Nothing was added.`,unsupportedType:`Unsupported attachment type: ${t}. Nothing was added.`};i(n[e])}var M=n({pending:0});function N(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let e=String(r.result??``);t(e.slice(e.indexOf(`,`)+1))},r.onerror=()=>n(r.error),r.readAsDataURL(e)})}async function P(e){let t=[...e].filter(e=>!e.type.startsWith(`image/`));if(t.length===0)return;if(x.files.length+t.length>A.maxCount){j(`tooMany`,`at most ${A.maxCount} file attachments`);return}let n=t.find(e=>e.size>A.maxSizeBytes);if(n){j(`fileTooLarge`,n.name);return}M.pending+=1;try{let e=await Promise.all(t.map(async e=>({name:e.name,data:await N(e)})));x.files=[...x.files,...e]}finally{--M.pending}}async function F(e){let t=[...e];if(t.length===0)return;let n=t.find(e=>!(e.type in ke));if(n){j(`unsupportedType`,n.type||`unknown`);return}if(x.images.length+t.length>k.maxCount){j(`tooMany`,`at most ${k.maxCount} images`);return}let r=t.find(e=>e.size>k.maxSizeBytes);if(r){j(`fileTooLarge`,r.name);return}M.pending+=1;try{let e=await Promise.all(t.map(async e=>{let t=await N(e);return{mediaType:e.type,data:t,...e.name?{name:e.name}:{},preview:`data:${e.type};base64,${t}`}}));x.images=[...x.images,...e]}finally{--M.pending}}function Ae(e){let t=[...e.dataTransfer?.files??[]],n=t.filter(e=>e.type.startsWith(`image/`)),r=t.filter(e=>!e.type.startsWith(`image/`));t.length>0&&e.preventDefault(),n.length>0&&F(n),r.length>0&&P(r)}function je(e){if(e.length!==0){if(x.images.length+e.length>k.maxCount){j(`tooMany`,`at most ${k.maxCount} images`);return}x.images=[...x.images,...e.map(e=>({path:e.path,name:e.name,...e.preview===void 0?{}:{preview:e.preview}}))]}}function Me(e){if(e.length!==0){if(x.files.length+e.length>A.maxCount){j(`tooMany`,`at most ${A.maxCount} file attachments`);return}x.files=[...x.files,...e.map(e=>({name:e.name,path:e.path}))]}}var Ne=f(l),Pe=f(l),Fe=f(l),Ie=f(l),Le=f(l),Re=f(l),ze=f(l),Be=f(l),I=f(l),Ve=f(l),He=f(l),Ue=`skill-creator.agentPanelWidth.v1`;function We(e){return Number.isFinite(e)?Math.min(720,Math.max(320,Math.round(e))):440}function Ge(){try{let e=sessionStorage.getItem(Ue);return e===null?440:We(Number(e))}catch{return 440}}var L=n({open:!1,seedPrompt:null,width:Ge()}),R=n({sessionId:null,status:`idle`,mode:null,pendingMode:`free`,items:[],todos:[],turnStartedAt:null,cursor:0,sending:!1,error:null,promptError:null,lastUsage:null}),z=n({loaded:!1,loading:!1,sessions:[],error:null}),B=n({items:[]}),V=n({view:null,loading:!1,updating:!1,error:null}),H=null,U=[],W=null,G=new Map;function Ke(e){L.open=e,e&&!z.loaded&&!z.loading&&q(),e&&R.sessionId&&Z(),e||Q()}function qe(e){L.width=We(e);try{sessionStorage.setItem(Ue,String(L.width))}catch{}}var K=0;async function q(){if(u()===null){if(K>=25)return;K+=1,setTimeout(()=>void q(),300);return}K=0;let e=Ne.issue();z.loading=!0;try{let t=await d().agent.sessions.list({});if(!e.isCurrent())return;z.sessions=t.sessions,z.loaded=!0,z.error=null}catch(t){if(!e.isCurrent())return;z.error=t instanceof Error?t.message:String(t)}finally{e.isCurrent()&&(z.loading=!1)}}async function Je(e){let t=Ve.issue();try{let n=await d().agent.sessions.cleanup(e);if(!t.isCurrent())return null;if(n.kind===`summary`&&R.sessionId!==null){let e=R.sessionId;(n.deletedIds??[]).includes(e)?J():n.deletedIdsTruncated===!0&&(await q(),t.isCurrent()&&!z.sessions.some(t=>t.sessionId===e&&t.hasTranscript!==!1)&&J())}return z.loaded=!1,q(),n}catch(e){return t.isCurrent()?{error:e instanceof Error?e.message:String(e)}:null}}async function Ye(e,t){let n=Pe.issue();R.sending=!0;try{let r=await d().agent.session.create({...e?{prompt:e}:{},...t?{mode:t}:{}});if(!n.isCurrent())return;Y(r.session.sessionId,r.session.status,r.session.mode),z.loaded=!1,q(),Z()}catch(e){if(!n.isCurrent())return;R.error=e instanceof Error?e.message:String(e)}finally{n.isCurrent()&&(R.sending=!1)}}function Xe(e,t){J(),L.open=!0,L.seedPrompt=t??null,R.pendingMode=e}function J(){Q(),R.sessionId=null,R.status=`idle`,R.mode=null,R.pendingMode=`free`,R.items=[],R.todos=[],R.turnStartedAt=null,R.cursor=0,R.error=null,R.promptError=null,R.lastUsage=null,U=[],W=null,G=new Map,O(b),Te(b)}function Ze(e){R.sessionId!==e&&(Y(e,`idle`,z.sessions.find(t=>t.sessionId===e)?.mode??`free`),Z())}function Y(e,t,n){R.sessionId=e,R.status=t,R.mode=n,R.items=[],R.todos=[],R.turnStartedAt=null,R.cursor=0,R.error=null,R.lastUsage=null,U=[],W=null,G=new Map,xe(),B.items=[],X(),O(e)}async function Qe(e){let t=R.sessionId;if(!t||R.mode===e)return!1;if(R.status===`running`)return R.error=`Switch modes after the current turn ends.`,!1;let n=Be.issue();try{let r=await d().agent.session.setMode({sessionId:t,mode:e});return!n.isCurrent()||R.sessionId!==t?!1:(R.mode=r.session.mode,R.status=r.session.status,R.error=null,z.loaded=!1,q(),Z(),!0)}catch(e){return n.isCurrent()&&(R.error=e instanceof Error?e.message:String(e)),!1}}async function $e(e,t=[],n=[],r=`queue`,i=[]){if(e.trim().length===0&&t.length===0&&n.length===0)return;if(r===`queue`&&R.status===`running`&&be(e),!R.sessionId){if(await Ye(void 0,R.pendingMode),!R.sessionId)return;Ee(b,R.sessionId)}let a=R.sessionId,o=Ie.issue();R.sending=!0;let s=t.filter(e=>e.preview===void 0).map(e=>e.name??`image`);R.items.push({kind:`user`,seq:-Date.now(),text:e,...t.some(e=>e.preview!==void 0)?{images:t.flatMap(e=>e.preview===void 0?[]:[e.preview])}:{},...n.length>0||s.length>0?{files:[...n.map(e=>e.name??`file`),...s]}:{}}),U.push(e);try{if(await d().agent.session.prompt({sessionId:a,text:e,mode:r,images:t.map(e=>{if(e.path!==void 0)return{path:e.path,...e.name?{name:e.name}:{}};if(e.mediaType===void 0||e.data===void 0)throw Error(`image attachment needs either path or mediaType+data`);return{mediaType:e.mediaType,data:e.data,...e.name?{name:e.name}:{}}}),files:n.map(e=>{if(e.path!==void 0)return{path:e.path};if(e.name===void 0||e.data===void 0)throw Error(`file attachment needs either path or name+data`);return{name:e.name,data:e.data}}),references:i.map(e=>e.kind===`file`?{kind:`file`,path:e.target}:e.kind===`skill`?{kind:`skill`,workspaceId:e.skill.workspaceId,providerId:e.skill.providerId,skillId:e.skill.skillId}:{kind:`session`,sessionId:e.target})}),!o.isCurrent())return;R.promptError=null,Te(a),r===`queue`&&X()}catch(t){if(!o.isCurrent())return;R.promptError=t instanceof Error?t.message:String(t),v(e);let n=U.indexOf(e);n>=0&&U.splice(n,1)}finally{o.isCurrent()&&(R.sending=!1)}Z()}async function et(){let e=R.sessionId;if(e){try{await d().agent.session.cancel({sessionId:e})}catch(e){R.error=e instanceof Error?e.message:String(e)}Z()}}async function X(){let e=R.sessionId;if(!e){B.items=[];return}let t=He.issue();try{let n=await d().agent.queue.list({sessionId:e});if(!t.isCurrent()||R.sessionId!==e)return;B.items=n.items}catch{}}async function tt(e){let t=R.sessionId;if(!t)return null;let n=e.action===`edit`?{sessionId:t,messageId:e.messageId,action:`edit`,text:e.text}:e.action===`remove`?{sessionId:t,messageId:e.messageId,action:`remove`}:{sessionId:t,messageId:e.messageId,action:`steer`};try{return await d().agent.queue.update(n),await X(),{updated:!0}}catch(e){return X(),{error:e instanceof Error?e.message:String(e)}}}async function nt(e,t){let n=R.sessionId;if(!n)return;let r=Le.issue();try{if(await d().agent.session.answer({sessionId:n,requestSeq:e,answers:t}),!r.isCurrent())return;for(let t of R.items)t.kind===`approval`&&t.seq===e&&(t.resolved=!0)}catch(e){if(!r.isCurrent())return;R.error=e instanceof Error?e.message:String(e)}Z()}async function Z(){let e=R.sessionId;if(!e)return;let t=Fe.issue();try{let n=await d().agent.session.stream({sessionId:e,afterSeq:R.cursor,limit:100});if(!t.isCurrent()||R.sessionId!==e)return;R.status=n.status;for(let e of n.frames)gt(e),R.cursor=Math.max(R.cursor,e.seq);R.error=null}catch(e){if(!t.isCurrent())return;R.error=e instanceof Error?e.message:String(e),Q();return}rt()}function rt(){Q();let e=R.items.some(e=>e.kind===`approval`&&!e.resolved);if(R.status===`running`||e){R.sessionId;let e=R.status===`running`?450:1200;H=setTimeout(()=>{Z()},e)}}function Q(){H!==null&&(clearTimeout(H),H=null)}function it(e,t,n){for(let t=R.items.length-1;t>=0;t--){let r=R.items[t];if(r.kind===`turn`)break;if(r.kind===e){r.streaming&&=(r.text=n,!1);return}}R.items.push({kind:e,seq:t,text:n,streaming:!1})}function at(e){let t=e?.usage;if(!t)return null;let n=t.inputTokens??t.promptTokens??t.input_tokens??0,r=t.outputTokens??t.completionTokens??t.output_tokens??0;return n>0||r>0?{inputTokens:n,outputTokens:r}:null}function $(e,t){for(let n=R.items.length-1;n>=0;n--){let r=R.items[n];if(r.kind===`turn`)return null;if(r.kind===`tool`&&r.result===void 0){if(e!==void 0){if(r.toolCallId===e)return r;continue}if(r.toolName===t)return r}}return null}var ot=s({isError:te(!0).optional(),error:ie([c().min(1),s()]).optional()}).passthrough();function st(e){let t=ot.safeParse(e);return t.success?t.data.isError===!0||t.data.error!==void 0:!1}var ct=s({attachments:o(a()).optional()}).passthrough();function lt(e){let t=ct.safeParse(e),n=t.success?t.data.attachments:void 0;if(!Array.isArray(n)||n.length===0)return null;let r=[],i=[],a=[];for(let e of n){let t=re.safeParse(e);if(t.success){if(t.data.kind===`image`&&t.data.thumb!==void 0)r.push(t.data.thumb);else{let e=t.data.name??(t.data.kind===`image`?`image`:`file`);i.push(e),t.data.kind===`image`&&a.push(e)}}}return r.length>0||i.length>0?{images:r,files:i,imageChipNames:a}:null}var ut=s({todos:o(a())}),dt=s({content:c(),status:c()}),ft=s({questions:o(ne)}),pt=s({from:ae,to:ae}),mt=s({childId:c().min(1),mode:ee([`one-shot`,`continuable`]),label:c().optional()});function ht(e){let t=ut.safeParse(e);if(!t.success)return null;let n=[];for(let e of t.data.todos){let t=dt.safeParse(e);t.success&&n.push(t.data)}return n}function gt(e){switch(e.kind){case`turn-start`:R.turnStartedAt=e.at,G=new Map,R.items.push({kind:`turn`,seq:e.seq,label:`Turn`});break;case`status`:R.items.push({kind:`status`,seq:e.seq,text:JSON.stringify(e.payload??{})});break;case`auto-compact`:typeof e.text==`string`&&e.text.length>0&&R.items.push({kind:`note`,seq:e.seq,text:e.text});break;case`subagent`:{let t=mt.safeParse(e.payload);if(!t.success)break;let n=typeof e.text==`string`&&e.text.length>0?e.text:t.data.childId;R.items.push({kind:`subagent`,seq:e.seq,label:n,mode:t.data.mode});break}case`user-text`:if(typeof e.text==`string`&&e.text.length>0){v(e.text),X();let t=U.indexOf(e.text);if(t>=0){U.splice(t,1);break}let n=lt(e.payload);R.items.push({kind:`user`,seq:e.seq,text:e.text,...n&&n.images.length>0?{images:n.images}:{},...n&&n.files.length>0?{files:n.files}:{},...n&&n.imageChipNames.length>0?{imageChipNames:n.imageChipNames}:{}})}break;case`assistant-delta`:if(typeof e.text==`string`&&e.text.length>0){let t=R.items[R.items.length-1];t?.kind===`assistant`&&t.streaming?t.text+=e.text:R.items.push({kind:`assistant`,seq:e.seq,text:e.text,streaming:!0})}break;case`assistant-reasoning-delta`:if(typeof e.text==`string`&&e.text.length>0){let t=R.items[R.items.length-1];t?.kind===`reasoning`&&t.streaming?t.text+=e.text:R.items.push({kind:`reasoning`,seq:e.seq,text:e.text,streaming:!0})}break;case`assistant-reasoning`:typeof e.text==`string`&&e.text.length>0&&it(`reasoning`,e.seq,e.text);break;case`todo-snapshot`:{let t=ht(e.payload);t!==null&&(R.todos=t);break}case`session-title`:{let t=typeof e.text==`string`?e.text.trim():``;if(t.length>0)for(let n of z.sessions)n.sessionId===e.sessionId&&(n.title=t);break}case`assistant-text`:if(typeof e.text==`string`&&e.text.length>0){it(`assistant`,e.seq,e.text);let t=at(e.payload);t&&(R.lastUsage=t,W=t)}break;case`tool-args-delta`:if(typeof e.text==`string`&&e.text.length>0&&e.toolCallId){let t=$(e.toolCallId,e.toolName??``);if(t&&t.toolCallId===e.toolCallId&&t.phase===`calling`)t.argsText=(t.argsText??``)+e.text;else if(!t){let t=G.get(e.toolCallId);G.set(e.toolCallId,{...e.toolName?{name:e.toolName}:{},text:(t?.text??``)+e.text})}}break;case`tool-call`:{let t=e.toolName??`tool`,n=e.toolCallId;if(n!==void 0&&$(n,t)!==null)break;let r=n===void 0?void 0:G.get(n);n!==void 0&&G.delete(n);let i;e.payload!==void 0&&e.payload!==null&&(i=typeof e.payload==`string`?e.payload:_t(e.payload)),(i===void 0||i.length===0)&&r&&(i=r.text),R.items.push({kind:`tool`,seq:e.seq,...n===void 0?{}:{toolCallId:n},toolName:t,...i!==void 0&&i.length>0?{argsText:i}:{},phase:`calling`,startedAt:e.at});break}case`tool-result`:{let t=e.toolName??`tool`,n=$(e.toolCallId,t);if(n){n.result=e.payload,n.phase=st(e.payload)?`error`:`done`,n.endedAt=e.at;break}R.items.push({kind:`tool`,seq:e.seq,...e.toolCallId===void 0?{}:{toolCallId:e.toolCallId},toolName:t,result:e.payload,phase:st(e.payload)?`error`:`done`,startedAt:e.at,endedAt:e.at});break}case`turn-end`:{let t=typeof e.text==`string`&&e.text.length>0?e.text:`completed`;X();let n=W;W=null;let r=R.turnStartedAt,i=r===null||Number.isNaN(Date.parse(r))||Number.isNaN(Date.parse(e.at))?void 0:Math.max(0,Date.parse(e.at)-Date.parse(r));R.items.push({kind:`turn-end`,seq:e.seq,reason:t,...n?{usage:n}:{},...i===void 0?{}:{elapsedMs:i}});break}case`approval-request`:{let t=ft.safeParse(e.payload);if(!t.success)break;R.items.push({kind:`approval`,seq:e.seq,questions:t.data.questions,resolved:!1});break}case`approval-resolved`:for(let e of R.items)e.kind===`approval`&&(e.resolved=!0);break;case`mode-changed`:{let t=pt.safeParse(e.payload);if(!t.success)break;R.items.push({kind:`mode`,seq:e.seq,from:t.data.from,to:t.data.to}),R.mode=t.data.to;break}}R.items.length>500&&R.items.splice(0,R.items.length-500)}function _t(e){try{return JSON.stringify(e,null,2)??``}catch{return String(e)}}async function vt(){let e=Re.issue();V.loading=!0;try{let t=await d().agent.settings.get({});return e.isCurrent()?(V.view=t,V.error=null,{view:t,error:null}):{view:null,error:null}}catch(t){if(!e.isCurrent())return{view:null,error:null};let n=t instanceof Error?t.message:String(t);return V.error=n,{view:null,error:n}}finally{e.isCurrent()&&(V.loading=!1)}}async function yt(e){let t=ze.issue();V.updating=!0;try{let n=await d().agent.settings.update(e);return t.isCurrent()?(n.outcome===`updated`&&(V.view=n.view),n):null}catch(e){return t.isCurrent()?{outcome:`error`,message:e instanceof Error?e.message:String(e)}:null}finally{t.isCurrent()&&(V.updating=!1)}}async function bt(e){try{let t=u();return t===null?null:await t.agent.files.pickFiles({mode:e})}catch(e){return i(`File picker failed: ${e instanceof Error?e.message:String(e)}`),null}}async function xt(e){try{let t=u();if(t===null)return null;let n=await t.agent.files.preview({path:e});return n.kind===`image`?n.dataUrl:null}catch{return null}}async function St(e){await Promise.all(e.map(async e=>{let t=await xt(e.path);if(t===null)return;let n=x.images.find(t=>t.path===e.path&&t.name===e.name&&t.preview===void 0);n!==void 0&&(n.preview=t)}))}async function Ct(e,t){let n=I.issue();V.updating=!0;try{let r=await d().agent.credentials.set({provider:e,apiKey:t});return n.isCurrent()?(r.outcome===`stored`&&(V.view=r.view),r):null}catch(e){return n.isCurrent()?{outcome:`rejected`,code:`NETWORK`,detail:e instanceof Error?e.message:String(e)}:null}finally{n.isCurrent()&&(V.updating=!1)}}async function wt(e){let t=I.issue();V.updating=!0;try{let n=await d().agent.credentials.clear({provider:e});if(!t.isCurrent())return;V.view=n}catch(e){if(!t.isCurrent())return;V.error=e instanceof Error?e.message:String(e)}finally{t.isCurrent()&&(V.updating=!1)}}async function Tt(e){let t=u();if(t===null)return null;try{return await t.agent.settings.testConnection(e)}catch(e){return{outcome:`failed`,detail:e instanceof Error?e.message:String(e)}}}var Et=new Set([`$$slots`,`$$events`,`$$legacy`]);function Dt(n,i){let a=e(i,Et),o=[[`path`,{d:`M13 21h8`}],[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`}]];r(n,t({name:`pen-line`},()=>a,{get iconNode(){return o}}))}export{je as A,ye as B,Tt as C,F as D,P as E,Ae as F,ce as G,he as H,we as I,le as K,h as L,M,De as N,Ce as O,Oe as P,_e as R,Xe as S,yt as T,pe as U,ve as V,de as W,$e as _,R as a,qe as b,J as c,wt as d,St as f,Ze as g,bt as h,V as i,x as j,Me as k,et as l,vt as m,L as n,z as o,q as p,se as q,B as r,nt as s,Dt as t,Je as u,Ct as v,tt as w,Qe as x,Ke as y,g as z};
@@ -1,2 +0,0 @@
1
- import{A as e,At as t,B as n,Ct as r,F as i,G as a,N as o,R as s,St as c,U as l,W as u,X as d,ct as f,ft as p,gt as m,kt as h,lt as g,m as ee,mt as _,nt as v,o as y,ot as b,rt as x,s as S,st as C,x as w,z as T}from"./CmCJ0SKP.js";import{t as E}from"./BfKHhAfw.js";import"./xihTtKlq.js";import"./CaRy05kX.js";import{i as D,n as O}from"./0k4S-8Dm.js";import{H as k,K as A,S as j,U as M,W as N,g as te,o as P,p as F,q as ne,t as re,y as ie}from"./D-GGMKF5.js";import"./BTdzDCtA.js";import{a as I,i as ae,n as oe,s as se}from"./xHmEZGe9.js";import{n as ce,t as le}from"./WSgbVOcX.js";import{n as L,t as R}from"./BZOx0Qre.js";import{t as ue}from"./DAvb_BTz.js";import{t as z}from"./BXwUnloU.js";import{t as B}from"./DsOfMPqr.js";var V=new Set([`$$slots`,`$$events`,`$$legacy`]);function de(e,t){let n=y(t,V),r=[[`path`,{d:`M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5`}],[`path`,{d:`M3.22 13H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27`}]];D(e,S({name:`heart-pulse`},()=>n,{get iconNode(){return r}}))}var H=new Set([`$$slots`,`$$events`,`$$legacy`]);function fe(e,t){let n=y(t,H),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z`}]];D(e,S({name:`compass`},()=>n,{get iconNode(){return r}}))}var U=new Set([`$$slots`,`$$events`,`$$legacy`]);function W(e,t){let n=y(t,U),r=[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`}]];D(e,S({name:`folder`},()=>n,{get iconNode(){return r}}))}var pe=n(`<!> Import`,1),me=n(`<button class="flex w-full items-center gap-2 px-3 py-2 text-left transition-colors hover:bg-muted/50"><!> <span class="min-w-0 flex-1 truncate text-xs"> </span> <span class="shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground"> </span> <span class="shrink-0 text-xs text-muted-foreground"> </span></button>`),he=n(`<section aria-label="Recent agent sessions" class="space-y-1.5"><h2 class="text-xs font-medium uppercase tracking-wide text-muted-foreground">Continue</h2> <div class="divide-y divide-border rounded-lg border border-border"></div></section>`),ge=n(`<div class="flex items-start gap-3 rounded-lg border border-destructive/40 bg-destructive/10 p-4" role="alert"><!> <div class="min-w-0 flex-1"><p class="text-sm font-medium text-destructive">Couldn't load workspaces</p> <p class="mt-1 break-words text-xs text-destructive/90"> </p></div> <!></div>`),_e=n(`<div class="space-y-3" aria-label="Loading workspaces"><div class="h-24 animate-pulse rounded-lg border border-border bg-muted/50"></div> <div class="h-24 animate-pulse rounded-lg border border-border bg-muted/50"></div></div>`),ve=n(`<!> Import workspace`,1),ye=n(`<div class="rounded-lg border border-dashed border-border p-8 text-center"><!> <p class="mt-3 text-sm font-medium">No skill locations yet</p> <p class="mt-1 text-xs text-muted-foreground">Import a directory to manage its skills, or browse the global agent locations.</p> <!></div>`),be=n(`<p class="flex items-center gap-2 text-xs text-muted-foreground" role="status"><!> Updating…</p>`),xe=n(`<span class="text-xs text-muted-foreground">Not found on disk</span>`),Se=n(`<span class="block truncate font-mono text-xs text-muted-foreground"> </span>`),Ce=n(`<li><button class="flex min-h-11 w-full items-center justify-between gap-2 rounded-md bg-muted/40 px-3 py-2 text-left transition-colors hover:bg-muted/70 disabled:pointer-events-none disabled:opacity-50"><span class="min-w-0"><span class="block truncate text-xs font-medium"> </span> <!></span> <!></button></li>`),we=n(`<section class="rounded-lg border border-border"><div class="flex items-center gap-2.5 border-b border-border px-4 py-3"><!> <div class="min-w-0 flex-1"><div class="flex items-center gap-2"><h2 class="truncate text-sm font-medium"> </h2> <!></div> <p class="mt-0.5 text-xs text-muted-foreground"> </p></div></div> <ul class="grid grid-cols-1 gap-2 p-3 sm:grid-cols-2"></ul></section>`),Te=n(`<!> Missing`,1),Ee=n(`<li><button class="flex min-h-9 items-center gap-1.5 rounded-full border border-border/60 px-2.5 py-1 text-xs transition-colors hover:bg-muted/50 disabled:pointer-events-none disabled:opacity-50"> <span class="tabular-nums text-muted-foreground"> </span></button></li>`),De=n(`<ul class="flex flex-wrap gap-1.5 border-t border-border/60 px-4 py-2.5"></ul>`),Oe=n(`<li><div class="flex items-center gap-2.5 px-4 py-3"><button class="flex min-h-11 min-w-0 flex-1 items-center gap-2.5 text-left"><!> <span class="min-w-0 flex-1"><span class="flex items-center gap-2"><span class="truncate text-sm font-medium"> </span> <!></span> <span class="mt-0.5 block truncate font-mono text-xs text-muted-foreground"> </span></span> <!></button> <!></div> <!></li>`),ke=n(`<section><h2 class="mb-2 text-xs font-medium uppercase tracking-wide text-muted-foreground">Imported workspaces</h2> <ul class="space-y-2"></ul></section>`),Ae=n(`<!> <!> <!>`,1),je=n(`<div class="flex h-full flex-col overflow-y-auto p-5"><header class="flex shrink-0 items-start justify-between gap-3 border-b border-border pb-4"><div><h1 class="text-lg font-semibold">Workspaces</h1> <p class="mt-0.5 text-xs text-muted-foreground">Your skill library, agent sessions, and quick ways to put both to work.</p></div> <div class="flex shrink-0 items-center gap-1.5"><!> <!></div></header> <div class="mx-auto mt-5 w-full max-w-5xl space-y-6"><section aria-label="Quick actions" class="grid grid-cols-1 gap-2 min-[560px]:grid-cols-2"><button class="flex items-start gap-2.5 rounded-lg border border-border bg-background p-3 text-left transition-colors hover:border-foreground/20 hover:bg-muted/50"><!> <span class="min-w-0"><span class="block text-sm font-medium">Create a skill</span> <span class="block text-xs text-muted-foreground">Describe the task; the agent drafts the SKILL.md with best practices.</span></span></button> <button class="flex items-start gap-2.5 rounded-lg border border-border bg-background p-3 text-left transition-colors hover:border-foreground/20 hover:bg-muted/50"><!> <span class="min-w-0"><span class="block text-sm font-medium">Health check my library</span> <span class="block text-xs text-muted-foreground">Duplicates, vague descriptions, stale skills — with proposed fixes.</span></span></button> <button class="flex items-start gap-2.5 rounded-lg border border-border bg-background p-3 text-left transition-colors hover:border-foreground/20 hover:bg-muted/50"><!> <span class="min-w-0"><span class="block text-sm font-medium">Explore skill sources</span> <span class="block text-xs text-muted-foreground">Discover curated Git sources and analyze candidate skills.</span></span></button> <button class="flex items-start gap-2.5 rounded-lg border border-border bg-background p-3 text-left transition-colors hover:border-foreground/20 hover:bg-muted/50"><!> <span class="min-w-0"><span class="block text-sm font-medium">Browse the library</span> <span class="block text-xs text-muted-foreground"> </span></span></button></section> <!> <div id="library-index" class="space-y-6"><!></div></div></div> <!>`,1);function G(n,u){r(u,!0);let y=m(()=>I.workspaces.filter(e=>e.kind===`global`)),S=m(()=>I.workspaces.filter(e=>e.kind===`directory`)),D=m(()=>I.workspaces.length>0),V=m(()=>I.loading&&d(D)),H=_(null),U=_(!1),G=_(!1);x(()=>{oe()}),x(()=>{!P.loaded&&!P.loading&&F()});let Me=m(()=>{let e=0,t=0;for(let n of I.workspaces)for(let r of n.providers)t+=1,e+=r.skillCount??0;return{skills:e,providers:t,imported:I.workspaces.filter(e=>e.kind===`directory`).length}}),Ne=m(()=>P.sessions.slice(0,3));function Pe(e){te(e),ie(!0)}function Fe(e){let t=Date.now()-new Date(e).getTime();if(!Number.isFinite(t))return``;let n=Math.floor(t/6e4);if(n<1)return`just now`;if(n<60)return`${n}m ago`;let r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}function Ie(e){p(H,e,!0),p(U,!0)}x(()=>{d(U)||p(H,null)});async function Le(){await oe()}function Re(e,t){return`/workspaces/${e.id===`~`?`%7E`:e.id}/${t.id}`}async function ze(){let e=d(H);if(e){p(G,!0);try{await ae(e.id)&&(p(U,!1),O(`Removed ${e.label}. Files remain on disk.`))}catch(e){O(e instanceof Error?e.message:String(e))}finally{p(G,!1)}}}var Be=je(),K=C(Be),q=b(K),Ve=g(b(q),2),He=b(Ve);L(He,{variant:`ghost`,size:`icon`,class:`h-9 w-9`,title:`Refresh workspaces`,"aria-label":`Refresh workspaces`,get disabled(){return I.loading},onclick:()=>void Le(),children:(e,t)=>{var n=T(),r=C(n),i=e=>{R(e,{class:`h-4 w-4 animate-spin`})},a=e=>{ue(e,{class:`h-4 w-4`})};o(r,e=>{I.loading?e(i):e(a,-1)}),s(e,n)},$$slots:{default:!0}});var Ue=g(He,2);L(Ue,{size:`sm`,onclick:()=>A(),children:(e,t)=>{var n=pe(),r=C(n);M(r,{class:`h-4 w-4`}),h(),s(e,n)},$$slots:{default:!0}}),t(Ve),t(q);var We=g(q,2),J=b(We),Y=b(J),Ge=b(Y);re(Ge,{class:`mt-0.5 h-4 w-4 shrink-0 text-foreground/70`}),h(2),t(Y);var X=g(Y,2);de(b(X),{class:`mt-0.5 h-4 w-4 shrink-0 text-foreground/70`}),h(2),t(X);var Z=g(X,2);fe(b(Z),{class:`mt-0.5 h-4 w-4 shrink-0 text-foreground/70`}),h(2),t(Z);var Q=g(Z,2),Ke=b(Q);ne(Ke,{class:`mt-0.5 h-4 w-4 shrink-0 text-foreground/70`});var qe=g(Ke,2),Je=g(b(qe),2),Ye=f(Je);t(qe),t(Q),t(J);var Xe=g(J,2),Ze=n=>{var r=he(),o=g(b(r),2);e(o,21,()=>d(Ne),e=>e.sessionId,(e,n)=>{var r=me(),o=b(r);k(o,{class:`h-3.5 w-3.5 shrink-0 text-muted-foreground`});var c=g(o,2),l=f(c,!0),u=g(c,2),p=f(u,!0),m=g(u,2),h=f(m,!0);t(r),v(e=>{i(l,d(n).title||`Untitled session`),i(p,d(n).mode),i(h,e)},[()=>Fe(d(n).createdAt)]),a(`click`,r,()=>Pe(d(n).sessionId)),s(e,r)}),t(o),t(r),s(n,r)};o(Xe,e=>{d(Ne).length>0&&e(Ze)});var $=g(Xe,2),Qe=b($),$e=e=>{var n=ge(),r=b(n);z(r,{class:`mt-0.5 h-4 w-4 shrink-0 text-destructive`});var a=g(r,2),o=g(b(a),2),c=f(o,!0);t(a);var u=g(a,2);L(u,{variant:`outline`,size:`sm`,onclick:()=>void Le(),children:(e,t)=>{h();var n=l(`Retry`);s(e,n)},$$slots:{default:!0}}),t(n),v(()=>i(c,I.error)),s(e,n)},et=e=>{var t=_e();s(e,t)},tt=e=>{var n=ye(),r=b(n);W(r,{class:`mx-auto h-8 w-8 text-muted-foreground`});var i=g(r,6);L(i,{class:`mt-4`,size:`sm`,onclick:()=>A(),children:(e,t)=>{var n=ve(),r=C(n);M(r,{class:`h-4 w-4`}),h(),s(e,n)},$$slots:{default:!0}}),t(n),s(e,n)},nt=n=>{var r=Ae(),c=C(r),u=e=>{var n=be(),r=b(n);R(r,{class:`h-3.5 w-3.5 animate-spin`}),h(),t(n),s(e,n)};o(c,e=>{d(V)&&e(u)});var p=g(c,2);e(p,17,()=>d(y),e=>e.id,(n,r)=>{let c=m(()=>d(r).available?d(r):null);var u=we(),p=b(u),_=b(p);N(_,{class:`h-4 w-4 shrink-0 text-primary`});var y=g(_,2),x=b(y),S=b(x),C=f(S,!0),w=g(S,2);B(w,{variant:`secondary`,class:`text-xs`,children:(e,t)=>{h();var n=l(`~ global`);s(e,n)},$$slots:{default:!0}}),t(x);var T=g(x,2),D=f(T);t(y),t(p);var O=g(p,2);e(O,21,()=>d(r).providers,e=>e.id,(e,n)=>{var u=Ce(),p=b(u),m=b(p),_=b(m),y=f(_,!0),x=g(_,2),S=e=>{var t=xe();s(e,t)},C=e=>{var t=Se(),r=f(t,!0);v(()=>i(r,d(n).path)),s(e,t)};o(x,e=>{d(n).available?d(n).path&&e(C,1):e(S)}),t(m);var w=g(m,2);B(w,{variant:`secondary`,class:`shrink-0 tabular-nums`,children:(e,t)=>{h();var r=l();v(()=>i(r,d(n).skillCount)),s(e,r)},$$slots:{default:!0}}),t(p),t(u),v(()=>{p.disabled=!d(c)||!d(n).available,ee(p,`title`,d(n).path??d(n).label),i(y,d(n).label)}),a(`click`,p,()=>d(c)&&void E(Re(d(r),d(n)))),s(e,u)}),t(O),t(u),v(()=>{i(C,d(r).label),i(D,`${d(r).skillCount??``} skill${d(r).skillCount===1?``:`s`} across ${d(r).providers.length??``}
2
- agent location${d(r).providers.length===1?``:`s`}`)}),s(n,u)});var _=g(p,2),x=n=>{var r=ke(),c=g(b(r),2);e(c,21,()=>d(S),e=>e.id,(n,r)=>{let c=m(()=>d(r).kind===`directory`?d(r):null);var u=Oe(),p=b(u),_=b(p),y=b(_);{let e=m(()=>d(r).available?`text-primary`:`text-destructive`);W(y,{get class(){return`h-4 w-4 shrink-0 ${d(e)??``}`}})}var x=g(y,2),S=b(x),T=b(S),D=f(T,!0),O=g(T,2),k=e=>{B(e,{variant:`destructive`,class:`text-xs`,children:(e,t)=>{var n=Te(),r=C(n);z(r,{class:`h-3 w-3`}),h(),s(e,n)},$$slots:{default:!0}})};o(O,e=>{d(r).available||e(k)}),t(S);var A=g(S,2),j=f(A,!0);t(x);var M=g(x,2);B(M,{variant:`secondary`,class:`shrink-0 tabular-nums`,children:(e,t)=>{h();var n=l();v(()=>i(n,d(r).skillCount)),s(e,n)},$$slots:{default:!0}}),t(_);var N=g(_,2),te=e=>{{let t=m(()=>`Remove ${d(r).label} registration`),n=m(()=>`Remove ${d(r).label}`);L(e,{variant:`ghost`,size:`icon`,class:`h-11 w-11 shrink-0 text-muted-foreground hover:text-destructive`,get title(){return d(t)},get"aria-label"(){return d(n)},onclick:()=>Ie(d(c)),children:(e,t)=>{le(e,{class:`h-4 w-4`})},$$slots:{default:!0}})}};o(N,e=>{d(c)&&e(te)}),t(p);var P=g(p,2),F=n=>{var o=De();e(o,21,()=>d(r).providers,e=>e.id,(e,n)=>{var o=Ee(),c=b(o),l=b(c),u=g(l),p=f(u,!0);t(c),t(o),v(()=>{c.disabled=!d(r).available||!d(n).available,i(l,`${d(n).label??``} `),i(p,d(n).skillCount)}),a(`click`,c,()=>d(r).available&&void E(Re(d(r),d(n)))),s(e,o)}),t(o),v(()=>ee(o,`aria-label`,`Providers in ${d(r).label??``}`)),s(n,o)};o(P,e=>{d(r).providers.length>0&&e(F)}),t(u),v(()=>{w(u,1,`rounded-lg border border-border transition-colors ${d(r).available?`hover:border-foreground/20`:`border-destructive/40`}`),_.disabled=!d(r).available,i(D,d(r).label),i(j,d(r).path)}),a(`click`,_,()=>d(r).available&&void E(se(d(r)))),s(n,u)}),t(c),t(r),s(n,r)};o(_,e=>{d(S).length>0&&e(x)}),s(n,r)};o(Qe,e=>{I.error?e($e):I.loading&&!d(D)?e(et,1):d(D)?e(nt,-1):e(tt,2)}),t($),t(We),t(K);var rt=g(K,2);{let e=m(()=>d(H)?`Remove ${d(H).label} from Skill Creator? Its files stay on disk; only the registration is deleted.`:``);ce(rt,{title:`Remove workspace registration`,get description(){return d(e)},confirmLabel:`Remove`,get busy(){return d(G)},onConfirm:()=>void ze(),get open(){return d(U)},set open(e){p(U,e,!0)}})}v(()=>i(Ye,`${d(Me).skills??``} skills across ${d(Me).providers??``} agent locations.`)),a(`click`,Y,()=>j(`create`,`I want to create a new skill. It should help me `)),a(`click`,X,()=>j(`manage`,`Audit my skill library: find duplicates, vague descriptions, and stale skills, then propose concrete fixes.`)),a(`click`,Z,()=>void E(`/repository`)),a(`click`,Q,()=>document.getElementById(`library-index`)?.scrollIntoView({behavior:`smooth`})),s(n,Be),c()}u([`click`]);export{G as default};
@@ -1 +0,0 @@
1
- import{o as e,s as t}from"./CmCJ0SKP.js";import"./xihTtKlq.js";import{i as n}from"./0k4S-8Dm.js";var r=new Set([`$$slots`,`$$events`,`$$legacy`]);function i(i,a){let o=e(a,r),s=[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`}]];n(i,t({name:`folder-open`},()=>o,{get iconNode(){return s}}))}var a=new Set([`$$slots`,`$$events`,`$$legacy`]);function o(r,i){let o=e(i,a),s=[[`path`,{d:`M5 12h14`}],[`path`,{d:`M12 5v14`}]];n(r,t({name:`plus`},()=>o,{get iconNode(){return s}}))}export{i as n,o as t};
@@ -1 +0,0 @@
1
- import{B as e,Ct as t,N as n,R as r,St as i,a,d as o,f as s,l as c,o as l,s as u,st as d,u as f,z as p}from"./CmCJ0SKP.js";import"./xihTtKlq.js";import{i as m}from"./0k4S-8Dm.js";import{i as h}from"./BZOx0Qre.js";var g=new Set([`$$slots`,`$$events`,`$$legacy`,`ref`,`value`,`type`,`files`,`class`,`data-slot`]),_=e(`<input/>`);function v(e,u){t(u,!0);let m=a(u,`ref`,15,null),v=a(u,`value`,15),y=a(u,`files`,15),b=a(u,`data-slot`,3,`input`),x=l(u,g);var S=p(),C=d(S),w=e=>{var t=_();s(t,e=>({"data-slot":b(),class:e,type:`file`,...x}),[()=>h(`bg-input/20 dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/30 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 h-7 rounded-md border px-2 py-0.5 text-sm transition-colors file:h-6 file:text-xs/relaxed file:font-medium focus-visible:ring-2 aria-invalid:ring-2 md:text-xs/relaxed file:text-foreground placeholder:text-muted-foreground w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,u.class)],void 0,void 0,void 0,!0),c(t,e=>m(e),()=>m()),f(t,y),o(t,v),r(e,t)},T=e=>{var t=_();s(t,e=>({"data-slot":b(),class:e,type:u.type,...x}),[()=>h(`bg-input/20 dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/30 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 h-7 rounded-md border px-2 py-0.5 text-sm transition-colors file:h-6 file:text-xs/relaxed file:font-medium focus-visible:ring-2 aria-invalid:ring-2 md:text-xs/relaxed file:text-foreground placeholder:text-muted-foreground w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,u.class)],void 0,void 0,void 0,!0),c(t,e=>m(e),()=>m()),o(t,v),r(e,t)};n(C,e=>{u.type===`file`?e(w):e(T,-1)}),r(e,S),i()}var y=new Set([`$$slots`,`$$events`,`$$legacy`]);function b(e,t){let n=l(t,y),r=[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`}],[`path`,{d:`M10 9H8`}],[`path`,{d:`M16 13H8`}],[`path`,{d:`M16 17H8`}]];m(e,u({name:`file-text`},()=>n,{get iconNode(){return r}}))}var x=new Set([`$$slots`,`$$events`,`$$legacy`]);function S(e,t){let n=l(t,x),r=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`m16 9-5.5 5.5L8 12`}]];m(e,u({name:`circle-check`},()=>n,{get iconNode(){return r}}))}export{b as n,v as r,S as t};
@@ -1 +0,0 @@
1
- import{o as e,r as t}from"../chunks/BfKHhAfw.js";export{e as load_css,t as start};