PageSourceSearch

https://agentavow.com/assets/TrustIndex-Drd4-egz.js

js agentavow.com collected 2026-10-09 21:47:24 UTC 10,410 bytes, 1 lines download raw bytes

1import{b as u,j as e}from"./query-uMsrUIDK.js";import{r as b,L as x}from"./vendor-P4SDRn1a.js";import{r as l}from"./basePath-g0fBZ1jL.js";import{R as d}from"./motion-DWWzv4X2.js";import{a as h,b as N}from"./TrustMark-D3IKdwp1.js";import{r as g,f as k,a as w}from"./catalog-EbhIxzeo.js";import{p as _}from"./scanApi-DA1AiUbS.js";import{a as L}from"./SandboxStats-CrVmd2Hv.js";import{S}from"./SEOHead-niEjVPQv.js";import"./use-reduced-motion-BmgsExK3.js";import"./index-CXHAiFMv.js";import"./use-in-view-BkYqUeT-.js";import"./gradeSystem-wrq-OsAg.js";import"./index-BsOjzVjK.js";function C(){const{data:t}=u({queryKey:["recent-scans"],queryFn:async()=>(await _.get("/public/scan-catalog/recent?limit=12")).data,staleTime:3e4,refetchInterval:45e3}),r=t?.items||[];if(!r.length)return null;const n=s=>{if(!s)return"";const a=Math.max(0,(Date.now()-new Date(s).getTime())/1e3);return a<90?"just now":a<3600?`${Math.round(a/60)}m ago`:a<86400?`${Math.round(a/3600)}h ago`:`${Math.round(a/86400)}d ago`};return e.jsxs("div",{className:"glass rounded-2xl p-5",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:"relative flex h-2 w-2",children:[e.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-success opacity-60"}),e.jsx("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-success"})]}),e.jsx("h2",{className:"text-[16px] font-bold",children:"Just scanned"})]}),e.jsx("div",{className:"mt-3 flex flex-col divide-y divide-border/40",children:r.map((s,a)=>{const i=v(s),o=e.jsxs("div",{className:"flex items-center gap-3 py-2 px-2 rounded-lg hover:bg-surface-hover/50 transition-colors",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"font-mono text-[12.5px] truncate",children:s.name||s.full_name}),e.jsxs("div",{className:"font-mono text-[10px] text-text-muted/70",children:[j[s.surface]||s.surface," · ",n(s.at)]})]}),s.trust_score!=null&&e.jsx(h,{score:s.trust_score})]});return i?e.jsx(x,{to:i,className:"block",children:o},a):e.jsx("div",{children:o},a)})})]})}const j={mcp:"MCP server",npm:"npm package",pypi:"PyPI package",crates:"crate",openclaw:"skill",huggingface:"model",docker:"image"},f=/^(agentgraph|agentavow)[-_]|github\.com\/(agentgraph-co|agentavow)\//i;function M(t,r){const n=new Set,s=[];for(const a of t){const i=(a.repository_url||a.full_name||"").toLowerCase().replace(/\.git$/,"").replace(/\/$/,"");if(!(f.test(a.name||"")||f.test(i)||/^(agentgraph-co|agentavow)\//i.test(a.full_name||""))&&!(i&&n.has(i))&&(i&&n.add(i),s.push(a),s.length>=r))break}return s}function m(t,r){const n=Number(t?.limit??10);return u({queryKey:["trust-index",r],queryFn:async()=>{const s=await k({...t,limit:n*3});return{...s,rows:M(s.rows||[],n)}},staleTime:3e5})}const R=["npm","pypi","crates","huggingface","docker"];function v(t){const r=t.full_name||"";if(R.includes(t.surface)){const n=(t.name||"").includes(":")?(t.name||"").split(":").slice(1).join(":"):t.name;return n?l(`/rebrand/check/pkg/${t.surface}/${n}`):null}if(t.surface==="openclaw"&&r.includes("/"))return l(`/rebrand/check/skill/${r}`);if(t.surface==="mcp"){const n=t.endpoint_url;if(n&&/^https?:/.test(n))return l(`/rebrand/check/mcp?endpoint=${encodeURIComponent(n)}`)}return r.includes("/")?l(`/rebrand/check/${r}`):null}function A({row:t,rank:r,certified:n=!1}){const s=g(t),a=v(t),i=e.jsxs("div",{className:"flex items-center gap-3 py-2.5 px-3 rounded-xl hover:bg-surface-hover/60 transition-colors",children:[e.jsx("span",{className:"w-6 text-right font-mono text-[12px] text-text-muted tabular-nums shrink-0",children:r}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"font-mono text-[13.5px] truncate",children:s.display}),e.jsx("div",{className:"font-mono text-[10.5px] uppercase tracking-wide text-text-muted/70",children:j[t.surface]||t.surface})]}),t.adoption_count!=null&&t.adoption_count>0&&e.jsx(N,{count:t.adoption_count}),n?e.jsxs("span",{className:"inline-flex items-center gap-1 font-mono text-[10.5px] font-extrabold tracking-[0.12em] px-2 py-1 rounded-full shrink-0",style:{background:"linear-gradient(120deg,#2dd4bf,#e879f9)",color:"#06231f"},children:["✓ ",t.trust_score]}):t.trust_score!=null&&e.jsx(h,{score:t.trust_score})]});return a?e.jsx(x,{to:a,className:"block",children:i}):e.jsx("div",{children:i})}function p({title:t,note:r,rows:n,isLoading:s,certified:a=!1,href:i}){return e.jsxs("div",{className:"glass rounded-2xl p-5 min-w-0",children:[e.jsxs("div",{className:"flex items-baseline justify-between gap-3",children:[e.jsx("h2",{className:"text-[16px] font-bold",children:i?e.jsx(x,{to:i,className:"hover:text-primary-light transition-colors",children:t}):t}),i?e.jsxs(x,{to:i,className:"font-mono text-[10.5px] text-primary-light hover:text-primary uppercase tracking-wide shrink-0",children:[r," · what's this? →"]}):e.jsx("span",{className:"font-mono text-[10.5px] text-text-muted uppercase tracking-wide shrink-0",children:r})]}),e.jsxs("div",{className:"mt-3 flex flex-col divide-y divide-border/40",children:[s&&e.jsx("div",{className:"py-8 text-center text-text-muted text-[13px]",children:"loading…"}),!s&&(!n||!n.length)&&e.jsx("div",{className:"py-8 text-center text-text-muted text-[13px]",children:"no tools yet"}),n?.map((o,c)=>e.jsx(A,{row:o,rank:c+1,certified:a},g(o).display+c))]})]})}function J(){const t=m({surface:"mcp",sort:"score-desc",severity:"clean",limit:10},"mcp"),r=m({surface:"npm",sort:"score-desc",severity:"clean",limit:10},"npm"),n=m({surface:"pypi",sort:"score-desc",severity:"clean",limit:10},"pypi"),s=m({sort:"adoption",limit:10},"adoption"),a=m({grade:"certified",sort:"score-desc",limit:10},"certified"),i=!!a.data?.rows?.length;b.useEffect(()=>{i&&window.location.hash==="#certified"&&document.getElementById("certified")?.scrollIntoView({behavior:"smooth",block:"start"})},[i]);const o=t.data?.summary||r.data?.summary,{data:c}=u({queryKey:["flagged-stat"],queryFn:w,staleTime:6e4}
1),y=o?(o.total_scans||0).toLocaleString():"—";return e.jsxs("div",{className:"max-w-[1080px] mx-auto px-6 py-16",children:[e.jsx(S,{title:"Trust Index — the state of agent tool safety",description:"An independent, signed index of the tools, MCP servers, and packages AI agents connect to: trust scores, adoption scores, and the critical-finding rate.",path:"/index"}),e.jsx(d,{children:e.jsxs("div",{className:"max-w-[64ch]",children:[e.jsx("span",{className:"font-mono text-[12px] tracking-[0.16em] uppercase text-primary-light font-semibold",children:"The public index"}),e.jsxs("h1",{className:"mt-3 text-3xl md:text-5xl font-extrabold tracking-tight leading-[1.05]",children:["The state of ",e.jsx("span",{className:"gradient-text-bio",children:"agent tool"})," safety."]}),e.jsxs("p",{className:"mt-4 text-text-muted text-[16px] leading-relaxed",children:["An independent, ",e.jsx("strong",{className:"text-text",children:"signed"})," index of the tools, MCP servers, and packages AI agents connect to — checked from the outside, no repo access, verifiable offline. Not the agent you build; the things it trusts."]})]})}),e.jsx(d,{children:e.jsxs("div",{className:"mt-10 grid sm:grid-cols-3 gap-3",children:[e.jsxs("div",{className:"glass rounded-2xl p-6 sm:col-span-2 relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 pointer-events-none",style:{background:"radial-gradient(420px 160px at 15% -20%, rgba(239,68,68,0.12), transparent 70%)"}}),e.jsxs("div",{className:"relative flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-6",children:[e.jsx("div",{className:"text-[52px] md:text-[64px] font-extrabold leading-none tabular-nums shrink-0",style:{color:"#f59e0b"},children:c?`${c.pct}%`:"—"}),e.jsxs("p",{className:"text-text text-[15px]",children:["of scanned agent tools carry a ",e.jsx("strong",{children:"high or critical"})," safety finding.",c&&e.jsxs("span",{className:"text-text-muted",children:[" (",c.flagged.toLocaleString()," of ",c.scanned.toLocaleString()," scanned.)"]})]})]})]}),e.jsxs("div",{className:"glass rounded-2xl p-6 flex flex-col justify-center",children:[e.jsx("div",{className:"text-[40px] font-extrabold leading-none tabular-nums gradient-text",children:y}),e.jsx("p",{className:"mt-2 text-text-muted text-[13.5px]",children:"tools, servers & packages scanned — every score signed & recomputable."})]})]})}),e.jsx(d,{children:e.jsx("div",{className:"mt-4",children:e.jsx(L,{})})}),e.jsxs(d,{children:[e.jsx("h2",{className:"mt-14 text-xl font-bold",children:"The leaderboards"}),e.jsx("p",{className:"mt-1.5 text-text-muted text-[14px] max-w-[62ch]",children:"Ranked from the live catalog — click any tool for its full signed report."})]}),e.jsxs("div",{className:"mt-5 grid md:grid-cols-2 gap-4",children:[e.jsx(p,{title:"Safest MCP servers",note:"by trust",rows:t.data?.rows,isLoading:t.isLoading}),e.jsx(p,{title:"Most relied upon",note:"by adoption",rows:s.data?.rows,isLoading:s.isLoading}),e.jsx(p,{title:"Safest npm packages",note:"by trust",rows:r.data?.rows,isLoading:r.isLoading}),e.jsx(p,{title:"Safest PyPI packages",note:"by trust",rows:n.data?.rows,isLoading:n.isLoading})]}),e.jsx("div",{className:"mt-4",children:e.jsx(d,{children:e.jsx(C,{})})}),a.data?.rows&&a.data.rows.length>0&&e.jsx("div",{id:"certified",className:"mt-4 scroll-mt-24",children:e.jsx(p,{title:"AgentAvow Certified",note:"the earned mark · gated",rows:a.data.rows,isLoading:a.isLoading,certified:!0,href:l("/rebrand/certified")})}),e.jsx(d,{children:e.jsxs("div",{className:"mt-16 text-center",children:[e.jsx("h2",{className:"text-2xl font-extrabold",children:"Check the tool you're about to connect."}),e.jsx("p",{className:"mt-2 text-text-muted text-[14.5px] max-w-[52ch] mx-auto",children:"Paste any repo, package, or MCP server — get an answer and a signed, offline-verifiable trust score in seconds. Free, no account."}),e.jsxs("div",{className:"mt-5 flex gap-3 justify-center flex-wrap",children:[e.jsx(x,{to:l("/rebrand/check"),className:"font-semibold px-6 py-3 rounded-xl text-white bg-gradient-to-r from-primary to-primary-dark shadow-lg shadow-primary/25",children:"Check a tool →"}),e.jsx(x,{to:l("/rebrand/browse"),className:"font-semibold px-6 py-3 rounded-xl border border-border text-text hover:border-primary-light hover:text-primary-light transition-colors",children:"Browse the full catalog"})]})]})})]})}export{J as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.