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
29 changes: 29 additions & 0 deletions .github/workflows/reader-journey.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Reader journey
on:
pull_request:
push:
branches: [main]
permissions:
contents: read
jobs:
links:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- run: python tools/check-site.py
quickstart:
runs-on: ubuntu-latest
timeout-minutes: 8
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- run: python tools/check-quickstart.py
18 changes: 10 additions & 8 deletions demos/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
<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=10">
<link rel="stylesheet" href="/design-system.css?v=15">
</head>
<body class="at-page">

Expand All @@ -48,7 +48,7 @@

<div class="hero"><div class="wrap">
<span class="eyebrow">Runnable demos</span>
<h1>Don't take the spec<br>on trust. <em>Run it.</em></h1>
<h1>Run a policy check.<br><em>Inspect the result.</em></h1>
<p class="sub">Ten demos, about thirteen minutes end to end. Four cover custody of model weights. Five govern what an agent does at the tool boundary. One governs model calls through an OpenAI-compatible endpoint.</p>
<div><span class="status">Software mode · <code>CMCP_DEV_MODE=1</code> · no special hardware</span></div>
</div></div>
Expand All @@ -57,18 +57,20 @@ <h1>Don't take the spec<br>on trust. <em>Run it.</em></h1>

<section id="start">
<span class="label">Quick start</span>
<h2>Clone it and run all ten</h2>
<p>No confidential-computing hardware, no cloud account, no signup. Everything runs in software mode.</p>
<h2>Start with one demo</h2>
<p>Use Python 3.11+, Git, and Bash on macOS, Linux, or Windows with WSL for the commands below. No cloud account is needed. These demos use software attestation and do not demonstrate hardware isolation.</p>
<div class="code">
<div class="code-head"><span class="code-label">Terminal</span><button class="copy">COPY</button></div>
<pre>git clone https://github.com/agentrust-io/demos &amp;&amp; cd demos
pip install -r requirements.txt
python demo.py <span class="c"># all ten, pausing before each</span>
python demo.py --no-pause <span class="c"># straight through, no prompts</span>
python demo.py 6 <span class="c"># just demo 6</span></pre>
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python demo.py 1 <span class="c"># start with tool-call policy enforcement</span></pre>
</div>
<p>The requirements install cMCP for demos 1 to 5, Weight Custody Manifest for demos 6 to 9, and the OpenAI client for demo 10. <code>demo.py</code> sets dev mode and the bearer token for you, so there is nothing to export. Source: <a href="https://github.com/agentrust-io/demos">github.com/agentrust-io/demos</a>.</p>

