skill-creator 2.0.0 → 2.0.2

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 (35) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +2 -2
  3. package/dist/cli.js +107 -27
  4. package/dist/cli.js.map +3 -3
  5. package/dist/daemon.js +106 -26
  6. package/dist/daemon.js.map +3 -3
  7. package/dist/package.json +1 -1
  8. package/dist/webui/_app/immutable/chunks/{CEpOi93z.js → BFnZD865.js} +1 -1
  9. package/dist/webui/_app/immutable/chunks/{D-ecV3TD.js → BNZqT8Gb.js} +1 -1
  10. package/dist/webui/_app/immutable/chunks/{IYkYSIV6.js → C36hgawG.js} +1 -1
  11. package/dist/webui/_app/immutable/chunks/{D0xHg31U.js → CLM6PwBO.js} +1 -1
  12. package/dist/webui/_app/immutable/chunks/CLVPf5uP.js +1 -0
  13. package/dist/webui/_app/immutable/chunks/{DEtYLPO4.js → CQhmWGDZ.js} +1 -1
  14. package/dist/webui/_app/immutable/chunks/Ce6RiTD3.js +2 -0
  15. package/dist/webui/_app/immutable/chunks/{BySEbwqx.js → Ce_bE79q.js} +1 -1
  16. package/dist/webui/_app/immutable/chunks/{B2zyE4XX.js → CnsFCObb.js} +1 -1
  17. package/dist/webui/_app/immutable/chunks/{D25cXQtk.js → CryWMAmp.js} +1 -1
  18. package/dist/webui/_app/immutable/chunks/{DJNLWtK-.js → D68T6slS.js} +1 -1
  19. package/dist/webui/_app/immutable/chunks/{DWcQbrnv.js → DFx4VmvA.js} +1 -1
  20. package/dist/webui/_app/immutable/chunks/{BD9g8Udg.js → DUYTokm-.js} +1 -1
  21. package/dist/webui/_app/immutable/chunks/{BrDKAjtR.js → DbA0Nfjq.js} +1 -1
  22. package/dist/webui/_app/immutable/chunks/{iicbWqXp.js → DkjKuLZP.js} +1 -1
  23. package/dist/webui/_app/immutable/chunks/DrGEPnFY.js +1 -0
  24. package/dist/webui/_app/immutable/entry/{app.CbFi8HIH.js → app.CEIXmsDN.js} +2 -2
  25. package/dist/webui/_app/immutable/entry/start.A-8tRY5f.js +1 -0
  26. package/dist/webui/_app/immutable/nodes/{0.C7-AKGsj.js → 0.DtX11nez.js} +28 -28
  27. package/dist/webui/_app/immutable/nodes/{1.raBmjc20.js → 1.sVOukQaO.js} +1 -1
  28. package/dist/webui/_app/immutable/nodes/{2.ewWz-Ki-.js → 2.Cpm2DXYr.js} +1 -1
  29. package/dist/webui/_app/version.json +1 -1
  30. package/dist/webui/index.html +14 -14
  31. package/package.json +1 -1
  32. package/dist/webui/_app/immutable/chunks/B_YFzSAv.js +0 -2
  33. package/dist/webui/_app/immutable/chunks/BaH4uqzh.js +0 -1
  34. package/dist/webui/_app/immutable/chunks/DLuJKUyD.js +0 -1
  35. package/dist/webui/_app/immutable/entry/start.C3bV1TCO.js +0 -1
package/dist/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "skill-creator",
3
- "version": "2.0.0",
3
+ "version": "2.0.2",
4
4
  "type": "module"
5
5
  }
