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
36 changes: 36 additions & 0 deletions .github/workflows/house-style.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: House style

# Two checks that had no CI at all.
#
# The dash check exists because the no-em-dash rule had been stated and the site
# still carried twenty-six of them, in a page title, a chart alt attribute, a
# JSON data file and two source comments. None of those are places prose review
# looks, and a grep run once does not stop the next one arriving.
#
# marketplace.test.js covers the escaping and URL-scheme guards on catalog
# rendering, added in #31 after the catalog was found to be rendered from
# remote JSON without them. It was never wired to a workflow, so it has been
# passing or failing unobserved since.

on:
pull_request:
push:
branches: [main]

permissions:
contents: read

jobs:
style:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-node@v4
with:
node-version: "22"
- name: No em dashes, en dashes or horizontal bars
run: node tools/check-dashes.js
- name: Marketplace rendering guards
run: node marketplace/marketplace.test.js
2 changes: 1 addition & 1 deletion data/adoption.json
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
},
{
"kind": "partner",
"name": "XRSI Human Intelligence In The Loop",
"name": "XRSI: Human Intelligence In The Loop",
"logo": "/assets/xrsi-logo-black.png",
"label": "Ecosystem partner",
"title": "Governance and Ecosystem Sustainability Partner",
Expand Down
8 changes: 4 additions & 4 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AgenTrust An Open Ecosystem for Verifiable AI Agents</title>
<title>AgenTrust: An Open Ecosystem for Verifiable AI Agents</title>
<meta name="description" content="AgenTrust is an open ecosystem where developers, researchers, operators, and enterprises build, test, adopt, and sustain verifiable governance for AI agents, with portable telemetry that correlates the evidence.">
<link rel="canonical" href="https://agentrust-io.com/">
<meta name="robots" content="index, follow">
Expand Down Expand Up @@ -351,7 +351,7 @@ <h1>Build the ecosystem for verifiable AI agents</h1>
</div>
<div class="partner-grid">
<article class="partner-card">
<div class="partner-logo-wrap"><img src="/assets/xrsi-logo-black.png" alt="XRSI Human Intelligence In The Loop" loading="lazy"></div>
<div class="partner-logo-wrap"><img src="/assets/xrsi-logo-black.png" alt="XRSI: Human Intelligence In The Loop" loading="lazy"></div>
<div><div class="partner-kicker">Ecosystem partner</div><h3>Governance and Ecosystem Sustainability Partner</h3><p>XRSI brings governance, community-building, and long-term ecosystem sustainability expertise to the AgenTrust adoption programme.</p></div>
</article>
<article class="partner-card">
Expand Down Expand Up @@ -432,7 +432,7 @@ <h3 id="adoption-contact-title">Building with or supporting AgenTrust?</h3>
<div class="card-body">
<div class="card-tag" style="color: var(--blue);">Attestation Standard</div>
<div class="card-name">TRACE</div>
<div class="card-desc">Trust, Runtime Attestation, and Compliance Evidence. Hardware-rooted cryptographic receipts for every agent actionsigned by the TEE, verifiable by anyone.</div>
<div class="card-desc">Trust, Runtime Attestation, and Compliance Evidence. Hardware-rooted cryptographic receipts for every agent action, signed by the TEE and verifiable by anyone.</div>
</div>
<div class="card-footer">
<span class="card-url">trace.agentrust-io.com</span>
Expand Down Expand Up @@ -531,7 +531,7 @@ <h3 id="adoption-contact-title">Building with or supporting AgenTrust?</h3>
<div class="card-body">
<div class="card-tag" style="color: var(--orange);">Governance Telemetry · Alpha</div>
<div class="card-name">AgenTrust Telemetry</div>
<div class="card-desc">A backend-neutral event contract and reference SDKs for policy decisions, approvals, actions, classified data flow, usage and cost, and evidence lifecyclecorrelated with OpenTelemetry and able to finalize complete evidence into TRACE.</div>
<div class="card-desc">A backend-neutral event contract and reference SDKs for policy decisions, approvals, actions, classified data flow, usage and cost, and evidence lifecycle, correlated with OpenTelemetry and able to finalize complete evidence into TRACE.</div>
</div>
<div class="card-footer">
<span class="card-url">agentrust-io.com/telemetry</span>
Expand Down
2 changes: 1 addition & 1 deletion llms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ AgenTrust connects reusable open technology with the people and practices needed

- [AgenTrust Marketplace](https://agentrust-io.com/marketplace/): Search and filter open integrations, adapters, plugins, policy tools, and evidence exporters for TRACE, cMCP, and Agent Manifest. Listings follow public technical rules; Community tier is structure-validated and is not an endorsement.

The ecosystem is focused on implementation, interoperability, maintainer development, community adoption, and long-term sustainabilitynot standards development as an end in itself. Its adoption pathway is: explore a runnable demo; test against open conformance suites; pilot one trust boundary; contribute results, integrations, and deployment evidence; then help govern and maintain the shared infrastructure.
The ecosystem is focused on implementation, interoperability, maintainer development, community adoption, and long-term sustainability, not standards development as an end in itself. Its adoption pathway is: explore a runnable demo; test against open conformance suites; pilot one trust boundary; contribute results, integrations, and deployment evidence; then help govern and maintain the shared infrastructure.

Work happens in public through open repositories, reviewable proposals, implementation evidence, and conformance testing. Neutral standards homes are interoperability pathways; implementations, integrations, testing, documentation, training, adoption support, and maintainer succession make the technology useful and durable.

Expand Down
10 changes: 5 additions & 5 deletions marketplace/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>AgenTrust Marketplace Build with the Verifiable Agent Ecosystem</title>
<title>AgenTrust Marketplace: Build with the Verifiable Agent Ecosystem</title>
<meta name="description" content="Discover open integrations, adapters, plugins, policy tools, and evidence exporters for TRACE, Confidential MCP, and Agent Manifest.">
<link rel="canonical" href="https://agentrust-io.com/marketplace/"><meta name="robots" content="index,follow">
<link rel="icon" href="/favicon.ico" sizes="any"><link rel="apple-touch-icon" href="/apple-touch-icon.png">
Expand All @@ -13,12 +13,12 @@
<body class="at-page marketplace-page">
<header class="site-header"><div class="wrap header-in"><a class="wordmark" href="/">agentrust<span>.</span>io</a><nav aria-label="Primary navigation"><a href="/">Ecosystem</a><a href="/marketplace/" aria-current="page">Marketplace</a><a href="/#standards">Technology</a><a href="/quickstart/">Quickstart</a><a class="cta" href="https://github.com/agentrust-io/integrations">Add yours ↗</a></nav></div></header>
<main>
<section class="market-hero"><div class="wrap market-hero-grid"><div><p class="eyebrow">AgenTrust Marketplace</p><h1>Build with the<br><em>verifiable AI ecosystem.</em></h1><p class="market-intro">Find integrations across AgenTrust and the Microsoft Agent Governance Toolkitfrom framework adapters to policy enforcement and portable trust evidence.</p><div class="market-hero-actions"><a class="button primary" href="#browse">Explore integrations</a><a class="button secondary" href="https://github.com/agentrust-io/integrations/blob/main/CONTRIBUTING.md">Publish an integration ↗</a></div></div><aside class="market-signal" aria-label="Marketplace summary"><p><strong id="hero-count"></strong> integrations in one directory</p><p><strong id="native-count"></strong> AgenTrust integrations</p><p><strong id="agt-count"></strong> AGT integrations</p><small id="catalog-status" aria-live="polite">Loading live repository catalogs…</small></aside></div></section>
<section class="market-hero"><div class="wrap market-hero-grid"><div><p class="eyebrow">AgenTrust Marketplace</p><h1>Build with the<br><em>verifiable AI ecosystem.</em></h1><p class="market-intro">Find integrations across AgenTrust and the Microsoft Agent Governance Toolkit, from framework adapters to policy enforcement and portable trust evidence.</p><div class="market-hero-actions"><a class="button primary" href="#browse">Explore integrations</a><a class="button secondary" href="https://github.com/agentrust-io/integrations/blob/main/CONTRIBUTING.md">Publish an integration ↗</a></div></div><aside class="market-signal" aria-label="Marketplace summary"><p><strong id="hero-count">&hellip;</strong> integrations in one directory</p><p><strong id="native-count">&hellip;</strong> AgenTrust integrations</p><p><strong id="agt-count">&hellip;</strong> AGT integrations</p><small id="catalog-status" aria-live="polite">Loading live repository catalogs…</small></aside></div></section>
<section class="market-featured" aria-labelledby="featured-title"><div class="wrap"><div class="market-section-heading"><div><p class="eyebrow">Start here</p><h2 id="featured-title">Built for the stacks agents already use</h2></div><a href="#browse">Browse all integrations ↓</a></div><div class="featured-strip" id="featured-list"></div></div></section>
<section class="market-browser" id="browse" aria-labelledby="browse-title"><div class="wrap">
<div class="market-section-heading browser-heading"><div><p class="eyebrow">Explore the ecosystem</p><h2 id="browse-title">Find the right integration</h2></div><p class="market-count" aria-live="polite"><strong id="result-count"></strong> <span id="result-label">integrations</span></p></div>
<div class="market-search-row"><label class="market-search"><span class="sr-only">Search marketplace</span><svg aria-hidden="true" viewBox="0 0 24 24"><path d="m21 21-4.35-4.35m2.35-5.65a8 8 0 1 1-16 0 8 8 0 0 1 16 0Z"/></svg><input id="market-search" type="search" placeholder="Search integrations, platforms, or use cases…" autocomplete="off"><kbd>/</kbd></label><label class="market-sort">Sort <select id="market-sort"><option value="featured">Featured</option><option value="az">Name AZ</option><option value="za">Name ZA</option></select></label></div>
<div class="market-layout"><aside class="market-filters" aria-label="Marketplace filters"><div class="filter-group"><p>Technology</p><div id="stack-filters"></div></div><div class="filter-group"><p>Integration type</p><div id="type-filters"></div></div><button class="clear-filters" id="clear-filters" type="button">Clear all filters</button><div class="neutrality-note"><strong>Know what the labels mean.</strong><br>AgenTrust Community entries are manifest-validated, not endorsed. AGT project entries are snapshotted daily from Microsoft’s integration collection at a recorded commit.</div></aside><div><div class="active-filters" id="active-filters" aria-live="polite"></div><div class="market-grid" id="market-grid"></div><div class="market-empty" id="market-empty" hidden><span>0 results</span><h3>No integration matches that searchyet.</h3><p>Try fewer filters, or be the project that fills the gap.</p><button class="button secondary" type="button" id="empty-clear">Clear filters</button></div></div></div>
<div class="market-section-heading browser-heading"><div><p class="eyebrow">Explore the ecosystem</p><h2 id="browse-title">Find the right integration</h2></div><p class="market-count" aria-live="polite"><strong id="result-count">&hellip;</strong> <span id="result-label">integrations</span></p></div>
<div class="market-search-row"><label class="market-search"><span class="sr-only">Search marketplace</span><svg aria-hidden="true" viewBox="0 0 24 24"><path d="m21 21-4.35-4.35m2.35-5.65a8 8 0 1 1-16 0 8 8 0 0 1 16 0Z"/></svg><input id="market-search" type="search" placeholder="Search integrations, platforms, or use cases…" autocomplete="off"><kbd>/</kbd></label><label class="market-sort">Sort <select id="market-sort"><option value="featured">Featured</option><option value="az">Name A to Z</option><option value="za">Name Z to A</option></select></label></div>
<div class="market-layout"><aside class="market-filters" aria-label="Marketplace filters"><div class="filter-group"><p>Technology</p><div id="stack-filters"></div></div><div class="filter-group"><p>Integration type</p><div id="type-filters"></div></div><button class="clear-filters" id="clear-filters" type="button">Clear all filters</button><div class="neutrality-note"><strong>Know what the labels mean.</strong><br>AgenTrust Community entries are manifest-validated, not endorsed. AGT project entries are snapshotted daily from Microsoft’s integration collection at a recorded commit.</div></aside><div><div class="active-filters" id="active-filters" aria-live="polite"></div><div class="market-grid" id="market-grid"></div><div class="market-empty" id="market-empty" hidden><span>0 results</span><h3>No integration matches that search, yet.</h3><p>Try fewer filters, or be the project that fills the gap.</p><button class="button secondary" type="button" id="empty-clear">Clear filters</button></div></div></div>
</div></section>
<section class="market-submit"><div class="wrap submit-grid"><div><p class="eyebrow">Make the ecosystem bigger</p><h2>Your integration belongs here.</h2></div><div><p>Connect a framework, platform, policy engine, or governance product to the AgenTrust stack. The submission path is public, self-serve, and governed by the same rules for everyone.</p><a class="button primary" href="https://github.com/agentrust-io/integrations/blob/main/CONTRIBUTING.md">List your integration ↗</a></div></div></section>
</main>
Expand Down
14 changes: 7 additions & 7 deletions quickstart/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -181,11 +181,11 @@ <h3>Drop in the config and your policy</h3>
cat &gt; policies/agent.cedar &lt;&lt; 'EOF'
<span class="c">// Cedar is default-deny: anything these rules don't permit is denied.</span>

<span class="c">// Rule 1 let the demo-agent workflow call tools at all</span>
<span class="c">// Rule 1: let the demo-agent workflow call tools at all</span>
permit ( principal, action == cMCP::Action::"call_tool", resource )
when { context.workflow_id == "demo-agent" };

<span class="c">// Rule 2 but never let it call a tool the catalog tags as PII.</span>
<span class="c">// Rule 2: but never let it call a tool the catalog tags as PII.</span>
<span class="c">// forbid always wins over permit in Cedar, so this is the rule</span>
<span class="c">// that produces the 403 in step 4.</span>
forbid ( principal, action == cMCP::Action::"call_tool", resource )
Expand Down Expand Up @@ -247,7 +247,7 @@ <h3>Drop in the config and your policy</h3>
<h3>Start the runtime</h3>
<p class="hint">Run this in the <b>same terminal where you just created the files</b> (you're inside <code>cmcp-quickstart</code>). It keeps running and won't return a prompt, which is normal, and the startup notices are expected, not errors. <b>Leave it open</b> and open a second terminal for the next step.</p>
<div class="code">
<div class="code-head"><span class="code-label">Terminal 1 leave running</span><button class="copy">COPY</button></div>
<div class="code-head"><span class="code-label">Terminal 1: leave running</span><button class="copy">COPY</button></div>
<pre>CMCP_DEV_MODE=1 cmcp start --config cmcp-config.yaml</pre>
</div>
</div>
Expand All @@ -259,7 +259,7 @@ <h3>Start the runtime</h3>
<h3>Fire a bad action, watch it get blocked</h3>
<p class="hint">In a <b>second terminal</b>, run <code>cd cmcp-quickstart &amp;&amp; source venv/bin/activate</code> first (so <code>cmcp</code> is available here too), then paste this. It's your support agent trying to pull a customer's Salesforce record. The runtime looks the tool up in your catalog, sees <code>compliance_domain: "pii"</code>, and your rule 2 forbids it. Watch it return a <b>403</b> before it ever reaches Salesforce. Not blocked? You're likely in advisory mode, so check the config says <code>enforcing</code>.</p>
<div class="code">
<div class="code-head"><span class="code-label">Terminal 2 you, playing the agent</span><button class="copy">COPY</button></div>
<div class="code-head"><span class="code-label">Terminal 2: you, playing the agent</span><button class="copy">COPY</button></div>
<pre>curl -i -X POST http://localhost:8443/mcp \
-H "Content-Type: application/json" \
-d '{
Expand Down Expand Up @@ -293,7 +293,7 @@ <h3>Fire a bad action, watch it get blocked</h3>
<h3>Walk away with proof</h3>
<p class="hint">Closing the session mints a signed <code>TRACE claim</code>, a tamper-evident record of which tools ran and which policy decided each call. Verify it yourself; you don't have to trust us. See the <a href="https://cmcp.agentrust-io.com/SPEC/#5-trace-claim-schema" target="_blank" rel="noopener">full TRACE claim schema</a>.</p>
<div class="code">
<div class="code-head"><span class="code-label">Terminal 2 finalize the session, then verify</span><button class="copy">COPY</button></div>
<div class="code-head"><span class="code-label">Terminal 2: finalize the session, then verify</span><button class="copy">COPY</button></div>
<pre>SID=$(curl -s "http://localhost:8443/audit/export?session_id=demo-session-001" \
| python3 -c "import sys,json; print(json.load(sys.stdin)['entries'][0]['session_id'])")
curl -s -X POST "http://localhost:8443/sessions/$SID/close" | python3 -m json.tool &gt; claim.json
Expand All @@ -311,7 +311,7 @@ <h3>Walk away with proof</h3>
<div class="chk"><span>tool_catalog.hash</span><span class="pass">PASS ✓ <span class="note">(not pinned)</span></span></div>
<div class="chk"><span>attestation_freshness</span><span class="pass">PASS ✓</span></div>
<div class="chk"><span>audit_chain</span><span class="pass">PASS ✓</span></div>
<div class="chk"><span>hardware_attestation</span><span class="warn">FAIL software-only mode</span></div>
<div class="chk"><span>hardware_attestation</span><span class="warn">FAIL: software-only mode</span></div>
<div class="chk result"><span>Result</span><span class="warn">FAIL (partially_verified)</span></div>
</div>
<p class="note-rule">Every cryptographic check passes. The one <span class="warn">FAIL</span> is hardware attestation, which dev mode can't provide, and <b>that is the honest answer</b>: overall verification only reports <span class="pass">verified</span> when the claim is hardware-backed, so the CLI prints <span class="warn">FAIL (partially_verified)</span> and exits 1 here. Run the same runtime on a hardware TEE and that last check passes, the result becomes <b>verified</b>, and that is the version you hand a regulator.</p>
Expand All @@ -321,7 +321,7 @@ <h3>Walk away with proof</h3>
</div>

<div class="verdict quiet" style="margin-top:2.25rem;">
<div class="flag">Go further stateful escalation</div>
<div class="flag">Go further: stateful escalation</div>
<p>The rule you just wrote is stateless: the tool is tagged PII, so it is always forbidden for this workflow. cMCP also tracks sensitivity <em>across</em> a session. Once a response has been inspected and found to contain PII, the session's <code>session_max_sensitivity</code> rises, and a rule like this starts to bite:</p>
<div class="code">
<div class="code-head"><span class="code-label">The stateful version of rule 2</span><button class="copy">COPY</button></div>
Expand Down
Loading
Loading