GenOS / index.html
RayxieGinks's picture
Add interactive GenOS proof demo
ae919ed verified
Raw History Blame Contribute Delete
35 kB
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="GenOS brings Git-like branching, isolated counterfactual execution, and deterministic replay to AI-agent state.">
<meta name="theme-color" content="#0d1117">
<title>GenOS — Git-like branching for AI-agent state</title>
<style>
:root{--bg:#0d1117;--panel:#161b22;--subtle:#21262d;--border:#30363d;--border-hi:#3d444d;--text:#c9d1d9;--bright:#f0f6fc;--muted:#8b949e;--faint:#6e7681;--blue:#58a6ff;--blue-deep:#1f6feb;--purple:#bc8cff;--green:#3fb950;--green-deep:#238636;--orange:#fd8c73;--red:#f85149;--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.6 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}a{color:inherit;text-decoration:none}.wrap{width:min(calc(100% - 40px),var(--max));margin:auto}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}
.topbar{height:64px;background:var(--panel);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.topbar>.wrap{height:100%;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px;color:var(--bright);font-size:16px;font-weight:650}.brand img{width:34px;height:34px;object-fit:contain}.brand small{padding-left:11px;border-left:1px solid var(--border);color:var(--muted);font:11px ui-monospace,monospace;font-weight:400}.nav{display:flex;align-items:center;gap:22px;color:var(--muted);font-size:12px}.nav a:hover{color:var(--bright)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:34px;padding:0 13px;border:1px solid var(--border-hi);border-radius:6px;background:var(--subtle);color:var(--bright);font-size:12px;font-weight:600;transition:.15s}.button:hover{border-color:var(--muted);background:#292f36}.button.primary{background:var(--green-deep);border-color:#2ea043;color:#fff}.button.primary:hover{background:#2ea043}.button.link{background:transparent;color:var(--blue);border-color:var(--blue-deep)}
.hero{padding:74px 0 66px;border-bottom:1px solid var(--border);background-image:linear-gradient(#21262d38 1px,transparent 1px),linear-gradient(90deg,#21262d38 1px,transparent 1px);background-size:32px 32px}.hero-grid{display:grid;grid-template-columns:.88fr 1.12fr;gap:58px;align-items:center}.status{display:inline-flex;align-items:center;gap:9px;padding:5px 10px;border:1px solid var(--border-hi);border-radius:999px;background:var(--subtle);color:var(--purple);font:700 11px ui-monospace,monospace;letter-spacing:.03em}.status:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--purple);box-shadow:0 0 10px #bc8cff88}.hero h1{color:var(--bright);font-size:clamp(44px,6vw,68px);line-height:1.02;letter-spacing:-.052em;margin:22px 0 22px}.hero h1 span{color:var(--purple)}.hero-copy{max-width:545px;color:var(--muted);font-size:19px;line-height:1.55;margin:0}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.requirements{display:flex;gap:14px;flex-wrap:wrap;margin-top:22px;color:var(--faint);font:11px ui-monospace,monospace}.requirements span:before{content:"✓";color:var(--green);margin-right:6px}
.window{border:1px solid var(--border-hi);border-radius:6px;background:var(--panel);box-shadow:0 18px 50px #0007;overflow:hidden}.window-head{height:40px;display:flex;align-items:center;gap:8px;padding:0 13px;border-bottom:1px solid var(--border);background:var(--subtle);font:11px ui-monospace,monospace;color:var(--muted)}.window-head .lights{display:flex;gap:6px;margin-right:5px}.window-head i{width:8px;height:8px;border-radius:50%;background:var(--border-hi)}.window-head i:first-child{background:var(--red)}.window-head i:nth-child(2){background:#d29922}.window-head i:nth-child(3){background:var(--green)}.window img{display:block;width:100%;aspect-ratio:16/9.2;object-fit:cover;object-position:left top}.window-foot{display:flex;gap:16px;padding:10px 13px;border-top:1px solid var(--border);color:var(--faint);font:10px ui-monospace,monospace}.window-foot b{color:var(--green);font-weight:500}
.section{padding:74px 0;border-bottom:1px solid var(--border)}.section-label{color:var(--blue);font:600 11px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.12em}.section h2{margin:10px 0 9px;color:var(--bright);font-size:30px;line-height:1.2;letter-spacing:-.025em}.section-intro{max-width:690px;color:var(--muted);font-size:16px;margin:0 0 32px}.branch-shell{display:grid;grid-template-columns:255px 1fr;border:1px solid var(--border);border-radius:6px;background:var(--panel);overflow:hidden}.branch-aside{padding:20px;border-right:1px solid var(--border);background:#11161d}.branch-aside h3{color:var(--bright);font-size:13px;margin:0 0 16px}.aside-row{display:flex;align-items:center;gap:8px;padding:8px;border-radius:4px;color:var(--muted);font-size:12px}.aside-row.active{color:var(--text);background:var(--subtle)}.aside-row:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--faint)}.aside-row.active:before{background:var(--blue)}.branch-main{padding:24px;overflow:auto}.branch-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.branch-title strong{color:var(--bright)}.branch-title span{color:var(--muted);font:11px ui-monospace,monospace}.timeline{min-width:680px;display:grid;grid-template-columns:repeat(5,1fr);position:relative;padding:28px 0 20px}.timeline:before{content:"";position:absolute;left:9%;right:9%;top:43px;height:2px;background:var(--border)}.node{position:relative;text-align:center;z-index:1}.node-dot{width:30px;height:30px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;background:var(--subtle);border:1px solid var(--border-hi);color:var(--muted);font:10px ui-monospace,monospace}.node.blue .node-dot{background:#1f6feb22;border-color:var(--blue);color:var(--blue)}.node.purple .node-dot{background:#bc8cff1a;border-color:var(--purple);color:var(--purple)}.node.green .node-dot{background:#23863633;border-color:var(--green);color:var(--green)}.node strong{display:block;color:var(--text);font-size:12px}.node small{color:var(--faint);font:10px ui-monospace,monospace}.branch-log{border-top:1px solid var(--border);padding-top:15px;display:grid;gap:8px}.log-row{display:grid;grid-template-columns:74px 88px 1fr;gap:10px;color:var(--muted);font:11px ui-monospace,monospace}.log-row time{color:var(--faint)}.log-row b{font-weight:500;color:var(--blue)}.log-row:last-child b{color:var(--green)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.card{min-height:192px;padding:20px;border:1px solid var(--border);border-radius:6px;background:var(--panel)}.card:hover{border-color:var(--border-hi)}.card-icon{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--border-hi);border-radius:5px;background:var(--subtle);color:var(--blue);font:14px ui-monospace,monospace}.card h3{color:var(--bright);font-size:14px;margin:18px 0 8px}.card p{color:var(--muted);font-size:12px;margin:0}.card-meta{margin-top:17px;color:var(--faint);font:10px ui-monospace,monospace}.card-meta:before{content:"●";color:var(--green);margin-right:7px}
.proof-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:14px}.proof-shot{border:1px solid var(--border);border-radius:6px;background:var(--panel);overflow:hidden}.proof-shot img{display:block;width:100%;height:100%;min-height:410px;object-fit:cover;object-position:left top}.evidence{border:1px solid var(--border);border-radius:6px;background:var(--panel)}.evidence-head{padding:13px 15px;border-bottom:1px solid var(--border);background:var(--subtle);color:var(--bright);font-size:12px;font-weight:600}.evidence-row{display:grid;grid-template-columns:18px 1fr auto;gap:10px;align-items:center;padding:13px 15px;border-bottom:1px solid var(--border);font-size:11px}.evidence-row:last-of-type{border:0}.evidence-row .ok{color:var(--green)}.evidence-row span{color:var(--text)}.evidence-row code{color:var(--muted);font:10px ui-monospace,monospace}.terminal{margin:14px;padding:14px;border:1px solid var(--border);border-radius:5px;background:var(--bg);font:10px/1.8 ui-monospace,monospace;color:var(--muted);overflow:auto}.terminal .prompt{color:var(--blue)}.terminal .success{color:var(--green)}
.cta{padding:64px 0}.cta-box{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:28px;border:1px solid var(--border);border-radius:6px;background:var(--panel);position:relative;overflow:hidden}.cta-box:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--purple)}.cta h2{font-size:23px;margin:0 0 7px}.cta p{margin:0;color:var(--muted)}.footer{display:flex;align-items:center;justify-content:space-between;padding:26px 0;border-top:1px solid var(--border);color:var(--faint);font-size:11px}.footer-links{display:flex;gap:18px}.footer a:hover{color:var(--blue)}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr}.hero-copy{max-width:700px}.cards{grid-template-columns:1fr 1fr}.proof-grid{grid-template-columns:1fr}.proof-shot img{min-height:0}.branch-shell{grid-template-columns:1fr}.branch-aside{display:none}}
@media(max-width:620px){.wrap{width:min(calc(100% - 24px),var(--max))}.nav>a:not(.button){display:none}.brand small{display:none}.hero{padding:54px 0}.hero h1{font-size:44px}.cards{grid-template-columns:1fr}.cta-box,.footer{align-items:flex-start;flex-direction:column}.cta-box .hero-actions{margin-top:0}.window-foot{display:none}}
</style>
<style>
.surface-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.surface-card{padding:0;border:1px solid var(--border);border-radius:6px;background:var(--panel);overflow:hidden}.surface-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border);background:var(--subtle)}.surface-title{display:flex;align-items:center;gap:10px}.surface-title i{width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--border-hi);border-radius:5px;background:var(--bg);color:var(--blue);font:12px ui-monospace,monospace;font-style:normal}.surface-title h3{margin:0;color:var(--bright);font-size:13px}.tag{padding:3px 7px;border:1px solid var(--border-hi);border-radius:999px;color:var(--muted);font:9px ui-monospace,monospace;text-transform:uppercase}.tag.green{border-color:#2ea04388;background:#23863622;color:var(--green)}.tag.purple{border-color:#bc8cff66;background:#bc8cff12;color:var(--purple)}.surface-body{padding:17px}.surface-body p{min-height:62px;margin:0 0 15px;color:var(--muted);font-size:12px}.surface-list{display:grid;gap:7px;margin:0;padding:0;list-style:none}.surface-list li{color:var(--text);font:10px ui-monospace,monospace}.surface-list li:before{content:"›";margin-right:8px;color:var(--blue)}.surface-links{display:flex;gap:14px;margin-top:17px;padding-top:13px;border-top:1px solid var(--border)}.surface-links a{color:var(--blue);font-size:11px}.surface-links a:hover{text-decoration:underline}.bench-grid{display:grid;grid-template-columns:repeat(4,1fr);margin:34px 0 12px;border:1px solid var(--border);border-radius:6px;background:var(--panel);overflow:hidden}.bench{padding:19px;border-right:1px solid var(--border)}.bench:last-child{border:0}.bench strong{display:block;color:var(--bright);font:600 23px ui-monospace,monospace}.bench span{display:block;margin-top:4px;color:var(--muted);font-size:11px}.bench small{display:block;margin-top:10px;color:var(--faint);font:9px ui-monospace,monospace;text-transform:uppercase}.disclosure{display:flex;gap:9px;align-items:flex-start;padding:11px 13px;border:1px solid #d2992255;border-radius:5px;background:#d2992210;color:#c9b27c;font-size:10px}.disclosure b{color:#d29922}.provider-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.provider{padding:4px 7px;border:1px solid var(--border-hi);border-radius:4px;background:var(--bg);color:var(--text);font:9px ui-monospace,monospace}@media(max-width:820px){.surface-grid{grid-template-columns:1fr}.bench-grid{grid-template-columns:1fr 1fr}.bench:nth-child(2){border-right:0}.bench:nth-child(-n+2){border-bottom:1px solid var(--border)}}@media(max-width:480px){.bench-grid{grid-template-columns:1fr}.bench{border-right:0;border-bottom:1px solid var(--border)!important}.bench:last-child{border-bottom:0!important}}
</style>
<style>
.lab{border:1px solid var(--border-hi);border-radius:6px;background:var(--panel);overflow:hidden}.lab-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:13px 15px;border-bottom:1px solid var(--border);background:var(--subtle)}.lab-toolbar strong{color:var(--bright);font-size:12px}.lab-toolbar span{display:block;color:var(--faint);font:9px ui-monospace,monospace}.lab-actions{display:flex;gap:8px}.lab-grid{display:grid;grid-template-columns:250px 1fr}.lab-scenario{padding:18px;border-right:1px solid var(--border);background:#11161d}.lab-scenario h3{margin:0 0 7px;color:var(--bright);font-size:13px}.lab-scenario p{margin:0 0 18px;color:var(--muted);font-size:11px}.test-case{padding:11px;border:1px solid var(--border);border-radius:5px;background:var(--bg);font:10px/1.6 ui-monospace,monospace}.test-case b{color:var(--red);font-weight:500}.lab-metrics{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}.lab-metric{padding:9px;border:1px solid var(--border);border-radius:4px;background:var(--panel)}.lab-metric strong{display:block;color:var(--bright);font:15px ui-monospace,monospace}.lab-metric span{color:var(--faint);font:8px ui-monospace,monospace;text-transform:uppercase}.lab-run{padding:18px}.lab-progress{height:3px;margin-bottom:18px;background:var(--subtle);overflow:hidden}.lab-progress i{display:block;width:0;height:100%;background:var(--blue);transition:width .35s}.candidate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.candidate{padding:12px;border:1px solid var(--border);border-radius:5px;background:var(--bg);transition:.25s}.candidate.running{border-color:var(--blue);box-shadow:inset 0 0 0 1px #58a6ff33}.candidate.pass{border-color:var(--green);background:#2386360d}.candidate.fail{border-color:#f8514966;opacity:.68}.candidate-head{display:flex;justify-content:space-between;gap:6px;font:10px ui-monospace,monospace}.candidate-head strong{color:var(--text)}.candidate-head span{color:var(--faint)}.candidate.pass .candidate-head span{color:var(--green)}.candidate.fail .candidate-head span{color:var(--red)}.candidate code{display:block;margin-top:10px;color:var(--muted);font:9px/1.5 ui-monospace,monospace}.live-lineage{display:flex;align-items:center;justify-content:center;gap:8px;padding:21px 0}.live-node{min-width:52px;padding:5px 7px;border:1px solid var(--border);border-radius:999px;background:var(--subtle);text-align:center;color:var(--muted);font:9px ui-monospace,monospace;transition:.25s}.live-node.active{border-color:var(--blue);color:var(--blue)}.live-node.verified{border-color:var(--green);color:var(--green)}.live-arrow{color:var(--faint)}.live-log{height:132px;padding:11px;border:1px solid var(--border);border-radius:5px;background:var(--bg);overflow:auto;font:9px/1.7 ui-monospace,monospace;color:var(--muted)}.live-log div:before{content:"›";margin-right:7px;color:var(--blue)}.live-log .success{color:var(--green)}.live-log .error{color:#ff7b72}@media(max-width:760px){.lab-grid{grid-template-columns:1fr}.lab-scenario{border-right:0;border-bottom:1px solid var(--border)}.candidate-grid{grid-template-columns:1fr}.lab-toolbar{align-items:flex-start;flex-direction:column}}
</style>
</head>
<body>
<header class="topbar"><div class="wrap"><a class="brand" href="https://github.com/PISSARAW/GenOS" target="_blank" rel="noreferrer"><img src="https://raw.githubusercontent.com/PISSARAW/GenOS/main/assets/brand/genos-logo.png" alt="GenOS logo"><span>GenOS</span><small>counterfactual runtime</small></a><nav class="nav"><a href="#runtime">Runtime</a><a href="#capabilities">Capabilities</a><a href="#live-demo">Live demo</a><a href="#platform">Platform</a><a class="button" href="https://github.com/PISSARAW/GenOS/tree/main/docs" target="_blank" rel="noreferrer">Documentation ↗</a></nav></div></header>
<main>
<section class="hero"><div class="wrap hero-grid"><div><div class="status">PRE-ALPHA / v0.0.1</div><h1>Git-like branching for <span>AI-agent state.</span></h1><p class="hero-copy">Snapshot. Fork. Isolate. Diff. Replay. Merge only what passes.</p><div class="hero-actions"><a class="button primary" href="https://github.com/PISSARAW/GenOS" target="_blank" rel="noreferrer">View repository ↗</a><a class="button link" href="https://github.com/PISSARAW/GenOS/releases/tag/v0.0.1-alpha.1" target="_blank" rel="noreferrer">Download alpha</a></div><div class="requirements"><span>No model key</span><span>Rust 1.88+</span><span>Local-first</span></div></div><div class="window"><div class="window-head"><span class="lights"><i></i><i></i><i></i></span>genos-studio / safe-parallel-debugging</div><img src="https://raw.githubusercontent.com/PISSARAW/GenOS/main/assets/demo/safe-debugging.gif" alt="GenOS safe parallel debugging demonstration"><div class="window-foot"><span><b>●</b> runtime healthy</span><span>3 branches</span><span>1 verified winner</span></div></div></div></section>
<section id="runtime" class="section"><div class="wrap"><div class="section-label">01 / Runtime model</div><h2>Explore alternatives from a trusted snapshot.</h2><p class="section-intro">GenOS versions agent identity, memory, world state, event cursors, and runtime metadata—then evaluates competing futures without mutating the source timeline.</p><div class="branch-shell"><aside class="branch-aside"><h3>Experiment / boundary-fix</h3><div class="aside-row active">Timeline</div><div class="aside-row">World diff</div><div class="aside-row">Evaluation</div><div class="aside-row">Lineage</div><div class="aside-row">Replay evidence</div></aside><div class="branch-main"><div class="branch-title"><strong>Counterfactual execution</strong><span>run_01HZX4 / deterministic</span></div><div class="timeline"><div class="node blue"><div class="node-dot">S0</div><strong>Snapshot</strong><small>trusted state</small></div><div class="node"><div class="node-dot">A</div><strong>Fork A</strong><small>rejected</small></div><div class="node purple"><div class="node-dot">B</div><strong>Fork B</strong><small>candidate</small></div><div class="node"><div class="node-dot">C</div><strong>Fork C</strong><small>rejected</small></div><div class="node green"><div class="node-dot">S1</div><strong>Promote</strong><small>verified</small></div></div><div class="branch-log"><div class="log-row"><time>12:04:11</time><b>SNAPSHOT</b><span>Captured agent + world state at S0</span></div><div class="log-row"><time>12:04:13</time><b>FORK</b><span>Spawned 3 isolated candidate worlds</span></div><div class="log-row"><time>12:04:18</time><b>EVALUATE</b><span>2 candidates rejected by test gate</span></div><div class="log-row"><time>12:04:21</time><b>PROMOTE</b><span>Fork B replayed byte-for-byte and merged</span></div></div></div></div></div></section>
<section id="capabilities" class="section"><div class="wrap"><div class="section-label">02 / Capabilities</div><h2>Versioned computation, end to end.</h2><p class="section-intro">Every core workflow produces inspectable state and evidence rather than an opaque final answer.</p><div class="cards"><article class="card"><div class="card-icon">⑂</div><h3>Snapshot & fork</h3><p>Branch complete agent capsules instead of reconstructing state from prompts.</p><div class="card-meta">implemented / runnable</div></article><article class="card"><div class="card-icon">◇</div><h3>World isolation</h3><p>Keep sibling identities, event streams, and filesystem worlds independent.</p><div class="card-meta">implemented / runnable</div></article><article class="card"><div class="card-icon">±</div><h3>Structural diff</h3><p>Compare state, memory, tool effects, evaluation scores, and cost before promotion.</p><div class="card-meta">implemented / runnable</div></article><article class="card"><div class="card-icon">↺</div><h3>Causal replay</h3><p>Reproduce a winning trajectory from append-only events and lineage.</p><div class="card-meta">implemented / runnable</div></article><article class="card"><div class="card-icon">✓</div><h3>Promotion gates</h3><p>Merge only after test, safety, and reproducibility conditions pass.</p><div class="card-meta">implemented / runnable</div></article><article class="card"><div class="card-icon">⌁</div><h3>Local observability</h3><p>Inspect fleets, workspaces, experiments, tools, and telemetry in GenOS Studio.</p><div class="card-meta">studio / pre-alpha</div></article></div></div></section>
<section id="evidence" class="section"><div class="wrap"><div class="section-label">03 / Product proof</div><h2>Run it. Inspect it. Replay it.</h2><p class="section-intro">The repository includes runnable demos, public benchmark reports, protocol schemas, and the local Studio control plane.</p><div class="proof-grid"><div class="proof-shot"><img src="https://raw.githubusercontent.com/PISSARAW/GenOS/main/docs/assets/studio/dashboard.png" alt="GenOS Studio fleet dashboard"></div><div class="evidence"><div class="evidence-head">Evidence manifest</div><div class="evidence-row"><span class="ok">✓</span><span>Safe parallel debugging</span><code>runnable</code></div><div class="evidence-row"><span class="ok">✓</span><span>Snapshot / fork / diff</span><code>runnable</code></div><div class="evidence-row"><span class="ok">✓</span><span>Filesystem isolation</span><code>runnable</code></div><div class="evidence-row"><span class="ok">✓</span><span>Deterministic replay</span><code>verified</code></div><div class="evidence-row"><span class="ok">✓</span><span>Pareto evaluation</span><code>experimental</code></div><div class="terminal"><span class="prompt">$</span> git clone https://github.com/PISSARAW/GenOS.git<br><span class="prompt">$</span> cd GenOS && ./run-demo.sh<br><span class="success">✓ Demo OK: snapshot S0 → forks A1/A2</span></div></div></div></div></section>
<section id="platform" class="section"><div class="wrap"><div class="section-label">04 / Operational platform</div><h2>From local CLI to organization-scale control.</h2><p class="section-intro">GenOS exposes the same evidence-first runtime through developer interfaces, model providers, safety controls, and tenant-scoped Studio workflows.</p><div class="bench-grid"><div class="bench"><strong>500 / 500</strong><span>deterministic replay fingerprints matched</span><small>100 events / run</small></div><div class="bench"><strong>10 / 10</strong><span>safe-debugging runs replayed and promoted</span><small>0 model calls</small></div><div class="bench"><strong>11 / 11</strong><span>MCP safety predicates verified</span><small>5 / 5 command suites</small></div><div class="bench"><strong>100%</strong><span>event and final-state hash match rate</span><small>local benchmark</small></div></div><div class="disclosure"><b>!</b><span>These are committed local runtime and execution-mechanics results—not a claim of general model superiority. Public SWE, tool-use, web, and safety suites remain gated until approved datasets and revisions are available.</span></div><div class="surface-grid" style="margin-top:18px"><article class="surface-card"><div class="surface-head"><div class="surface-title"><i>BM</i><h3>Reproducible benchmarks</h3></div><span class="tag green">measured</span></div><div class="surface-body"><p>Versioned reports preserve revision, environment, command, raw distributions, evidence, and explicit limitations.</p><ul class="surface-list"><li>replay fidelity + causal mutation probe</li><li>world-fork latency distributions</li><li>safe debugging + MCP safety boundaries</li></ul><div class="surface-links"><a href="https://github.com/PISSARAW/GenOS/tree/main/benchmarks" target="_blank" rel="noreferrer">Reports ↗</a><a href="https://github.com/PISSARAW/GenOS/blob/main/docs/7-benchmarks-and-comparisons/proof-and-benchmark-status.md" target="_blank" rel="noreferrer">Status ↗</a></div></div></article><article class="surface-card"><div class="surface-head"><div class="surface-title"><i>MCP</i><h3>Model Context Protocol</h3></div><span class="tag green">runnable</span></div><div class="surface-body"><p>A Rust MCP server exposes 65 structured primitives across 10 families over STDIO or Streamable HTTP.</p><ul class="surface-list"><li>snapshot / fork / diff / replay tools</li><li>policy gate + taint + circuit breaker</li><li>structured JSON-RPC result envelopes</li></ul><div class="surface-links"><a href="https://github.com/PISSARAW/GenOS/tree/main/integrations/mcp/genos-mcp" target="_blank" rel="noreferrer">Server ↗</a><a href="https://github.com/PISSARAW/GenOS/blob/main/docs/4-interfaces/mcp-tools-reference.md" target="_blank" rel="noreferrer">65 tools ↗</a></div></div></article><article class="surface-card"><div class="surface-head"><div class="surface-title"><i>&gt;_</i><h3>Native CLI</h3></div><span class="tag green">runnable</span></div><div class="surface-body"><p>The Rust CLI drives the complete lifecycle for humans, AI agents, scripts, and CI pipelines.</p><ul class="surface-list"><li>agent / snapshot / world / experiment</li><li>JSON, YAML, and text output contracts</li><li>assertion-aware exit codes for CI</li></ul><div class="surface-links"><a href="https://github.com/PISSARAW/GenOS/blob/main/docs/4-interfaces/cli-reference.md" target="_blank" rel="noreferrer">CLI reference ↗</a><a href="https://github.com/PISSARAW/GenOS/releases/tag/v0.0.1-alpha.1" target="_blank" rel="noreferrer">Binaries ↗</a></div></div></article><article class="surface-card"><div class="surface-head"><div class="surface-title"><i>AI</i><h3>Local model routing</h3></div><span class="tag purple">local-first</span></div><div class="surface-body"><p>Studio discovers local endpoints and can prefer them, fail over on error, or request parallel reviews.</p><div class="provider-row"><span class="provider">ollama://</span><span class="provider">lmstudio://</span><span class="provider">vllm://</span><span class="provider">openai-compatible://</span></div><ul class="surface-list" style="margin-top:13px"><li>automatic local model discovery</li><li>agent-scoped routing policies</li><li>no key required for local providers</li></ul><div class="surface-links"><a href="https://github.com/PISSARAW/GenOS/blob/main/docs/6-operations-and-deployment/real-integrations.md" target="_blank" rel="noreferrer">Configure ↗</a></div></div></article><article class="surface-card"><div class="surface-head"><div class="surface-title"><i>ORG</i><h3>Organizations & projects</h3></div><span class="tag purple">studio alpha</span></div><div class="surface-body"><p>Control-plane resources are scoped by organization and project with membership-aware access checks.</p><ul class="surface-list"><li>organization / project memberships</li><li>tenant-isolated jobs, prompts, RAG, releases</li><li>RBAC, usage ledger, and chargeback scope</li></ul><div class="surface-links"><a href="https://github.com/PISSARAW/GenOS/blob/main/backend/src/middleware/tenant.js" target="_blank" rel="noreferrer">Tenant boundary ↗</a><a href="https://github.com/PISSARAW/GenOS/blob/main/backend/test_tenancy.js" target="_blank" rel="noreferrer">Isolation test ↗</a></div></div></article><article class="surface-card"><div class="surface-head"><div class="surface-title"><i>H?</i><h3>Hallucination mitigation</h3></div><span class="tag purple">experimental</span></div><div class="surface-body"><p>GenOS makes claims inspectable through execution receipts, typed beliefs, contradiction tracking, provenance, and isolated falsification.</p><ul class="surface-list"><li>scan missing receipts and ungrounded claims</li><li>belief evidence + contradiction demos</li><li>halt branches after unverified-hallucination limits</li></ul><div class="surface-links"><a href="https://github.com/PISSARAW/GenOS/tree/main/examples/belief-provenance-demo" target="_blank" rel="noreferrer">Provenance demo ↗</a><a href="https://github.com/PISSARAW/GenOS/blob/main/crates/genos-cli/src/cmd_hallucination.rs" target="_blank" rel="noreferrer">CLI surface ↗</a></div></div></article></div></div></section>
<section id="live-demo" class="section"><div class="wrap"><div class="section-label">05 / Interactive proof</div><h2>Run the branch → test → replay loop.</h2><p class="section-intro">This deterministic browser simulation mirrors the committed safe-debugging fixture. It makes no model or network call; run the repository demo for real filesystem evidence.</p><div class="lab"><div class="lab-toolbar"><div><strong>safe-parallel-debugging / boundary bug</strong><span id="lab-status">READY — waiting for operator</span></div><div class="lab-actions"><button id="reset-demo" class="button" type="button">Reset</button><button id="run-demo" class="button primary" type="button">▶ Run proof</button></div></div><div class="lab-grid"><aside class="lab-scenario"><h3>Fixture / parseBoundary()</h3><p>An upper-bound check accepts an invalid index. Three isolated patches compete against the same test gate.</p><div class="test-case"><b>FAIL</b> expected index &lt; length<br>received index == length</div><div class="lab-metrics"><div class="lab-metric"><strong id="metric-branches">0</strong><span>isolated branches</span></div><div class="lab-metric"><strong id="metric-winners">0</strong><span>verified winners</span></div></div></aside><div class="lab-run"><div class="lab-progress"><i id="lab-progress"></i></div><div class="candidate-grid"><div id="candidate-a" class="candidate"><div class="candidate-head"><strong>Fork A</strong><span>queued</span></div><code>index &lt;= length<br>minimal patch</code></div><div id="candidate-b" class="candidate"><div class="candidate-head"><strong>Fork B</strong><span>queued</span></div><code>index &lt; length<br>boundary guard</code></div><div id="candidate-c" class="candidate"><div class="candidate-head"><strong>Fork C</strong><span>queued</span></div><code>clamp(index)<br>behavior change</code></div></div><div class="live-lineage"><span id="node-s0" class="live-node">S0</span><span class="live-arrow">→</span><span id="node-fork" class="live-node">fork ×3</span><span class="live-arrow">→</span><span id="node-gate" class="live-node">test gate</span><span class="live-arrow">→</span><span id="node-replay" class="live-node">replay</span><span class="live-arrow">→</span><span id="node-s1" class="live-node">S1</span></div><div id="live-log" class="live-log" aria-live="polite"><div>Ready. Click “Run proof” to start deterministic execution.</div></div></div></div></div></div></section>
<section class="cta"><div class="wrap"><div class="cta-box"><div><h2>Fork the future. Keep the evidence.</h2><p>Run the smallest end-to-end proof without a model-provider credential.</p></div><div class="hero-actions"><a class="button primary" href="https://github.com/PISSARAW/GenOS" target="_blank" rel="noreferrer">Get started ↗</a><a class="button" href="https://github.com/PISSARAW/GenOS/tree/main/examples" target="_blank" rel="noreferrer">Browse examples</a></div></div></div></section>
</main>
<footer class="footer wrap"><span class="mono">GenOS / active alpha research software</span><div class="footer-links"><a href="https://github.com/PISSARAW/GenOS/blob/main/LICENSE" target="_blank" rel="noreferrer">Apache-2.0</a><a href="https://github.com/PISSARAW/GenOS/tree/main/docs" target="_blank" rel="noreferrer">Docs</a><a href="https://github.com/PISSARAW/GenOS/issues" target="_blank" rel="noreferrer">Issues</a></div></footer>
<script>
(()=>{const $=id=>document.getElementById(id);const run=$('run-demo'),reset=$('reset-demo'),log=$('live-log'),status=$('lab-status'),progress=$('lab-progress'),branches=$('metric-branches'),winners=$('metric-winners');let timer=null;const candidate=(id,state,label)=>{const el=$(id);el.className='candidate '+state;el.querySelector('span').textContent=label};const write=(text,type='')=>{const row=document.createElement('div');row.textContent=text;if(type)row.className=type;log.appendChild(row);log.scrollTop=log.scrollHeight};const clear=()=>{if(timer)clearInterval(timer);timer=null;run.disabled=false;status.textContent='READY — waiting for operator';progress.style.width='0';branches.textContent='0';winners.textContent='0';log.innerHTML='<div>Ready. Click “Run proof” to start deterministic execution.</div>';['candidate-a','candidate-b','candidate-c'].forEach(id=>candidate(id,'','queued'));['node-s0','node-fork','node-gate','node-replay','node-s1'].forEach(id=>$(id).className='live-node')};const steps=[()=>{status.textContent='CAPTURE — snapshotting trusted state';$('node-s0').classList.add('active');write('SNAPSHOT S0 · agent + world state captured')},()=>{status.textContent='FORK — materializing isolated worlds';$('node-s0').classList.replace('active','verified');$('node-fork').classList.add('active');branches.textContent='3';['candidate-a','candidate-b','candidate-c'].forEach(id=>candidate(id,'running','running'));write('FORK · worlds A, B, C materialized from S0')},()=>{status.textContent='EVALUATE — running identical test gates';$('node-fork').classList.replace('active','verified');$('node-gate').classList.add('active');candidate('candidate-a','fail','rejected');write('Fork A · FAIL · original boundary bug remains','error')},()=>{candidate('candidate-b','pass','candidate');write('Fork B · PASS · minimal boundary guard','success')},()=>{candidate('candidate-c','fail','rejected');write('Fork C · FAIL · observable behavior changed','error')},()=>{status.textContent='REPLAY — restoring S0 and replaying winner';$('node-gate').classList.replace('active','verified');$('node-replay').classList.add('active');write('RESTORE S0 · replaying Fork B from original snapshot')},()=>{status.textContent='PROMOTE — replay matched byte-for-byte';$('node-replay').classList.replace('active','verified');$('node-s1').classList.add('verified');winners.textContent='1';candidate('candidate-b','pass','promoted');write('REPLAY VERIFIED · final state and event hashes match','success');write('MERGE APPROVED · Fork B promoted to S1','success')}];run.addEventListener('click',()=>{clear();run.disabled=true;log.innerHTML='';let i=0;steps[0]();progress.style.width=(100/steps.length)+'%';i=1;timer=setInterval(()=>{steps[i]();progress.style.width=((i+1)/steps.length*100)+'%';i++;if(i===steps.length){clearInterval(timer);timer=null;run.disabled=false}},650)});reset.addEventListener('click',clear);clear()})();
</script>
</body>
</html>