From 2bc23e114cc837051455a87965d87574c6f6f5ae Mon Sep 17 00:00:00 2001 From: Greg Soucy Date: Wed, 20 May 2026 20:53:02 -0400 Subject: [PATCH] fix: unify sitewide docs dropdown navigation --- public/capabilities.html | 23 +++++++++++++-- public/claim.html | 34 +++++++++++++---------- public/docs.html | 38 ++++++++++++------------- public/index.html | 51 +++++++++++++--------------------- public/protocol.html | 27 ++++++++++-------- public/runtime.html | 40 ++++++++++++-------------- public/sdk-records.html | 23 +++++++++++++-- public/stack-proof-demo.html | 28 +++++++++++++------ public/trust-verification.html | 34 +++++++++++++---------- public/verify.html | 23 +++++++++++++-- 10 files changed, 195 insertions(+), 126 deletions(-) diff --git a/public/capabilities.html b/public/capabilities.html index e4bdb5c..c6eb02b 100644 --- a/public/capabilities.html +++ b/public/capabilities.html @@ -10,10 +10,29 @@ - + - +
Capabilities

Capability families for verifiable agent actions.

Choose the action families your agent supports. CommandLayer capabilities define action semantics, schemas, discovery surfaces, and receipt verification paths.

View Proof

A capability is not just a verb. It can include request schemas, receipt schemas, examples, agent cards, ENS records, MCP tool definitions, OpenAPI operations, SDK usage, and verifier support.

1

Semantics

Capability semantics define verb meaning and expected execution intent.

2

Request schema

Request schemas define valid inputs before runtime execution begins.

3

Runtime execution

Runtime executes the action and signs receipts using signer identity and key material.

4

Canonical receipt

Canonical receipts include metadata.proof fields for JSON canonicalization, SHA-256 hashing, and Ed25519 signatures.

5

Discovery surface

MCP bridge and API discovery surfaces expose callable tools and operations.

6

Verification

Verifier validation confirms proof integrity, and tamper invalidation fails altered receipts.

Capability Map

One map for actions, discovery, and proof.

Trust Verification v1 is live in production. The remaining capability families are namespace package / future family tracks for expansion.

