Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/reader-journey.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ jobs:
python-version: '3.12'
- run: python tools/check-site.py
- run: python tools/build-controls.py --check
- run: python tools/build-header.py --check
- run: python tools/build-discovery.py --check
- run: python tools/check-discovery.py
quickstart:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
__pycache__/
37 changes: 34 additions & 3 deletions 404.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,41 @@
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>Page not found | AgenTrust</title>
<meta name="robots" content="noindex">
<link rel="stylesheet" href="/design-system.css?v=19"><link rel="icon" href="/favicon.ico">
<link rel="stylesheet" href="/design-system.css?v=21"><link rel="icon" href="/favicon.ico">
</head><body class="at-page">
<header class="site-header"><a class="wordmark" href="/">AgenTrust</a></header>
<main class="wrap"><section><p class="eyebrow">404 · Page not found</p><h1>Find your next step.</h1>
<!-- site-header:start (generated by tools/build-header.py from tools/site_header.py) -->
<a class="skip-link" href="#main">Skip to content</a>
<header class="hub-header">
<div class="header-inner">
<a href="/" class="logo">AgenTrust</a>
<nav aria-label="Primary">
<button class="nav-toggle" type="button" aria-expanded="false" aria-controls="primary-links" hidden>Menu</button>
<ul class="header-nav" id="primary-links">
<li><a href="/verify/">Verify</a></li>
<li class="spec-menu"><details><summary>Specs</summary><ul>
<li><a href="https://wcm.agentrust-io.com">Model-weight custody (WCM)</a></li>
<li><a href="https://manifest.agentrust-io.com">Agent identity (Manifest)</a></li>
<li><a href="https://cmcp.agentrust-io.com">Tool-call enforcement (cMCP)</a></li>
<li><a href="https://ca2a.agentrust-io.com">Agent delegation (cA2A)</a></li>
<li><a href="https://trace.agentrust-io.com">Runtime evidence (TRACE)</a></li>
<li><a href="/registry/">TRACE Registry</a></li>
<li><a href="https://tests.agentrust-io.com">TRACE conformance suite</a></li>
</ul></details></li>
<li class="spec-menu"><details><summary>Build</summary><ul>
<li><a href="/quickstart/">10-minute quickstart</a></li>
<li><a href="/demos/">Demos</a></li>
<li><a href="/telemetry/">Telemetry</a></li>
<li><a href="/marketplace/">Marketplace</a></li>
</ul></details></li>
<li><a href="/community/">Community</a></li>
<li><a href="https://github.com/agentrust-io">GitHub</a></li>
</ul>
</nav>
</div>
</header>
<script src="/hub-nav.js" defer></script>
<!-- site-header:end -->
<main class="wrap" id="main"><section><p class="eyebrow">404 · Page not found</p><h1>Find your next step.</h1>
<p>This address may have moved, or the link may be incomplete. Older links pointed at homepage sections that are now one four-step chain.</p>
<ul>
<li><a href="/verify/">Verify a real Intel TDX quote in your browser</a></li>
Expand Down
11 changes: 6 additions & 5 deletions community/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,12 @@
<meta name="twitter:title" content="AgenTrust community, partners and governance">
<meta name="twitter:description" content="Partner and sponsor relationships linked to public evidence, how the projects are governed, and how to contribute.">
<meta name="twitter:image" content="https://agentrust-io.com/og.png">
<link rel="stylesheet" href="/design-system.css?v=20">
<link rel="stylesheet" href="/design-system.css?v=21">
</head>
<body class="agentrust-hub" id="top">
<!-- site-header:start (generated by tools/build-header.py from tools/site_header.py) -->
<a class="skip-link" href="#main">Skip to content</a>

<!-- Header -->
<header>
<header class="hub-header">
<div class="header-inner">
<a href="/" class="logo">AgenTrust</a>
<nav aria-label="Primary">
Expand Down Expand Up @@ -65,6 +64,8 @@
</nav>
</div>
</header>
<script src="/hub-nav.js" defer></script>
<!-- site-header:end -->

