vskill 0.5.153 → 0.5.154
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agents.json +1 -1
- package/dist/eval-ui/assets/{CommandPalette-Cegu0v87.js → CommandPalette-BdCTpuru.js} +1 -1
- package/dist/eval-ui/assets/{CreateSkillPage-m4qI3V50.js → CreateSkillPage-BTmTAiqN.js} +1 -1
- package/dist/eval-ui/assets/{FindSkillsPalette-EqHSViqi.js → FindSkillsPalette-imZp5JFm.js} +2 -2
- package/dist/eval-ui/assets/{SearchPaletteCore-B5dH-WNF.js → SearchPaletteCore-Bkmmx8rW.js} +1 -1
- package/dist/eval-ui/assets/SkillDetailPanel-C_LuX-d1.js +1 -0
- package/dist/eval-ui/assets/{UpdateDropdown-DD8HkVf7.js → UpdateDropdown-G1bDlsFU.js} +1 -1
- package/dist/eval-ui/assets/{index-CNgW8uSN.js → index-BCpoveAO.js} +3 -3
- package/dist/eval-ui/index.html +1 -1
- package/package.json +1 -1
- package/dist/eval-ui/assets/SkillDetailPanel-DE0G84Xr.js +0 -1
package/dist/eval-ui/index.html
CHANGED
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
}
|
|
47
47
|
})();
|
|
48
48
|
</script>
|
|
49
|
-
<script type="module" crossorigin src="/assets/index-
|
|
49
|
+
<script type="module" crossorigin src="/assets/index-BCpoveAO.js"></script>
|
|
50
50
|
<link rel="stylesheet" crossorigin href="/assets/index-CycZyHaL.css">
|
|
51
51
|
<link rel="stylesheet" crossorigin href="/assets/fonts-i7Lkz2zN.css">
|
|
52
52
|
</head>
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as e,r as d,T as H}from"./index-CNgW8uSN.js";import{s as $}from"./skill-url-C4ekwoGs.js";/* empty css */const B={T0:{label:"BLOCKED",cssVar:"var(--trust-t0)"},T1:{label:"UNSCANNED",cssVar:"var(--trust-t1)"},T2:{label:"BASIC",cssVar:"var(--trust-t2)"},T3:{label:"VERIFIED",cssVar:"var(--trust-t3)"},T4:{label:"CERTIFIED",cssVar:"var(--trust-t4)"}};function K({tier:t}){const o=B[t]??B.T1;return e.jsxs("span",{"data-testid":"trust-badge","data-tier":t,style:{display:"inline-flex",alignItems:"center",gap:"0.3rem",padding:"0.15rem 0.5rem",borderRadius:"4px",fontFamily:"var(--font-geist-mono)",fontSize:"0.6875rem",fontWeight:600,letterSpacing:"0.03em",textTransform:"uppercase",whiteSpace:"nowrap",color:o.cssVar,backgroundColor:`color-mix(in srgb, ${o.cssVar} 10%, transparent)`,border:`1px solid color-mix(in srgb, ${o.cssVar} 25%, transparent)`,lineHeight:1,height:"22px"},children:[t," ",o.label]})}const q=/^https?:\/\/github\.com\/([a-zA-Z0-9_.-]+)\/([a-zA-Z0-9_.-]+?)(\.git)?(\/.*)?$/;function G(t){var x,h;const s=t.trim().match(q);if(!s)return null;const l=(x=s[1])==null?void 0:x.toLowerCase();let r=(h=s[2])==null?void 0:h.toLowerCase();if(!l||!r)return null;r=r.replace(/\.git$/,"");const m=`https://github.com/${l}/${r}`;return{owner:l,name:r,url:m}}function Z({repoUrl:t,mono:o="var(--font-geist-mono)",fontSize:s="0.75rem",showPlaceholder:l=!0}){if(!t)return l?e.jsx("span",{style:{color:"var(--text-faint)",fontSize:s},children:"--"}):null;const r=G(t);return r?e.jsxs("a",{"data-testid":"repo-link",href:r.url,target:"_blank",rel:"noopener noreferrer",onClick:m=>m.stopPropagation(),style:{color:"#0D9488",textDecoration:"none",fontSize:s,fontFamily:o},children:[r.owner,"/",r.name]}):e.jsx("span",{style:{color:"var(--text-faint)",fontSize:s,fontFamily:o},children:t})}const X="var(--font-geist-mono)",Y={ONLINE:"var(--status-success-text)",OFFLINE:"var(--status-danger-text)",STALE:"var(--status-neutral-text)"},J={ONLINE:"var(--status-success-bg)",OFFLINE:"var(--status-danger-bg)",STALE:"var(--status-neutral-bg)"};function Q({skillName:t,repoUrl:o}){const[s,l]=d.useState(null),[r,m]=d.useState(!1);if(d.useEffect(()=>{o&&(m(!0),fetch($(t,"repo-health")).then(g=>{if(!g.ok)throw new Error("fetch failed");return g.json()}).then(g=>{l(g.status),m(!1)}).catch(()=>{l(null),m(!1)}))},[t,o]),!o)return null;if(r)return e.jsx("span",{"data-testid":"repo-health-loading",style:{display:"inline-block",width:56,height:20,borderRadius:"4px",backgroundColor:"color-mix(in srgb, var(--text-faint) 20%, transparent)",animation:"pulse 1.5s ease-in-out infinite"}});if(!s||s==="UNKNOWN")return null;const x=Y[s]??"var(--status-neutral-text)",h=J[s]??"var(--status-neutral-bg)";return e.jsx("span",{"data-testid":"repo-health-badge",style:{fontFamily:X,fontSize:"0.75rem",fontWeight:600,textTransform:"uppercase",letterSpacing:"0.03em",padding:"0.2rem 0.6rem",borderRadius:"999px",backgroundColor:h,color:x,whiteSpace:"nowrap"},children:s})}function ee({children:t,compact:o}){return e.jsx("pre",{"data-testid":"terminal-block",style:{background:"var(--bg-code, #161B22)",color:"#E6EDF3",fontFamily:"var(--font-geist-mono)",fontSize:o?"0.8rem":"0.875rem",lineHeight:1.6,padding:o?"1rem 1.25rem":"1.5rem 2rem",borderRadius:"6px",overflowX:"auto",margin:0},children:t})}const te="/api/v1/studio/telemetry/install-copy",re=/^[a-zA-Z0-9._@/-]+$/,ne=/^[a-zA-Z0-9._-]+$/,oe="https://verified-skill.com";function se(t){return`${t.owner}/${t.repo}/${t.slug}`}function ae(t,o){return t!=null&&t.ownerSlug&&(t!=null&&t.repoSlug)?`${t.ownerSlug}/${t.repoSlug}`:t!=null&&t.publisher?t.publisher:`${o.owner}/${o.repo}`}function ie(t,o,s){const l=s?`${t}/${o}@${s}`:`${t}/${o}`;if(!re.test(`${t}/${o}`))return{ok:!1,reason:"Invalid skill identifier"};if(s&&!ne.test(s))return{ok:!1,reason:"Invalid version identifier"};const r=`npx vskill@latest install ${l}`,m=[{label:"npm",comment:"# npm",command:r},{label:"bun",comment:"# bun",command:`bunx vskill@latest install ${l}`},{label:"pnpm",comment:"# pnpm",command:`pnpx vskill@latest install ${l}`},{label:"yarn",comment:"# yarn",command:`yarn dlx vskill@latest install ${l}`},{label:"alternative",comment:"# alternative (publisher + --skill flag)",command:s?`npx vskill@latest install ${t}@${s} --skill ${o}`:`npx vskill@latest install ${t} --skill ${o}`}];return{ok:!0,command:r,variants:m}}function z(t,o,s){typeof window>"u"||window.dispatchEvent(new CustomEvent("studio:toast",{detail:{message:t,kind:o,durationMs:s,severity:o==="error"?"error":"info"}}))}async function N(t){var o;if(typeof navigator<"u"&&((o=navigator.clipboard)!=null&&o.writeText))try{return await navigator.clipboard.writeText(t),!0}catch{}if(typeof document>"u")return!1;try{const s=document.createElement("textarea");s.value=t,s.setAttribute("readonly",""),s.style.position="fixed",s.style.left="-9999px",document.body.appendChild(s),s.select();const l=document.execCommand("copy");return document.body.removeChild(s),l}catch{return!1}}function _(t,o){try{fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o),keepalive:!0}).catch(()=>{})}catch{}}function ue({selectedSkill:t,onClose:o,telemetryInstallCopyUrl:s=te,onToast:l}){const[r,m]=d.useState(null),[x,h]=d.useState([]),[g,j]=d.useState(!0),[S,R]=d.useState(null),[f,A]=d.useState(null),[V,O]=d.useState(0),C=d.useRef(null),I=d.useRef(null),D=d.useRef(null),y=se(t);d.useEffect(()=>(D.current=document.activeElement??null,()=>{const n=D.current;if(n&&typeof n.focus=="function")try{n.focus()}catch{}}),[]),d.useEffect(()=>{const n=setTimeout(()=>{var a;return(a=I.current)==null?void 0:a.focus()},50);return()=>clearTimeout(n)},[]),d.useEffect(()=>{let n=!1;j(!0),R(null);const a=$(y),c=$(y,"versions");return Promise.all([fetch(a).then(async i=>{if(!i.ok)throw new Error(`metadata ${i.status}`);return i.json()}),fetch(c).then(async i=>{if(!i.ok)throw new Error(`versions ${i.status}`);const u=await i.json();return Array.isArray(u)?u:(u==null?void 0:u.versions)??[]})]).then(([i,u])=>{if(n)return;m(i),h(u);const v=u.find(E=>E.isLatest)??u[0]??null;A(v?v.version:null),j(!1)}).catch(i=>{n||(R(i instanceof Error?i.message:String(i)),j(!1))}),()=>{n=!0}},[y,V]),d.useEffect(()=>{function n(a){if(a.key==="Escape")a.stopPropagation(),w();else if(a.key==="Tab"){const c=C.current;if(!c)return;const i=c.querySelectorAll('a[href], button:not([disabled]), input:not([disabled]), [tabindex]:not([tabindex="-1"])');if(i.length===0)return;const u=i[0],v=i[i.length-1],E=document.activeElement;a.shiftKey&&E===u?(a.preventDefault(),v.focus()):!a.shiftKey&&E===v&&(a.preventDefault(),u.focus())}}return window.addEventListener("keydown",n,!0),()=>window.removeEventListener("keydown",n,!0)},[]);const w=d.useCallback(()=>{o();let n="";try{typeof window<"u"&&window.sessionStorage&&(n=window.sessionStorage.getItem("find-skills:last-query")??"")}catch{}typeof window<"u"&&window.dispatchEvent(new CustomEvent("openFindSkills",{detail:{query:n}}))},[o]),T=ae(r,t),k=(r==null?void 0:r.skillSlug)??t.slug,L=(r==null?void 0:r.displayName)??t.displayName??k,U=(r==null?void 0:r.isBlocked)===!0,b=d.useMemo(()=>x.length===0?[]:[...x].sort((a,c)=>{const i=a.publishedAt?Date.parse(a.publishedAt):0;return(c.publishedAt?Date.parse(c.publishedAt):0)-i}).slice(0,5),[x]),F=d.useMemo(()=>!f||b.length===0?!0:b[0].version===f,[f,b]),p=d.useMemo(()=>f?ie(T,k,F?null:f):null,[T,k,f,F]),M=d.useCallback(async()=>{if(!p||!p.ok)return;const n=await N(p.command);_(s,{skillName:y,version:f??"",q:"",ts:Date.now()});const a=n?`Run ${p.command} in your terminal`:"Copy failed — please copy the command manually.";if(l)try{l(a,n?"success":"error")}catch{}else z(a,n?"success":"error",3500)},[p,s,y,f,T,k,F,l]),P=(r==null?void 0:r.trustTier)??"T1",W=(r==null?void 0:r.certTier)==="CERTIFIED"||(r==null?void 0:r.certTier)==="VERIFIED"?r.certTier:"VERIFIED";return e.jsxs("div",{ref:C,"data-testid":"skill-detail-panel",role:"dialog","aria-modal":"true","aria-label":`Skill detail — ${L}`,style:{position:"fixed",inset:0,zIndex:9998,display:"flex",alignItems:"flex-start",justifyContent:"center",paddingTop:"min(10vh, 80px)"},onClick:n=>{n.target===n.currentTarget&&w()},children:[e.jsx("div",{style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.4)",backdropFilter:"blur(4px)"}}),e.jsxs("div",{onClick:n=>n.stopPropagation(),style:{position:"relative",width:"100%",maxWidth:720,margin:"0 1rem",background:"var(--bg-surface, #FFFFFF)",color:"var(--text-primary, #191919)",borderRadius:"8px",border:"1px solid var(--color-rule, #E8E1D6)",boxShadow:"0 20px 60px rgba(0,0,0,0.15)",overflow:"hidden",maxHeight:"80vh",display:"flex",flexDirection:"column"},children:[e.jsxs("div",{style:{padding:"0.75rem 1rem",borderBottom:"1px solid var(--color-rule, #E8E1D6)",display:"flex",alignItems:"center",justifyContent:"space-between",flexShrink:0},children:[e.jsx("button",{ref:I,type:"button",onClick:w,"data-testid":"skill-detail-back",style:{background:"transparent",border:"none",padding:"4px 8px",borderRadius:4,cursor:"pointer",fontFamily:"var(--font-mono, monospace)",fontSize:12,color:"var(--text-secondary, #5A5651)"},children:"← Back to results"}),e.jsx("kbd",{style:{fontFamily:"var(--font-mono, monospace)",fontSize:11,color:"var(--text-secondary, #5A5651)",border:"1px solid var(--color-rule, #E8E1D6)",borderRadius:4,padding:"1px 5px"},children:"Esc"})]}),e.jsxs("div",{style:{overflowY:"auto",padding:"1rem",flex:1},children:[g&&e.jsx("div",{"data-testid":"skill-detail-loading",style:{padding:"2rem",textAlign:"center",color:"var(--text-secondary, #5A5651)"},children:"Loading…"}),S&&!g&&e.jsxs("div",{"data-testid":"skill-detail-error",style:{padding:"1.5rem",textAlign:"center",fontFamily:"var(--font-mono, monospace)",fontSize:"0.875rem",color:"var(--red, #b54444)"},children:[e.jsxs("div",{style:{marginBottom:"0.75rem"},children:["Failed to load skill: ",S]}),e.jsx("button",{"data-testid":"skill-detail-retry",onClick:()=>O(n=>n+1),style:{fontFamily:"var(--font-mono, monospace)",fontSize:"0.8125rem",padding:"0.4rem 1rem",borderRadius:4,border:"1px solid var(--color-rule, #E8E1D6)",background:"transparent",color:"var(--text-primary, #191919)",cursor:"pointer"},children:"Retry"})]}),!g&&!S&&e.jsxs(e.Fragment,{children:[e.jsxs("section",{"data-testid":"skill-detail-hero",style:{marginBottom:"1.25rem"},children:[e.jsx("h2",{style:{margin:"0 0 0.5rem",fontSize:"1.25rem",fontWeight:600},children:L}),(r==null?void 0:r.description)&&e.jsx("p",{style:{margin:"0 0 0.75rem",color:"var(--text-secondary, #5A5651)",fontSize:"0.875rem",lineHeight:1.5},children:r.description}),e.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:"0.5rem",alignItems:"center"},children:[e.jsx(K,{tier:P}),e.jsx(H,{tier:W,isTainted:r==null?void 0:r.isTainted}),e.jsx(Z,{repoUrl:(r==null?void 0:r.repoUrl)??null}),e.jsx(Q,{skillName:y,repoUrl:r==null?void 0:r.repoUrl})]})]}),e.jsxs("section",{"data-testid":"skill-detail-versions",style:{marginBottom:"1.25rem"},children:[e.jsx("h3",{style:{margin:"0 0 0.5rem",fontSize:"0.8125rem",textTransform:"uppercase",letterSpacing:"0.06em",color:"var(--text-secondary, #5A5651)"},children:"Versions"}),b.length===0?e.jsx("div",{style:{color:"var(--text-secondary, #5A5651)",fontSize:"0.8125rem"},children:"No versions found."}):e.jsx("ul",{style:{listStyle:"none",margin:0,padding:0,display:"flex",flexDirection:"column",gap:4},children:b.map(n=>{const a=n.version===f,c=n.publishedAt?n.publishedAt.slice(0,10):"",i=n.authorEmail??n.author??"";return e.jsx("li",{children:e.jsxs("button",{type:"button","data-testid":"skill-detail-version-row","data-version":n.version,"data-selected":a?"true":"false","aria-pressed":a,onClick:()=>A(n.version),style:{width:"100%",textAlign:"left",padding:"0.5rem 0.75rem",borderRadius:4,border:a?"1px solid var(--color-action, #2F5B8E)":"1px solid var(--color-rule, #E8E1D6)",background:a?"color-mix(in srgb, var(--color-action, #2F5B8E) 8%, transparent)":"transparent",cursor:"pointer",fontFamily:"var(--font-mono, monospace)",fontSize:"0.8125rem",color:"var(--text-primary, #191919)",display:"flex",alignItems:"center",gap:"0.5rem"},children:[e.jsx("span",{"aria-hidden":"true",style:{width:14,display:"inline-flex",justifyContent:"center"},children:a?"●":"○"}),e.jsxs("span",{style:{fontWeight:600},children:["v",n.version]}),c&&e.jsxs("span",{style:{color:"var(--text-secondary, #5A5651)"},children:["· ",c]}),i&&e.jsxs("span",{style:{color:"var(--text-secondary, #5A5651)"},children:["· ",i]}),a&&e.jsx("span",{"data-testid":"skill-detail-version-selected-tag",style:{marginLeft:"auto",fontSize:"0.6875rem",color:"var(--color-action, #2F5B8E)"},children:"Selected"})]})},n.version)})}),e.jsx("div",{style:{marginTop:"0.5rem",textAlign:"right"},children:e.jsx("a",{"data-testid":"skill-detail-see-all-versions",href:`${oe}/skills/${t.owner}/${t.repo}/${t.slug}/versions`,target:"_blank",rel:"noopener noreferrer",style:{fontFamily:"var(--font-mono, monospace)",fontSize:"0.75rem",color:"var(--color-action, #2F5B8E)",textDecoration:"none"},children:"see all versions →"})})]}),U?e.jsxs("section",{"data-testid":"skill-detail-blocked",style:{marginBottom:"0.5rem"},children:[e.jsx("h3",{style:{margin:"0 0 0.5rem",fontSize:"0.8125rem",textTransform:"uppercase",letterSpacing:"0.06em",color:"var(--red, #b54444)"},children:"This skill is blocked"}),e.jsx("div",{style:{padding:"1rem",borderRadius:6,border:"1px solid var(--red, #b54444)",background:"var(--red-muted, color-mix(in srgb, #b54444 18%, transparent))",color:"var(--red, #b54444)",fontSize:"0.875rem"},children:(r==null?void 0:r.blockReason)??"This skill has been blocked by platform moderators and cannot be installed."})]}):p&&!p.ok?e.jsxs("section",{"data-testid":"skill-detail-install-error",style:{marginBottom:"0.5rem"},children:[e.jsx("h3",{style:{margin:"0 0 0.5rem",fontSize:"0.8125rem",textTransform:"uppercase",letterSpacing:"0.06em",color:"var(--red, #b54444)"},children:"Install command unavailable"}),e.jsxs("div",{style:{padding:"1rem",borderRadius:6,border:"1px solid var(--red, #b54444)",background:"var(--red-muted, color-mix(in srgb, #b54444 18%, transparent))",color:"var(--red, #b54444)",fontSize:"0.875rem"},children:[p.reason," — refusing to render the install panel for safety."]})]}):p&&p.ok?e.jsxs("section",{"data-testid":"skill-detail-install",style:{marginBottom:"0.5rem"},children:[e.jsx("h3",{style:{margin:"0 0 0.5rem",fontSize:"0.8125rem",textTransform:"uppercase",letterSpacing:"0.06em",color:"var(--text-secondary, #5A5651)"},children:"Install"}),e.jsx("button",{type:"button",onClick:M,"data-testid":"skill-detail-install-primary","aria-label":"Install skill — copy npm command to clipboard",style:{display:"inline-flex",alignItems:"center",marginBottom:"0.75rem",padding:"0.5rem 1rem",borderRadius:6,border:"1px solid var(--text-primary, #191919)",background:"var(--text-primary, #191919)",color:"var(--bg-surface, #FFFFFF)",cursor:"pointer",fontFamily:"var(--font-mono, monospace)",fontSize:"0.875rem",fontWeight:600},children:"Install"}),e.jsx("div",{"data-testid":"skill-detail-install-command",style:{display:"block"},children:e.jsx(ee,{compact:!0,children:p.variants.map((n,a)=>e.jsxs("div",{"data-testid":`skill-detail-install-variant-${n.label}`,style:{display:"flex",gap:"0.75rem",alignItems:"flex-start",marginTop:a===0?0:"0.75rem"},children:[e.jsxs("div",{style:{flex:1,minWidth:0},children:[e.jsx("div",{style:{color:"#8B949E",marginBottom:"0.125rem"},children:n.comment}),e.jsxs("div",{children:[e.jsx("span",{style:{color:"#8B949E",marginRight:"0.5rem"},children:"$"}),e.jsx("span",{"data-testid":`skill-detail-install-variant-cmd-${n.label}`,children:n.command})]})]}),e.jsx("button",{type:"button",onClick:async()=>{const c=await N(n.command),i=c?`Run ${n.command} in your terminal`:"Copy failed — please copy the command manually.";if(l)try{l(i,c?"success":"error")}catch{}else z(i,c?"success":"error",3500);c&&_(s,{skillName:y,version:f??"",q:"",ts:Date.now()})},"data-testid":`skill-detail-copy-${n.label}`,"aria-label":`Copy ${n.label} install command`,style:{flexShrink:0,padding:"0.25rem 0.6rem",borderRadius:4,border:"1px solid color-mix(in srgb, #E6EDF3 25%, transparent)",background:"color-mix(in srgb, #E6EDF3 8%, transparent)",color:"#E6EDF3",cursor:"pointer",fontFamily:"var(--font-mono, monospace)",fontSize:"0.7rem",alignSelf:"flex-end"},children:"Copy"})]},n.label))})})]}):null]})]})]})]})}export{ue as SkillDetailPanel,ue as default};
|