diff --git a/public/claim.html b/public/claim.html index ab744b7..dd9c9f2 100644 --- a/public/claim.html +++ b/public/claim.html @@ -60,23 +60,29 @@ .nav-inner { height: auto; padding: 12px 0; flex-wrap: wrap; gap: 10px; } .nav-links { flex-wrap: wrap; justify-content: center; } } - + .nav-links a:hover,.nav-drop:hover>a,.nav-drop:focus-within>a,.nav-drop>a.active{color:var(--text);background:var(--surface)}.nav-drop{position:relative}.nav-drop>a{display:inline-flex;align-items:center;gap:4px}.nav-drop-menu{position:absolute;top:calc(100% - 1px);left:0;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 34px rgba(15,23,42,.12);padding:8px;display:none;min-width:260px;z-index:200}.nav-drop-menu::before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}.nav-drop-menu a{display:block;white-space:nowrap}.nav-drop:hover .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{display:grid}@media(max-width:900px){.nav-drop{width:100%}.nav-drop-menu{position:static;display:grid;margin-top:2px;min-width:0;box-shadow:none}} + +
diff --git a/public/docs.html b/public/docs.html index c5a4348..7a8191e 100644 --- a/public/docs.html +++ b/public/docs.html @@ -46,25 +46,25 @@ + +
diff --git a/public/index.html b/public/index.html index aab9293..02d0d59 100644 --- a/public/index.html +++ b/public/index.html @@ -1051,42 +1051,31 @@ .footer-bottom { flex-direction: column; gap: 8px; text-align: center; } .api-top { flex-direction: column; } } - + .nav-links a:hover,.nav-drop:hover>a,.nav-drop:focus-within>a,.nav-drop>a.active{color:var(--text);background:var(--surface)}.nav-drop{position:relative}.nav-drop>a{display:inline-flex;align-items:center;gap:4px}.nav-drop-menu{position:absolute;top:calc(100% - 1px);left:0;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 34px rgba(15,23,42,.12);padding:8px;display:none;min-width:260px;z-index:200}.nav-drop-menu::before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}.nav-drop-menu a{display:block;white-space:nowrap}.nav-drop:hover .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{display:grid}@media(max-width:900px){.nav-drop{width:100%}.nav-drop-menu{position:static;display:grid;margin-top:2px;min-width:0;box-shadow:none}} + +
diff --git a/public/protocol.html b/public/protocol.html index 47aaf90..5a0d35f 100644 --- a/public/protocol.html +++ b/public/protocol.html @@ -36,22 +36,27 @@ .foot-links{display:flex;align-items:center;justify-content:center;gap:28px;font-size:13px;flex-wrap:wrap} .foot-links a{color:var(--muted);text-decoration:none}.foot-links a:hover{color:var(--purple)} @media(max-width:900px){.stack-grid,.boundaries-grid,.family-grid,.proof-grid{grid-template-columns:1fr}.flow{align-items:flex-start}.hero{padding:62px 0 42px}} - +.nav-links a:hover,.nav-drop:hover>a,.nav-drop:focus-within>a,.nav-drop>a.active{color:var(--text);background:var(--surface)}.nav-drop{position:relative}.nav-drop>a{display:inline-flex;align-items:center;gap:4px}.nav-drop-menu{position:absolute;top:calc(100% - 1px);left:0;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 34px rgba(15,23,42,.12);padding:8px;display:none;min-width:260px;z-index:200}.nav-drop-menu::before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}.nav-drop-menu a{display:block;white-space:nowrap}.nav-drop:hover .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{display:grid}@media(max-width:900px){.nav-drop{width:100%}.nav-drop-menu{position:static;display:grid;margin-top:2px;min-width:0;box-shadow:none}} diff --git a/public/runtime.html b/public/runtime.html index 91ad60c..4793783 100644 --- a/public/runtime.html +++ b/public/runtime.html @@ -118,7 +118,7 @@ ::-webkit-scrollbar { width: 4px; height: 4px; } ::-webkit-scrollbar-track { background: var(--bg); } ::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; } - +.nav-links a:hover,.nav-drop:hover>a,.nav-drop:focus-within>a,.nav-drop>a.active{color:var(--text);background:var(--surface)}.nav-drop{position:relative}.nav-drop>a{display:inline-flex;align-items:center;gap:4px}.nav-drop-menu{position:absolute;top:calc(100% - 1px);left:0;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 34px rgba(15,23,42,.12);padding:8px;display:none;min-width:260px;z-index:200}.nav-drop-menu::before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}.nav-drop-menu a{display:block;white-space:nowrap}.nav-drop:hover .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{display:grid}@media(max-width:900px){.nav-drop{width:100%}.nav-drop-menu{position:static;display:grid;margin-top:2px;min-width:0;box-shadow:none}} @@ -129,29 +129,23 @@
diff --git a/public/sdk-records.html b/public/sdk-records.html index 432b74e..56f489f 100644 --- a/public/sdk-records.html +++ b/public/sdk-records.html @@ -28,10 +28,29 @@ .cta:hover{border-color:rgba(99,91,255,.35);background:#faf9ff} footer{padding:30px 0 36px;border-top:1px solid var(--border);background:#fff}.footer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.footer-col h4{margin:0 0 10px}.footer-col a{display:block;color:var(--muted);text-decoration:none;margin-bottom:6px} @media(max-width:960px){.footer-grid{grid-template-columns:1fr}} - +.nav-links a:hover,.nav-drop:hover>a,.nav-drop:focus-within>a,.nav-drop>a.active{color:var(--text);background:var(--surface)}.nav-drop{position:relative}.nav-drop>a{display:inline-flex;align-items:center;gap:4px}.nav-drop-menu{position:absolute;top:calc(100% - 1px);left:0;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 34px rgba(15,23,42,.12);padding:8px;display:none;min-width:260px;z-index:200}.nav-drop-menu::before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}.nav-drop-menu a{display:block;white-space:nowrap}.nav-drop:hover .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{display:grid}@media(max-width:900px){.nav-drop{width:100%}.nav-drop-menu{position:static;display:grid;margin-top:2px;min-width:0;box-shadow:none}} - +
SDK

Add verifiable receipts to agent actions.

@commandlayer/agent-sdk wraps agent actions and emits canonical metadata.proof receipts that can be checked by CommandLayer verifiers.

Wrap an agent action, emit a canonical receipt, and verify the proof.
Runtime production is live. Runtime signs canonical Trust Verification receipts. MCP E2E against production runtime passes: STEP 1 SIGNED, STEP 2 VERIFIED, STEP 3 TAMPERED INVALID. Runtime signer: signer_id = runtime.commandlayer.eth, kid = vC4WbcNoq2znSCiQ. Canonical proof: metadata.proof.canonicalization = json.sorted_keys.v1, metadata.proof.hash.alg = SHA-256, metadata.proof.signature.alg = Ed25519.
diff --git a/public/stack-proof-demo.html b/public/stack-proof-demo.html index 3349523..8374b91 100644 --- a/public/stack-proof-demo.html +++ b/public/stack-proof-demo.html @@ -33,17 +33,29 @@ .split{display:grid;grid-template-columns:1fr 1fr;gap:14px} footer{padding:36px 0 44px;color:var(--muted);font-size:14px} @media(max-width:920px){.nav-links{flex-wrap:wrap;justify-content:flex-end}.grid-3,.split,.flow{grid-template-columns:1fr}.arrow{display:none}} - + .nav-links a:hover,.nav-drop:hover>a,.nav-drop:focus-within>a,.nav-drop>a.active{color:var(--text);background:var(--surface)}.nav-drop{position:relative}.nav-drop>a{display:inline-flex;align-items:center;gap:4px}.nav-drop-menu{position:absolute;top:calc(100% - 1px);left:0;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 34px rgba(15,23,42,.12);padding:8px;display:none;min-width:260px;z-index:200}.nav-drop-menu::before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}.nav-drop-menu a{display:block;white-space:nowrap}.nav-drop:hover .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{display:grid}@media(max-width:900px){.nav-drop{width:100%}.nav-drop-menu{position:static;display:grid;margin-top:2px;min-width:0;box-shadow:none}} + +
diff --git a/public/trust-verification.html b/public/trust-verification.html index e90e3b2..47b9d94 100644 --- a/public/trust-verification.html +++ b/public/trust-verification.html @@ -34,23 +34,29 @@ .foot-links { display:flex; justify-content:center; gap:28px; font-size:13px; flex-wrap:wrap; } .foot-links a { color: var(--muted); text-decoration:none; } .foot-links a:hover { color: var(--text); text-decoration:underline; } - + .nav-links a:hover,.nav-drop:hover>a,.nav-drop:focus-within>a,.nav-drop>a.active{color:var(--text);background:var(--surface)}.nav-drop{position:relative}.nav-drop>a{display:inline-flex;align-items:center;gap:4px}.nav-drop-menu{position:absolute;top:calc(100% - 1px);left:0;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 34px rgba(15,23,42,.12);padding:8px;display:none;min-width:260px;z-index:200}.nav-drop-menu::before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}.nav-drop-menu a{display:block;white-space:nowrap}.nav-drop:hover .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{display:grid}@media(max-width:900px){.nav-drop{width:100%}.nav-drop-menu{position:static;display:grid;margin-top:2px;min-width:0;box-shadow:none}} + +
diff --git a/public/verify.html b/public/verify.html index 3bf2350..2555649 100644 --- a/public/verify.html +++ b/public/verify.html @@ -30,10 +30,29 @@ .example{margin-top:16px;background:#0f172a;color:#dbeafe;border-radius:14px;padding:14px;overflow:auto;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace} footer{padding:30px 0 36px;border-top:1px solid var(--border);background:#fff}.footer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.footer-col h4{margin:0 0 10px}.footer-col a{display:block;color:var(--muted);text-decoration:none;margin-bottom:6px} @media(max-width:960px){.layout,.cards,.footer-grid{grid-template-columns:1fr}} - +.nav-links a:hover,.nav-drop:hover>a,.nav-drop:focus-within>a,.nav-drop>a.active{color:var(--text);background:var(--surface)}.nav-drop{position:relative}.nav-drop>a{display:inline-flex;align-items:center;gap:4px}.nav-drop-menu{position:absolute;top:calc(100% - 1px);left:0;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 34px rgba(15,23,42,.12);padding:8px;display:none;min-width:260px;z-index:200}.nav-drop-menu::before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}.nav-drop-menu a{display:block;white-space:nowrap}.nav-drop:hover .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{display:grid}@media(max-width:900px){.nav-drop{width:100%}.nav-drop-menu{position:static;display:grid;margin-top:2px;min-width:0;box-shadow:none}} - +
Verifier

Verify agent receipts by proof, not claim.

Paste a CommandLayer receipt, inspect its canonical proof, and confirm whether the hash and Ed25519 signature still match.

Receipts are not trusted by claim. They are verified by proof.
Runtime production is live. Runtime signs canonical Trust Verification receipts. MCP E2E against production runtime passes: STEP 1 SIGNED, STEP 2 VERIFIED, STEP 3 TAMPERED INVALID. Runtime signer: runtime.commandlayer.eth with kid=vC4WbcNoq2znSCiQ. Canonical proof uses metadata.proof.canonicalization=json.sorted_keys.v1, metadata.proof.hash.alg=SHA-256, and metadata.proof.signature.alg=Ed25519.
What gets checked

Manual verifier checks, not just shape.

Receipt structure
Canonical metadata.proof envelope
json.sorted_keys.v1 canonical hash
SHA-256 hash match
Ed25519 signature validity
Signer identity and key id
Supported capability verb
Tamper resistance
A receipt is only verified when hash and signature checks pass. Schema-valid alone is not verified.