<p><strong>What to look for:</strong> demo 1 routes calls through the local gateway and closes the session into a signed record. Software mode does not pass hardware-attestation verification. To explore weight custody, run <code>python demo.py 6</code>; to run the full set without pauses, use <code>python demo.py --no-pause</code>.</p>
<p><strong>Individual commands below:</strong> run them from the <code>demos</code> folder with the environment activated. For demos that start cMCP, set <code>export CMCP_BEARER_TOKEN=demo-token</code> first. The <code>demo.py</code> launcher handles this setup for you.</p>
<p class="meta" style="margin-top:2.25rem;">What demo 6 actually prints, verbatim from a run on <code>weight-custody-manifest 0.25.0</code></p>
<div class="term">
<div class="term-bar"><span class="dot"></span><span class="dot"></span><span class="dot"></span><span class="term-title">python demo-06-weight-custody/run.py</span></div>
Expand Down
41 changes: 41 additions & 0 deletions design-system.css
Original file line number Diff line number Diff line change
Expand Up @@ -1949,3 +1949,44 @@ html:has(body.agentrust-hub) { scroll-behavior: smooth; }
.marketplace-page [hidden] { display:none!important; }.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
@media(max-width:860px){.marketplace-callout,.market-section-heading{align-items:flex-start;flex-direction:column}.market-hero-grid,.market-layout,.submit-grid{grid-template-columns:1fr}.market-signal{max-width:440px}.featured-strip,.market-grid{grid-template-columns:1fr}.market-filters{position:static;display:grid;grid-template-columns:1fr 1fr;gap:1rem}.neutrality-note{grid-column:1/-1;margin-top:0}.market-search-row{grid-template-columns:1fr}.market-sort{padding-left:0}.market-card{min-height:315px}}
@media(max-width:560px){.market-hero h1 br{display:none}.market-filters{grid-template-columns:1fr}.neutrality-note{grid-column:auto}.market-search kbd{display:none}}
/* Reader entry points and architecture share the site's existing palette. */
.skip-link { position: fixed; top: -5rem; left: 1rem; z-index: 20000; padding: .75rem 1rem; background: var(--at-ink); color: var(--at-paper); }
.skip-link:focus { top: .5rem; }
.agentrust-hub .hero { padding-block: clamp(2rem, 4vw, 3.5rem); }
.agentrust-hub .hero h1 { font-size: clamp(2.6rem, 5.5vw, 4.8rem); line-height: 1.03; max-width: 1000px; margin-block: 1rem; }
.agentrust-hub .hero > .hero-inner > p:not(.hero-eyebrow) { max-width: 760px; font-family: var(--at-sans); font-size: clamp(1rem, 1.6vw, 1.2rem); line-height: 1.6; }
.agentrust-hub .hero > .hero-inner > p.hero-scope { font-size: .85rem; margin-top: 1rem; }
.agentrust-hub .hero .hero-eyebrow { max-width: none; font-size: .78rem; }
.agentrust-hub .reader-start { padding-block: 2rem 3rem; }
.agentrust-hub .reader-start h2 { font-size: 2rem; margin-bottom: 1.5rem; }
.agentrust-hub .ecosystem-card a { display: inline-block; margin-top: 1rem; color: var(--at-ink); font-weight: 650; text-underline-offset: .2em; }
.architecture { margin: 2rem 0; color: var(--at-ink); }
.architecture-input { display: flex; align-items: center; gap: 1.5rem; padding: 1.25rem; border: 1px solid var(--at-line); background: var(--at-paper-2); }
.architecture-input > a { flex-shrink: 0; }
.architecture a { color: var(--at-ink); text-underline-offset: .2em; }
.architecture-row { display: grid; grid-template-columns: 1fr auto 1.3fr auto 1fr; gap: .8rem; align-items: stretch; margin-block: 1.25rem; }
.architecture-node { display: flex; flex-direction: column; justify-content: center; gap: .65rem; padding: 1.25rem; border: 1px solid var(--at-line); background: var(--at-white); min-width: 0; }
.architecture-boundary { border: 2px dashed var(--at-navy); }
.architecture-edge { align-self: center; font-size: .8rem; font-weight: 650; white-space: nowrap; }
.architecture-outcomes { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--at-line); background: var(--at-white); }
.architecture-outcomes > div { padding: 1.25rem; }
.architecture-outcomes > div + div { border-left: 1px solid var(--at-line); }
.architecture span, .architecture p, .architecture small, .architecture figcaption { font-size: .9rem; line-height: 1.6; }
.architecture p { margin-bottom: 0; }
.architecture figcaption { margin-top: 1rem; color: var(--at-muted); }
.tutorial-toc { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; margin: 1.5rem 0; }
.tutorial-toc a { color: var(--at-ink); padding-block: .4rem; }
.troubleshooting dt { font-weight: 700; margin-top: 1.25rem; }
.troubleshooting dd { margin: .5rem 0 0; }
.at-page .step-body, .at-page .split > *, .at-page .code { min-width: 0; }
.at-page .code-label { overflow-wrap: anywhere; }
.at-page .copy { flex-shrink: 0; }
@media (max-width: 700px) {
.architecture-input { flex-direction: column; align-items: start; gap: .5rem; }
.architecture-row, .architecture-outcomes { grid-template-columns: 1fr; }
.architecture-edge { justify-self: center; margin-block: .25rem; }
.architecture-edge .direction { display: inline-block; transform: rotate(90deg); }
.architecture-outcomes > div + div { border-left: 0; border-top: 1px solid var(--at-line); }
.agentrust-hub .hero-actions { gap: .75rem; }
.agentrust-hub .hero-actions .btn { text-align: center; white-space: normal; }
}
Loading
Loading