Skip to content

Commit b866064

Browse files
committed
feat(site): add local/dev stack proof demo page
1 parent af266b4 commit b866064

2 files changed

Lines changed: 93 additions & 0 deletions

File tree

public/docs.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ <h1 class="doc-h1">Getting started with<br /><em>CommandLayer</em></h1>
147147
<div class="hero-actions">
148148
<a href="https://www.commandlayer.org/verify.html" class="btn btn-primary">Verify a receipt now →</a>
149149
<a href="#summarize-example" class="btn btn-outline">Jump to summarize flow ↓</a>
150+
<a href="/stack-proof-demo.html" class="btn btn-outline">Stack proof demo (local/dev) →</a>
150151
</div>
151152
<p class="doc-p"><strong>Install the SDK:</strong> <code>npm install @commandlayer/agent-sdk</code></p>
152153
<p class="doc-p">If the output changes, the proof breaks.</p>

public/stack-proof-demo.html

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
6+
<title>CommandLayer — Stack Proof Demo (Local/Dev)</title>
7+
<link rel="icon" href="https://www.commandlayer.org/icon2.png" />
8+
<style>
9+
:root{--bg:#07090d;--surface:#0f1623;--border:#1f2f45;--text:#cfe3fb;--dim:#6e89a8;--accent:#00d4ff;--ok:#00e676;--bad:#ff6b6b;--mono:'JetBrains Mono',monospace}
10+
*{box-sizing:border-box} body{margin:0;background:var(--bg);color:var(--text);font-family:var(--mono);line-height:1.6}
11+
main{max-width:980px;margin:0 auto;padding:40px 24px 70px}
12+
a{color:var(--accent)} h1,h2,h3{line-height:1.2}
13+
.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px 18px;margin:14px 0}
14+
pre{background:#0b1019;border:1px solid var(--border);border-radius:8px;padding:14px;overflow:auto;font-size:12px}
15+
.flow{font-size:18px;color:#fff} .ok{color:var(--ok);font-weight:700} .bad{color:var(--bad);font-weight:700}
16+
ul li{margin:8px 0}.note{color:var(--dim)}
17+
</style>
18+
</head>
19+
<body>
20+
<main>
21+
<p><a href="/docs.html">← Back to docs</a></p>
22+
<h1>Canonical Stack Proof Demo <span class="note">(local/dev)</span></h1>
23+
<p>This page documents the <strong>developer-facing proof flow</strong> for CommandLayer in local/dev environments. It is not a claim that production runtime endpoints are currently reachable.</p>
24+
25+
<div class="card">
26+
<h2>Canonical flow</h2>
27+
<p class="flow">MCP sign request → runtime signs receipt → VerifyAgent verifies → tampered receipt invalidates</p>
28+
</div>
29+
30+
<h2>Canonical proof envelope</h2>
31+
<pre>{
32+
"receipt": {
33+
"request_id": "req_demo_123",
34+
"agent": "runtime.commandlayer.eth",
35+
"verb": "summarize",
36+
"result": {
37+
"summary": "CommandLayer signs verifiable runtime receipts."
38+
}
39+
},
40+
"metadata": {
41+
"proof": {
42+
"canonicalization": "json.sorted_keys.v1",
43+
"hash": {
44+
"alg": "SHA-256",
45+
"value": "1e26...demo...f9"
46+
},
47+
"signature": {
48+
"alg": "Ed25519",
49+
"value": "z6Mkh...demo-signature"
50+
}
51+
}
52+
}
53+
}</pre>
54+
55+
<div class="card">
56+
<h3>Expected verification outcomes</h3>
57+
<ul>
58+
<li>VerifyAgent result: <span class="ok">VERIFIED</span></li>
59+
<li>Tampered result: <span class="bad">INVALID</span></li>
60+
</ul>
61+
</div>
62+
63+
<h2>Run it locally</h2>
64+
<div class="card">
65+
<ul>
66+
<li><strong>runtime</strong>: run <code>npm test</code>; use your local sign endpoint to emit signed receipts in dev.</li>
67+
<li><strong>verifyagent</strong>: run <code>npm run e2e:runtime</code> against locally generated receipts.</li>
68+
<li><strong>mcp-server</strong>: run <code>npm test</code>; use the local sign bridge for MCP→runtime handoff.</li>
69+
</ul>
70+
</div>
71+
72+
<h2>Architecture (text diagram)</h2>
73+
<pre>CLAS = contract
74+
runtime-core = crypto truth
75+
runtime = signer / executor
76+
MCP = bridge
77+
VerifyAgent = verifier
78+
agent-sdk = developer wrapper</pre>
79+
80+
<h2>Warnings</h2>
81+
<div class="card">
82+
<ul>
83+
<li><strong>MCP is not the trust root.</strong></li>
84+
<li><strong>schema-valid is not verified.</strong> Verification requires canonical hash + signature checks.</li>
85+
<li><strong>Production runtime must use a key matching ENS TXT records.</strong></li>
86+
</ul>
87+
</div>
88+
89+
<p class="note">Production availability should not be claimed as live until <code>runtime.commandlayer.org</code> is publicly reachable.</p>
90+
</main>
91+
</body>
92+
</html>

0 commit comments

Comments
 (0)