<!-- Section rail: jump list for a long page. Ticks only until hovered or focused. -->
<nav class="railnav" aria-label="Sections on this page">
Expand Down Expand Up @@ -302,7 +303,6 @@ <h2 class="section-title">What is AgenTrust?</h2>
</div>
</footer>

<script src="/hub-nav.js"></script>
<script>
// Mark the rail entry for whichever section is in the reading band. Falls
// back to no highlight at all if IntersectionObserver is missing: the rail
Expand Down Expand Up @@ -348,5 +348,6 @@ <h2 class="section-title">What is AgenTrust?</h2>
})();
</script>

<script src="/supernav.js"></script>
</body>
</html>
50 changes: 40 additions & 10 deletions demos/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -32,19 +32,42 @@
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">

<link rel="stylesheet" href="/design-system.css?v=17">
<link rel="stylesheet" href="/design-system.css?v=21">
</head>
<body class="at-page">

<header class="site-header">
<a class="wordmark" href="/">AgenTrust</a>
<nav>
<a href="#weights">Model weights</a>
<a href="#governance">Agent actions</a>
<a href="/quickstart/">Quickstart</a>
<a class="cta" href="https://github.com/agentrust-io/demos">Get the demos</a>
</nav>
<!-- site-header:start (generated by tools/build-header.py from tools/site_header.py) -->
<a class="skip-link" href="#main">Skip to content</a>
<header class="hub-header">
<div class="header-inner">
<a href="/" class="logo">AgenTrust</a>
<nav aria-label="Primary">
<button class="nav-toggle" type="button" aria-expanded="false" aria-controls="primary-links" hidden>Menu</button>
<ul class="header-nav" id="primary-links">
<li><a href="/verify/">Verify</a></li>
<li class="spec-menu"><details><summary>Specs</summary><ul>
<li><a href="https://wcm.agentrust-io.com">Model-weight custody (WCM)</a></li>
<li><a href="https://manifest.agentrust-io.com">Agent identity (Manifest)</a></li>
<li><a href="https://cmcp.agentrust-io.com">Tool-call enforcement (cMCP)</a></li>
<li><a href="https://ca2a.agentrust-io.com">Agent delegation (cA2A)</a></li>
<li><a href="https://trace.agentrust-io.com">Runtime evidence (TRACE)</a></li>
<li><a href="/registry/">TRACE Registry</a></li>
<li><a href="https://tests.agentrust-io.com">TRACE conformance suite</a></li>
</ul></details></li>
<li class="spec-menu is-current"><details><summary>Build</summary><ul>
<li><a href="/quickstart/">10-minute quickstart</a></li>
<li><a href="/demos/" aria-current="page">Demos</a></li>
<li><a href="/telemetry/">Telemetry</a></li>
<li><a href="/marketplace/">Marketplace</a></li>
</ul></details></li>
<li><a href="/community/">Community</a></li>
<li><a href="https://github.com/agentrust-io">GitHub</a></li>
</ul>
</nav>
</div>
</header>
<script src="/hub-nav.js" defer></script>
<!-- site-header:end -->

<div class="hero"><div class="wrap">
<span class="eyebrow"><a href="/#chain">Weights · Actions · Evidence</a> · Runnable demos</span>
Expand All @@ -53,7 +76,14 @@ <h1>Run a policy check.<br><em>Inspect the result.</em></h1>
<div><span class="status">Software mode · <code>CMCP_DEV_MODE=1</code> · no special hardware</span></div>
</div></div>

<main>
<nav class="on-this-page" aria-label="On this page">
<span>On this page</span>
<a href="#weights">Model weights</a>
<a href="#governance">Agent actions</a>
<a href="https://github.com/agentrust-io/demos">Get the demos ↗</a>
</nav>

<main id="main">