@@ -1,2 +1,2 @@
1
- import{A as e,At as t,B as n,Ct as r,F as i,G as a,K as o,N as s,R as c,St as l,W as u,X as d,ct as f,d as p,ft as m,gt as h,h as ee,lt as g,m as te,mt as _,nt as v,ot as y,p as b,rt as x,st as S,ut as ne,x as re}from"./CmCJ0SKP.js";import{t as C}from"./BaH4uqzh.js";import"./xihTtKlq.js";import{t as w}from"./D0xHg31U.js";import"./DLuJKUyD.js";import{a as ie,i as T,r as E}from"./D-ecV3TD.js";import{a as ae,c as D,l as oe,n as O,s as k,u as A}from"./BD9g8Udg.js";import{a as j,r as se,s as ce}from"./DJNLWtK-.js";var M=[{id:`anthropics-skills`,label:`Anthropic Skills`,gitUrl:`https://github.com/anthropics/skills.git`,description:`Anthropic 官方维护的 Agent skills 集合。`,homepage:`https://github.com/anthropics/skills`},{id:`vercel-labs-skills`,label:`Vercel Labs Skills`,gitUrl:`https://github.com/vercel-labs/skills.git`,description:`Vercel Labs 维护的社区 Agent skills 集合。`,homepage:`https://github.com/vercel-labs/skills`}];function N(e){return M.find(t=>t.id===e)}var le=n(`<p class="truncate font-mono text-[11px] text-muted-foreground"> </p>`),ue=n(`<span class="shrink-0 text-[11px] text-muted-foreground"> </span>`),de=n(`<div class="flex shrink-0 items-center gap-3 border-b border-amber-500/40 bg-amber-500/10 px-4 py-2.5 text-xs" role="alert" data-testid="session-expired"><span class="min-w-0 flex-1"><span class="font-medium">Scan session expired.</span> <span class="text-muted-foreground">The pinned commit is no longer held by the daemon. Rescan this repository to continue.</span></span> <button type="button" class="h-7 shrink-0 rounded-md border border-border bg-background px-3 text-[11px] font-medium transition-colors hover:bg-muted/50 disabled:opacity-50">Rescan</button></div>`),fe=n(`<p class="px-4 py-8 text-center text-xs text-muted-foreground">Scanning…</p>`),pe=n(`<div class="px-4 text-center"><button type="button" class="rounded-md border border-border px-3 py-1 text-xs hover:bg-muted/50">Retry scan</button></div>`),me=n(`<p class="px-4 py-8 text-center text-xs text-destructive"> </p> <!>`,1),he=n(`<p class="px-4 py-8 text-center text-xs text-muted-foreground">No scan yet.</p>`),ge=n(`<p class="px-4 py-8 text-center text-xs text-muted-foreground">No installable skills found in this repository.</p>`),_e=n(`<button type="button" class="hover:text-foreground">Clear</button>`),ve=n(`<span class="mt-0.5 block text-[10px] text-amber-600 dark:text-amber-400"> </span>`),ye=n(`<button type="button"><input type="checkbox" class="mt-0.5 h-3.5 w-3.5" aria-label="Select skill"/> <span class="min-w-0 flex-1"><span class="block truncate text-[13px] font-medium text-foreground"> </span> <span class="mt-0.5 line-clamp-2 block text-[11px] text-muted-foreground"> </span> <!></span></button>`),be=n(`<p class="mt-2 text-xs text-muted-foreground">Loading…</p>`),xe=n(`<pre class="mt-2 max-h-48 overflow-auto rounded bg-muted/50 p-2 text-[11px] leading-4"> </pre>`),Se=n(`<p class="mt-2 text-xs text-muted-foreground">Select a skill to preview.</p>`),Ce=n(`<p class="mt-2 text-xs text-muted-foreground">No writable workspace providers. Import a directory workspace first.</p>`),we=n(`<li><label class="flex items-center gap-2 text-xs"><input type="checkbox" class="h-3.5 w-3.5"/> <span class="truncate"> </span></label></li>`),Te=n(`<ul class="mt-2 space-y-1"></ul>`),Ee=n(`<p class="mt-2 break-words text-xs text-destructive"> </p>`),De=n(`<div class="p-3 text-xs"><h2 class="font-medium text-muted-foreground">Dry-run preview</h2> <p class="mt-1"> </p></div>`),Oe=n(`<div class="flex items-center justify-between gap-2 rounded border border-border px-2 py-1"><span class="truncate"> </span> <button type="button" class="shrink-0 rounded bg-primary/10 px-2 py-0.5 text-[10px] text-primary hover:bg-primary/20">View in Workspaces</button></div>`),ke=n(`<div class="mt-2 space-y-1"></div>`),Ae=n(`<div class="p-3 text-xs"><h2 class="font-medium text-muted-foreground"> </h2> <!></div>`),je=n(`<div class="flex min-h-0 flex-1"><section class="flex w-1/2 min-w-0 flex-col border-r border-border"><header class="flex shrink-0 items-center justify-between px-3 py-2 text-xs text-muted-foreground"><span> </span> <!></header> <div class="min-h-0 flex-1 overflow-y-auto"></div></section> <section class="flex w-1/2 min-w-0 flex-col overflow-y-auto"><div class="border-b border-border p-3"><h2 class="text-xs font-medium text-muted-foreground">Preview</h2> <!></div> <div class="border-b border-border p-3"><h2 class="text-xs font-medium text-muted-foreground"> </h2> <!> <div class="mt-2 flex gap-2"><button type="button" class="h-7 rounded-md border border-border px-2 text-[11px] hover:bg-muted/50 disabled:opacity-50">Dry-run</button> <button type="button" class="h-7 rounded-md bg-primary px-3 text-[11px] font-medium text-primary-foreground hover:bg-primary/90 disabled:opacity-50"> </button></div> <!></div> <!> <!></section></div>`),Me=n(`<div class="flex h-full flex-col overflow-hidden"><header class="flex shrink-0 items-center gap-3 border-b border-border px-4 py-3"><div class="min-w-0 flex-1"><h1 class="truncate text-sm font-semibold"> </h1> <!></div> <!> <form class="flex shrink-0 items-center gap-1"><input placeholder="branch / tag" title="Optional Git ref to scan (defaults to the repository default branch)" aria-label="Git ref for scanning" class="h-7 w-28 rounded-md border border-input bg-input/20 px-2 font-mono text-[11px] outline-none placeholder:text-muted-foreground focus-visible:border-ring"/> <button type="submit" class="h-7 rounded-md border border-border px-2 text-[11px] transition-colors hover:bg-muted/50 disabled:opacity-50"> </button></form> <button type="button" class="shrink-0 rounded-md border border-border px-2 py-1 text-[11px] hover:bg-muted/50">Discover</button></header> <!> <!></div>`);function P(n,u){r(u,!0);let M=E(),P=T(),F=h(()=>M?.()?.sourceId),Ne=h(()=>d(F)?N(d(F)):void 0),Pe=h(()=>d(F)?ce.user.find(e=>e.id===d(F)):void 0),Fe=h(()=>d(Ne)?.label??d(Pe)?.label??d(F)??`Repository`),I=h(()=>d(Ne)?.gitUrl??d(Pe)?.gitUrl),L=_(null),R=_(!1),z=_(null),B=_(null),V=_(!1),H=_(null),U=_(null),W=_(!1),G=_(null),K=_(``),Ie=h(()=>P?.()?.selected??``),q=h(()=>{let e=d(Ie).split(`,`).map(e=>e.trim()).filter(Boolean);return new Set(e)}),Le=h(()=>P?.()?.skill),J=_(ne([]));x(()=>{j()}),x(()=>{O()});let Re=h(ae),ze=_(null);x(()=>{d(F)&&d(I)&&(d(ze)===d(F)&&d(L)||(m(ze,d(F),!0),Y(d(I))))});async function Y(e,t){m(R,!0),m(z,null),m(L,null),m(B,null),m(H,null),m(U,null),m(G,null);let n=t?.trim()||void 0,{scan:r,error:i}=await A(e,n);m(L,r,!0),m(z,i,!0),r&&d(F)&&se(d(F),{skillCount:r.skills.length,commit:r.commit}),m(R,!1)}x(()=>{if(!d(L)||!d(Le)){m(B,null);return}let e=d(Le);if(!d(L).skills.some(t=>t.id===e)){m(B,null);return}Be(d(L).sessionId,e)});async function Be(e,t){m(V,!0),m(H,null);let{preview:n,error:r}=await oe(e,t);m(B,n,!0),m(H,r,!0),m(V,!1)}function Ve(e){let t=new Set(d(q));t.has(e.id)?t.delete(e.id):t.add(e.id),He(t)}function He(e){let t=[...e].join(`,`),n=new URLSearchParams(w.url.search);t?n.set(`selected`,t):n.delete(`selected`);let r=n.toString();C(`/repository/scan/${encodeURIComponent(d(F)??``)}${r?`?${r}`:``}`,{replaceState:!0})}function Ue(e){let t=new URLSearchParams(w.url.search);t.set(`skill`,e.id),C(`/repository/scan/${encodeURIComponent(d(F)??``)}?${t.toString()}`,{replaceState:!0})}function We(e){let t=d(J).some(t=>t.workspaceId===e.workspaceId&&t.providerId===e.providerId);m(J,t?d(J).filter(t=>t.workspaceId!==e.workspaceId||t.providerId!==e.providerId):[...d(J),e],!0)}function Ge(e){return d(J).some(t=>t.workspaceId===e.workspaceId&&t.providerId===e.providerId)}let Ke=h(()=>d(L)?d(L).skills.filter(e=>d(q).has(e.id)):[]),X=h(()=>d(Ke).filter(e=>e.installable));async function qe(e){if(!d(L)||d(X).length===0||d(J).length===0)return;m(W,!0),m(G,null),m(U,null);let t=d(X).map(e=>e.id),{result:n,error:r}=await k({sessionId:d(L).sessionId,skillIds:t,targets:d(J),dryRun:e});m(U,n,!0),m(G,r,!0),m(W,!1),n&&!e&&await O()}let Je=h(()=>D(d(H))||D(d(G))),Z=h(()=>d(U)?.kind===`result`?d(U):null),Ye=h(()=>d(Z)?d(Z).results.filter(e=>e.status===`installed`||e.status===`overwritten`):[]);function Xe(e,t,n){ie(`workspaces.provider`,{wsId:e,providerId:t},{skill:n})}var Ze=Me(),Qe=y(Ze),Q=y(Qe),$e=y(Q),et=f($e,!0),tt=g($e,2),nt=e=>{var t=le(),n=f(t,!0);v(()=>i(n,d(I))),c(e,t)};s(tt,e=>{d(I)&&e(nt)}),t(Q);var rt=g(Q,2),it=e=>{var t=ue(),n=f(t);v(e=>i(n,`${d(L).skills.length??``} skills · commit ${e??``}`),[()=>d(L).commit.slice(0,12)]),c(e,t)};s(rt,e=>{d(L)&&e(it)});var $=g(rt,2),at=y($);b(at);var ot=g(at,2),st=f(ot,!0);t($);var ct=g($,2);t(Qe);var lt=g(Qe,2),ut=e=>{var n=de(),r=g(y(n),2);t(n),v(()=>r.disabled=d(R)||!d(I)),a(`click`,r,()=>d(I)&&void Y(d(I),d(K))),c(e,n)};s(lt,e=>{d(Je)&&e(ut)});var dt=g(lt,2),ft=e=>{var t=fe();c(e,t)},pt=e=>{var t=me(),n=S(t),r=f(n,!0),o=g(n,2),l=e=>{var t=pe(),n=f(t);a(`click`,n,()=>Y(d(I))),c(e,t)};s(o,e=>{d(I)&&e(l)}),v(()=>i(r,d(z).message)),c(e,t)},mt=e=>{var t=he();c(e,t)},ht=e=>{var t=ge();c(e,t)},gt=n=>{var r=je(),o=y(r),l=y(o),u=y(l),p=f(u),m=g(u,2),h=e=>{var t=_e();a(`click`,t,()=>He(new Set)),c(e,t)};s(m,e=>{d(q).size>0&&e(h)}),t(l);var _=g(l,2);e(_,21,()=>d(L).skills,e=>e.id,(e,n)=>{var r=ye(),o=y(r);b(o);var l=g(o,2),u=y(l),p=f(u,!0),m=g(u,2),h=f(m,!0),_=g(m,2),x=e=>{var t=ve(),r=f(t,!0);v(e=>i(r,e),[()=>d(n).issues.join(` `)||`Not installable`]),c(e,t)};s(_,e=>{d(n).installable||e(x)}),t(l),t(r),v((e,t,a)=>{re(r,1,`flex w-full items-start gap-2 border-b border-border/70 px-3 py-2 text-left transition-colors ${e??``}`),te(r,`aria-pressed`,t),ee(o,a),i(p,d(n).name),i(h,d(n).description||`No description`)},[()=>d(q).has(d(n).id)?`bg-accent`:`hover:bg-accent/60`,()=>d(q).has(d(n).id),()=>d(q).has(d(n).id)]),a(`click`,r,()=>Ue(d(n))),a(`click`,o,e=>{e.stopPropagation(),Ve(d(n))}),c(e,r)}),t(_),t(o);var x=g(o,2),S=y(x),ne=g(y(S),2),C=e=>{var t=be();c(e,t)},w=e=>{var t=xe(),n=f(t,!0);v(()=>i(n,d(B).content)),c(e,t)},ie=e=>{var t=Se();c(e,t)};s(ne,e=>{d(V)?e(C):d(B)?e(w,1):e(ie,-1)}),t(S);var T=g(S,2),E=y(T),ae=f(E),D=g(E,2),oe=e=>{var t=Ce();c(e,t)},O=n=>{var r=Te();e(r,21,()=>d(Re),e=>e.target.workspaceId+`:`+e.target.providerId,(e,n)=>{var r=we(),o=y(r),s=y(o);b(s);var l=g(s,2),u=f(l,!0);t(o),t(r),v(e=>{ee(s,e),i(u,d(n).label)},[()=>Ge(d(n).target)]),a(`change`,s,()=>We(d(n).target)),c(e,r)}),t(r),c(n,r)};s(D,e=>{d(Re).length===0?e(oe):e(O,-1)});var k=g(D,2),A=y(k),j=g(A,2),se=f(j,!0);t(k);var ce=g(k,2),M=e=>{var t=Ee(),n=f(t,!0);v(()=>i(n,d(G).message)),c(e,t)};s(ce,e=>{d(G)&&!d(Je)&&e(M)}),t(T);var N=g(T,2),le=e=>{var n=De(),r=g(y(n),2),a=f(r);t(n),v(()=>i(a,`${d(U).totalInstalls??``} install(s) planned across ${d(U).destinations.length??``} destination(s).`)),c(e,n)};s(N,e=>{d(U)?.kind===`preview`&&e(le)});var ue=g(N,2),de=n=>{var r=Ae(),o=y(r),l=f(o),u=g(o,2),p=n=>{var r=ke();e(r,21,()=>d(Ye),e=>e.target.workspaceId+`:`+e.target.providerId+`:`+e.skillId,(e,n)=>{var r=Oe(),o=y(r),s=f(o),l=g(o,2);t(r),v(()=>i(s,`${d(n).skill??``} → ${d(n).target.workspaceId??``}/${d(n).target.providerId??``}`)),a(`click`,l,()=>Xe(d(n).target.workspaceId,d(n).target.providerId,d(n).skillId)),c(e,r)}),t(r),c(n,r)};s(u,e=>{d(Ye).length>0&&e(p)}),t(r),v(()=>i(l,`Installed ${d(Z).installed??``} · overwritten ${d(Z).overwritten??``} · skipped
1
+ import{A as e,At as t,B as n,Ct as r,F as i,G as a,K as o,N as s,R as c,St as l,W as u,X as d,ct as f,d as p,ft as m,gt as h,h as ee,lt as g,m as te,mt as _,nt as v,ot as y,p as b,rt as x,st as S,ut as ne,x as re}from"./CmCJ0SKP.js";import{t as C}from"./CLVPf5uP.js";import"./xihTtKlq.js";import{t as w}from"./CLM6PwBO.js";import"./DrGEPnFY.js";import{a as ie,i as T,r as E}from"./BNZqT8Gb.js";import{a as ae,c as D,l as oe,n as O,s as k,u as A}from"./DUYTokm-.js";import{a as j,r as se,s as ce}from"./D68T6slS.js";var M=[{id:`anthropics-skills`,label:`Anthropic Skills`,gitUrl:`https://github.com/anthropics/skills.git`,description:`Anthropic 官方维护的 Agent skills 集合。`,homepage:`https://github.com/anthropics/skills`},{id:`vercel-labs-skills`,label:`Vercel Labs Skills`,gitUrl:`https://github.com/vercel-labs/skills.git`,description:`Vercel Labs 维护的社区 Agent skills 集合。`,homepage:`https://github.com/vercel-labs/skills`}];function N(e){return M.find(t=>t.id===e)}var le=n(`<p class="truncate font-mono text-[11px] text-muted-foreground"> </p>`),ue=n(`<span class="shrink-0 text-[11px] text-muted-foreground"> </span>`),de=n(`<div class="flex shrink-0 items-center gap-3 border-b border-amber-500/40 bg-amber-500/10 px-4 py-2.5 text-xs" role="alert" data-testid="session-expired"><span class="min-w-0 flex-1"><span class="font-medium">Scan session expired.</span> <span class="text-muted-foreground">The pinned commit is no longer held by the daemon. Rescan this repository to continue.</span></span> <button type="button" class="h-7 shrink-0 rounded-md border border-border bg-background px-3 text-[11px] font-medium transition-colors hover:bg-muted/50 disabled:opacity-50">Rescan</button></div>`),fe=n(`<p class="px-4 py-8 text-center text-xs text-muted-foreground">Scanning…</p>`),pe=n(`<div class="px-4 text-center"><button type="button" class="rounded-md border border-border px-3 py-1 text-xs hover:bg-muted/50">Retry scan</button></div>`),me=n(`<p class="px-4 py-8 text-center text-xs text-destructive"> </p> <!>`,1),he=n(`<p class="px-4 py-8 text-center text-xs text-muted-foreground">No scan yet.</p>`),ge=n(`<p class="px-4 py-8 text-center text-xs text-muted-foreground">No installable skills found in this repository.</p>`),_e=n(`<button type="button" class="hover:text-foreground">Clear</button>`),ve=n(`<span class="mt-0.5 block text-[10px] text-amber-600 dark:text-amber-400"> </span>`),ye=n(`<button type="button"><input type="checkbox" class="mt-0.5 h-3.5 w-3.5" aria-label="Select skill"/> <span class="min-w-0 flex-1"><span class="block truncate text-[13px] font-medium text-foreground"> </span> <span class="mt-0.5 line-clamp-2 block text-[11px] text-muted-foreground"> </span> <!></span></button>`),be=n(`<p class="mt-2 text-xs text-muted-foreground">Loading…</p>`),xe=n(`<pre class="mt-2 max-h-48 overflow-auto rounded bg-muted/50 p-2 text-[11px] leading-4"> </pre>`),Se=n(`<p class="mt-2 text-xs text-muted-foreground">Select a skill to preview.</p>`),Ce=n(`<p class="mt-2 text-xs text-muted-foreground">No writable workspace providers. Import a directory workspace first.</p>`),we=n(`<li><label class="flex items-center gap-2 text-xs"><input type="checkbox" class="h-3.5 w-3.5"/> <span class="truncate"> </span></label></li>`),Te=n(`<ul class="mt-2 space-y-1"></ul>`),Ee=n(`<p class="mt-2 break-words text-xs text-destructive"> </p>`),De=n(`<div class="p-3 text-xs"><h2 class="font-medium text-muted-foreground">Dry-run preview</h2> <p class="mt-1"> </p></div>`),Oe=n(`<div class="flex items-center justify-between gap-2 rounded border border-border px-2 py-1"><span class="truncate"> </span> <button type="button" class="shrink-0 rounded bg-primary/10 px-2 py-0.5 text-[10px] text-primary hover:bg-primary/20">View in Workspaces</button></div>`),ke=n(`<div class="mt-2 space-y-1"></div>`),Ae=n(`<div class="p-3 text-xs"><h2 class="font-medium text-muted-foreground"> </h2> <!></div>`),je=n(`<div class="flex min-h-0 flex-1"><section class="flex w-1/2 min-w-0 flex-col border-r border-border"><header class="flex shrink-0 items-center justify-between px-3 py-2 text-xs text-muted-foreground"><span> </span> <!></header> <div class="min-h-0 flex-1 overflow-y-auto"></div></section> <section class="flex w-1/2 min-w-0 flex-col overflow-y-auto"><div class="border-b border-border p-3"><h2 class="text-xs font-medium text-muted-foreground">Preview</h2> <!></div> <div class="border-b border-border p-3"><h2 class="text-xs font-medium text-muted-foreground"> </h2> <!> <div class="mt-2 flex gap-2"><button type="button" class="h-7 rounded-md border border-border px-2 text-[11px] hover:bg-muted/50 disabled:opacity-50">Dry-run</button> <button type="button" class="h-7 rounded-md bg-primary px-3 text-[11px] font-medium text-primary-foreground hover:bg-primary/90 disabled:opacity-50"> </button></div> <!></div> <!> <!></section></div>`),Me=n(`<div class="flex h-full flex-col overflow-hidden"><header class="flex shrink-0 items-center gap-3 border-b border-border px-4 py-3"><div class="min-w-0 flex-1"><h1 class="truncate text-sm font-semibold"> </h1> <!></div> <!> <form class="flex shrink-0 items-center gap-1"><input placeholder="branch / tag" title="Optional Git ref to scan (defaults to the repository default branch)" aria-label="Git ref for scanning" class="h-7 w-28 rounded-md border border-input bg-input/20 px-2 font-mono text-[11px] outline-none placeholder:text-muted-foreground focus-visible:border-ring"/> <button type="submit" class="h-7 rounded-md border border-border px-2 text-[11px] transition-colors hover:bg-muted/50 disabled:opacity-50"> </button></form> <button type="button" class="shrink-0 rounded-md border border-border px-2 py-1 text-[11px] hover:bg-muted/50">Discover</button></header> <!> <!></div>`);function P(n,u){r(u,!0);let M=E(),P=T(),F=h(()=>M?.()?.sourceId),Ne=h(()=>d(F)?N(d(F)):void 0),Pe=h(()=>d(F)?ce.user.find(e=>e.id===d(F)):void 0),Fe=h(()=>d(Ne)?.label??d(Pe)?.label??d(F)??`Repository`),I=h(()=>d(Ne)?.gitUrl??d(Pe)?.gitUrl),L=_(null),R=_(!1),z=_(null),B=_(null),V=_(!1),H=_(null),U=_(null),W=_(!1),G=_(null),K=_(``),Ie=h(()=>P?.()?.selected??``),q=h(()=>{let e=d(Ie).split(`,`).map(e=>e.trim()).filter(Boolean);return new Set(e)}),Le=h(()=>P?.()?.skill),J=_(ne([]));x(()=>{j()}),x(()=>{O()});let Re=h(ae),ze=_(null);x(()=>{d(F)&&d(I)&&(d(ze)===d(F)&&d(L)||(m(ze,d(F),!0),Y(d(I))))});async function Y(e,t){m(R,!0),m(z,null),m(L,null),m(B,null),m(H,null),m(U,null),m(G,null);let n=t?.trim()||void 0,{scan:r,error:i}=await A(e,n);m(L,r,!0),m(z,i,!0),r&&d(F)&&se(d(F),{skillCount:r.skills.length,commit:r.commit}),m(R,!1)}x(()=>{if(!d(L)||!d(Le)){m(B,null);return}let e=d(Le);if(!d(L).skills.some(t=>t.id===e)){m(B,null);return}Be(d(L).sessionId,e)});async function Be(e,t){m(V,!0),m(H,null);let{preview:n,error:r}=await oe(e,t);m(B,n,!0),m(H,r,!0),m(V,!1)}function Ve(e){let t=new Set(d(q));t.has(e.id)?t.delete(e.id):t.add(e.id),He(t)}function He(e){let t=[...e].join(`,`),n=new URLSearchParams(w.url.search);t?n.set(`selected`,t):n.delete(`selected`);let r=n.toString();C(`/repository/scan/${encodeURIComponent(d(F)??``)}${r?`?${r}`:``}`,{replaceState:!0})}function Ue(e){let t=new URLSearchParams(w.url.search);t.set(`skill`,e.id),C(`/repository/scan/${encodeURIComponent(d(F)??``)}?${t.toString()}`,{replaceState:!0})}function We(e){let t=d(J).some(t=>t.workspaceId===e.workspaceId&&t.providerId===e.providerId);m(J,t?d(J).filter(t=>t.workspaceId!==e.workspaceId||t.providerId!==e.providerId):[...d(J),e],!0)}function Ge(e){return d(J).some(t=>t.workspaceId===e.workspaceId&&t.providerId===e.providerId)}let Ke=h(()=>d(L)?d(L).skills.filter(e=>d(q).has(e.id)):[]),X=h(()=>d(Ke).filter(e=>e.installable));async function qe(e){if(!d(L)||d(X).length===0||d(J).length===0)return;m(W,!0),m(G,null),m(U,null);let t=d(X).map(e=>e.id),{result:n,error:r}=await k({sessionId:d(L).sessionId,skillIds:t,targets:d(J),dryRun:e});m(U,n,!0),m(G,r,!0),m(W,!1),n&&!e&&await O()}let Je=h(()=>D(d(H))||D(d(G))),Z=h(()=>d(U)?.kind===`result`?d(U):null),Ye=h(()=>d(Z)?d(Z).results.filter(e=>e.status===`installed`||e.status===`overwritten`):[]);function Xe(e,t,n){ie(`workspaces.provider`,{wsId:e,providerId:t},{skill:n})}var Ze=Me(),Qe=y(Ze),Q=y(Qe),$e=y(Q),et=f($e,!0),tt=g($e,2),nt=e=>{var t=le(),n=f(t,!0);v(()=>i(n,d(I))),c(e,t)};s(tt,e=>{d(I)&&e(nt)}),t(Q);var rt=g(Q,2),it=e=>{var t=ue(),n=f(t);v(e=>i(n,`${d(L).skills.length??``} skills · commit ${e??``}`),[()=>d(L).commit.slice(0,12)]),c(e,t)};s(rt,e=>{d(L)&&e(it)});var $=g(rt,2),at=y($);b(at);var ot=g(at,2),st=f(ot,!0);t($);var ct=g($,2);t(Qe);var lt=g(Qe,2),ut=e=>{var n=de(),r=g(y(n),2);t(n),v(()=>r.disabled=d(R)||!d(I)),a(`click`,r,()=>d(I)&&void Y(d(I),d(K))),c(e,n)};s(lt,e=>{d(Je)&&e(ut)});var dt=g(lt,2),ft=e=>{var t=fe();c(e,t)},pt=e=>{var t=me(),n=S(t),r=f(n,!0),o=g(n,2),l=e=>{var t=pe(),n=f(t);a(`click`,n,()=>Y(d(I))),c(e,t)};s(o,e=>{d(I)&&e(l)}),v(()=>i(r,d(z).message)),c(e,t)},mt=e=>{var t=he();c(e,t)},ht=e=>{var t=ge();c(e,t)},gt=n=>{var r=je(),o=y(r),l=y(o),u=y(l),p=f(u),m=g(u,2),h=e=>{var t=_e();a(`click`,t,()=>He(new Set)),c(e,t)};s(m,e=>{d(q).size>0&&e(h)}),t(l);var _=g(l,2);e(_,21,()=>d(L).skills,e=>e.id,(e,n)=>{var r=ye(),o=y(r);b(o);var l=g(o,2),u=y(l),p=f(u,!0),m=g(u,2),h=f(m,!0),_=g(m,2),x=e=>{var t=ve(),r=f(t,!0);v(e=>i(r,e),[()=>d(n).issues.join(` `)||`Not installable`]),c(e,t)};s(_,e=>{d(n).installable||e(x)}),t(l),t(r),v((e,t,a)=>{re(r,1,`flex w-full items-start gap-2 border-b border-border/70 px-3 py-2 text-left transition-colors ${e??``}`),te(r,`aria-pressed`,t),ee(o,a),i(p,d(n).name),i(h,d(n).description||`No description`)},[()=>d(q).has(d(n).id)?`bg-accent`:`hover:bg-accent/60`,()=>d(q).has(d(n).id),()=>d(q).has(d(n).id)]),a(`click`,r,()=>Ue(d(n))),a(`click`,o,e=>{e.stopPropagation(),Ve(d(n))}),c(e,r)}),t(_),t(o);var x=g(o,2),S=y(x),ne=g(y(S),2),C=e=>{var t=be();c(e,t)},w=e=>{var t=xe(),n=f(t,!0);v(()=>i(n,d(B).content)),c(e,t)},ie=e=>{var t=Se();c(e,t)};s(ne,e=>{d(V)?e(C):d(B)?e(w,1):e(ie,-1)}),t(S);var T=g(S,2),E=y(T),ae=f(E),D=g(E,2),oe=e=>{var t=Ce();c(e,t)},O=n=>{var r=Te();e(r,21,()=>d(Re),e=>e.target.workspaceId+`:`+e.target.providerId,(e,n)=>{var r=we(),o=y(r),s=y(o);b(s);var l=g(s,2),u=f(l,!0);t(o),t(r),v(e=>{ee(s,e),i(u,d(n).label)},[()=>Ge(d(n).target)]),a(`change`,s,()=>We(d(n).target)),c(e,r)}),t(r),c(n,r)};s(D,e=>{d(Re).length===0?e(oe):e(O,-1)});var k=g(D,2),A=y(k),j=g(A,2),se=f(j,!0);t(k);var ce=g(k,2),M=e=>{var t=Ee(),n=f(t,!0);v(()=>i(n,d(G).message)),c(e,t)};s(ce,e=>{d(G)&&!d(Je)&&e(M)}),t(T);var N=g(T,2),le=e=>{var n=De(),r=g(y(n),2),a=f(r);t(n),v(()=>i(a,`${d(U).totalInstalls??``} install(s) planned across ${d(U).destinations.length??``} destination(s).`)),c(e,n)};s(N,e=>{d(U)?.kind===`preview`&&e(le)});var ue=g(N,2),de=n=>{var r=Ae(),o=y(r),l=f(o),u=g(o,2),p=n=>{var r=ke();e(r,21,()=>d(Ye),e=>e.target.workspaceId+`:`+e.target.providerId+`:`+e.skillId,(e,n)=>{var r=Oe(),o=y(r),s=f(o),l=g(o,2);t(r),v(()=>i(s,`${d(n).skill??``} → ${d(n).target.workspaceId??``}/${d(n).target.providerId??``}`)),a(`click`,l,()=>Xe(d(n).target.workspaceId,d(n).target.providerId,d(n).skillId)),c(e,r)}),t(r),c(n,r)};s(u,e=>{d(Ye).length>0&&e(p)}),t(r),v(()=>i(l,`Installed ${d(Z).installed??``} · overwritten ${d(Z).overwritten??``} · skipped
2
2
  ${d(Z).skipped??``} · failed ${d(Z).failed??``}`)),c(n,r)};s(ue,e=>{d(Z)&&e(de)}),t(x),t(r),v(()=>{i(p,`${d(q).size??``} selected`),i(ae,`Install targets (${d(J).length??``})`),A.disabled=d(W)||d(X).length===0||d(J).length===0,j.disabled=d(W)||d(X).length===0||d(J).length===0,i(se,d(W)?`Installing…`:`Install`)}),a(`click`,A,()=>qe(!0)),a(`click`,j,()=>qe(!1)),c(n,r)};s(dt,e=>{d(R)?e(ft):d(z)?e(pt,1):d(L)?d(L).skills.length===0?e(ht,3):e(gt,-1):e(mt,2)}),t(Ze),v(()=>{i(et,d(Fe)),ot.disabled=d(R)||!d(I),i(st,d(R)?`Scanning…`:`Rescan`)}),o(`submit`,$,e=>{e.preventDefault(),d(I)&&Y(d(I),d(K))}),p(at,()=>d(K),e=>m(K,e)),a(`click`,ct,()=>C(`/repository`)),c(n,Ze),l()}u([`click`,`change`]);export{P as default};
@@ -1 +1 @@
1
- import{$ as e,At as t,B as n,Ct as r,D as i,F as a,N as o,R as s,St as c,X as l,bt as u,ct as d,ft as f,gt as p,it as m,l as h,lt as g,mt as _,nt as v,ot as y,rt as b,st as ee,wt as x,xt as S,z as te}from"./CmCJ0SKP.js";import{t as C}from"./BaH4uqzh.js";import"./xihTtKlq.js";import{t as w}from"./D0xHg31U.js";import"./DLuJKUyD.js";import{E as T,S as E,T as D,w as O}from"./DWcQbrnv.js";function k(e){return e.activities.find(e=>e.entry)??e.activities[0]}var A=class{entries=new Map;register(e){this.entries.set(e.id,e)}get(e){return this.entries.get(e)}list(){return[...this.entries.values()]}findByPath(e){for(let t of this.entries.values()){let n=t.absolutePattern.replace(/:[^/]+/g,`[^/]+`);try{if(RegExp(`^${n.replace(/\//g,`\\/`)}\\/?$`).test(e))return t}catch{}}}},j=class{apps=new Map;register(e){this.apps.set(e.id,e)}get(e){return this.apps.get(e)}list(){return[...this.apps.values()]}},M=new A,N=new j;function P(e){let t={id:e.id,pattern:e.pattern,params:e.params,search:e.search,component:e.component,children:e.children};return I(t,t.pattern||`/`),t}function F(e,t){L(e,t)}function I(e,t){if(M.register({id:e.id,route:e,absolutePattern:t}),e.children)for(let n of e.children)I(n,R(t,n.pattern))}function L(e,t){let n=R(e,t.pattern);if(M.register({id:t.id,route:t,absolutePattern:n}),t.children)for(let e of t.children)L(n,e)}function R(e,t){let n=e.replace(/\/+$/,``),r=t.replace(/^\/+|\/+$/g,``);return r===``?n||`/`:`${n}/${r}`}function ne(e){return F(e.pattern,e.root),{pattern:e.pattern,root:e.root,entry:e.entry}}function re(e){return{id:e.id,pattern:``,search:e.search,component:e.component}}function ie(e){return N.register(e),{manifest:e}}function ae(e){let t=Object.entries(e).filter(([,e])=>e!=null);if(t.length===0)return``;let n=new URLSearchParams;for(let[e,r]of t)n.set(e,typeof r==`string`?r:String(r));let r=n.toString();return r?`?${r}`:``}function z(e){let t=e.startsWith(`?`)?e.slice(1):e;if(!t)return{};let n={},r=new URLSearchParams(t);for(let[e,t]of r)n[e]=t;return n}function B(e,t,n,r){let i=G(e,H(V(t,r)),r);if(i.length===0)return{kind:`no-match`,reason:`no-route`};let a=K(i),o=i[i.length-1].route,s=o.params;if(s){let e=s.safeParse(a);if(!e.success)return{kind:`parse-error`,reason:`params`,chain:i,errors:e.error}}let c=o.search;if(c){let e=z(n),t=c.safeParse(e);if(!t.success)return{kind:`parse-error`,reason:`search`,chain:i,errors:t.error}}return{kind:`matched`,chain:i}}function V(e,t){let n=t.replace(/\/+$/,``);return e===n?``:e.startsWith(n+`/`)?e.slice(n.length):e}function H(e){let t=e.replace(/^\/+|\/+$/g,``);return t===``?[]:t.split(`/`).map(e=>{try{return decodeURIComponent(e)}catch{return e}})}function U(e){let t=e.replace(/^\/+|\/+$/g,``);return t===``?[]:t.split(`/`).map(e=>e.startsWith(`:`)?{kind:`param`,value:e.slice(1)}:{kind:`static`,value:e})}function W(e,t){let n=e.replace(/\/+$/,``),r=t.replace(/^\/+|\/+$/g,``);return r===``?n:`${n}/${r}`}function G(e,t,n){let r=W(n,e.pattern),i=U(e.pattern);if(t.length<i.length)return[];let a={};for(let e=0;e<i.length;e++){let n=i[e],r=t[e];if(!r)return[];if(n.kind===`static`){if(n.value!==r)return[]}else a[n.value]=r}let o={absolutePattern:r,route:e,rawParams:a},s=t.slice(i.length);if(s.length===0)return[o];if(e.children&&e.children.length>0)for(let t of e.children){let e=G(t,s,r);if(e.length>0)return[o,...e]}return[]}function K(e){let t={};for(let n of e)Object.assign(t,n.rawParams);return t}var q=/:([A-Za-z_][A-Za-z0-9_]*)/g;function J(e,t){return e.replace(q,(e,n)=>{let r=t[n];return r===void 0?`:${n}`:encodeURIComponent(r)})}var Y=`/workspaces`;function oe(e,t){let n=se(e),r=n?N.get(n):void 0;if(!r)return{kind:`redirect`,path:Y};let i=k(r);if(!i)return{kind:`redirect`,path:Y};for(let n of r.activities){let r=B(n.root,e,t,n.pattern);if(r.kind===`matched`)return{kind:`ok`};if(r.kind===`parse-error`)return r.reason===`params`?{kind:`redirect`,path:i.pattern}:{kind:`redirect`,path:e}}return{kind:`redirect`,path:i.pattern}}function se(e){let t=e.replace(/^\/+/,``);return t?t.split(`/`)[0]??null:null}var X=null;function ce(e){X=e}function le(e,t,n){let r=M.get(e);return r?de(r.absolutePattern,t,n):`/`}function ue(e,t,n,r){let i=le(e,t,n);X?.navigate(i,r)}function de(e,t,n){return`${J(e,t??{})}${n?ae(n):``}`}var fe=Symbol(`skill-creator:portal-target`),pe=Symbol(`skill-creator:app-context`);function me(e){x(fe,e)}function he(e){x(pe,e)}var Z=Symbol(`skill-creator:router`);function ge(e){x(Z,{get:e})}function _e(){if(!S(Z))return;let e=u(Z).get;return()=>e().params}function ve(){if(!S(Z))return;let e=u(Z).get;return()=>e().search}function Q(e){let t=e.replace(/^\/+|\/+$/g,``);if(!t)return null;let n=t.split(`/`),r=n[0];return r?{app:r,instanceKey:n[1]??`home`}:null}var ye={navigate(e,t=`PUSH`){t===`REPLACE`?C(e,{replaceState:!0,keepFocus:!0,noScroll:!0}):C(e)},replace(e){this.navigate(e,`REPLACE`)}};T({version:D(1),theme:E([`light`,`dark`,`system`]).default(`system`),sidebarCollapsed:O().default(!1)});var be=n(`<div class="app-shell-error svelte-1oszhz"> </div>`),$=n(`<div class="app-shell-loading svelte-1oszhz" aria-label="Loading"></div>`),xe=n(`<div class="app-shell-empty svelte-1oszhz">No route matched</div>`),Se=n(`<div class="app-shell svelte-1oszhz"><!> <div class="app-portal-root svelte-1oszhz"></div></div>`);function Ce(n,u){r(u,!0);let m=_(null),x=p(()=>B(u.activity.root,w.url.pathname,w.url.search,u.activity.pattern)),S=p(()=>l(x).kind===`matched`?l(x).chain:[]),C=p(()=>A(l(S))),T=p(()=>j(l(x),l(S)));me(()=>l(m)),he({get manifest(){return{id:u.app.id,name:u.app.name,icon:u.app.icon}},get pathname(){return w.url.pathname}}),ge(()=>({match:l(x),params:l(C),search:l(T),chain:l(S)}));let E=_(null),D=_(null),O=null,k=0;b(()=>{let t=(l(S).length>0?l(S)[l(S).length-1]:void 0)?.route,n=e(()=>O);if(!t){O=null,k+=1,f(E,null),f(D,null);return}if(n===t)return;O=t,f(E,null),f(D,null);let r=++k;t.component().then(e=>{r===k&&f(E,e.default,!0)}).catch(e=>{r===k&&f(D,e instanceof Error?e.message:String(e),!0)})});function A(e){if(e.length===0)return;let t={};for(let n of e)Object.assign(t,n.rawParams);return t}function j(e,t){if(e.kind===`no-match`||t.length===0)return;let n=t[t.length-1]?.route.search;if(!n)return;let r=n.safeParse(z(w.url.search));return r.success?r.data:void 0}var M=Se(),N=y(M),P=e=>{var t=be(),n=d(t);v(()=>a(n,`Failed to load: ${l(D)??``}`)),s(e,t)},F=e=>{let t=p(()=>l(E));var n=te(),r=ee(n);i(r,()=>l(t),(e,t)=>{t(e,{})}),s(e,n)},I=e=>{var t=$();s(e,t)},L=e=>{var t=xe();s(e,t)};o(N,e=>{l(D)?e(P):l(E)?e(F,1):l(S).length>0?e(I,2):e(L,-1)});var R=g(N,2);h(R,e=>f(m,e),()=>l(m)),t(M),s(n,M),c()}var we=n(`<div class="tab-empty svelte-t4mhty">Select an app from the sidebar.</div>`),Te=n(`<div class="tab-outlet-root svelte-t4mhty"><!></div>`);function Ee(e,n){r(n,!0);let i=p(()=>w.url.pathname),a=p(()=>Q(l(i))?.app??null),u=p(()=>l(a)?N.get(l(a)):null);m(()=>{let e=oe(l(i),w.url.search);e.kind===`redirect`&&(e.path!==l(i)||w.url.search)&&ye.replace(e.path)});let d=p(()=>{if(!l(u))return null;for(let e of l(u).activities)if(B(e.root,l(i),w.url.search,e.pattern).kind===`matched`)return e;return l(u).activities.find(e=>e.entry)??l(u).activities[0]??null});var f=Te(),h=y(f),g=e=>{Ce(e,{get app(){return l(u)},get activity(){return l(d)}})},_=e=>{var t=we();s(e,t)};o(h,e=>{l(u)&&l(d)?e(g):e(_,-1)}),t(f),s(e,f),c()}export{ue as a,ne as c,N as d,ve as i,re as l,Q as n,ce as o,_e as r,ie as s,Ee as t,P as u};
1
+ import{$ as e,At as t,B as n,Ct as r,D as i,F as a,N as o,R as s,St as c,X as l,bt as u,ct as d,ft as f,gt as p,it as m,l as h,lt as g,mt as _,nt as v,ot as y,rt as b,st as ee,wt as x,xt as S,z as te}from"./CmCJ0SKP.js";import{t as C}from"./CLVPf5uP.js";import"./xihTtKlq.js";import{t as w}from"./CLM6PwBO.js";import"./DrGEPnFY.js";import{E as T,S as E,T as D,w as O}from"./DFx4VmvA.js";function k(e){return e.activities.find(e=>e.entry)??e.activities[0]}var A=class{entries=new Map;register(e){this.entries.set(e.id,e)}get(e){return this.entries.get(e)}list(){return[...this.entries.values()]}findByPath(e){for(let t of this.entries.values()){let n=t.absolutePattern.replace(/:[^/]+/g,`[^/]+`);try{if(RegExp(`^${n.replace(/\//g,`\\/`)}\\/?$`).test(e))return t}catch{}}}},j=class{apps=new Map;register(e){this.apps.set(e.id,e)}get(e){return this.apps.get(e)}list(){return[...this.apps.values()]}},M=new A,N=new j;function P(e){let t={id:e.id,pattern:e.pattern,params:e.params,search:e.search,component:e.component,children:e.children};return I(t,t.pattern||`/`),t}function F(e,t){L(e,t)}function I(e,t){if(M.register({id:e.id,route:e,absolutePattern:t}),e.children)for(let n of e.children)I(n,R(t,n.pattern))}function L(e,t){let n=R(e,t.pattern);if(M.register({id:t.id,route:t,absolutePattern:n}),t.children)for(let e of t.children)L(n,e)}function R(e,t){let n=e.replace(/\/+$/,``),r=t.replace(/^\/+|\/+$/g,``);return r===``?n||`/`:`${n}/${r}`}function ne(e){return F(e.pattern,e.root),{pattern:e.pattern,root:e.root,entry:e.entry}}function re(e){return{id:e.id,pattern:``,search:e.search,component:e.component}}function ie(e){return N.register(e),{manifest:e}}function ae(e){let t=Object.entries(e).filter(([,e])=>e!=null);if(t.length===0)return``;let n=new URLSearchParams;for(let[e,r]of t)n.set(e,typeof r==`string`?r:String(r));let r=n.toString();return r?`?${r}`:``}function z(e){let t=e.startsWith(`?`)?e.slice(1):e;if(!t)return{};let n={},r=new URLSearchParams(t);for(let[e,t]of r)n[e]=t;return n}function B(e,t,n,r){let i=G(e,H(V(t,r)),r);if(i.length===0)return{kind:`no-match`,reason:`no-route`};let a=K(i),o=i[i.length-1].route,s=o.params;if(s){let e=s.safeParse(a);if(!e.success)return{kind:`parse-error`,reason:`params`,chain:i,errors:e.error}}let c=o.search;if(c){let e=z(n),t=c.safeParse(e);if(!t.success)return{kind:`parse-error`,reason:`search`,chain:i,errors:t.error}}return{kind:`matched`,chain:i}}function V(e,t){let n=t.replace(/\/+$/,``);return e===n?``:e.startsWith(n+`/`)?e.slice(n.length):e}function H(e){let t=e.replace(/^\/+|\/+$/g,``);return t===``?[]:t.split(`/`).map(e=>{try{return decodeURIComponent(e)}catch{return e}})}function U(e){let t=e.replace(/^\/+|\/+$/g,``);return t===``?[]:t.split(`/`).map(e=>e.startsWith(`:`)?{kind:`param`,value:e.slice(1)}:{kind:`static`,value:e})}function W(e,t){let n=e.replace(/\/+$/,``),r=t.replace(/^\/+|\/+$/g,``);return r===``?n:`${n}/${r}`}function G(e,t,n){let r=W(n,e.pattern),i=U(e.pattern);if(t.length<i.length)return[];let a={};for(let e=0;e<i.length;e++){let n=i[e],r=t[e];if(!r)return[];if(n.kind===`static`){if(n.value!==r)return[]}else a[n.value]=r}let o={absolutePattern:r,route:e,rawParams:a},s=t.slice(i.length);if(s.length===0)return[o];if(e.children&&e.children.length>0)for(let t of e.children){let e=G(t,s,r);if(e.length>0)return[o,...e]}return[]}function K(e){let t={};for(let n of e)Object.assign(t,n.rawParams);return t}var q=/:([A-Za-z_][A-Za-z0-9_]*)/g;function J(e,t){return e.replace(q,(e,n)=>{let r=t[n];return r===void 0?`:${n}`:encodeURIComponent(r)})}var Y=`/workspaces`;function oe(e,t){let n=se(e),r=n?N.get(n):void 0;if(!r)return{kind:`redirect`,path:Y};let i=k(r);if(!i)return{kind:`redirect`,path:Y};for(let n of r.activities){let r=B(n.root,e,t,n.pattern);if(r.kind===`matched`)return{kind:`ok`};if(r.kind===`parse-error`)return r.reason===`params`?{kind:`redirect`,path:i.pattern}:{kind:`redirect`,path:e}}return{kind:`redirect`,path:i.pattern}}function se(e){let t=e.replace(/^\/+/,``);return t?t.split(`/`)[0]??null:null}var X=null;function ce(e){X=e}function le(e,t,n){let r=M.get(e);return r?de(r.absolutePattern,t,n):`/`}function ue(e,t,n,r){let i=le(e,t,n);X?.navigate(i,r)}function de(e,t,n){return`${J(e,t??{})}${n?ae(n):``}`}var fe=Symbol(`skill-creator:portal-target`),pe=Symbol(`skill-creator:app-context`);function me(e){x(fe,e)}function he(e){x(pe,e)}var Z=Symbol(`skill-creator:router`);function ge(e){x(Z,{get:e})}function _e(){if(!S(Z))return;let e=u(Z).get;return()=>e().params}function ve(){if(!S(Z))return;let e=u(Z).get;return()=>e().search}function Q(e){let t=e.replace(/^\/+|\/+$/g,``);if(!t)return null;let n=t.split(`/`),r=n[0];return r?{app:r,instanceKey:n[1]??`home`}:null}var ye={navigate(e,t=`PUSH`){t===`REPLACE`?C(e,{replaceState:!0,keepFocus:!0,noScroll:!0}):C(e)},replace(e){this.navigate(e,`REPLACE`)}};T({version:D(1),theme:E([`light`,`dark`,`system`]).default(`system`),sidebarCollapsed:O().default(!1)});var be=n(`<div class="app-shell-error svelte-1oszhz"> </div>`),$=n(`<div class="app-shell-loading svelte-1oszhz" aria-label="Loading"></div>`),xe=n(`<div class="app-shell-empty svelte-1oszhz">No route matched</div>`),Se=n(`<div class="app-shell svelte-1oszhz"><!> <div class="app-portal-root svelte-1oszhz"></div></div>`);function Ce(n,u){r(u,!0);let m=_(null),x=p(()=>B(u.activity.root,w.url.pathname,w.url.search,u.activity.pattern)),S=p(()=>l(x).kind===`matched`?l(x).chain:[]),C=p(()=>A(l(S))),T=p(()=>j(l(x),l(S)));me(()=>l(m)),he({get manifest(){return{id:u.app.id,name:u.app.name,icon:u.app.icon}},get pathname(){return w.url.pathname}}),ge(()=>({match:l(x),params:l(C),search:l(T),chain:l(S)}));let E=_(null),D=_(null),O=null,k=0;b(()=>{let t=(l(S).length>0?l(S)[l(S).length-1]:void 0)?.route,n=e(()=>O);if(!t){O=null,k+=1,f(E,null),f(D,null);return}if(n===t)return;O=t,f(E,null),f(D,null);let r=++k;t.component().then(e=>{r===k&&f(E,e.default,!0)}).catch(e=>{r===k&&f(D,e instanceof Error?e.message:String(e),!0)})});function A(e){if(e.length===0)return;let t={};for(let n of e)Object.assign(t,n.rawParams);return t}function j(e,t){if(e.kind===`no-match`||t.length===0)return;let n=t[t.length-1]?.route.search;if(!n)return;let r=n.safeParse(z(w.url.search));return r.success?r.data:void 0}var M=Se(),N=y(M),P=e=>{var t=be(),n=d(t);v(()=>a(n,`Failed to load: ${l(D)??``}`)),s(e,t)},F=e=>{let t=p(()=>l(E));var n=te(),r=ee(n);i(r,()=>l(t),(e,t)=>{t(e,{})}),s(e,n)},I=e=>{var t=$();s(e,t)},L=e=>{var t=xe();s(e,t)};o(N,e=>{l(D)?e(P):l(E)?e(F,1):l(S).length>0?e(I,2):e(L,-1)});var R=g(N,2);h(R,e=>f(m,e),()=>l(m)),t(M),s(n,M),c()}var we=n(`<div class="tab-empty svelte-t4mhty">Select an app from the sidebar.</div>`),Te=n(`<div class="tab-outlet-root svelte-t4mhty"><!></div>`);function Ee(e,n){r(n,!0);let i=p(()=>w.url.pathname),a=p(()=>Q(l(i))?.app??null),u=p(()=>l(a)?N.get(l(a)):null);m(()=>{let e=oe(l(i),w.url.search);e.kind===`redirect`&&(e.path!==l(i)||w.url.search)&&ye.replace(e.path)});let d=p(()=>{if(!l(u))return null;for(let e of l(u).activities)if(B(e.root,l(i),w.url.search,e.pattern).kind===`matched`)return e;return l(u).activities.find(e=>e.entry)??l(u).activities[0]??null});var f=Te(),h=y(f),g=e=>{Ce(e,{get app(){return l(u)},get activity(){return l(d)}})},_=e=>{var t=we();s(e,t)};o(h,e=>{l(u)&&l(d)?e(g):e(_,-1)}),t(f),s(e,f),c()}export{ue as a,ne as c,N as d,ve as i,re as l,Q as n,ce as o,_e as r,ie as s,Ee as t,P as u};
@@ -1 +1 @@
1
- import{A as e,At as t,B as n,Ct as r,D as i,F as a,G as o,N as s,R as c,St as l,W as u,X as d,ct as f,gt as p,kt as m,lt as h,nt as g,o as _,ot as v,s as y,st as b,z as x}from"./CmCJ0SKP.js";import{t as S}from"./BaH4uqzh.js";import"./xihTtKlq.js";import"./DLuJKUyD.js";import{t as C}from"./BkEnd9_Z.js";import"./D25cXQtk.js";import{a as w}from"./BD9g8Udg.js";import{n as T,t as E}from"./0umLG1IN.js";import{n as D,t as O}from"./BYNWtKcf.js";var k=new Set([`$$slots`,`$$events`,`$$legacy`]);function A(e,t){let n=_(t,k),r=[[`path`,{d:`m16 18 6-6-6-6`}],[`path`,{d:`m8 6-6 6 6 6`}]];C(e,y({name:`code`},()=>n,{get iconNode(){return r}}))}var j=new Set([`$$slots`,`$$events`,`$$legacy`]);function M(e,t){let n=_(t,j),r=[[`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`}]];C(e,y({name:`pen`},()=>n,{get iconNode(){return r}}))}var N=new Set([`$$slots`,`$$events`,`$$legacy`]);function P(e,t){let n=_(t,N),r=[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`}]];C(e,y({name:`database`},()=>n,{get iconNode(){return r}}))}var F=new Set([`$$slots`,`$$events`,`$$legacy`]);function I(e,t){let n=_(t,F),r=[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z`}],[`circle`,{cx:`13.5`,cy:`6.5`,r:`.5`,fill:`currentColor`}],[`circle`,{cx:`17.5`,cy:`10.5`,r:`.5`,fill:`currentColor`}],[`circle`,{cx:`6.5`,cy:`12.5`,r:`.5`,fill:`currentColor`}],[`circle`,{cx:`8.5`,cy:`7.5`,r:`.5`,fill:`currentColor`}]];C(e,y({name:`palette`},()=>n,{get iconNode(){return r}}))}var L=new Set([`$$slots`,`$$events`,`$$legacy`]);function R(e,t){let n=_(t,L),r=[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`}]];C(e,y({name:`server`},()=>n,{get iconNode(){return r}}))}var z=new Set([`$$slots`,`$$events`,`$$legacy`]);function B(e,t){let n=_(t,z),r=[[`path`,{d:`M12 3v18`}],[`path`,{d:`m19 8 3 8a5 5 0 0 1-6 0zV7`}],[`path`,{d:`M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1`}],[`path`,{d:`m5 8 3 8a5 5 0 0 1-6 0zV7`}],[`path`,{d:`M7 21h10`}]];C(e,y({name:`scale`},()=>n,{get iconNode(){return r}}))}var V=new Set([`$$slots`,`$$events`,`$$legacy`]);function H(e,t){let n=_(t,V),r=[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`}],[`path`,{d:`M12 22V12`}]];C(e,y({name:`box`},()=>n,{get iconNode(){return r}}))}var U=n(`<button class="rounded-lg border border-border p-3 text-left transition-colors hover:bg-muted/50"><div class="text-sm font-medium"> </div> <p class="mt-1 text-xs text-muted-foreground line-clamp-2"> </p></button>`),W=n(`<section><div class="mb-2 flex items-center gap-2"><!> <h2 class="text-sm font-medium"> </h2></div> <div class="grid grid-cols-1 gap-2 sm:grid-cols-2 lg:grid-cols-3"></div></section>`),G=n(`<div class="flex h-full flex-col overflow-y-auto"><header class="shrink-0 border-b border-border px-5 py-4"><h1 class="text-lg font-semibold">Creator</h1> <p class="mt-0.5 text-xs text-muted-foreground">Write skills with AI assistance, test them in context, and iterate.</p></header> <div class="mx-auto w-full max-w-4xl space-y-6 p-5"><div class="flex gap-3"><button class="flex items-center gap-2 rounded-lg border border-border px-4 py-2 text-sm font-medium transition-colors hover:bg-muted/50"><!> New skill</button> <button class="flex items-center gap-2 rounded-lg border border-border px-4 py-2 text-sm font-medium transition-colors hover:bg-muted/50"><!> Open existing</button></div> <div class="space-y-5"></div></div></div>`);function K(n,u){r(u,!0);let _={coding:A,writing:M,data:P,design:I,devops:R,legal:B,general:H},y=p(()=>Object.entries(D).map(([e,t])=>({category:e,label:t.label,icon:_[e]??H,templates:O.filter(t=>t.category===e)}))),C=p(w);function k(e){let t=d(C)[0];if(!t){S(`/workspaces`);return}S(`/creator/new/${t.target.workspaceId}/${t.target.providerId}?template=${e}`)}function j(){let e=d(C)[0];if(!e){S(`/workspaces`);return}S(`/creator/new/${e.target.workspaceId}/${e.target.providerId}`)}var N=G(),F=h(v(N),2),L=v(F),z=v(L),V=v(z);E(V,{class:`h-4 w-4`}),m(),t(z);var K=h(z,2),q=v(K);T(q,{class:`h-4 w-4`}),m(),t(K),t(L);var J=h(L,2);e(J,21,()=>d(y),e=>e.category,(n,r)=>{var l=x(),u=b(l),p=n=>{var s=W(),l=v(s),u=v(l);i(u,()=>d(r).icon,(e,t)=>{t(e,{class:`h-4 w-4 text-muted-foreground`})});var p=h(u,2),m=f(p,!0);t(l);var _=h(l,2);e(_,21,()=>d(r).templates,e=>e.id,(e,n)=>{var r=U(),i=v(r),s=f(i,!0),l=h(i,2),u=f(l,!0);t(r),g(()=>{a(s,d(n).name),a(u,d(n).description)}),o(`click`,r,()=>k(d(n).id)),c(e,r)}),t(_),t(s),g(()=>a(m,d(r).label)),c(n,s)};s(u,e=>{d(r).templates.length>0&&e(p)}),c(n,l)}),t(J),t(F),t(N),o(`click`,z,j),o(`click`,K,()=>void S(`/workspaces`)),c(n,N),l()}u([`click`]);export{K as default};
1
+ import{A as e,At as t,B as n,Ct as r,D as i,F as a,G as o,N as s,R as c,St as l,W as u,X as d,ct as f,gt as p,kt as m,lt as h,nt as g,o as _,ot as v,s as y,st as b,z as x}from"./CmCJ0SKP.js";import{t as S}from"./CLVPf5uP.js";import"./xihTtKlq.js";import"./DrGEPnFY.js";import{t as C}from"./BkEnd9_Z.js";import"./CryWMAmp.js";import{a as w}from"./DUYTokm-.js";import{n as T,t as E}from"./0umLG1IN.js";import{n as D,t as O}from"./BYNWtKcf.js";var k=new Set([`$$slots`,`$$events`,`$$legacy`]);function A(e,t){let n=_(t,k),r=[[`path`,{d:`m16 18 6-6-6-6`}],[`path`,{d:`m8 6-6 6 6 6`}]];C(e,y({name:`code`},()=>n,{get iconNode(){return r}}))}var j=new Set([`$$slots`,`$$events`,`$$legacy`]);function M(e,t){let n=_(t,j),r=[[`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`}]];C(e,y({name:`pen`},()=>n,{get iconNode(){return r}}))}var N=new Set([`$$slots`,`$$events`,`$$legacy`]);function P(e,t){let n=_(t,N),r=[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`}]];C(e,y({name:`database`},()=>n,{get iconNode(){return r}}))}var F=new Set([`$$slots`,`$$events`,`$$legacy`]);function I(e,t){let n=_(t,F),r=[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z`}],[`circle`,{cx:`13.5`,cy:`6.5`,r:`.5`,fill:`currentColor`}],[`circle`,{cx:`17.5`,cy:`10.5`,r:`.5`,fill:`currentColor`}],[`circle`,{cx:`6.5`,cy:`12.5`,r:`.5`,fill:`currentColor`}],[`circle`,{cx:`8.5`,cy:`7.5`,r:`.5`,fill:`currentColor`}]];C(e,y({name:`palette`},()=>n,{get iconNode(){return r}}))}var L=new Set([`$$slots`,`$$events`,`$$legacy`]);function R(e,t){let n=_(t,L),r=[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`}]];C(e,y({name:`server`},()=>n,{get iconNode(){return r}}))}var z=new Set([`$$slots`,`$$events`,`$$legacy`]);function B(e,t){let n=_(t,z),r=[[`path`,{d:`M12 3v18`}],[`path`,{d:`m19 8 3 8a5 5 0 0 1-6 0zV7`}],[`path`,{d:`M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1`}],[`path`,{d:`m5 8 3 8a5 5 0 0 1-6 0zV7`}],[`path`,{d:`M7 21h10`}]];C(e,y({name:`scale`},()=>n,{get iconNode(){return r}}))}var V=new Set([`$$slots`,`$$events`,`$$legacy`]);function H(e,t){let n=_(t,V),r=[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`}],[`path`,{d:`M12 22V12`}]];C(e,y({name:`box`},()=>n,{get iconNode(){return r}}))}var U=n(`<button class="rounded-lg border border-border p-3 text-left transition-colors hover:bg-muted/50"><div class="text-sm font-medium"> </div> <p class="mt-1 text-xs text-muted-foreground line-clamp-2"> </p></button>`),W=n(`<section><div class="mb-2 flex items-center gap-2"><!> <h2 class="text-sm font-medium"> </h2></div> <div class="grid grid-cols-1 gap-2 sm:grid-cols-2 lg:grid-cols-3"></div></section>`),G=n(`<div class="flex h-full flex-col overflow-y-auto"><header class="shrink-0 border-b border-border px-5 py-4"><h1 class="text-lg font-semibold">Creator</h1> <p class="mt-0.5 text-xs text-muted-foreground">Write skills with AI assistance, test them in context, and iterate.</p></header> <div class="mx-auto w-full max-w-4xl space-y-6 p-5"><div class="flex gap-3"><button class="flex items-center gap-2 rounded-lg border border-border px-4 py-2 text-sm font-medium transition-colors hover:bg-muted/50"><!> New skill</button> <button class="flex items-center gap-2 rounded-lg border border-border px-4 py-2 text-sm font-medium transition-colors hover:bg-muted/50"><!> Open existing</button></div> <div class="space-y-5"></div></div></div>`);function K(n,u){r(u,!0);let _={coding:A,writing:M,data:P,design:I,devops:R,legal:B,general:H},y=p(()=>Object.entries(D).map(([e,t])=>({category:e,label:t.label,icon:_[e]??H,templates:O.filter(t=>t.category===e)}))),C=p(w);function k(e){let t=d(C)[0];if(!t){S(`/workspaces`);return}S(`/creator/new/${t.target.workspaceId}/${t.target.providerId}?template=${e}`)}function j(){let e=d(C)[0];if(!e){S(`/workspaces`);return}S(`/creator/new/${e.target.workspaceId}/${e.target.providerId}`)}var N=G(),F=h(v(N),2),L=v(F),z=v(L),V=v(z);E(V,{class:`h-4 w-4`}),m(),t(z);var K=h(z,2),q=v(K);T(q,{class:`h-4 w-4`}),m(),t(K),t(L);var J=h(L,2);e(J,21,()=>d(y),e=>e.category,(n,r)=>{var l=x(),u=b(l),p=n=>{var s=W(),l=v(s),u=v(l);i(u,()=>d(r).icon,(e,t)=>{t(e,{class:`h-4 w-4 text-muted-foreground`})});var p=h(u,2),m=f(p,!0);t(l);var _=h(l,2);e(_,21,()=>d(r).templates,e=>e.id,(e,n)=>{var r=U(),i=v(r),s=f(i,!0),l=h(i,2),u=f(l,!0);t(r),g(()=>{a(s,d(n).name),a(u,d(n).description)}),o(`click`,r,()=>k(d(n).id)),c(e,r)}),t(_),t(s),g(()=>a(m,d(r).label)),c(n,s)};s(u,e=>{d(r).templates.length>0&&e(p)}),c(n,l)}),t(J),t(F),t(N),o(`click`,z,j),o(`click`,K,()=>void S(`/workspaces`)),c(n,N),l()}u([`click`]);export{K as default};
@@ -1 +1 @@
1
- import"./CmCJ0SKP.js";import{a as e}from"./BaH4uqzh.js";var t={get data(){return e.data},get error(){return e.error},get form(){return e.form},get params(){return e.params},get route(){return e.route},get state(){return e.state},get status(){return e.status},get url(){return e.url}};export{t};
1
+ import"./CmCJ0SKP.js";import{a as e}from"./CLVPf5uP.js";var t={get data(){return e.data},get error(){return e.error},get form(){return e.form},get params(){return e.params},get route(){return e.route},get state(){return e.state},get status(){return e.status},get url(){return e.url}};export{t};
@@ -0,0 +1 @@
1
+ import{$ as e,Q as t,X as n,Z as r,ft as i,mt as a,r as o,t as s,vt as c}from"./CmCJ0SKP.js";var l=class{constructor(e,t){this.status=e,this.body=typeof t==`string`?{message:t}:t||{message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}},u=class{constructor(e,t){try{new Headers({location:t})}catch{throw Error(`Invalid redirect location ${JSON.stringify(t)}: this string contains characters that cannot be used in HTTP headers`)}this.status=e,this.location=t}},d=class extends Error{constructor(e,t,n){super(n),this.status=e,this.text=t}};new URL(`sveltekit-internal://`);function f(e,t){return e===`/`||t===`ignore`?e:t===`never`?e.endsWith(`/`)?e.slice(0,-1):e:t===`always`&&!e.endsWith(`/`)?e+`/`:e}function p(e){return e.split(`%25`).map(decodeURI).join(`%25`)}function ee(e){for(let t in e)e[t]=decodeURIComponent(e[t]);return e}function m({href:e}){return e.split(`#`)[0]}function h(){}function g(...e){let t=5381;for(let n of e)if(typeof n==`string`){let e=n.length;for(;e;)t=t*33^n.charCodeAt(--e)}else if(ArrayBuffer.isView(n)){let e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r=e.length;for(;r;)t=t*33^e[--r]}else throw TypeError(`value must be a string or TypedArray`);return(t>>>0).toString(36)}new TextEncoder;function _(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}var te=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||`GET`)!==`GET`&&v.delete(b(e)),te(e,t));var v=new Map;function y(e,t){let n=b(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:e,...t}=JSON.parse(r.textContent);r.getAttribute(`data-b64`)!==null&&(e=_(e));let i=r.getAttribute(`data-ttl`);return i&&v.set(n,{body:e,init:t,ttl:1e3*Number(i)}),Promise.resolve(new Response(e,t))}return window.fetch(e,t)}function ne(e,t,n){if(v.size>0){let t=b(e,n),r=v.get(t);if(r){if(performance.now()<r.ttl&&[`default`,`force-cache`,`only-if-cached`,void 0].includes(n?.cache))return new Response(r.body,r.init);v.delete(t)}}return window.fetch(t,n)}function b(e,t){let n=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){let e=[];t.headers&&e.push([...new Headers(t.headers)].join(`,`)),t.body&&(typeof t.body==`string`||ArrayBuffer.isView(t.body))&&e.push(t.body),n+=`[data-hash="${g(...e)}"]`}return n}var re=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/,ie=/^\/\((?:[^)]+)\)$/;function ae(e){let t=[];return{pattern:e===`/`||ie.test(e)?/^\/$/:RegExp(`^${se(e).map(e=>{let n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(e);if(n)return t.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),`(?:/([^]*))?`;let r=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(e);if(r)return t.push({name:r[1],matcher:r[2],optional:!0,rest:!1,chained:!0}),`(?:/([^/]+))?`;if(!e)return;let i=e.split(/\[(.+?)\](?!\])/);return`/`+i.map((e,n)=>{if(n%2){if(e.startsWith(`x+`))return le(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith(`u+`))return le(String.fromCharCode(...e.slice(2).split(`-`).map(e=>parseInt(e,16))));let[,r,a,o,s]=re.exec(e);return t.push({name:o,matcher:s,optional:!!r,rest:!!a,chained:a?n===1&&i[0]===``:!1}),a?`([^]*?)`:r?`([^/]*)?`:`([^/]+?)`}return le(e)}).join(``)}).join(``)}/?$`),params:t}}function oe(e){return e!==``&&!/^\([^)]+\)$/.test(e)}function se(e){return e.slice(1).split(`/`).filter(oe)}function ce(e,t,n){let r={},i=e.slice(1),a=i.filter(e=>e!==void 0),o=0;for(let e=0;e<t.length;e+=1){let s=t[e],c=i[e-o];if(s.chained&&s.rest&&o&&(c=i.slice(e-o,e+1).filter(e=>e).join(`/`),o=0),c===void 0){if(s.rest)c=``;else continue}if(!s.matcher||n[s.matcher](c)){r[s.name]=c;let n=t[e+1],l=i[e+1];n&&!n.rest&&n.optional&&l&&s.chained&&(o=0),!n&&!l&&Object.keys(r).length===a.length&&(o=0);continue}if(s.optional&&s.chained){o++;continue}return}if(!o)return r}function le(e){return e.normalize().replace(/[[\]]/g,`\\$&`).replace(/%/g,`%25`).replace(/\//g,`%2[Ff]`).replace(/\?/g,`%3[Ff]`).replace(/#/g,`%23`).replace(/[.*+?^${}()|\\]/g,`\\$&`)}function ue({nodes:e,server_loads:t,dictionary:n,matchers:r}){let i=new Set(t);return Object.entries(n).map(([t,[n,i,s]])=>{let{pattern:c,params:l}=ae(t),u={id:t,exec:e=>{let t=c.exec(e);if(t)return ce(t,l,r)},errors:[1,...s||[]].map(t=>e[t]),layouts:[0,...i||[]].map(o),leaf:a(n)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function a(t){let n=t<0;return n&&(t=~t),[n,e[t]]}function o(t){return t===void 0?t:[i.has(t),e[t]]}}function de(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function fe(e,t,n=JSON.stringify){let r=n(t);try{sessionStorage[e]=r}catch{}}var x=globalThis.__sveltekit_1tpjamt?.base??``,pe=globalThis.__sveltekit_1tpjamt?.assets??x??``,me=`1789420122752`,he=`sveltekit:snapshot`,ge=`sveltekit:scroll`,_e=`sveltekit:states`,ve=`sveltekit:pageurl`,S=`sveltekit:history`,C=`sveltekit:navigation`,w={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},T=location.origin;function ye(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){let e=document.getElementsByTagName(`base`);t=e.length?e[0].href:document.URL}return new URL(e,t)}function E(){return{x:pageXOffset,y:pageYOffset}}function D(e,t){return e.getAttribute(`data-sveltekit-${t}`)}var be={...w,"":w.hover};function xe(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function Se(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()===`A`&&e.hasAttribute(`href`))return e;e=xe(e)}}function Ce(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){let e=location.hash.split(`#`)[1]||`/`;r.hash=`#${e}${r.hash}`}}catch{}let i=e instanceof SVGAElement?e.target.baseVal:e.target,a=!r||!!i||k(r,t,n)||(e.getAttribute(`rel`)||``).split(/\s+/).includes(`external`),o=r?.origin===T&&e.hasAttribute(`download`);return{url:r,external:a,target:i,download:o}}function O(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=D(s,`preload-code`)),i===null&&(i=D(s,`preload-data`)),t===null&&(t=D(s,`keepfocus`)),n===null&&(n=D(s,`noscroll`)),a===null&&(a=D(s,`reload`)),o===null&&(o=D(s,`replacestate`)),s=xe(s);function c(e){switch(e){case``:case`true`:return!0;case`off`:case`false`:return!1;default:return}}return{preload_code:be[r??`off`],preload_data:be[i??`off`],keepfocus:c(t),noscroll:c(n),reload:c(a),replace_state:c(o)}}function we(e){let t=c(e),n=!0;function r(){n=!0,t.update(e=>e)}function i(e){n=!1,t.set(e)}function a(e){let r;return t.subscribe(t=>{(r===void 0||n&&t!==r)&&e(r=t)})}return{notify:r,set:i,subscribe:a}}var Te={v:h};function Ee(){let{set:e,subscribe:t}=c(!1),n;async function r(){clearTimeout(n);try{let t=await fetch(`${pe}/_app/version.json`,{headers:{pragma:`no-cache`,"cache-control":`no-cache`}});if(!t.ok)return!1;let r=(await t.json()).version!==me;return r&&(e(!0),Te.v(),clearTimeout(n)),r}catch{return!1}}return{subscribe:t,check:r}}function k(e,t,n){return e.origin!==T||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function De(e){}var Oe=2**32-1-1,ke=Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);function Ae(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getPrototypeOf(t)===null||Object.getOwnPropertyNames(t).sort().join(`\0`)===ke}function je(e){return Object.prototype.toString.call(e).slice(8,-1)}function Me(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.getOwnPropertyDescriptor(e,t).enumerable)}function Ne(e){return!(!Number.isInteger(e)||e<0||e>Oe)}function Pe(e){if(e.length===0||e.length>1&&e.charCodeAt(0)===48)return!1;for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<48||n>57)return!1}return Ne(+e)}function Fe(e){for(var t=e.length-1;t>=0&&!Pe(e[t]);t--);return t+1}function Ie(e){let t=Object.keys(e);return t.length=Fe(t),t}Uint8Array.fromBase64,typeof process==`object`&&process.versions?.node;var Le=Object.freeze({kind:`not-plain`}),Re=Object.freeze({kind:`symbol-keys`});Object.freeze({identify:e=>e,typeOf:e=>e===null?`null`:typeof e,toPrimitive:e=>e,tagOf:e=>je(e),isThenable:e=>typeof e.then==`function`,toPromise:e=>Promise.resolve(e),unbox:e=>e.valueOf(),toISOString:e=>isNaN(e.getDate())?``:e.toISOString(),toStringValue:e=>e.toString(),regExpInfo:e=>({source:e.source,flags:e.flags}),valuesOf:e=>e,entriesOf:e=>e,viewInfo:e=>({buffer:e.buffer,byteOffset:e.byteOffset,byteLength:e.byteLength,length:e.length,bufferByteLength:e.buffer.byteLength}),toArrayBuffer:e=>e,lengthOf:e=>e.length,hasOwn:(e,t)=>Object.hasOwn(e,t),indicesOf:e=>Ie(e),shapeOf:e=>Ae(e)?Me(e).length>0?Re:{kind:Object.getPrototypeOf(e)===null?`null-proto`:`plain`,keys:Object.keys(e)}:Le,get:(e,t)=>e[t]}),Object.freeze({fromPrimitive:e=>e,fromISOString:e=>new Date(e),fromStringValue:(e,t)=>e===`URL`?new URL(t):e===`URLSearchParams`?new URLSearchParams(t):Temporal[e.slice(9)].from(t),fromArrayBuffer:e=>e,fromRegExpInfo:(e,t)=>new RegExp(e,t),fromViewInfo:(e,t,n,r)=>{let i=globalThis[e];return n===void 0?new i(t):new i(t,n,r)},box:e=>Object(e),createArray:e=>Array(e),createSparseArray:e=>{let t=[];return t[Oe]=void 0,delete t[Oe],t.length=e,t},createObject:()=>({}),createNullPrototypeObject:()=>Object.create(null),createSet:()=>new Set,createMap:()=>new Map,set:(e,t,n)=>{e[t]=n},addValue:(e,t)=>{e.add(t)},addEntry:(e,t,n)=>{e.set(t,n)}});var ze=new Set([`load`,`prerender`,`csr`,`ssr`,`trailingSlash`,`config`]);[...ze],[...new Set([...ze])];function Be(e){return e.filter(e=>e!=null)}function A(e,t){return e+`/`+t}function Ve(e){return e instanceof l||e instanceof d?e.status:500}function He(e){return e instanceof d?e.text:`Internal Error`}var j,M,Ue,We=o.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(o.toString()),Ge=`a:`;We?(j={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Ge)},M={current:null},Ue={current:!1}):(j=new class{#e=a({});get data(){return n(this.#e)}set data(e){i(this.#e,e)}#t=a(null);get form(){return n(this.#t)}set form(e){i(this.#t,e)}#n=a(null);get error(){return n(this.#n)}set error(e){i(this.#n,e)}#r=a({});get params(){return n(this.#r)}set params(e){i(this.#r,e)}#i=a({id:null});get route(){return n(this.#i)}set route(e){i(this.#i,e)}#a=a({});get state(){return n(this.#a)}set state(e){i(this.#a,e)}#o=a(-1);get status(){return n(this.#o)}set status(e){i(this.#o,e)}#s=a(new URL(Ge));get url(){return n(this.#s)}set url(e){i(this.#s,e)}},M=new class{#e=a(null);get current(){return n(this.#e)}set current(e){i(this.#e,e)}},Ue=new class{#e=a(!1);get current(){return n(this.#e)}set current(e){i(this.#e,e)}},Te.v=()=>Ue.current=!0);function Ke(e){Object.assign(j,e)}var{onMount:qe,tick:Je}=s,Ye=e??(e=>e()),Xe=new Set([`icon`,`shortcut icon`,`apple-touch-icon`]),N=null,P=de(`sveltekit:scroll`)??{},F=de(`sveltekit:snapshot`)??{},I={url:we({}),page:we({}),navigating:c(null),updated:Ee()};function Ze(e){P[e]=E()}function Qe(e,t){let n=e+1;for(;P[n];)delete P[n],n+=1;for(n=t+1;F[n];)delete F[n],n+=1}function L(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(h)}async function $e(){if(`serviceWorker`in navigator){let e=await navigator.serviceWorker.getRegistration(x||`/`);e&&await e.update()}}var et,tt,R,z,nt,B,rt={},it={},at=[],ot=[],V=null;function st(){V?.fork?.then(e=>e?.discard()),V=null,Q={element:void 0,href:void 0}}var ct=new Map,lt=new Set,ut=new Set,H=new Set,U={branch:[],error:null,url:null,nav:null},dt=!1,W=!1,ft=!0,G=!1,K=!1,pt=!1,mt=!1,ht,q,J,Y,gt=new Set,_t=new Map,vt=new Map;async function yt(e,t,n){if(globalThis.__sveltekit_1tpjamt.data){let{q:e={},p:t={},l:n={},f:r={}}=globalThis.__sveltekit_1tpjamt.data;for(let t in e)rt[t]=e[t];for(let e in n)rt[e]=n[e];for(let e in r)rt[e]=r[e];for(let e in t)it[e]=t[e]}document.URL!==location.href&&(location.href=location.href),B=e,await e.hooks.init?.(),et=ue(e),z=document.documentElement,nt=t,tt=e.nodes[0],R=e.nodes[1],tt(),R(),q=history.state?.[S],J=history.state?.[C],q||(q=J=Date.now(),history.replaceState({...history.state,[S]:q,[C]:J},``));let r=P[q];function i(){r&&(history.scrollRestoration=`manual`,scrollTo(r.x,r.y))}n?(i(),await Jt(nt,n)):(await Z({type:`enter`,url:ye(B.hash?en(new URL(location.href)):location.href),replace_state:!0}),i()),qt()}function bt(){at.length=0,mt=!1}function xt(e){ot.some(e=>e?.snapshot)&&(F[e]=ot.map(e=>e?.snapshot?.capture()))}function St(e){F[e]?.forEach((e,t)=>{ot[t]?.snapshot?.restore(e)})}function Ct(){Ze(q),fe(ge,P),xt(J),fe(he,F)}async function wt(e,n,r,i){let a,o;n.invalidateAll&&st(),await Z({type:`goto`,url:ye(e),keepfocus:n.keepFocus,noscroll:n.noScroll,replace_state:n.replaceState,state:n.state,redirect_count:r,nav_token:i,accept:()=>{if(n.invalidateAll){mt=!0,a=new Set;for(let[e,t]of _t)for(let[n,r]of t)r.resource?.reset(),a.add(A(e,n));o=new Set;for(let[e,t]of vt)for(let n of t.keys())o.add(A(e,n))}n.invalidate&&n.invalidate.forEach(Gt)}}),n.invalidateAll&&t().then(t).then(()=>{for(let[e,t]of _t)for(let[n,{resource:r}]of t)a?.has(A(e,n))&&r.start();for(let[e,t]of vt)for(let[n,{resource:r}]of t)o?.has(A(e,n))&&r.reconnect()})}async function Tt(e){if(e.id!==V?.id){st();let t={};gt.add(t),V={id:e.id,token:t,promise:Ft({...e,preload:t}).then(e=>(gt.delete(t),e.type===`loaded`&&e.state.error&&st(),e)),fork:null}}return V.promise}async function Et(e){let t=(await zt(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(e=>e[1]()))}async function Dt(e,t,n){let r={params:U.params,route:{id:U.route?.id??null},url:new URL(location.href)};if(U={...e.state,nav:r},Ke(e.props.page),ht=new B.root({target:t,props:{...e.props,stores:I,components:ot},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),n){let e={from:null,to:{...r,scroll:P[q]??E()},willUnload:!1,type:`enter`,complete:Promise.resolve()};H.forEach(t=>t(e))}St(J),W=!0}async function Ot({url:e,params:t,branch:n,errors:r,status:i,error:a,route:o,form:s}){let c=`never`;if(x&&(e.pathname===x||e.pathname===x+`/`))c=`always`;else for(let e of n)e?.slash!==void 0&&(c=e.slash);e.pathname=f(e.pathname,c),e.search=e.search;let l={type:`loaded`,state:{url:e,params:t,branch:n,error:a,route:o},props:{constructors:Be(n).map(e=>e.node.component),page:$t(j)}};s!==void 0&&(l.props.form=s);let u={},d=!j,p=0;for(let e=0;e<Math.max(n.length,U.branch.length);e+=1){let t=n[e],r=U.branch[e];t?.data!==r?.data&&(d=!0),t&&(u={...u,...t.data},d&&(l.props[`data_${p}`]=u),p+=1)}return(!U.url||e.href!==U.url.href||U.error!==a||s!==void 0&&s!==j.form||d)&&(l.props.page={error:a,params:t,route:{id:o?.id??null},state:{},status:i,url:new URL(e),form:s??null,data:d?u:j.data}),l}async function kt({loader:e,parent:t,url:n,params:r,route:i,server_data_node:a}){let o={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},s=await e();return{node:s,loader:e,server:a,universal:s.universal?.load?{type:`data`,data:null,uses:o}:null,data:a?.data??null,slash:s.universal?.trailingSlash??a?.slash}}function At(e,t,n){let r=e instanceof Request?e.url:e,i=new URL(r,n);return i.origin===n.origin&&(r=i.href.slice(n.origin.length)),{resolved:i,promise:W?ne(r,i.href,t):y(r,t)}}function jt(e,t,n,r,i,a){if(mt)return!0;if(!i)return!1;if(i.parent&&e||i.route&&t||i.url&&n)return!0;for(let e of i.search_params)if(r.has(e))return!0;for(let e of i.params)if(a[e]!==U.params[e])return!0;for(let e of i.dependencies)if(at.some(t=>t(new URL(e))))return!0;return!1}function Mt(e,t){return e?.type===`data`?e:e?.type===`skip`?t??null:null}function Nt(e,t){if(!e)return new Set(t.searchParams.keys());let n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(let r of n){let i=e.searchParams.getAll(r),a=t.searchParams.getAll(r);i.every(e=>a.includes(e))&&a.every(e=>i.includes(e))&&n.delete(r)}return n}function Pt({error:e,url:t,route:n,params:r}){return{type:`loaded`,state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:$t(j),constructors:[]}}}async function Ft({id:e,invalidating:t,url:n,params:r,route:i,preload:a}){if(V?.id===e)return gt.delete(V.token),V.promise;let{errors:o,layouts:s,leaf:c}=i,d=[...s,c];o.forEach(e=>e?.().catch(h)),d.forEach(e=>e?.[1]().catch(h));let f=U.url?e!==X(U.url):!1,p=U.route?i.id!==U.route.id:!1,ee=Nt(U.url,n),m=!1,g=d.map(async(e,t)=>{if(!e)return;let a=U.branch[t];return e[1]===a?.loader&&!jt(m,p,f,ee,a.universal?.uses,r)?a:(m=!0,kt({loader:e[1],url:n,params:r,route:i,parent:async()=>{let e={};for(let n=0;n<t;n+=1)Object.assign(e,(await g[n])?.data);return e},server_data_node:Mt(e[0]?{type:`skip`}:null,e[0]?a?.server:void 0)}))});for(let e of g)e.catch(h);let _=[];for(let e=0;e<d.length;e+=1)if(d[e])try{_.push(await g[e])}catch(t){if(t instanceof u)return{type:`redirect`,location:t.location};if(a&&gt.has(a))return Pt({error:await $(t,{params:r,url:n,route:{id:i.id}}),url:n,params:r,route:i});let s=Ve(t),c;if(t instanceof l)c=t.body;else{if(await I.updated.check())return await $e(),await L(n);c=await $(t,{params:r,url:n,route:{id:i.id}})}let d=await It(e,_,o);return d?Ot({url:n,params:r,branch:_.slice(0,d.idx).concat(d.node),errors:o,status:s,error:c,route:i}):await Ht(n,{id:i.id},c,s)}else _.push(void 0);return Ot({url:n,params:r,branch:_,errors:o,status:200,error:null,route:i,form:t?void 0:null})}async function It(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)--r;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function Lt({status:e,error:t,url:n,route:r}){let i={};try{return Ot({url:n,params:i,branch:[await kt({loader:tt,url:n,params:i,route:r,parent:()=>Promise.resolve({}),server_data_node:Mt(null)}),{node:await R(),loader:R,universal:null,server:null,data:null}],status:e,error:t,errors:[],route:null})}catch(t){if(t instanceof u){await wt(new URL(t.location,location.href),{},0);return}let a=await B.get_error_template(),o=await $(t,{url:n,params:i,route:r}),s=a({status:e,message:String(o?.message??``).replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}),c=new DOMParser().parseFromString(s,`text/html`);throw document.documentElement.replaceChild(document.adoptNode(c.head),document.head),document.documentElement.replaceChild(document.adoptNode(c.body),document.body),t}}async function Rt(e){let t=e.href;if(ct.has(t))return ct.get(t);let n;try{let r=(async()=>{let t=await B.hooks.reroute({url:new URL(e),fetch:async(t,n)=>At(t,n,e).promise})??e;if(typeof t==`string`){let n=new URL(e);B.hash?n.hash=t:n.pathname=t,t=n}return t})();ct.set(t,r),n=await r}catch{ct.delete(t);return}return n}async function zt(e,t){if(e&&!k(e,x,B.hash)){let n=await Rt(e);if(!n)return;let r=Bt(n);for(let n of et){let i=n.exec(r);if(i)return{id:X(e),invalidating:t,route:n,params:ee(i),url:e}}}}function Bt(e){return p(B.hash?e.hash.replace(/^#/,``).replace(/[?#].+/,``):e.pathname.slice(x.length))||`/`}function X(e){return(B.hash?e.hash.replace(/^#/,``):e.pathname)+e.search}function Vt({url:e,type:t,intent:n,delta:r,event:i,scroll:a}){let o=!1,s=Qt(U,n,e,t,a??null);r!==void 0&&(s.navigation.delta=r),i!==void 0&&(s.navigation.event=i);let c={...s.navigation,cancel:()=>{o=!0,s.reject(Error(`navigation cancelled`))}};return G||lt.forEach(e=>e(c)),o?null:s}async function Z({type:e,url:n,popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c={},redirect_count:l=0,nav_token:u={},accept:f=h,block:p=h,event:ee}){let m=Y;Y=u;let g=await zt(n,!1),_=e===`enter`?Qt(U,g,n,e):Vt({url:n,type:e,delta:i?.delta,intent:g,scroll:i?.scroll,event:ee});if(!_){p(),Y===u&&(Y=m);return}let te=q,v=J;f(),G=!0,W&&_.navigation.type!==`enter`&&I.navigating.set(M.current=_.navigation);let y=g&&await Ft(g);if(!y){if(k(n,x,B.hash))return await L(n,s);y=await Ht(n,{id:null},await $(new d(404,`Not Found`,`Not found: ${n.pathname}`),{url:n,params:{},route:{id:null}}),404,s)}if(n=g?.url||n,Y!==u){_.reject(Error(`navigation aborted`));return}if(!y)return;if(y.type===`redirect`){if(l<20){await Z({type:e,url:new URL(y.location,n),popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c,redirect_count:l+1,nav_token:u}),_.fulfil(void 0);return}if(y=await Lt({status:500,error:await $(Error(`Redirect loop`),{url:n,params:{},route:{id:null}}),url:n,route:{id:null}}),!y)return}else if(y.props.page.status>=400&&await I.updated.check())return await $e(),await L(n,s);if(bt(),Ze(te),xt(v),y.props.page.url.pathname!==n.pathname&&(n.pathname=y.props.page.url.pathname),c=i?i.state:c,!i){let e=+!s,t={[S]:q+=e,[C]:J+=e,[_e]:c};(s?history.replaceState:history.pushState).call(history,t,``,n),s||Qe(q,J)}let ne=g&&V?.id===g.id?V.fork:null;V?.fork&&!ne?st():(V=null,Q={element:void 0,href:void 0}),y.props.page.state=c;let b;if(W){let e=(await Promise.all(Array.from(ut,e=>e(_.navigation)))).filter(e=>typeof e==`function`);if(e.length>0){function t(){e.forEach(e=>{H.delete(e)})}e.push(t),e.forEach(e=>{H.add(e)})}let t=_.navigation.to;U={...y.state,nav:{params:t.params,route:t.route,url:t.url}},y.props.page&&(y.props.page.url=n),!a&&document.activeElement instanceof HTMLElement&&document.activeElement!==document.body&&document.activeElement.blur();let i=ne&&await ne;i?b=i.commit():(N=null,ht.$set(y.props),N&&Object.assign(y.props.page,N),Ke(y.props.page),b=r?.()),pt=!0}else await Dt(y,nt,!1);let{activeElement:re}=document;if(await b,await t(),await t(),Y!==u){_.reject(Error(`navigation aborted`));return}y.props.page&&N&&Object.assign(y.props.page,N);let ie=null;if(ft){let e=i?i.scroll:o?E():null;e?scrollTo(e.x,e.y):(ie=n.hash&&document.getElementById(tn(n)))?ie.scrollIntoView():scrollTo(0,0)}let ae=document.activeElement!==re&&document.activeElement!==document.body;!a&&!ae&&Zt(n,!ie),ft=!0,G=!1,_.fulfil(void 0),_.navigation.to&&(_.navigation.to.scroll=E()),H.forEach(e=>e(_.navigation)),e===`popstate`&&St(J),I.navigating.set(M.current=null)}async function Ht(e,t,n,r,i){return e.origin===T&&e.pathname===location.pathname&&!dt?await Lt({status:r,error:n,url:e,route:t}):await L(e,i)}var Q={element:void 0,href:void 0};function Ut(){let e,t;z.addEventListener(`mousemove`,t=>{let n=t.target;clearTimeout(e),e=setTimeout(()=>{i(n,w.hover)},20)});function n(e){e.defaultPrevented||i(e.composedPath()[0],w.tap)}z.addEventListener(`mousedown`,n),z.addEventListener(`touchstart`,n,{passive:!0});let r=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(Et(new URL(t.target.href)),r.unobserve(t.target))},{threshold:0});async function i(e,n){let r=Se(e,z),i=r===Q.element&&r?.href===Q.href&&n>=t;if(!r||i)return;let{url:a,external:o,download:s}=Ce(r,x,B.hash);if(o||s)return;let c=O(r),l=a&&X(U.url)===X(a);if(!(c.reload||l)){if(n<=c.preload_data){Q={element:r,href:r.href},t=w.tap;let e=await zt(a,!1);if(!e)return;Tt(e)}else n<=c.preload_code&&(Q={element:r,href:r.href},t=n,Et(a))}}function a(){r.disconnect();for(let e of z.querySelectorAll(`a`)){let{url:t,external:n,download:i}=Ce(e,x,B.hash);if(n||i)continue;let a=O(e);a.reload||(a.preload_code===w.viewport&&r.observe(e),a.preload_code===w.eager&&Et(t))}}H.add(a),a()}function $(e,t){if(e instanceof l)return e.body;let n=Ve(e),r=He(e);return B.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function Wt(e,t={}){return e=new URL(ye(e)),e.origin===T?wt(e,t,0):Promise.reject(Error(`goto: invalid URL`))}function Gt(e){if(typeof e==`function`)at.push(e);else{let{href:t}=new URL(e,location.href);at.push(e=>e.href===t)}}function Kt(e,t){let n={[S]:q,[C]:J,[ve]:j.url.href,[_e]:t};history.replaceState(n,``,ye(e)),j.state=t,ht.$set({page:Ye(()=>$t(j))})}function qt(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(Ct(),!G){let e=Qt(U,void 0,null,`leave`),n={...e.navigation,cancel:()=>{t=!0,e.reject(Error(`navigation cancelled`))}};lt.forEach(e=>e(n))}t?(e.preventDefault(),e.returnValue=``):history.scrollRestoration=`auto`}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&Ct()}),navigator.connection?.saveData||Ut(),z.addEventListener(`click`,async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;let n=Se(t.composedPath()[0],z);if(!n)return;let{url:r,external:i,target:a,download:o}=Ce(n,x,B.hash);if(!r)return;if(a===`_parent`||a===`_top`){if(window.parent!==window)return}else if(a&&a!==`_self`)return;let s=O(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&r.protocol!==`https:`&&r.protocol!==`http:`||o)return;let[c,l]=(B.hash?r.hash.replace(/^#/,``):r.href).split(`#`),u=c===m(location);if(i||s.reload&&(!u||!l)){Vt({url:r,type:`link`,event:t})?G=!0:t.preventDefault();return}if(l!==void 0&&u){let[,i]=U.url.href.split(`#`);if(i===l){if(t.preventDefault(),l===``||l===`top`&&n.ownerDocument.getElementById(`top`)===null)scrollTo({top:0});else{let e=n.ownerDocument.getElementById(decodeURIComponent(l));e&&(e.scrollIntoView(),e.focus())}return}if(K=!0,Ze(q),e(r),!s.replace_state)return;K=!1}t.preventDefault(),await new Promise(e=>{requestAnimationFrame(()=>{setTimeout(e,0)}),setTimeout(e,100)}),await Z({type:`link`,url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:t})}),z.addEventListener(`submit`,e=>{if(e.defaultPrevented)return;let t=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if((n?.formTarget||t.target)===`_blank`||(n?.formMethod||t.method)!==`get`)return;let r=new URL(n?.hasAttribute(`formaction`)&&n?.formAction||t.action);if(k(r,x,!1))return;let i=e.target,a=O(i);if(a.reload)return;e.preventDefault(),e.stopPropagation();let o=new FormData(i,n);r.search=new URLSearchParams(o).toString(),Z({type:`form`,url:r,keepfocus:a.keepfocus,noscroll:a.noscroll,replace_state:a.replace_state??r.href===location.href,event:e})}),addEventListener(`popstate`,async t=>{if(!Xt){if(t.state?.[`sveltekit:history`]){let n=t.state[S];if(Y={},n===q)return;let r=P[n],i=t.state[`sveltekit:states`]??{},a=new URL(t.state[`sveltekit:pageurl`]??location.href),o=t.state[C],s=U.url?m(location)===m(U.url):!1;if(o===J&&(pt||s)){i!==j.state&&(j.state=i),e(a),P[q]=E(),r&&scrollTo(r.x,r.y),q=n;return}let c=n-q;await Z({type:`popstate`,url:a,popped:{state:i,scroll:r,delta:c},accept:()=>{q=n,J=o},block:()=>{history.go(-c)},nav_token:Y,event:t})}else K||(e(new URL(location.href)),B.hash&&location.reload())}}),addEventListener(`hashchange`,()=>{K&&(K=!1,history.replaceState({...history.state,[S]:++q,[C]:J},``,location.href))});for(let e of document.querySelectorAll(`link`))Xe.has(e.rel)&&(e.href=e.href);addEventListener(`pageshow`,e=>{e.persisted&&I.navigating.set(M.current=null)});function e(e){U.url=j.url=e,I.page.set($t(j)),I.page.notify()}}async function Jt(e,{status:t=200,error:n,node_ids:r,params:i,route:a,server_route:o,data:s,form:c}){dt=!0;let l=new URL(location.href),d;({params:i={},route:a={id:null}}=await zt(l,!1)||{}),d=et.find(({id:e})=>e===a.id);let f,p=!0;try{let e=r.map(async(t,n)=>{let r=s[n];return r?.uses&&(r.uses=Yt(r.uses)),kt({loader:B.nodes[t],url:l,params:i,route:a,parent:async()=>{let t={};for(let r=0;r<n;r+=1)Object.assign(t,(await e[r]).data);return t},server_data_node:Mt(r)})}),o=await Promise.all(e);if(d){let e=d.layouts;for(let t=0;t<e.length;t++)e[t]||o.splice(t,0,void 0)}f=await Ot({url:l,params:i,branch:o,status:t,error:n,errors:d?.errors,form:c,route:d??null})}catch(t){if(t instanceof u)return await L(new URL(t.location,location.href));f=await Lt({status:Ve(t),error:await $(t,{url:l,params:i,route:a}),url:l,route:a}),e.textContent=``,p=!1}f&&(f.props.page&&(f.props.page.state={}),await Dt(f,e,p))}function Yt(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}var Xt=!1;function Zt(e,t=!0){let n=document.querySelector(`[autofocus]`);if(n)n.focus();else{let n=tn(e);if(n&&document.getElementById(n)){let{x:r,y:i}=E();setTimeout(()=>{let a=history.state;Xt=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),Xt=!1})}else{let e=document.body,t=e.getAttribute(`tabindex`);e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),t===null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t)}let r=getSelection();if(r&&r.type!==`None`){let e=[];for(let t=0;t<r.rangeCount;t+=1)e.push(r.getRangeAt(t));setTimeout(()=>{if(r.rangeCount===e.length){for(let t=0;t<r.rangeCount;t+=1){let n=e[t],i=r.getRangeAt(t);if(n.commonAncestorContainer!==i.commonAncestorContainer||n.startContainer!==i.startContainer||n.endContainer!==i.endContainer||n.startOffset!==i.startOffset||n.endOffset!==i.endOffset)return}r.removeAllRanges()}})}}}function Qt(e,t,n,r,i=null){let a,o,s=new Promise((e,t)=>{a=e,o=t});return s.catch(h),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:E()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:i},willUnload:!t,type:r,complete:s},fulfil:a,reject:o}}function $t(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function en(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function tn(e){let t;if(B.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{j as a,M as i,Kt as n,De as o,yt as r,Wt as t};
@@ -1,4 +1,4 @@
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{t as j}from"./BkEnd9_Z.js";import{a as M,i as te,r as ne}from"./D-ecV3TD.js";import{a as N,b as re,s as P,t as F,v as ie,x as ae}from"./DWcQbrnv.js";import{n as oe,r as I,t as se}from"./D25cXQtk.js";import{a as L,i as R,n as z}from"./CNPsST_i.js";import{t as ce}from"./BIfnT_mK.js";import{t as le}from"./UeEccMjN.js";import{t as ue}from"./Bs27XW8_.js";import{t as de}from"./CeR4do8T.js";import{t as B}from"./D-V0xBeS.js";import{t as fe}from"./D8Der6oM.js";var pe=F(N),V=F(N),H=F(N),U=F(N),W=F(N);async function me(e){let t=pe.issue();try{let n=await P().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 he(e){let t=V.issue();try{let n=await P().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 ge(){let e=H.issue();try{let t=await P().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 _e(e){let t=U.issue();try{return await P().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 ve(e){let t=W.issue();try{let n=await P().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 G=new Set([`$$slots`,`$$events`,`$$legacy`]);function ye(e,t){let n=w(t,G),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 K=new Set([`$$slots`,`$$events`,`$$legacy`]);function be(e,t){let n=w(t,K),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 q=new Set([`$$slots`,`$$events`,`$$legacy`]);function xe(e,t){let n=w(t,q),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 Se=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ce(e,t){let n=w(t,Se),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 we=r(`<!> Analyzing…`,1),Te=r(`<!> `,1),Ee=r(`<div class="flex items-center gap-2 py-6 text-xs text-muted-foreground"><!> Loading skills…</div>`),De=r(`<div class="flex flex-col items-start gap-2 py-6 text-xs text-destructive"><p class="break-words"> </p> <!></div>`),Oe=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
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{t as j}from"./BkEnd9_Z.js";import{a as M,i as te,r as ne}from"./BNZqT8Gb.js";import{a as N,b as re,s as P,t as F,v as ie,x as ae}from"./DFx4VmvA.js";import{n as oe,r as I,t as se}from"./CryWMAmp.js";import{a as L,i as R,n as z}from"./CNPsST_i.js";import{t as ce}from"./BIfnT_mK.js";import{t as le}from"./UeEccMjN.js";import{t as ue}from"./Bs27XW8_.js";import{t as de}from"./CeR4do8T.js";import{t as B}from"./D-V0xBeS.js";import{t as fe}from"./D8Der6oM.js";var pe=F(N),V=F(N),H=F(N),U=F(N),W=F(N);async function me(e){let t=pe.issue();try{let n=await P().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 he(e){let t=V.issue();try{let n=await P().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 ge(){let e=H.issue();try{let t=await P().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 _e(e){let t=U.issue();try{return await P().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 ve(e){let t=W.issue();try{let n=await P().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 G=new Set([`$$slots`,`$$events`,`$$legacy`]);function ye(e,t){let n=w(t,G),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 K=new Set([`$$slots`,`$$events`,`$$legacy`]);function be(e,t){let n=w(t,K),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 q=new Set([`$$slots`,`$$events`,`$$legacy`]);function xe(e,t){let n=w(t,q),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 Se=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ce(e,t){let n=w(t,Se),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 we=r(`<!> Analyzing…`,1),Te=r(`<!> `,1),Ee=r(`<div class="flex items-center gap-2 py-6 text-xs text-muted-foreground"><!> Loading skills…</div>`),De=r(`<div class="flex flex-col items-start gap-2 py-6 text-xs text-destructive"><p class="break-words"> </p> <!></div>`),Oe=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
2
  structural findings with evidence.</p></div>`),ke=r(`<li class="text-muted-foreground"> </li>`),Ae=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>`),je=f(`<line></line>`),Me=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>`),Ne=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
3
  node to open its detail.</p></section>`),Pe=r(`<p class="py-6 text-xs text-muted-foreground">No findings at this severity.</p>`),Fe=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>`),Ie=r(`<button type="button" class="text-[11px] text-primary underline-offset-2 hover:underline"> </button>`),Le=r(`<!> Propose edit`,1),Re=r(`<!> Propose disable`,1),ze=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>`),Be=r(`<ul class="space-y-2"></ul>`),Ve=r(`<!> Refresh`,1),He=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
4
  approve it here.</p>`),Ue=r(`<!> Reject`,1),We=r(`<!> Approve`,1),Ge=r(`<p> </p>`),Ke=r(`<p class="mt-1 text-destructive">This proposal is stale. Re-analyze, then create a fresh proposal.</p>`),qe=r(`<div class="border-b border-border/60 px-3 py-2 text-[11px]"><!> <!></div>`),Je=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>`),Ye=r(`<p class="leading-4 text-muted-foreground"> </p>`),Xe=r(`<p class="text-muted-foreground">Loading current document…</p>`),Ze=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),Qe=r(`<p class="rounded border border-border bg-muted/20 p-2 leading-4"> </p>`),$e=r(`<li><span class="font-medium"> </span> <span class="text-muted-foreground"> </span></li>`),et=r(`<ul class="space-y-1"></ul>`),tt=r(`<p><span class="font-medium"> </span> <span class="text-muted-foreground"> </span></p> <p class="text-muted-foreground"> </p>`,1),nt=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>`),rt=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>`),it=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),at=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 ot(r,f){i(f,!0);let p=ne(),w=te(),D=_(()=>p?.()?.wsId),j=_(()=>p?.()?.providerId),P=_(()=>w?.()??{}),pe=_(()=>m(P).severity??`all`),V=_(()=>{if(!m(D)||!m(j))return null;let e=ae.safeParse(m(D)),t=re.safeParse(m(j));return!e.success||!t.success?null:{workspaceId:e.data,providerId:t.data}}),H=S(null),U=S(k([])),W=S(!1),G=S(null);F(N),E(()=>{m(V)&&oe(m(V))});async function K(){let t=m(V);if(!t||m(W))return;let n=e(()=>I.skills);if(n.length===0){z(`No skills discovered in this provider.`);return}g(W,!0),g(G,null);try{let e=await me(n.map(e=>({...t,skillId:e.id})));if(!e.report&&!e.error)return;if(g(H,e.report,!0),g(U,e.failures,!0),g(G,e.error,!0),e.report){let t=q(e.report.findings);z(`Analyzed ${e.report.snapshots.length} skills · ${t.error} errors · ${t.warning} warnings.`)}}finally{g(W,!1)}}function q(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 Se=_(()=>m(H)?m(pe)===`all`?m(H).findings:m(H).findings.filter(e=>e.severity===m(pe)):[]);function ot(e){m(D)&&m(j)&&M(`workspaces.intelligence`,{wsId:m(D),providerId:m(j)},{severity:e===`all`?void 0:e},`REPLACE`)}let st=_(()=>{let e=new Map;for(let t of m(H)?.snapshots??[])e.set(t.skillId,t.name);return t=>e.get(t)??t});function ct(e){m(D)&&m(j)&&M(`workspaces.provider`,{wsId:m(D),providerId:m(j)},{skill:e,view:`detail`})}let lt=S(k([])),ut=S(!1),J=S(!1),Y=S(null),X=S(null),dt=S(null),ft=S(k({})),Z=S(null);E(()=>{Q()});async function Q(){g(ut,!0);try{let e=await ge();e.proposals&&g(lt,e.proposals,!0)}finally{g(ut,!1)}}async function pt(e){if(g(Z,m(Z)===e.id?null:e.id,!0),m(Z)===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(ft,{...m(ft),[t.selection.skillId]:n},!0)}catch{}}}async function mt(e){if(!m(Y)){g(Y,e.id,!0);try{let{result:t,error:n}=await ve(e.id);if(n){z(n);return}if(!t)return;g(dt,{proposalId:e.id,result:t},!0),t.conflicts>0?z(`${t.conflicts} conflict(s): skill changed after the proposal. Re-analyze.`,{label:`Re-analyze`,run:()=>void K()}):t.failed>0?z(`Applied with ${t.failed} failure(s).`):z(`Applied ${t.applied} change(s).`),await Q(),await ht()}finally{g(Y,null)}}}async function ht(){let e=m(V);e&&await oe(e)}async function gt(e){if(!m(X)){g(X,e.id,!0);try{let{error:t}=await _e(e.id);t&&z(t),await Q()}finally{g(X,null)}}}async function _t(e){let t=m(V);if(t&&!m(J)){g(J,!0);try{let{proposal:n,error:r}=await he({payload:{kind:`disable`,selections:e.skillIds.map(e=>({...t,skillId:e})),reason:e.message},findingIds:[e.id],rationale:`Address "${e.kind}": ${e.message}`});r&&z(r),n&&(z(`Disable proposal drafted for review.`),await Q())}finally{g(J,!1)}}}async function vt(e){let t=m(V);if(t&&!m(J)&&e.skillIds.length===1){g(J,!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 he({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&&z(c),s&&(z(`Edit proposal drafted for review.`),await Q())}catch(e){z(e instanceof Error?e.message:String(e))}finally{g(J,!1)}}}function yt(e){let t=e.replace(/\r\n/g,`
@@ -0,0 +1,2 @@
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"./CLVPf5uP.js";import"./xihTtKlq.js";import"./DrGEPnFY.js";import{t as D}from"./BkEnd9_Z.js";import{F as O,I as k,M as A,N as j,a as M,f as N,h as P,j as te,t as ne,v as re,x as ie}from"./DbA0Nfjq.js";import"./CryWMAmp.js";import{i as F,n as ae,o as oe,r as se}from"./DUYTokm-.js";import{n as ce,t as le}from"./Dl8eQ129.js";import{a as I,i as L,n as R}from"./CNPsST_i.js";import{t as ue}from"./BIfnT_mK.js";import{t as z}from"./Bs27XW8_.js";import{t as B}from"./D-V0xBeS.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-[10px] text-muted-foreground"> </span> <span class="shrink-0 text-[10px] 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-[11px] text-muted-foreground">Not found on disk</span>`),Se=n(`<span class="block truncate font-mono text-[10px] text-muted-foreground"> </span>`),Ce=n(`<li><button class="flex min-h-11 w-full items-center justify-between gap-2 rounded-md border border-border/60 px-3 py-2 text-left transition-colors hover:bg-muted/50 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-[10px] 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-3xl 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-primary/50 hover:bg-primary/5"><!> <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-primary/50 hover:bg-primary/5"><!> <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-primary/50 hover:bg-primary/5"><!> <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-primary/50 hover:bg-primary/5"><!> <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(()=>F.workspaces.filter(e=>e.kind===`global`)),S=m(()=>F.workspaces.filter(e=>e.kind===`directory`)),D=m(()=>F.workspaces.length>0),V=m(()=>F.loading&&d(D)),H=_(null),U=_(!1),G=_(!1);x(()=>{ae(),!M.loaded&&!M.loading&&N()});let Me=m(()=>{let e=0,t=0;for(let n of F.workspaces)for(let r of n.providers)t+=1,e+=r.skillCount??0;return{skills:e,providers:t,imported:F.workspaces.filter(e=>e.kind===`directory`).length}}),Ne=m(()=>M.sessions.slice(0,3));function Pe(e){P(e),re(!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 ae()}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 se(e.id)&&(p(U,!1),R(`Removed ${e.label}. Files remain on disk.`))}catch(e){R(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);I(He,{variant:`ghost`,size:`icon`,class:`h-9 w-9`,title:`Refresh workspaces`,"aria-label":`Refresh workspaces`,get disabled(){return F.loading},onclick:()=>void Le(),children:(e,t)=>{var n=T(),r=C(n),i=e=>{L(e,{class:`h-4 w-4 animate-spin`})},a=e=>{ue(e,{class:`h-4 w-4`})};o(r,e=>{F.loading?e(i):e(a,-1)}),s(e,n)},$$slots:{default:!0}});var Ue=g(He,2);I(Ue,{size:`sm`,onclick:()=>O(),children:(e,t)=>{var n=pe(),r=C(n);A(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);ne(Ge,{class:`mt-0.5 h-4 w-4 shrink-0 text-primary`}),h(2),t(Y);var X=g(Y,2);de(b(X),{class:`mt-0.5 h-4 w-4 shrink-0 text-primary`}),h(2),t(X);var Z=g(X,2);fe(b(Z),{class:`mt-0.5 h-4 w-4 shrink-0 text-primary`}),h(2),t(Z);var Q=g(Z,2),Ke=b(Q);k(Ke,{class:`mt-0.5 h-4 w-4 shrink-0 text-primary`});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);te(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);I(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,F.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);I(i,{class:`mt-4`,size:`sm`,onclick:()=>O(),children:(e,t)=>{var n=ve(),r=C(n);A(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);L(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);j(_,{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-[10px]`,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-[10px]`,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),P=e=>{{let t=m(()=>`Remove ${d(r).label} registration`),n=m(()=>`Remove ${d(r).label}`);I(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(P)}),t(p);var te=g(p,2),ne=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(te,e=>{d(r).providers.length>0&&e(ne)}),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(oe(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=>{F.error?e($e):F.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,()=>ie(`create`,`I want to create a new skill. It should help me `)),a(`click`,X,()=>ie(`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 +1 @@
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 ee,gt as b,j as te,k as ne,kt as x,l as re,lt as S,m as C,mt as w,nt as T,o as E,ot as D,p as ie,rt as O,s as k,st as A,ut as j,x as ae,z as oe}from"./CmCJ0SKP.js";import"./xihTtKlq.js";import{t as M}from"./BkEnd9_Z.js";import{a as N,i as se,r as ce}from"./D-ecV3TD.js";import{_ as le,a as ue,b as de,s as P,t as fe,u as pe,v as me,x as he}from"./DWcQbrnv.js";import{a as ge,i as _e,l as ve,n as ye,o as be,r as F,t as xe}from"./D25cXQtk.js";import{a as I,i as L,n as R,s as z}from"./CNPsST_i.js";import{t as Se}from"./BEPs9Z9s.js";import{n as Ce,r as we,t as Te}from"./Ckw1quWt.js";import{t as Ee}from"./CIFG41pU.js";import{n as De,t as Oe}from"./s48N5eaK.js";import{t as B}from"./D-V0xBeS.js";import{t as ke}from"./D8Der6oM.js";var V=fe(ue),H=j({target:null,checking:!1,applying:!1,checkError:null,results:[],applyResults:null});async function Ae(e,t){let n=V.issue(),r=()=>n.isCurrent()&&_e(H.target,e);H.target=e,H.checking=!0,H.checkError=null,H.results=[],H.applyResults=null;try{let{results:n}=await P().skills.update.check({...e,skillIds:t});if(!r())return;H.results=n}catch(e){if(!r())return;H.checkError=e instanceof Error?e.message:String(e)}finally{n.isLatest()&&(H.checking=!1)}}async function je(e,t){let n=V.issue(),r=()=>n.isCurrent()&&_e(H.target,e);H.applying=!0;try{let{results:n}=await P().skills.update.apply({...e,skillIds:t});return r()?(H.applyResults=n,n):null}catch(e){if(!r())return null;throw e}finally{n.isLatest()&&(H.applying=!1)}}function Me(){V.invalidate(),H.results=[],H.applyResults=null,H.checkError=null}function Ne(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 Pe(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 U=new Set([`$$slots`,`$$events`,`$$legacy`]);function W(e,t){let n=E(t,U),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`}]];M(e,k({name:`circle-pause`},()=>n,{get iconNode(){return r}}))}var G=r(`<span title="Disabled (paused)" class="shrink-0"><!></span>`),K=r(`<span class="shrink-0 text-[10px] uppercase tracking-wide text-amber-600 dark:text-amber-400">disabled</span>`),q=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-[11px] leading-4"> </span></span></button>`);function Fe(e,t){i(t,!0);let r=g(t,`selected`,3,!1);var s=q(),f=D(s),p=e=>{var t=G();W(D(t),{class:`mt-0.5 h-4 w-4 text-amber-600 dark:text-amber-400`}),n(t),l(e,t)},m=e=>{Ce(e,{class:`mt-0.5 h-4 w-4 shrink-0 text-primary`})};c(f,e=>{t.skill.disabled?e(p):e(m,-1)});var h=S(f,2),v=D(h),y=D(v),ee=_(y,!0),b=S(y,2),te=e=>{var t=K();l(e,t)};c(b,e=>{t.skill.disabled&&e(te)}),n(v);var ne=S(v,2),x=_(ne,!0);n(h),n(s),T(e=>{C(s,`data-skill-id`,t.skill.id),C(s,`aria-pressed`,r()),ae(s,1,e),a(ee,t.skill.name),a(x,t.skill.description||`No description`)},[()=>u(z(`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`,s,function(...e){t.onclick?.apply(this,e)}),l(e,s),d()}p([`click`]);var J=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ie(e,t){let n=E(t,J),r=[[`path`,{d:`m12 19-7-7 7-7`}],[`path`,{d:`M19 12H5`}]];M(e,k({name:`arrow-left`},()=>n,{get iconNode(){return r}}))}var Y=new Set([`$$slots`,`$$events`,`$$legacy`]);function Le(e,t){let n=E(t,Y),r=[[`path`,{d:`M12 17V3`}],[`path`,{d:`m6 11 6 6 6-6`}],[`path`,{d:`M19 21H5`}]];M(e,k({name:`arrow-down-to-line`},()=>n,{get iconNode(){return r}}))}var Re=new Set([`$$slots`,`$$events`,`$$legacy`]);function ze(e,t){let n=E(t,Re),r=[[`path`,{d:`M12 2v10`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`}]];M(e,k({name:`power`},()=>n,{get iconNode(){return r}}))}var Be=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ve(e,t){let n=E(t,Be),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`}]];M(e,k({name:`shield-check`},()=>n,{get iconNode(){return r}}))}var He=r(`<!> Insights`,1),Ue=r(`<!> Updates`,1),We=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>`),Ge=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>`),Ke=r(`<span class="text-muted-foreground"> </span>`),qe=r(`<span class="text-destructive"> </span>`),Je=r(`<p class="min-w-0 flex-1 text-xs"><span class="font-medium">Applied</span> <!> <!> <!></p>`),Ye=r(`<span class="font-medium text-primary"> </span>`),Xe=r(`<span class="font-medium">All current</span>`),Ze=r(`<!> `,1),Qe=r(`<p class="min-w-0 flex-1 text-xs"><!> <!> <!> <!></p> <!>`,1),$e=r(`<li class="pl-3 text-[10px] text-muted-foreground"> </li>`),et=r(`<li class="flex items-baseline gap-1.5"><span class="min-w-0 flex-1 truncate"> </span> <!></li> <!>`,1),tt=r(`<ul class="mt-1.5 max-h-40 space-y-1 overflow-y-auto text-[11px]"></ul>`),nt=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>`),rt=r(`<div class="flex items-center gap-2 px-4 py-6 text-xs text-muted-foreground"><!> Loading skills…</div>`),it=r(`<div class="flex flex-col items-start gap-2 px-4 py-6 text-xs text-destructive"><p class="break-words"> </p> <!></div>`),at=r(`<p class="px-4 py-6 text-xs text-muted-foreground">No skills match.</p>`),ot=r(`<div class="flex h-full flex-col items-center justify-center gap-2 px-8 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>`),st=r(`<div class="flex h-full items-center justify-center gap-2 text-xs text-muted-foreground"><!> Loading skill…</div>`),ct=r(`<div class="flex h-full flex-col items-center justify-center gap-2 px-8 text-center"><p class="text-xs text-destructive"> </p> <!></div>`),lt=r(`<h2 class="truncate text-base font-semibold"> </h2>`),ut=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>`),dt=r(`<p class="mt-0.5 text-xs leading-5 text-muted-foreground"> </p>`),ft=r(`<!> Save`,1),pt=r(`<!> Validate`,1),mt=r(`<!> Valid skill`,1),ht=r(`<!> Validation issues`,1),gt=r(`<p class="mt-1 text-xs text-destructive"> </p>`),_t=r(`<p class="mt-1 text-xs text-amber-700 dark:text-amber-300"> </p>`),vt=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>`),yt=r(`<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>`),bt=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>`),xt=r(`<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 text-muted-foreground">SKILL.md</h3> <div class="prose prose-sm max-w-none overflow-x-auto"></div></section></div>`,1),St=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 flex-wrap 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-2 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"/></div></header> <!> <div class="min-h-0 flex-1 overflow-y-auto"><!></div></section> <section aria-label="Skill detail"><!></section></div>`);function Ct(r,u){i(u,!0);let p=ce(),g=se(),C=b(()=>p?.()?.wsId),E=b(()=>p?.()?.providerId),k=b(()=>g?.()??{}),j=b(()=>m(k).skill),M=b(()=>m(k).q??``),P=b(()=>m(k).view??`list`),_e=fe(ue),z=w(null),V=w(!1),U=w(null),W=w(!1),G=w(null),K=w(!1),q=w(!1),J=w(``),Y=w(``),Re=w(null),Be=w(null),Ct=null,X=b(()=>{if(!m(C)||!m(E))return null;let e=he.safeParse(m(C)),t=de.safeParse(m(E));return!e.success||!t.success?null:{workspaceId:e.data,providerId:t.data}});O(()=>{m(X)&&ye(m(X))}),O(()=>{let e=m(X),t=m(j);if(!e||!t){y(z,null),y(U,null);return}wt(e,t)});async function wt(e,t){let n=_e.issue(),r=me.safeParse(t);if(!r.success){y(z,null),y(U,`Invalid skill id in URL.`);return}y(V,!0),y(U,null),y(G,null);try{let t=await xe(e,r.data);if(!n.isCurrent())return;y(z,t,!0);let{frontmatter:i}=De(t.content),a=pe.safeParse(i);y(J,a.success?a.data.name:t.name,!0),y(Y,a.success?a.data.description:t.description,!0)}catch(e){if(!n.isCurrent())return;y(z,null),y(U,e instanceof Error?e.message:String(e),!0)}finally{n.isLatest()&&y(V,!1)}}let Tt=b(()=>{let e=m(M).trim().toLowerCase(),t=F.skills;return e?t.filter(t=>[t.name,t.description,t.provider].some(t=>t.toLowerCase().includes(e))):t}),Z=b(()=>m(z)?De(m(z).content):null),Et=b(()=>m(Z)?Oe(m(Z).body):``),Dt=b(()=>m(X)!==null&&m(X).workspaceId!==`~`);function Ot(e){m(C)&&m(E)&&N(`workspaces.provider`,{wsId:m(C),providerId:m(E)},{...m(k),skill:e,view:`detail`})}function kt(e){m(C)&&m(E)&&N(`workspaces.provider`,{wsId:m(C),providerId:m(E)},{...m(k),q:e||void 0},`REPLACE`)}function At(){m(C)&&m(E)&&(Ct=m(j)??null,N(`workspaces.provider`,{wsId:m(C),providerId:m(E)},{...m(k),view:`list`}))}let jt=`list`;O(()=>{let t=m(P),n=e(()=>jt),r=e(()=>Ct);jt=t,t===`list`&&n===`detail`&&r&&(Ct=null,(document.querySelector(`button[data-skill-id="${CSS.escape(r)}"]`)??m(Be))?.focus())}),O(()=>{m(P)!==`detail`||m(V)||m(z)?.id!==void 0&&m(Re)?.focus()});async function Mt(){let e=m(z);if(!e||!m(X)||m(q))return;y(q,!0);let t=e.disabled?`enable`:`disable`;try{let n=await ge([e.id],t);if(!n)return;let r=n.results.find(t=>t.skillId===e.id);r&&(r.status===`conflict`?R(`${r.name}: ${t} conflict${r.error?` — ${r.error}`:`.`}`):r.status===`failed`?R(`${r.name}: ${t} failed — ${r.error??`unknown error`}`):r.status===`skipped`?R(`${r.name}: already ${t===`enable`?`enabled`:`disabled`}.`):R(`${r.name} ${r.status}.`)),await wt(m(X),e.id)}catch(e){R(e instanceof Error?e.message:String(e))}finally{y(q,!1)}}let Nt=b(()=>H.results.filter(e=>e.status===`updated`).map(e=>e.skillId)),Q=b(()=>Ne(H.results)),$=b(()=>H.applyResults?Pe(H.applyResults):null);O(()=>{m(X)&&Me()});async function Pt(){m(X)&&!H.checking&&await Ae(m(X))}async function Ft(){if(m(X)&&!H.applying&&m(Nt).length!==0)try{let e=await je(m(X),m(Nt));if(!e)return;let t=Pe(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);R(n.length>0?n.join(` · `):`No changes applied.`),await ye(m(X))}catch(e){R(e instanceof Error?e.message:String(e))}}async function It(){if(m(z)&&m(X)){y(W,!0),y(G,null);try{let e=await be(m(z).id);e&&y(G,{success:e.success,errors:e.errors,warnings:e.warnings},!0)}catch(e){y(G,{success:!1,errors:[e instanceof Error?e.message:String(e)],warnings:[]},!0)}finally{y(W,!1)}}}async function Lt(){let e=m(z),t=m(X),n=m(Z)?.body;if(!e||!t||n===void 0)return;let r=m(J).trim(),i=m(Y).trim();if(!r||!i){R(`Name and description cannot be empty.`);return}y(K,!0);try{let a=m(Z)?m(Z).frontmatter:{},o=pe.safeParse({...a,name:r,description:i});if(!o.success){R(`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(z,{...e,revision:c.document.revision,name:r,description:i},!0),R(`Saved.`)}catch(e){e instanceof le&&e.code===`CONFLICT`?R(`This skill changed elsewhere. Reload to view the latest.`,{label:`Reload`,run:()=>{t&&m(z)&&wt(t,m(z).id)}}):R(e instanceof Error?e.message:String(e))}finally{y(K,!1)}}var Rt=St(),zt=D(Rt),Bt=D(zt),Vt=D(Bt),Ht=D(Vt),Ut=_(Ht,!0),Wt=S(Ht,2),Gt=e=>{L(e,{class:`h-3.5 w-3.5 shrink-0 animate-spin text-muted-foreground`,title:`Refreshing skills`})},Kt=e=>{B(e,{variant:`secondary`,children:(e,t)=>{x();var n=f();T(()=>a(n,m(Tt).length)),l(e,n)},$$slots:{default:!0}})};c(Wt,e=>{F.refreshing?e(Gt):e(Kt,-1)});var qt=S(Wt,2),Jt=D(qt);I(Jt,{variant:`ghost`,size:`sm`,class:`h-7 gap-1.5 px-2 text-xs`,title:`Read-only analysis: duplicates, conflicts, shared resources`,onclick:()=>{m(C)&&m(E)&&N(`workspaces.intelligence`,{wsId:m(C),providerId:m(E)},{})},children:(e,t)=>{var n=He(),r=A(n);ke(r,{class:`h-3.5 w-3.5`}),x(),l(e,n)},$$slots:{default:!0}});var Yt=S(Jt,2);I(Yt,{variant:`ghost`,size:`sm`,class:`h-7 gap-1.5 px-2 text-xs`,title:`Compare installed skills against their upstream sources`,get disabled(){return H.checking},onclick:()=>void Pt(),children:(e,t)=>{var n=Ue(),r=A(n),i=e=>{L(e,{class:`h-3.5 w-3.5 animate-spin`})},a=e=>{Le(e,{class:`h-3.5 w-3.5`})};c(r,e=>{H.checking?e(i):e(a,-1)}),x(),l(e,n)},$$slots:{default:!0}}),n(qt),n(Vt);var Xt=S(Vt,2),Zt=D(Xt);Ee(Zt,{class:`pointer-events-none absolute left-2 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground`});var Qt=S(Zt,2);ie(Qt),re(Qt,e=>y(Be,e),()=>m(Be)),n(Xt),n(Bt);var $t=S(Bt,2),en=e=>{var t=We(),r=D(t);L(r,{class:`h-3.5 w-3.5 animate-spin`}),x(),n(t),l(e,t)},tn=e=>{var t=Ge(),r=D(t),i=_(r,!0),s=S(r,2);n(t),T(()=>a(i,H.checkError)),o(`click`,s,()=>void Pt()),l(e,t)},nn=e=>{var r=nt(),i=D(r),s=D(i),u=e=>{var t=Je(),r=S(D(t),2),i=e=>{var t=Ke(),n=_(t);T(()=>a(n,`· ${m($).updated??``} updated`)),l(e,t)};c(r,e=>{m($).updated>0&&e(i)});var o=S(r,2),s=e=>{var t=Ke(),n=_(t);T(()=>a(n,`· ${m($).current??``} already current`)),l(e,t)};c(o,e=>{m($).current>0&&e(s)});var u=S(o,2),d=e=>{var t=qe(),n=_(t);T(()=>a(n,`· ${m($).failed??``} failed`)),l(e,t)};c(u,e=>{m($).failed>0&&e(d)}),n(t),l(e,t)},d=e=>{var t=Qe(),r=A(t),i=D(r),o=e=>{var t=Ye(),n=_(t);T(()=>a(n,`${m(Q).outdated??``} outdated`)),l(e,t)},s=e=>{var t=Xe();l(e,t)};c(i,e=>{m(Q).outdated>0?e(o):e(s,-1)});var u=S(i,2),d=e=>{var t=Ke(),n=_(t);T(()=>a(n,`· ${m(Q).current??``} up to date`)),l(e,t)};c(u,e=>{m(Q).current>0&&e(d)});var f=S(u,2),p=e=>{var t=Ke(),n=_(t);T(()=>a(n,`· ${m(Q).unavailable??``} unavailable`)),l(e,t)};c(f,e=>{m(Q).unavailable>0&&e(p)});var h=S(f,2),g=e=>{var t=qe(),n=_(t);T(()=>a(n,`· ${m(Q).failed??``} failed`)),l(e,t)};c(h,e=>{m(Q).failed>0&&e(g)}),n(r);var v=S(r,2),y=e=>{I(e,{size:`sm`,class:`h-7 gap-1.5 px-2 text-xs`,get disabled(){return H.applying},onclick:()=>void Ft(),children:(e,t)=>{var n=Ze(),r=A(n),i=e=>{L(e,{class:`h-3.5 w-3.5 animate-spin`})},o=e=>{Le(e,{class:`h-3.5 w-3.5`})};c(r,e=>{H.applying?e(i):e(o,-1)});var s=S(r);T(()=>a(s,` Update ${m(Nt).length??``}`)),l(e,n)},$$slots:{default:!0}})};c(v,e=>{m(Nt).length>0&&e(y)}),l(e,t)};c(s,e=>{m($)?e(u):e(d,-1)});var p=S(s,2),h=D(p);Se(h,{class:`h-3.5 w-3.5`}),n(p),n(i);var g=S(i,2),v=e=>{let r=b(()=>H.applyResults??H.results);var i=tt();t(i,21,()=>m(r),e=>e.skillId,(e,t)=>{var r=et(),i=A(r),o=D(i),s=_(o,!0),u=S(o,2),d=e=>{B(e,{variant:`secondary`,class:`text-[10px]`,children:(e,t)=>{x();var n=f();T(()=>a(n,m($)?`reinstalled`:`outdated`)),l(e,n)},$$slots:{default:!0}})},p=e=>{B(e,{variant:`outline`,class:`text-[10px]`,children:(e,t)=>{x();var n=f(`current`);l(e,n)},$$slots:{default:!0}})},h=e=>{B(e,{variant:`destructive`,class:`text-[10px]`,children:(e,t)=>{x();var n=f(`failed`);l(e,n)},$$slots:{default:!0}})},g=e=>{B(e,{variant:`outline`,class:`text-[10px]`,children:(e,t)=>{x();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=S(i,2),y=e=>{var n=$e(),r=_(n,!0);T(()=>a(r,m(t).error)),l(e,n)};c(v,e=>{m(t).error&&e(y)}),T(()=>a(s,m(t).name)),l(e,r)}),n(i),l(e,i)};c(g,e=>{(H.applyResults??H.results)&&e(v)}),n(r),o(`click`,p,()=>Me()),l(e,r)};c($t,e=>{H.checking?e(en):H.checkError?e(tn,1):(H.results.length>0||H.applyResults)&&e(nn,2)});var rn=S($t,2),an=D(rn),on=e=>{var t=rt(),r=D(t);L(r,{class:`h-3.5 w-3.5 animate-spin`}),x(),n(t),l(e,t)},sn=e=>{var t=it(),r=D(t),i=_(r,!0),o=S(r,2),s=e=>{I(e,{variant:`outline`,size:`sm`,class:`h-7 text-xs`,onclick:()=>void ye(m(X)),children:(e,t)=>{x();var n=f(`Retry`);l(e,n)},$$slots:{default:!0}})};c(o,e=>{m(X)&&e(s)}),n(t),T(()=>a(i,F.error)),l(e,t)},cn=e=>{var t=at();l(e,t)},ln=e=>{var n=oe(),r=A(n);t(r,17,()=>m(Tt),e=>e.id,(e,t)=>{{let n=b(()=>m(t).id===m(j));Fe(e,{get skill(){return m(t)},get selected(){return m(n)},onclick:()=>Ot(m(t).id)})}}),l(e,n)};c(an,e=>{F.loading?e(on):F.error?e(sn,1):m(Tt).length===0?e(cn,2):e(ln,-1)}),n(rn),n(zt);var un=S(zt,2),dn=D(un),fn=e=>{var t=ot(),r=D(t);Ce(r,{class:`h-8 w-8 opacity-50`}),x(4),n(t),l(e,t)},pn=e=>{var t=st(),r=D(t);L(r,{class:`h-4 w-4 animate-spin`}),x(),n(t),l(e,t)},mn=e=>{var t=ct(),r=D(t),i=_(r,!0),o=S(r,2),s=e=>{I(e,{variant:`outline`,size:`sm`,onclick:()=>wt(m(X),m(j)),children:(e,t)=>{x();var n=f(`Retry`);l(e,n)},$$slots:{default:!0}})};c(o,e=>{m(X)&&m(j)&&e(s)}),n(t),T(()=>a(i,m(U))),l(e,t)},hn=e=>{let r=b(()=>m(Dt));var i=xt(),u=A(i),d=D(u),p=D(d);Ie(D(p),{class:`h-4 w-4`}),n(p);var g=S(p,2),ee=D(g),C=e=>{we(e,{class:`h-8 text-base font-semibold`,"aria-label":`Skill name`,get value(){return m(J)},set value(e){y(J,e,!0)}})},w=e=>{var t=lt(),n=_(t,!0);T(()=>a(n,m(z).name)),l(e,t)};c(ee,e=>{m(r)?e(C):e(w,-1)});var E=S(ee,2),ie=e=>{var t=ut();h(t),v(t,()=>m(Y),e=>y(Y,e)),l(e,t)},O=e=>{var t=dt(),n=_(t,!0);T(()=>a(n,m(z).description)),l(e,t)};c(E,e=>{m(r)?e(ie):e(O,-1)}),n(g);var k=S(g,2),j=D(k),M=e=>{I(e,{size:`sm`,class:`h-8 gap-1.5`,onclick:Lt,get disabled(){return m(K)},children:(e,t)=>{var n=oe(),r=A(n),i=e=>{var t=ft(),n=A(t);L(n,{class:`h-3.5 w-3.5 animate-spin`}),x(),l(e,t)},a=e=>{var t=f(`Save`);l(e,t)};c(r,e=>{m(K)?e(i):e(a,-1)}),l(e,n)},$$slots:{default:!0}})};c(j,e=>{m(r)&&e(M)});var N=S(j,2);I(N,{variant:`outline`,size:`sm`,class:`h-8 gap-1.5`,onclick:It,get disabled(){return m(W)},children:(e,t)=>{var n=pt(),r=A(n),i=e=>{L(e,{class:`h-3.5 w-3.5 animate-spin`})},a=e=>{Ve(e,{class:`h-3.5 w-3.5`})};c(r,e=>{m(W)?e(i):e(a,-1)}),x(),l(e,n)},$$slots:{default:!0}});var se=S(N,2);{let e=b(()=>m(z).disabled?`default`:`outline`);I(se,{size:`sm`,get variant(){return m(e)},class:`h-8 gap-1.5`,get disabled(){return m(q)},onclick:Mt,children:(e,t)=>{var n=Ze(),r=A(n),i=e=>{L(e,{class:`h-3.5 w-3.5 animate-spin`})},o=e=>{ze(e,{class:`h-3.5 w-3.5`})};c(r,e=>{m(q)?e(i):e(o,-1)});var s=S(r);T(()=>a(s,` ${m(z).disabled?`Enable`:`Disable`}`)),l(e,n)},$$slots:{default:!0}})}n(k),n(d);var ce=S(d,2),le=D(ce);B(le,{variant:`secondary`,children:(e,t)=>{x();var n=f();T(()=>a(n,m(z).provider)),l(e,n)},$$slots:{default:!0}});var ue=S(le,2);B(ue,{variant:`outline`,children:(e,t)=>{x();var n=f();T(()=>a(n,m(z).directoryName)),l(e,n)},$$slots:{default:!0}});var de=S(ue,2),P=e=>{B(e,{variant:`outline`,class:`text-amber-700 dark:text-amber-300`,children:(e,t)=>{x();var n=f(`Disabled`);l(e,n)},$$slots:{default:!0}})};c(de,e=>{m(z).disabled&&e(P)}),n(ce),n(u),re(u,e=>y(Re,e),()=>m(Re));var fe=S(u,2),pe=D(fe),me=e=>{var r=vt(),i=D(r),o=D(i),s=e=>{var t=mt(),n=A(t);Te(n,{class:`h-4 w-4 text-emerald-600`}),x(),l(e,t)},u=e=>{var t=ht();Ve(A(t),{class:`h-4 w-4 text-destructive`}),x(),l(e,t)};c(o,e=>{m(G).success?e(s):e(u,-1)}),n(i);var d=S(i,2);t(d,17,()=>m(G).errors,te,(e,t)=>{var n=gt(),r=_(n,!0);T(()=>a(r,m(t))),l(e,n)});var f=S(d,2);t(f,17,()=>m(G).warnings,te,(e,t)=>{var n=_t(),r=_(n,!0);T(()=>a(r,m(t))),l(e,n)}),n(r),l(e,r)};c(pe,e=>{m(G)&&e(me)});var he=S(pe,2),ge=e=>{var r=bt(),i=S(D(r),2);t(i,21,()=>Object.entries(m(Z).frontmatter),te,(e,t,r)=>{var i=b(()=>s(m(t),2));let o=()=>m(i)[0],c=()=>m(i)[1];var u=yt();ae(u,1,`grid grid-cols-[120px_minmax(0,1fr)] ${r>0?`border-t border-border`:``}`);var d=D(u),f=_(d,!0),p=S(d,2),h=_(p,!0);n(u),T(e=>{a(f,o()),a(h,e)},[()=>c()===null?`null`:String(c())]),l(e,u)}),n(i),n(r),l(e,r)};c(he,e=>{m(Z)&&e(ge)});var _e=S(he,2),ve=S(D(_e),2);ne(ve,()=>m(Et),!0),n(ve),n(_e),n(fe),o(`click`,p,At),l(e,i)};c(dn,e=>{m(j)?m(V)?e(pn,1):m(U)?e(mn,2):m(z)&&e(hn,3):e(fn)}),n(un),n(Rt),T(()=>{ae(zt,1,`provider-list flex min-h-0 flex-col border-r border-border ${m(P)===`detail`?`provider-list-hidden`:``}`,`svelte-9qjypz`),a(Ut,m(E)??`—`),ee(Qt,m(M)),ae(un,1,`provider-detail flex min-h-0 flex-col ${m(P)===`list`?`provider-detail-hidden`:``}`,`svelte-9qjypz`)}),o(`input`,Qt,e=>kt(e.currentTarget.value)),l(r,Rt),d()}p([`input`,`click`]);export{Ct as default};
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 ee,gt as b,j as te,k as ne,kt as x,l as re,lt as S,m as C,mt as w,nt as T,o as E,ot as D,p as ie,rt as O,s as k,st as A,ut as j,x as ae,z as oe}from"./CmCJ0SKP.js";import"./xihTtKlq.js";import{t as M}from"./BkEnd9_Z.js";import{a as N,i as se,r as ce}from"./BNZqT8Gb.js";import{_ as le,a as ue,b as de,s as P,t as fe,u as pe,v as me,x as he}from"./DFx4VmvA.js";import{a as ge,i as _e,l as ve,n as ye,o as be,r as F,t as xe}from"./CryWMAmp.js";import{a as I,i as L,n as R,s as z}from"./CNPsST_i.js";import{t as Se}from"./BEPs9Z9s.js";import{n as Ce,r as we,t as Te}from"./Ckw1quWt.js";import{t as Ee}from"./CIFG41pU.js";import{n as De,t as Oe}from"./s48N5eaK.js";import{t as B}from"./D-V0xBeS.js";import{t as ke}from"./D8Der6oM.js";var V=fe(ue),H=j({target:null,checking:!1,applying:!1,checkError:null,results:[],applyResults:null});async function Ae(e,t){let n=V.issue(),r=()=>n.isCurrent()&&_e(H.target,e);H.target=e,H.checking=!0,H.checkError=null,H.results=[],H.applyResults=null;try{let{results:n}=await P().skills.update.check({...e,skillIds:t});if(!r())return;H.results=n}catch(e){if(!r())return;H.checkError=e instanceof Error?e.message:String(e)}finally{n.isLatest()&&(H.checking=!1)}}async function je(e,t){let n=V.issue(),r=()=>n.isCurrent()&&_e(H.target,e);H.applying=!0;try{let{results:n}=await P().skills.update.apply({...e,skillIds:t});return r()?(H.applyResults=n,n):null}catch(e){if(!r())return null;throw e}finally{n.isLatest()&&(H.applying=!1)}}function Me(){V.invalidate(),H.results=[],H.applyResults=null,H.checkError=null}function Ne(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 Pe(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 U=new Set([`$$slots`,`$$events`,`$$legacy`]);function W(e,t){let n=E(t,U),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`}]];M(e,k({name:`circle-pause`},()=>n,{get iconNode(){return r}}))}var G=r(`<span title="Disabled (paused)" class="shrink-0"><!></span>`),K=r(`<span class="shrink-0 text-[10px] uppercase tracking-wide text-amber-600 dark:text-amber-400">disabled</span>`),q=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-[11px] leading-4"> </span></span></button>`);function Fe(e,t){i(t,!0);let r=g(t,`selected`,3,!1);var s=q(),f=D(s),p=e=>{var t=G();W(D(t),{class:`mt-0.5 h-4 w-4 text-amber-600 dark:text-amber-400`}),n(t),l(e,t)},m=e=>{Ce(e,{class:`mt-0.5 h-4 w-4 shrink-0 text-primary`})};c(f,e=>{t.skill.disabled?e(p):e(m,-1)});var h=S(f,2),v=D(h),y=D(v),ee=_(y,!0),b=S(y,2),te=e=>{var t=K();l(e,t)};c(b,e=>{t.skill.disabled&&e(te)}),n(v);var ne=S(v,2),x=_(ne,!0);n(h),n(s),T(e=>{C(s,`data-skill-id`,t.skill.id),C(s,`aria-pressed`,r()),ae(s,1,e),a(ee,t.skill.name),a(x,t.skill.description||`No description`)},[()=>u(z(`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`,s,function(...e){t.onclick?.apply(this,e)}),l(e,s),d()}p([`click`]);var J=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ie(e,t){let n=E(t,J),r=[[`path`,{d:`m12 19-7-7 7-7`}],[`path`,{d:`M19 12H5`}]];M(e,k({name:`arrow-left`},()=>n,{get iconNode(){return r}}))}var Y=new Set([`$$slots`,`$$events`,`$$legacy`]);function Le(e,t){let n=E(t,Y),r=[[`path`,{d:`M12 17V3`}],[`path`,{d:`m6 11 6 6 6-6`}],[`path`,{d:`M19 21H5`}]];M(e,k({name:`arrow-down-to-line`},()=>n,{get iconNode(){return r}}))}var Re=new Set([`$$slots`,`$$events`,`$$legacy`]);function ze(e,t){let n=E(t,Re),r=[[`path`,{d:`M12 2v10`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`}]];M(e,k({name:`power`},()=>n,{get iconNode(){return r}}))}var Be=new Set([`$$slots`,`$$events`,`$$legacy`]);function Ve(e,t){let n=E(t,Be),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`}]];M(e,k({name:`shield-check`},()=>n,{get iconNode(){return r}}))}var He=r(`<!> Insights`,1),Ue=r(`<!> Updates`,1),We=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>`),Ge=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>`),Ke=r(`<span class="text-muted-foreground"> </span>`),qe=r(`<span class="text-destructive"> </span>`),Je=r(`<p class="min-w-0 flex-1 text-xs"><span class="font-medium">Applied</span> <!> <!> <!></p>`),Ye=r(`<span class="font-medium text-primary"> </span>`),Xe=r(`<span class="font-medium">All current</span>`),Ze=r(`<!> `,1),Qe=r(`<p class="min-w-0 flex-1 text-xs"><!> <!> <!> <!></p> <!>`,1),$e=r(`<li class="pl-3 text-[10px] text-muted-foreground"> </li>`),et=r(`<li class="flex items-baseline gap-1.5"><span class="min-w-0 flex-1 truncate"> </span> <!></li> <!>`,1),tt=r(`<ul class="mt-1.5 max-h-40 space-y-1 overflow-y-auto text-[11px]"></ul>`),nt=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>`),rt=r(`<div class="flex items-center gap-2 px-4 py-6 text-xs text-muted-foreground"><!> Loading skills…</div>`),it=r(`<div class="flex flex-col items-start gap-2 px-4 py-6 text-xs text-destructive"><p class="break-words"> </p> <!></div>`),at=r(`<p class="px-4 py-6 text-xs text-muted-foreground">No skills match.</p>`),ot=r(`<div class="flex h-full flex-col items-center justify-center gap-2 px-8 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>`),st=r(`<div class="flex h-full items-center justify-center gap-2 text-xs text-muted-foreground"><!> Loading skill…</div>`),ct=r(`<div class="flex h-full flex-col items-center justify-center gap-2 px-8 text-center"><p class="text-xs text-destructive"> </p> <!></div>`),lt=r(`<h2 class="truncate text-base font-semibold"> </h2>`),ut=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>`),dt=r(`<p class="mt-0.5 text-xs leading-5 text-muted-foreground"> </p>`),ft=r(`<!> Save`,1),pt=r(`<!> Validate`,1),mt=r(`<!> Valid skill`,1),ht=r(`<!> Validation issues`,1),gt=r(`<p class="mt-1 text-xs text-destructive"> </p>`),_t=r(`<p class="mt-1 text-xs text-amber-700 dark:text-amber-300"> </p>`),vt=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>`),yt=r(`<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>`),bt=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>`),xt=r(`<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 text-muted-foreground">SKILL.md</h3> <div class="prose prose-sm max-w-none overflow-x-auto"></div></section></div>`,1),St=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 flex-wrap 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-2 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"/></div></header> <!> <div class="min-h-0 flex-1 overflow-y-auto"><!></div></section> <section aria-label="Skill detail"><!></section></div>`);function Ct(r,u){i(u,!0);let p=ce(),g=se(),C=b(()=>p?.()?.wsId),E=b(()=>p?.()?.providerId),k=b(()=>g?.()??{}),j=b(()=>m(k).skill),M=b(()=>m(k).q??``),P=b(()=>m(k).view??`list`),_e=fe(ue),z=w(null),V=w(!1),U=w(null),W=w(!1),G=w(null),K=w(!1),q=w(!1),J=w(``),Y=w(``),Re=w(null),Be=w(null),Ct=null,X=b(()=>{if(!m(C)||!m(E))return null;let e=he.safeParse(m(C)),t=de.safeParse(m(E));return!e.success||!t.success?null:{workspaceId:e.data,providerId:t.data}});O(()=>{m(X)&&ye(m(X))}),O(()=>{let e=m(X),t=m(j);if(!e||!t){y(z,null),y(U,null);return}wt(e,t)});async function wt(e,t){let n=_e.issue(),r=me.safeParse(t);if(!r.success){y(z,null),y(U,`Invalid skill id in URL.`);return}y(V,!0),y(U,null),y(G,null);try{let t=await xe(e,r.data);if(!n.isCurrent())return;y(z,t,!0);let{frontmatter:i}=De(t.content),a=pe.safeParse(i);y(J,a.success?a.data.name:t.name,!0),y(Y,a.success?a.data.description:t.description,!0)}catch(e){if(!n.isCurrent())return;y(z,null),y(U,e instanceof Error?e.message:String(e),!0)}finally{n.isLatest()&&y(V,!1)}}let Tt=b(()=>{let e=m(M).trim().toLowerCase(),t=F.skills;return e?t.filter(t=>[t.name,t.description,t.provider].some(t=>t.toLowerCase().includes(e))):t}),Z=b(()=>m(z)?De(m(z).content):null),Et=b(()=>m(Z)?Oe(m(Z).body):``),Dt=b(()=>m(X)!==null&&m(X).workspaceId!==`~`);function Ot(e){m(C)&&m(E)&&N(`workspaces.provider`,{wsId:m(C),providerId:m(E)},{...m(k),skill:e,view:`detail`})}function kt(e){m(C)&&m(E)&&N(`workspaces.provider`,{wsId:m(C),providerId:m(E)},{...m(k),q:e||void 0},`REPLACE`)}function At(){m(C)&&m(E)&&(Ct=m(j)??null,N(`workspaces.provider`,{wsId:m(C),providerId:m(E)},{...m(k),view:`list`}))}let jt=`list`;O(()=>{let t=m(P),n=e(()=>jt),r=e(()=>Ct);jt=t,t===`list`&&n===`detail`&&r&&(Ct=null,(document.querySelector(`button[data-skill-id="${CSS.escape(r)}"]`)??m(Be))?.focus())}),O(()=>{m(P)!==`detail`||m(V)||m(z)?.id!==void 0&&m(Re)?.focus()});async function Mt(){let e=m(z);if(!e||!m(X)||m(q))return;y(q,!0);let t=e.disabled?`enable`:`disable`;try{let n=await ge([e.id],t);if(!n)return;let r=n.results.find(t=>t.skillId===e.id);r&&(r.status===`conflict`?R(`${r.name}: ${t} conflict${r.error?` — ${r.error}`:`.`}`):r.status===`failed`?R(`${r.name}: ${t} failed — ${r.error??`unknown error`}`):r.status===`skipped`?R(`${r.name}: already ${t===`enable`?`enabled`:`disabled`}.`):R(`${r.name} ${r.status}.`)),await wt(m(X),e.id)}catch(e){R(e instanceof Error?e.message:String(e))}finally{y(q,!1)}}let Nt=b(()=>H.results.filter(e=>e.status===`updated`).map(e=>e.skillId)),Q=b(()=>Ne(H.results)),$=b(()=>H.applyResults?Pe(H.applyResults):null);O(()=>{m(X)&&Me()});async function Pt(){m(X)&&!H.checking&&await Ae(m(X))}async function Ft(){if(m(X)&&!H.applying&&m(Nt).length!==0)try{let e=await je(m(X),m(Nt));if(!e)return;let t=Pe(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);R(n.length>0?n.join(` · `):`No changes applied.`),await ye(m(X))}catch(e){R(e instanceof Error?e.message:String(e))}}async function It(){if(m(z)&&m(X)){y(W,!0),y(G,null);try{let e=await be(m(z).id);e&&y(G,{success:e.success,errors:e.errors,warnings:e.warnings},!0)}catch(e){y(G,{success:!1,errors:[e instanceof Error?e.message:String(e)],warnings:[]},!0)}finally{y(W,!1)}}}async function Lt(){let e=m(z),t=m(X),n=m(Z)?.body;if(!e||!t||n===void 0)return;let r=m(J).trim(),i=m(Y).trim();if(!r||!i){R(`Name and description cannot be empty.`);return}y(K,!0);try{let a=m(Z)?m(Z).frontmatter:{},o=pe.safeParse({...a,name:r,description:i});if(!o.success){R(`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(z,{...e,revision:c.document.revision,name:r,description:i},!0),R(`Saved.`)}catch(e){e instanceof le&&e.code===`CONFLICT`?R(`This skill changed elsewhere. Reload to view the latest.`,{label:`Reload`,run:()=>{t&&m(z)&&wt(t,m(z).id)}}):R(e instanceof Error?e.message:String(e))}finally{y(K,!1)}}var Rt=St(),zt=D(Rt),Bt=D(zt),Vt=D(Bt),Ht=D(Vt),Ut=_(Ht,!0),Wt=S(Ht,2),Gt=e=>{L(e,{class:`h-3.5 w-3.5 shrink-0 animate-spin text-muted-foreground`,title:`Refreshing skills`})},Kt=e=>{B(e,{variant:`secondary`,children:(e,t)=>{x();var n=f();T(()=>a(n,m(Tt).length)),l(e,n)},$$slots:{default:!0}})};c(Wt,e=>{F.refreshing?e(Gt):e(Kt,-1)});var qt=S(Wt,2),Jt=D(qt);I(Jt,{variant:`ghost`,size:`sm`,class:`h-7 gap-1.5 px-2 text-xs`,title:`Read-only analysis: duplicates, conflicts, shared resources`,onclick:()=>{m(C)&&m(E)&&N(`workspaces.intelligence`,{wsId:m(C),providerId:m(E)},{})},children:(e,t)=>{var n=He(),r=A(n);ke(r,{class:`h-3.5 w-3.5`}),x(),l(e,n)},$$slots:{default:!0}});var Yt=S(Jt,2);I(Yt,{variant:`ghost`,size:`sm`,class:`h-7 gap-1.5 px-2 text-xs`,title:`Compare installed skills against their upstream sources`,get disabled(){return H.checking},onclick:()=>void Pt(),children:(e,t)=>{var n=Ue(),r=A(n),i=e=>{L(e,{class:`h-3.5 w-3.5 animate-spin`})},a=e=>{Le(e,{class:`h-3.5 w-3.5`})};c(r,e=>{H.checking?e(i):e(a,-1)}),x(),l(e,n)},$$slots:{default:!0}}),n(qt),n(Vt);var Xt=S(Vt,2),Zt=D(Xt);Ee(Zt,{class:`pointer-events-none absolute left-2 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground`});var Qt=S(Zt,2);ie(Qt),re(Qt,e=>y(Be,e),()=>m(Be)),n(Xt),n(Bt);var $t=S(Bt,2),en=e=>{var t=We(),r=D(t);L(r,{class:`h-3.5 w-3.5 animate-spin`}),x(),n(t),l(e,t)},tn=e=>{var t=Ge(),r=D(t),i=_(r,!0),s=S(r,2);n(t),T(()=>a(i,H.checkError)),o(`click`,s,()=>void Pt()),l(e,t)},nn=e=>{var r=nt(),i=D(r),s=D(i),u=e=>{var t=Je(),r=S(D(t),2),i=e=>{var t=Ke(),n=_(t);T(()=>a(n,`· ${m($).updated??``} updated`)),l(e,t)};c(r,e=>{m($).updated>0&&e(i)});var o=S(r,2),s=e=>{var t=Ke(),n=_(t);T(()=>a(n,`· ${m($).current??``} already current`)),l(e,t)};c(o,e=>{m($).current>0&&e(s)});var u=S(o,2),d=e=>{var t=qe(),n=_(t);T(()=>a(n,`· ${m($).failed??``} failed`)),l(e,t)};c(u,e=>{m($).failed>0&&e(d)}),n(t),l(e,t)},d=e=>{var t=Qe(),r=A(t),i=D(r),o=e=>{var t=Ye(),n=_(t);T(()=>a(n,`${m(Q).outdated??``} outdated`)),l(e,t)},s=e=>{var t=Xe();l(e,t)};c(i,e=>{m(Q).outdated>0?e(o):e(s,-1)});var u=S(i,2),d=e=>{var t=Ke(),n=_(t);T(()=>a(n,`· ${m(Q).current??``} up to date`)),l(e,t)};c(u,e=>{m(Q).current>0&&e(d)});var f=S(u,2),p=e=>{var t=Ke(),n=_(t);T(()=>a(n,`· ${m(Q).unavailable??``} unavailable`)),l(e,t)};c(f,e=>{m(Q).unavailable>0&&e(p)});var h=S(f,2),g=e=>{var t=qe(),n=_(t);T(()=>a(n,`· ${m(Q).failed??``} failed`)),l(e,t)};c(h,e=>{m(Q).failed>0&&e(g)}),n(r);var v=S(r,2),y=e=>{I(e,{size:`sm`,class:`h-7 gap-1.5 px-2 text-xs`,get disabled(){return H.applying},onclick:()=>void Ft(),children:(e,t)=>{var n=Ze(),r=A(n),i=e=>{L(e,{class:`h-3.5 w-3.5 animate-spin`})},o=e=>{Le(e,{class:`h-3.5 w-3.5`})};c(r,e=>{H.applying?e(i):e(o,-1)});var s=S(r);T(()=>a(s,` Update ${m(Nt).length??``}`)),l(e,n)},$$slots:{default:!0}})};c(v,e=>{m(Nt).length>0&&e(y)}),l(e,t)};c(s,e=>{m($)?e(u):e(d,-1)});var p=S(s,2),h=D(p);Se(h,{class:`h-3.5 w-3.5`}),n(p),n(i);var g=S(i,2),v=e=>{let r=b(()=>H.applyResults??H.results);var i=tt();t(i,21,()=>m(r),e=>e.skillId,(e,t)=>{var r=et(),i=A(r),o=D(i),s=_(o,!0),u=S(o,2),d=e=>{B(e,{variant:`secondary`,class:`text-[10px]`,children:(e,t)=>{x();var n=f();T(()=>a(n,m($)?`reinstalled`:`outdated`)),l(e,n)},$$slots:{default:!0}})},p=e=>{B(e,{variant:`outline`,class:`text-[10px]`,children:(e,t)=>{x();var n=f(`current`);l(e,n)},$$slots:{default:!0}})},h=e=>{B(e,{variant:`destructive`,class:`text-[10px]`,children:(e,t)=>{x();var n=f(`failed`);l(e,n)},$$slots:{default:!0}})},g=e=>{B(e,{variant:`outline`,class:`text-[10px]`,children:(e,t)=>{x();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=S(i,2),y=e=>{var n=$e(),r=_(n,!0);T(()=>a(r,m(t).error)),l(e,n)};c(v,e=>{m(t).error&&e(y)}),T(()=>a(s,m(t).name)),l(e,r)}),n(i),l(e,i)};c(g,e=>{(H.applyResults??H.results)&&e(v)}),n(r),o(`click`,p,()=>Me()),l(e,r)};c($t,e=>{H.checking?e(en):H.checkError?e(tn,1):(H.results.length>0||H.applyResults)&&e(nn,2)});var rn=S($t,2),an=D(rn),on=e=>{var t=rt(),r=D(t);L(r,{class:`h-3.5 w-3.5 animate-spin`}),x(),n(t),l(e,t)},sn=e=>{var t=it(),r=D(t),i=_(r,!0),o=S(r,2),s=e=>{I(e,{variant:`outline`,size:`sm`,class:`h-7 text-xs`,onclick:()=>void ye(m(X)),children:(e,t)=>{x();var n=f(`Retry`);l(e,n)},$$slots:{default:!0}})};c(o,e=>{m(X)&&e(s)}),n(t),T(()=>a(i,F.error)),l(e,t)},cn=e=>{var t=at();l(e,t)},ln=e=>{var n=oe(),r=A(n);t(r,17,()=>m(Tt),e=>e.id,(e,t)=>{{let n=b(()=>m(t).id===m(j));Fe(e,{get skill(){return m(t)},get selected(){return m(n)},onclick:()=>Ot(m(t).id)})}}),l(e,n)};c(an,e=>{F.loading?e(on):F.error?e(sn,1):m(Tt).length===0?e(cn,2):e(ln,-1)}),n(rn),n(zt);var un=S(zt,2),dn=D(un),fn=e=>{var t=ot(),r=D(t);Ce(r,{class:`h-8 w-8 opacity-50`}),x(4),n(t),l(e,t)},pn=e=>{var t=st(),r=D(t);L(r,{class:`h-4 w-4 animate-spin`}),x(),n(t),l(e,t)},mn=e=>{var t=ct(),r=D(t),i=_(r,!0),o=S(r,2),s=e=>{I(e,{variant:`outline`,size:`sm`,onclick:()=>wt(m(X),m(j)),children:(e,t)=>{x();var n=f(`Retry`);l(e,n)},$$slots:{default:!0}})};c(o,e=>{m(X)&&m(j)&&e(s)}),n(t),T(()=>a(i,m(U))),l(e,t)},hn=e=>{let r=b(()=>m(Dt));var i=xt(),u=A(i),d=D(u),p=D(d);Ie(D(p),{class:`h-4 w-4`}),n(p);var g=S(p,2),ee=D(g),C=e=>{we(e,{class:`h-8 text-base font-semibold`,"aria-label":`Skill name`,get value(){return m(J)},set value(e){y(J,e,!0)}})},w=e=>{var t=lt(),n=_(t,!0);T(()=>a(n,m(z).name)),l(e,t)};c(ee,e=>{m(r)?e(C):e(w,-1)});var E=S(ee,2),ie=e=>{var t=ut();h(t),v(t,()=>m(Y),e=>y(Y,e)),l(e,t)},O=e=>{var t=dt(),n=_(t,!0);T(()=>a(n,m(z).description)),l(e,t)};c(E,e=>{m(r)?e(ie):e(O,-1)}),n(g);var k=S(g,2),j=D(k),M=e=>{I(e,{size:`sm`,class:`h-8 gap-1.5`,onclick:Lt,get disabled(){return m(K)},children:(e,t)=>{var n=oe(),r=A(n),i=e=>{var t=ft(),n=A(t);L(n,{class:`h-3.5 w-3.5 animate-spin`}),x(),l(e,t)},a=e=>{var t=f(`Save`);l(e,t)};c(r,e=>{m(K)?e(i):e(a,-1)}),l(e,n)},$$slots:{default:!0}})};c(j,e=>{m(r)&&e(M)});var N=S(j,2);I(N,{variant:`outline`,size:`sm`,class:`h-8 gap-1.5`,onclick:It,get disabled(){return m(W)},children:(e,t)=>{var n=pt(),r=A(n),i=e=>{L(e,{class:`h-3.5 w-3.5 animate-spin`})},a=e=>{Ve(e,{class:`h-3.5 w-3.5`})};c(r,e=>{m(W)?e(i):e(a,-1)}),x(),l(e,n)},$$slots:{default:!0}});var se=S(N,2);{let e=b(()=>m(z).disabled?`default`:`outline`);I(se,{size:`sm`,get variant(){return m(e)},class:`h-8 gap-1.5`,get disabled(){return m(q)},onclick:Mt,children:(e,t)=>{var n=Ze(),r=A(n),i=e=>{L(e,{class:`h-3.5 w-3.5 animate-spin`})},o=e=>{ze(e,{class:`h-3.5 w-3.5`})};c(r,e=>{m(q)?e(i):e(o,-1)});var s=S(r);T(()=>a(s,` ${m(z).disabled?`Enable`:`Disable`}`)),l(e,n)},$$slots:{default:!0}})}n(k),n(d);var ce=S(d,2),le=D(ce);B(le,{variant:`secondary`,children:(e,t)=>{x();var n=f();T(()=>a(n,m(z).provider)),l(e,n)},$$slots:{default:!0}});var ue=S(le,2);B(ue,{variant:`outline`,children:(e,t)=>{x();var n=f();T(()=>a(n,m(z).directoryName)),l(e,n)},$$slots:{default:!0}});var de=S(ue,2),P=e=>{B(e,{variant:`outline`,class:`text-amber-700 dark:text-amber-300`,children:(e,t)=>{x();var n=f(`Disabled`);l(e,n)},$$slots:{default:!0}})};c(de,e=>{m(z).disabled&&e(P)}),n(ce),n(u),re(u,e=>y(Re,e),()=>m(Re));var fe=S(u,2),pe=D(fe),me=e=>{var r=vt(),i=D(r),o=D(i),s=e=>{var t=mt(),n=A(t);Te(n,{class:`h-4 w-4 text-emerald-600`}),x(),l(e,t)},u=e=>{var t=ht();Ve(A(t),{class:`h-4 w-4 text-destructive`}),x(),l(e,t)};c(o,e=>{m(G).success?e(s):e(u,-1)}),n(i);var d=S(i,2);t(d,17,()=>m(G).errors,te,(e,t)=>{var n=gt(),r=_(n,!0);T(()=>a(r,m(t))),l(e,n)});var f=S(d,2);t(f,17,()=>m(G).warnings,te,(e,t)=>{var n=_t(),r=_(n,!0);T(()=>a(r,m(t))),l(e,n)}),n(r),l(e,r)};c(pe,e=>{m(G)&&e(me)});var he=S(pe,2),ge=e=>{var r=bt(),i=S(D(r),2);t(i,21,()=>Object.entries(m(Z).frontmatter),te,(e,t,r)=>{var i=b(()=>s(m(t),2));let o=()=>m(i)[0],c=()=>m(i)[1];var u=yt();ae(u,1,`grid grid-cols-[120px_minmax(0,1fr)] ${r>0?`border-t border-border`:``}`);var d=D(u),f=_(d,!0),p=S(d,2),h=_(p,!0);n(u),T(e=>{a(f,o()),a(h,e)},[()=>c()===null?`null`:String(c())]),l(e,u)}),n(i),n(r),l(e,r)};c(he,e=>{m(Z)&&e(ge)});var _e=S(he,2),ve=S(D(_e),2);ne(ve,()=>m(Et),!0),n(ve),n(_e),n(fe),o(`click`,p,At),l(e,i)};c(dn,e=>{m(j)?m(V)?e(pn,1):m(U)?e(mn,2):m(z)&&e(hn,3):e(fn)}),n(un),n(Rt),T(()=>{ae(zt,1,`provider-list flex min-h-0 flex-col border-r border-border ${m(P)===`detail`?`provider-list-hidden`:``}`,`svelte-9qjypz`),a(Ut,m(E)??`—`),ee(Qt,m(M)),ae(un,1,`provider-detail flex min-h-0 flex-col ${m(P)===`list`?`provider-detail-hidden`:``}`,`svelte-9qjypz`)}),o(`input`,Qt,e=>kt(e.currentTarget.value)),l(r,Rt),d()}p([`input`,`click`]);export{Ct as default};
@@ -1 +1 @@
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"./BaH4uqzh.js";import"./xihTtKlq.js";import"./DLuJKUyD.js";import{t as k}from"./BkEnd9_Z.js";import{i as ee}from"./D-ecV3TD.js";import{n as A,t as j}from"./Dl8eQ129.js";import{n as M,s as N}from"./CNPsST_i.js";import{a as P,i as F,n as te,o as I,s as L,t as R}from"./DJNLWtK-.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),ee=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)},A=e=>{var t=U();s(e,t)};o(k,e=>{n.scanSummary?e(ee):e(A,-1)}),t(O);var M=_(O,2),P=S(M),F=_(P,2),te=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(te)});var I=_(F,2),L=e=>{var r=G(),i=S(r);j(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(I,e=>{!n.builtIn&&n.onremove&&e(L)}),t(M),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),j=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(j,``),m(N,``),m(z,``),m(B,null)}async function ne(){let e=d(j).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 I(e.id)&&(m(q,!1),M(`Removed source ${e.label}.`))}catch(e){M(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(()=>te(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(j),e=>m(j,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.`:``);A(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
+ 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"./CLVPf5uP.js";import"./xihTtKlq.js";import"./DrGEPnFY.js";import{t as k}from"./BkEnd9_Z.js";import{i as ee}from"./BNZqT8Gb.js";import{n as A,t as j}from"./Dl8eQ129.js";import{n as M,s as N}from"./CNPsST_i.js";import{a as P,i as F,n as te,o as I,s as L,t as R}from"./D68T6slS.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),ee=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)},A=e=>{var t=U();s(e,t)};o(k,e=>{n.scanSummary?e(ee):e(A,-1)}),t(O);var M=_(O,2),P=S(M),F=_(P,2),te=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(te)});var I=_(F,2),L=e=>{var r=G(),i=S(r);j(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(I,e=>{!n.builtIn&&n.onremove&&e(L)}),t(M),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),j=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(j,``),m(N,``),m(z,``),m(B,null)}async function ne(){let e=d(j).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 I(e.id)&&(m(q,!1),M(`Removed source ${e.label}.`))}catch(e){M(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(()=>te(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(j),e=>m(j,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.`:``);A(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 +1 @@
1
- import{$ as e,ut as t}from"./CmCJ0SKP.js";import{a as n,s as r,t as i}from"./DWcQbrnv.js";import"./BD9g8Udg.js";function a(e){return r().creator.save(e)}function o(e,t){return r().creator.load({...e,skillId:t})}async function s(e){await r().creator.remove({workspaceId:e.target.workspaceId,providerId:e.target.providerId,skillId:e.skillId,expectedRevision:e.expectedRevision})}var c=i(n),l=i(n),u=i(n),d=i(n),f=t({target:null,skills:[],selected:null,loading:!1,refreshing:!1,error:null,query:``});async function p(t){let n=c.issue(),i=()=>n.isCurrent()&&v(f.target,t),a=e(()=>!v(f.target,t)),o=e(()=>f.skills.length>0);a&&(l.invalidate(),f.target=t,f.skills=[],f.selected=null),f.loading=!o,f.refreshing=o,f.error=null;try{let{skills:e}=await r().skills.list({...t,includeDisabled:!0});if(!i())return;f.skills=e,f.selected&&!e.some(e=>e.id===f.selected?.id)&&(f.selected=null)}catch(e){if(!i())return;f.error=e instanceof Error?e.message:String(e)}finally{n.isLatest()&&(f.loading=!1,f.refreshing=!1)}}async function m(e){let t=f.target;if(!t)return;let n=l.issue(),i=()=>n.isCurrent()&&v(f.target,t);f.error=null;try{let n=await r().skills.info({...t,skillId:e,includeDisabled:!0});i()&&(f.selected=n)}catch(e){if(!i())return;f.error=e instanceof Error?e.message:String(e)}}async function h(e,t){let n=f.target;if(!n)return null;let i=u.issue(),a=()=>i.isCurrent()&&v(f.target,n),o;try{o=await r().skills.toggle({...n,skillIds:e,mode:t})}catch(e){if(!a())return null;throw e}return!a()||(await p(n),!a())?null:(f.selected&&e.includes(f.selected.id)&&await m(f.selected.id),a()?o:null)}async function g(e){let t=f.target;if(!t)return null;let n=d.issue(),i=()=>n.isCurrent()&&v(f.target,t);try{let n=await r().skills.validate({...t,skillId:e});return i()?n:null}catch(e){if(!i())return null;throw e}}function _(e,t){return r().skills.info({...e,skillId:t,includeDisabled:!0})}function v(e,t){return e?.workspaceId===t?.workspaceId&&e?.providerId===t?.providerId}export{h as a,s as c,v as i,a as l,p as n,g as o,f as r,o as s,_ as t};
1
+ import{$ as e,ut as t}from"./CmCJ0SKP.js";import{a as n,s as r,t as i}from"./DFx4VmvA.js";import"./DUYTokm-.js";function a(e){return r().creator.save(e)}function o(e,t){return r().creator.load({...e,skillId:t})}async function s(e){await r().creator.remove({workspaceId:e.target.workspaceId,providerId:e.target.providerId,skillId:e.skillId,expectedRevision:e.expectedRevision})}var c=i(n),l=i(n),u=i(n),d=i(n),f=t({target:null,skills:[],selected:null,loading:!1,refreshing:!1,error:null,query:``});async function p(t){let n=c.issue(),i=()=>n.isCurrent()&&v(f.target,t),a=e(()=>!v(f.target,t)),o=e(()=>f.skills.length>0);a&&(l.invalidate(),f.target=t,f.skills=[],f.selected=null),f.loading=!o,f.refreshing=o,f.error=null;try{let{skills:e}=await r().skills.list({...t,includeDisabled:!0});if(!i())return;f.skills=e,f.selected&&!e.some(e=>e.id===f.selected?.id)&&(f.selected=null)}catch(e){if(!i())return;f.error=e instanceof Error?e.message:String(e)}finally{n.isLatest()&&(f.loading=!1,f.refreshing=!1)}}async function m(e){let t=f.target;if(!t)return;let n=l.issue(),i=()=>n.isCurrent()&&v(f.target,t);f.error=null;try{let n=await r().skills.info({...t,skillId:e,includeDisabled:!0});i()&&(f.selected=n)}catch(e){if(!i())return;f.error=e instanceof Error?e.message:String(e)}}async function h(e,t){let n=f.target;if(!n)return null;let i=u.issue(),a=()=>i.isCurrent()&&v(f.target,n),o;try{o=await r().skills.toggle({...n,skillIds:e,mode:t})}catch(e){if(!a())return null;throw e}return!a()||(await p(n),!a())?null:(f.selected&&e.includes(f.selected.id)&&await m(f.selected.id),a()?o:null)}async function g(e){let t=f.target;if(!t)return null;let n=d.issue(),i=()=>n.isCurrent()&&v(f.target,t);try{let n=await r().skills.validate({...t,skillId:e});return i()?n:null}catch(e){if(!i())return null;throw e}}function _(e,t){return r().skills.info({...e,skillId:t,includeDisabled:!0})}function v(e,t){return e?.workspaceId===t?.workspaceId&&e?.providerId===t?.providerId}export{h as a,s as c,v as i,a as l,p as n,g as o,f as r,o as s,_ as t};
@@ -1 +1 @@
1
- import{ut as e}from"./CmCJ0SKP.js";import{a as t,o as n,t as r}from"./DWcQbrnv.js";var i=r(t),a=r(t),o=e({builtIn:[],user:[],loading:!1,error:null});async function s(){let e=i.issue(),t=n();if(!t)return e.isLatest()&&(o.loading=!1),`failed`;o.loading=!0,o.error=null;try{let{builtIn:n,user:r}=await t.repository.sources.list({});return e.isCurrent()?(o.builtIn=n,o.user=r,`loaded`):`superseded`}catch(t){return e.isCurrent()?(o.error=t instanceof Error?t.message:String(t),`failed`):`superseded`}finally{e.isLatest()&&(o.loading=!1)}}async function c(e){let t=a.issue(),n;try{({source:n}=await u().repository.sources.add(e))}catch(e){if(!t.isCurrent())return null;throw e}return t.isCurrent()?(await s(),t.isCurrent()?n:null):null}async function l(e){let t=a.issue();try{await u().repository.sources.remove({id:e})}catch(e){if(!t.isCurrent())return!1;throw e}return t.isCurrent()?(await s(),t.isCurrent()):!1}function u(){let e=n();if(!e)throw Error(`The Skill Creator daemon is not connected.`);return e}var d=3e5,f=e(new Map);function p(e){return f.get(e)}function m(e,t){f.set(e,{skillCount:t.skillCount,commitPrefix:t.commit.slice(0,12),scannedAt:Date.now()})}function h(e){return e?Date.now()-e.scannedAt>d:!1}export{s as a,c as i,h as n,l as o,m as r,o as s,p as t};
1
+ import{ut as e}from"./CmCJ0SKP.js";import{a as t,o as n,t as r}from"./DFx4VmvA.js";var i=r(t),a=r(t),o=e({builtIn:[],user:[],loading:!1,error:null});async function s(){let e=i.issue(),t=n();if(!t)return e.isLatest()&&(o.loading=!1),`failed`;o.loading=!0,o.error=null;try{let{builtIn:n,user:r}=await t.repository.sources.list({});return e.isCurrent()?(o.builtIn=n,o.user=r,`loaded`):`superseded`}catch(t){return e.isCurrent()?(o.error=t instanceof Error?t.message:String(t),`failed`):`superseded`}finally{e.isLatest()&&(o.loading=!1)}}async function c(e){let t=a.issue(),n;try{({source:n}=await u().repository.sources.add(e))}catch(e){if(!t.isCurrent())return null;throw e}return t.isCurrent()?(await s(),t.isCurrent()?n:null):null}async function l(e){let t=a.issue();try{await u().repository.sources.remove({id:e})}catch(e){if(!t.isCurrent())return!1;throw e}return t.isCurrent()?(await s(),t.isCurrent()):!1}function u(){let e=n();if(!e)throw Error(`The Skill Creator daemon is not connected.`);return e}var d=3e5,f=e(new Map);function p(e){return f.get(e)}function m(e,t){f.set(e,{skillCount:t.skillCount,commitPrefix:t.commit.slice(0,12),scannedAt:Date.now()})}function h(e){return e?Date.now()-e.scannedAt>d:!1}export{s as a,c as i,h as n,l as o,m as r,o as s,p as t};