<section id="start">
<span class="label">Quick start</span>
Expand Down
157 changes: 40 additions & 117 deletions design-system.css
Original file line number Diff line number Diff line change
Expand Up @@ -435,43 +435,6 @@ html:has(body.agentrust-hub) { scroll-behavior: smooth; }
min-height: 100vh;
line-height: 1.6;
}
/* ── Header ── */
.agentrust-hub header {
padding: 0 2rem;
position: sticky;
top: 0;
z-index: 100;
}
.agentrust-hub .header-inner {
max-width: 1100px;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: space-between;
height: 56px;
}
.agentrust-hub .logo {
font-size: 1.15rem;
font-weight: 700;
letter-spacing: -0.02em;
text-decoration: none;
display: flex;
align-items: center;
gap: 0.5rem;
}
.agentrust-hub .header-nav {
display: flex;
gap: 1.5rem;
list-style: none;
}
.agentrust-hub .header-nav a {
text-decoration: none;
font-size: 0.875rem;
transition: color 0.15s;
}
.agentrust-hub .header-nav a:hover {
color: #fff;
}
/* ── Hero ── */
.agentrust-hub .fellowship {
padding: 0.85rem 2rem;
Expand Down Expand Up @@ -877,9 +840,6 @@ html:has(body.agentrust-hub) { scroll-behavior: smooth; }
.agentrust-hub .trust-step:not(:last-child)::after {
content: "↓"; right: 1rem; top: auto; bottom: -0.7rem;
}
.agentrust-hub .header-nav {
display: none;
}
.agentrust-hub .ecosystem-grid {
grid-template-columns: 1fr;
}
Expand Down Expand Up @@ -935,32 +895,6 @@ html:has(body.agentrust-hub) { scroll-behavior: smooth; }
font-family: var(--at-sans);
}

.agentrust-hub header {
background: var(--at-paper);
color: var(--at-ink);
border-bottom: 1px solid var(--at-line);
backdrop-filter: none;
}

.agentrust-hub .header-nav { margin: 0; padding: 0; align-items: center; }
.agentrust-hub .nav-toggle { display: none; }
.agentrust-hub .spec-menu { position: relative; }
.agentrust-hub .spec-menu summary { cursor: pointer; font-size: .875rem; }
.agentrust-hub .spec-menu ul { position: absolute; top: 2rem; right: 0; min-width: 17rem; padding: .75rem; margin: 0; list-style: none; background: var(--at-paper); border: 1px solid var(--at-line); border-radius: .5rem; box-shadow: 0 .5rem 1.5rem #0001; }
.agentrust-hub .spec-menu li a { display: block; padding: .65rem; }
@media (max-width: 900px) {
.agentrust-hub .header-inner { height: auto; min-height: 56px; flex-wrap: wrap; }
.agentrust-hub .header-inner nav { margin-left: auto; }
.agentrust-hub .nav-toggle:not([hidden]) { display: inline-flex; align-items: center; min-height: 44px; padding: .5rem .75rem; color: var(--at-ink); background: transparent; border: 1px solid var(--at-line); border-radius: .3rem; font: inherit; }
.agentrust-hub .header-nav { display: flex; flex-wrap: wrap; gap: .5rem 1rem; padding: .75rem 0; }
.hub-nav-ready .agentrust-hub .header-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: .75rem 1.25rem; background: var(--at-paper); border-bottom: 1px solid var(--at-line); max-height: calc(100dvh - 56px); overflow-y: auto; }
.hub-nav-ready .agentrust-hub .header-nav.is-open { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
.agentrust-hub .header-nav a, .agentrust-hub .spec-menu summary { display: block; padding: .75rem; min-height: 44px; box-sizing: border-box; }
.agentrust-hub .spec-menu ul { position: static; min-width: 0; box-shadow: none; margin: 0 .75rem .5rem; }
}

.agentrust-hub .logo,
.agentrust-hub .header-nav a { color: var(--at-ink); }
.agentrust-hub .logo-dot { color: var(--at-red); }

.agentrust-hub .fellowship,
Expand Down Expand Up @@ -1276,22 +1210,6 @@ html:has(body.agentrust-hub) { scroll-behavior: smooth; }
.at-page > main { max-width: var(--at-wrap); margin: 0 auto; }
.at-page > main { padding: 0 var(--at-gutter); }

.at-page .site-header {
position: sticky;
top: 0;
z-index: 40;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: 0.75rem 1.5rem;
/* Full-bleed background, but the row itself lines up with .wrap content */
padding: 0.95rem max(var(--at-gutter), calc((100% - var(--at-wrap)) / 2));
border-bottom: 1px solid var(--at-line);
background: var(--at-paper);
backdrop-filter: blur(14px);
}

.at-page .wordmark {
font-size: 0.95rem;
font-weight: 750;
Expand All @@ -1300,28 +1218,6 @@ html:has(body.agentrust-hub) { scroll-behavior: smooth; }
}
.at-page .wordmark span { color: var(--at-muted); font-weight: 500; }

.at-page .site-header nav {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 0.35rem 1.35rem;
}
.at-page .site-header nav a {
color: var(--at-muted);
font-size: 0.72rem;
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
text-decoration: none;
}
.at-page .site-header nav a:hover { color: var(--at-ink); }
.at-page .site-header nav a.cta {
padding: 0.42rem 0.85rem;
border-radius: 999px;
background: var(--at-ink);
color: var(--at-paper);
}
.at-page .site-header nav a.cta:hover { background: var(--at-red); color: #fff; }

/* Hero */
.at-page .hero {
Expand Down Expand Up @@ -1938,7 +1834,6 @@ html:has(body.agentrust-hub) { scroll-behavior: smooth; }
.at-page .flow > * { min-height: auto; }
.at-page .hero h1 { font-size: clamp(2.5rem, 11vw, 3.9rem); }
.at-page .hero h1 br { display: none; }
.at-page .site-header nav a:not(.cta) { display: none; }
.at-page .step { grid-template-columns: 1fr; gap: 0.9rem; }
.at-page .split,
.at-page .split.even { grid-template-columns: 1fr; }
Expand Down Expand Up @@ -1969,18 +1864,8 @@ html:has(body.agentrust-hub) { scroll-behavior: smooth; }
.marketplace-callout { display:flex;align-items:center;justify-content:space-between;gap:2rem;margin-top:1.5rem;padding:1.5rem 1.75rem;border:1px solid var(--border);border-left:4px solid var(--accent);background:var(--surface); }
.marketplace-callout span,.marketplace-page .eyebrow { color:var(--at-red);font-size:.68rem;font-weight:750;letter-spacing:.11em;text-transform:uppercase; }
.marketplace-callout h3 { margin:.3rem 0;font-size:1.25rem; }.marketplace-callout p { color:var(--muted);font-size:.9rem; }
.marketplace-page { background:var(--at-paper); }.marketplace-page main { overflow:hidden; }.marketplace-page .site-header { position:relative;background:var(--at-paper);backdrop-filter:none; }
.marketplace-page .header-inner { display:flex;align-items:center;justify-content:space-between;gap:1rem; }
.marketplace-page .nav-toggle { display:none; }
@media (max-width:900px) {
.marketplace-page .header-inner { flex-wrap:wrap; }
.marketplace-page .nav-toggle:not([hidden]) { display:inline-flex;align-items:center;min-height:44px;padding:.5rem .75rem;color:var(--at-ink);background:transparent;border:1px solid var(--at-line);border-radius:.3rem;font:inherit; }
.marketplace-page .site-header nav { width:100%;flex-direction:column;align-items:stretch; }
.marketplace-page .site-header nav a:not(.cta), .marketplace-page .site-header nav a.cta { display:block;padding:.75rem;min-height:44px;box-sizing:border-box; }
.hub-nav-ready .marketplace-page .site-header nav { display:none; }
.hub-nav-ready .marketplace-page .site-header nav.is-open { display:flex; }
}
.marketplace-page .site-header [aria-current="page"] { color:var(--at-red); }.marketplace-page .button { display:inline-flex;align-items:center;justify-content:center; }
.marketplace-page { background:var(--at-paper); }.marketplace-page main { overflow:hidden; }
.marketplace-page .button { display:inline-flex;align-items:center;justify-content:center; }
.market-hero { position:relative;padding:clamp(3.5rem,7vw,6rem) 0;border-top:1px solid var(--at-line);border-bottom:1px solid var(--at-line);background:linear-gradient(135deg,var(--at-paper) 0%,#f4f0e8 72%,#eee8dc 100%);color:var(--at-ink); }
.market-hero::before { position:absolute;top:0;right:10%;width:220px;height:4px;background:var(--at-red);content:""; }
.market-hero-grid { position:relative;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.65fr);align-items:center;gap:clamp(2.5rem,7vw,7rem); }
Expand Down Expand Up @@ -2171,3 +2056,41 @@ html:has(body.agentrust-hub) { scroll-behavior: smooth; }
@media (max-width: 900px) {
.agentrust-hub .ecosystem-grid { grid-template-columns: 1fr; }
}

/* Site header
* One header for every agentrust-io.com page. tools/build-header.py stamps the
* markup from tools/site_header.py, and hub-nav.js adds the mobile Menu toggle.
* Selectors hang off .hub-header rather than a body class, so the same block
* serves the hub (.agentrust-hub) and the editorial pages (.at-page). It sits
* last so their generic list and link rules cannot restyle it.
*/
.hub-header, .hub-header *, .hub-header *::before, .hub-header *::after { box-sizing: border-box; }
.hub-header { position: sticky; top: 0; z-index: 100; padding: 0 2rem; background: var(--at-paper); color: var(--at-ink); border-bottom: 1px solid var(--at-line); font-family: var(--at-sans); font-size: 16px; line-height: 1.6; }
.hub-header ul, .hub-header li { margin: 0; padding: 0; list-style: none; color: inherit; }
.hub-header .header-inner { max-width: 1100px; height: 56px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; }
.hub-header .logo { display: flex; align-items: center; gap: .5rem; color: var(--at-ink); font-size: 1.15rem; font-weight: 700; letter-spacing: -0.02em; text-decoration: none; }
.hub-header .header-nav { display: flex; align-items: center; gap: 1.5rem; }
.hub-header .header-nav a, .hub-header .spec-menu summary { color: var(--at-ink); font-size: .875rem; text-decoration: none; transition: color .15s; }
.hub-header .header-nav a:hover, .hub-header .spec-menu summary:hover,
.hub-header .header-nav [aria-current="page"], .hub-header .spec-menu.is-current > details > summary { color: var(--at-red); }
.hub-header .nav-toggle { display: none; }
.hub-header .spec-menu { position: relative; }
.hub-header .spec-menu summary { cursor: pointer; }
.hub-header .spec-menu ul { position: absolute; top: 2rem; right: 0; min-width: 17rem; padding: .75rem; background: var(--at-paper); border: 1px solid var(--at-line); border-radius: .5rem; box-shadow: 0 .5rem 1.5rem #0001; }
.hub-header .spec-menu li a { display: block; padding: .65rem; }
@media (max-width: 900px) {
.hub-header .header-inner { height: auto; min-height: 56px; flex-wrap: wrap; }
.hub-header .header-inner nav { margin-left: auto; }
.hub-header .nav-toggle:not([hidden]) { display: inline-flex; align-items: center; min-height: 44px; padding: .5rem .75rem; color: var(--at-ink); background: transparent; border: 1px solid var(--at-line); border-radius: .3rem; font: inherit; }
.hub-header .header-nav { flex-wrap: wrap; gap: .5rem 1rem; padding: .75rem 0; }
.hub-nav-ready .hub-header .header-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: .75rem 1.25rem; background: var(--at-paper); border-bottom: 1px solid var(--at-line); max-height: calc(100dvh - 56px); overflow-y: auto; }
.hub-nav-ready .hub-header .header-nav.is-open { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
.hub-header .header-nav a, .hub-header .spec-menu summary { display: block; padding: .75rem; min-height: 44px; }
.hub-header .spec-menu ul { position: static; min-width: 0; box-shadow: none; margin: 0 .75rem .5rem; }
}

/* On this page: the section links an editorial page used to carry in its header. */
.on-this-page { display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem 1.35rem; padding: .85rem max(var(--at-gutter), calc((100% - var(--at-wrap)) / 2)); border-bottom: 1px solid var(--at-line); background: var(--at-paper); font-family: var(--at-sans); font-size: .72rem; font-weight: 700; letter-spacing: .06em; line-height: 1.6; text-transform: uppercase; }
.on-this-page span { color: var(--at-muted); font-size: .66rem; letter-spacing: .11em; }
.on-this-page a { color: var(--at-ink); text-decoration: none; }
.on-this-page a:hover { color: var(--at-red); }
Loading
Loading