// SPDX-License-Identifier: Apache-2.0 // © 2026 Lutar, Stephen P. — SZL Holdings · ORCID 0009-0001-0110-4173 · Doctrine v11 // // surfaces/agentcoh.js — MULTI-AGENT MEMORY COHERENCE organ (NEW AXIS) for the // holographic frontier ring, clean-room-inspired by (NOT a reproduction of) the // TOKEN COHERENCE idea (arXiv:2603.15183, Parakhin): naive multi-agent LLM // orchestration rebroadcasts full shared state on every update, costing O(n·S·|D|); // this maps onto SHARED-MEMORY CACHE COHERENCE — an artifact held by several agents // is a cache line held by several cores. This organ ports the MESI protocol // (Modified/Exclusive/Shared/Invalid + LAZY INVALIDATION) to artifacts. // // Visual: a grid of MESI state LANES — one row per (agent, artifact) cache entry — // advancing left-to-right along the operation trace. Each cell's colour encodes its // MESI state; invalidation events flash on the writer→peer links. A side panel shows // the naive-vs-MESI cost curve as write_fraction sweeps, and the three invariant // PASS/FAIL lights (mesi_buggy surfaces a stale-read FAIL). Honesty label "MODELED" // is read VERBATIM from the JSON and displayed as-is; it is never upgraded. // // Surface export shape (mirrors episodic.js / graphmem.js exactly): // export default { id, title, endpoints, mount(ctx), unmount() } // ctx = { stage, container, live, label, THREE, szl3d } // // DATA SHOWN (all from live endpoint): // timeline[] — per-artifact { artifact, lanes:[{agent, states:[...]}] } // naive / mesi — { coordinator, cost, invalidations, refetches, ... } // invariants — { single_writer, monotonic_versioning, bounded_staleness } // cost_curve[] — { write_fraction, naive_cost, mesi_cost, savings_ratio } // invalidation_events[] — { step, artifact, from, to } // // LEADERS ADOPTED & CITED (clean-room; NOT claimed as SZL's own): // Token Coherence (MESI→artifact protocol; Parakhin): https://arxiv.org/abs/2603.15183 // Multi-Agent Memory from a Computer Architecture Perspective (Yu et al.): // https://arxiv.org/abs/2603.10062 // Governed Shared Memory for Multi-Agent LLM Systems: https://arxiv.org/abs/2606.24535 // // HONESTY LABELS: MODELED (toy deterministic sim of the MESI→artifact coherence // MECHANISM; integer-versioned dict entries; cost is a counted token/byte proxy, not // measured LLM tokens; invariants via in-sim assertions, NOT a TLA+ checker; no // LangGraph/CrewAI/AutoGen). Read verbatim from JSON; never upgraded here. // COLOURS: lattice-blue 0x5b8dee (Shared / Exclusive lanes + naive cost), violet-blue // 0x8a6bff (Modified writer lane + invalidation flash — data-viz only), proof-teal // 0x3af4c8 (MESI cost / invariant-PASS accent), greys for Invalid / degraded / no-data. // Purple BANNED as UI/background. // 0 RUNTIME CDN. three.js via ctx.THREE (vendored r170 through the page importmap). // DOCTRINE v11: degrades gracefully (grey) on 404/error; honesty label still shown. import { createShowcase } from "./_showcase.js"; const ID = "agentcoh"; const TITLE = "Multi-Agent Memory Coherence · MESI→artifact (live)"; // Endpoint on the dedicated killinchu Space (isolated compute), reached cross-origin. const EP = "https://szlholdings-killinchu.hf.space/api/killinchu/v1/agentcoh/sync?seed=42&num_agents=3&num_artifacts=4&write_fraction=0.35&mode=mesi"; // data-viz hues — purple BANNED const C_SHARED = 0x5b8dee; // lattice-blue (Shared / Exclusive lane + naive cost bar) const C_MOD = 0x8a6bff; // violet-blue (Modified writer lane + invalidation flash — data-viz only) const C_ACCENT = 0x3af4c8; // proof-teal (MESI cost bar / invariant-PASS accent) const C_DIM = 0x42505d; // grey (Invalid lane / degraded / no-live-data) const C_GRID = 0x1b3a44; // floor / link colour const N_ART = 4; // artifact rows (matches endpoint default cap of visualization) const N_AGENT = 3; // agent sub-lanes per artifact const N_STEP = 24; // visible trace steps (columns) along the x-axis const SPAN_X = 18; // world-unit span of the trace axis const LANE_DY = 0.9; // vertical spacing between agent lanes const ART_DY = 3.4; // vertical spacing between artifact blocks let _stage = null, _THREE = null, _ctx = null, _group = null, _overlay = null; let _frameReg = false, _polls = [], _el = {}, _badge = null; let _plain = false; let _show = null; // geometry handles let _cells = []; // Array — one cell per (artifact, agent, step) let _links = null; // THREE.LineSegments — invalidation event links let _flash = []; // per-cell flash timer (invalidation highlight) // live state const S = { label: null, timeline: null, // Array<{artifact, lanes:[{agent, states:[...]}]}> naive: null, // {coordinator, cost, ...} mesi: null, // {coordinator, cost, invalidations, refetches, ...} invariants: null, // {single_writer, monotonic_versioning, bounded_staleness, all_hold} costCurve: null, // Array<{write_fraction, naive_cost, mesi_cost, savings_ratio}> invEvents: null, // Array<{step, artifact, from, to}> mode: null, state: "init", }; // map a MESI state string to a data-viz colour function _stateColor(st, live) { if (!live) return C_DIM; if (st === "Modified") return C_MOD; if (st === "Exclusive") return C_SHARED; if (st === "Shared") return C_SHARED; if (st === "Invalid") return C_DIM; return C_DIM; } // ============================================================================= // mount(ctx) // ============================================================================= export function mount(ctx) { _ctx = ctx; _stage = ctx.stage; _THREE = ctx.THREE; _group = new _THREE.Group(); _stage.scene.add(_group); _stage.camera.position.set(0, 9, 26); try { if (_stage.controls && _stage.controls.target) { _stage.controls.target.set(0, 3, 0); _stage.controls.update(); } } catch (_) {} try { _stage.setBloom(true); } catch (_) {} _buildFloor(); _buildCells(); if (!_frameReg) { _stage.onFrame(_onFrame); _frameReg = true; } _badge = ctx.live.createBadge(); _polls.push(ctx.live.poll(EP, 5000, _onSync, { badge: _badge, onState: (m) => { S.state = m.state; _paintOverlay(); _paintCells(); } })); _buildOverlay(); return { id: ID, started: true }; } // ============================================================================= // builders // ============================================================================= function _buildFloor() { const THREE = _THREE; const grid = new THREE.GridHelper(44, 44, C_GRID, 0x0f2027); grid.material.opacity = 0.16; grid.material.transparent = true; grid.position.y = -0.01; _group.add(grid); } function _buildCells() { const THREE = _THREE; const geo = new THREE.BoxGeometry(0.5, 0.28, 0.5); _cells = []; _flash = []; // rows: artifact block (N_ART), each with N_AGENT lanes; columns: N_STEP trace steps for (let art = 0; art < N_ART; art++) { for (let ag = 0; ag < N_AGENT; ag++) { for (let st = 0; st < N_STEP; st++) { const mat = new THREE.MeshStandardMaterial({ color: C_DIM, emissive: C_DIM, emissiveIntensity: 0.12, metalness: 0.2, roughness: 0.6, }); const mesh = new THREE.Mesh(geo, mat); const x = (st / (N_STEP - 1)) * SPAN_X - SPAN_X / 2; const y = art * ART_DY + ag * LANE_DY + 0.6; mesh.position.set(x, y, 0); mesh.userData = { art, ag, st }; _group.add(mesh); _cells.push(mesh); _flash.push(0); } } } } // ============================================================================= // live data handler // ============================================================================= function _onSync(j) { // read honesty label VERBATIM — never upgrade S.label = (j.label || "MODELED").toUpperCase(); S.timeline = Array.isArray(j.timeline) ? j.timeline : null; S.naive = j.naive || null; S.mesi = j.mesi || null; S.invariants = j.invariants || null; S.costCurve = Array.isArray(j.cost_curve) ? j.cost_curve : null; S.invEvents = Array.isArray(j.invalidation_events) ? j.invalidation_events : null; S.mode = j.mode || null; _paintCells(); _paintOverlay(); } // ============================================================================= // geometry updater — colours each cell by its MESI state at that trace step // ============================================================================= function _cellIndex(art, ag, st) { return (art * N_AGENT + ag) * N_STEP + st; } function _paintCells() { const live = S.state === "live"; const tl = S.timeline || []; // default: dim everything _cells.forEach((mesh) => { mesh.material.color.setHex(C_DIM); mesh.material.emissive.setHex(C_DIM); mesh.material.emissiveIntensity = 0.1; mesh.scale.set(1, 1, 1); }); if (tl.length) { for (let art = 0; art < Math.min(N_ART, tl.length); art++) { const lanes = (tl[art] && tl[art].lanes) || []; for (let ag = 0; ag < Math.min(N_AGENT, lanes.length); ag++) { const states = (lanes[ag] && lanes[ag].states) || []; for (let st = 0; st < N_STEP; st++) { const stName = states[st]; if (stName === undefined) continue; const mesh = _cells[_cellIndex(art, ag, st)]; if (!mesh) continue; const col = _stateColor(stName, live); mesh.material.color.setHex(col); mesh.material.emissive.setHex(col); const isMod = live && stName === "Modified"; const isInv = stName === "Invalid"; mesh.material.emissiveIntensity = live ? (isMod ? 0.85 : (isInv ? 0.08 : 0.35)) : 0.1; mesh.scale.set(1, isMod ? 2.0 : (isInv ? 0.5 : 1.0), 1); } } } } // rebuild invalidation-event links (writer step -> flash on the invalidated lanes) if (_links) { _group.remove(_links); _links.geometry.dispose(); _links.material.dispose(); _links = null; } const evs = S.invEvents || []; if (live && evs.length) { const THREE = _THREE; const pts = []; evs.forEach((e) => { if (e.step >= N_STEP || e.artifact >= N_ART) return; if (e.from >= N_AGENT || e.to >= N_AGENT) return; const a = _cells[_cellIndex(e.artifact, e.from, e.step)]; const b = _cells[_cellIndex(e.artifact, e.to, e.step)]; if (!a || !b) return; pts.push(a.position.clone(), b.position.clone()); const bi = _cellIndex(e.artifact, e.to, e.step); _flash[bi] = 60; }); if (pts.length) { const g = new THREE.BufferGeometry().setFromPoints(pts); _links = new THREE.LineSegments(g, new THREE.LineBasicMaterial({ color: C_MOD, transparent: true, opacity: 0.4 })); _group.add(_links); } } } // ============================================================================= // per-frame animation // ============================================================================= function _onFrame() { const t = performance.now(); if (_group) _group.rotation.y = Math.sin(t * 0.0001) * 0.12; const live = S.state === "live"; for (let i = 0; i < _cells.length; i++) { if (_flash[i] > 0) { _flash[i] -= 1; const f = _flash[i] / 60; const col = live ? C_MOD : C_DIM; _cells[i].material.emissive.setHex(col); _cells[i].material.emissiveIntensity = Math.max(_cells[i].material.emissiveIntensity, 0.2 + 0.8 * f); } } } // ============================================================================= // overlay // ============================================================================= function _buildOverlay() { const ctx = _ctx; _overlay = document.createElement("div"); Object.assign(_overlay.style, { position: "absolute", left: "14px", top: "14px", zIndex: "6", display: "flex", flexDirection: "column", gap: "8px", maxWidth: "min(94%,460px)", font: "12px ui-sans-serif,system-ui,Segoe UI,Roboto,Arial", color: "#eef3f6", }); const h = document.createElement("div"); h.style.cssText = "font:600 13px ui-sans-serif,system-ui;letter-spacing:.4px"; h.textContent = TITLE; _overlay.appendChild(h); const sub = document.createElement("div"); sub.style.cssText = "color:#9fb1bf;font-size:11px;line-height:1.55"; sub.innerHTML = 'A grid of MESI state lanes \u2014 one row per (agent, artifact) cache entry \u2014 ' + 'advancing along a fixed seeded op trace. Two coordinators run the SAME trace: ' + 'naive broadcast (re-sends the full artifact to all agents on every write) vs ' + 'MESI-ACS (lazy invalidation + on-demand re-fetch). Three invariants are ' + 'asserted; mesi_buggy drops an invalidation to expose a stale read. Honesty ' + 'label MODELED (Token-Coherence-inspired \u2014 not a reproduction). 0 runtime CDN.'; _overlay.appendChild(sub); const brow = document.createElement("div"); brow.style.cssText = "display:flex;gap:8px;align-items:center;flex-wrap:wrap"; if (_badge && _badge.el) brow.appendChild(_badge.el); _overlay.appendChild(brow); const card = document.createElement("div"); card.style.cssText = "background:#0a1117;border:1px solid #1d2a36;border-radius:9px;padding:9px 10px;display:flex;flex-direction:column;gap:6px"; const chead = document.createElement("div"); chead.style.cssText = "display:flex;align-items:center;gap:8px;flex-wrap:wrap"; const dot = document.createElement("span"); dot.style.cssText = "width:9px;height:9px;border-radius:50%;background:#5b8dee;box-shadow:0 0 7px #5b8dee"; const nm = document.createElement("b"); nm.style.cssText = "font-size:12px;color:#5b8dee;letter-spacing:.3px"; nm.textContent = "agentcoh"; chead.appendChild(dot); chead.appendChild(nm); card.appendChild(chead); const grid = document.createElement("div"); grid.style.cssText = "display:grid;grid-template-columns:1fr;gap:4px"; function kpiRow(id, label) { const r = document.createElement("div"); r.style.cssText = "display:flex;justify-content:space-between;gap:10px;font-size:11px"; const l = document.createElement("span"); l.style.cssText = "color:#9fb1bf"; l.textContent = label; const v = document.createElement("b"); v.id = id; v.style.cssText = "font-variant-numeric:tabular-nums;color:#eef3f6;text-align:right;max-width:60%"; v.textContent = "\u2014"; _el[id] = v; r.appendChild(l); r.appendChild(v); return r; } grid.appendChild(kpiRow("ac-mode", "mode")); grid.appendChild(kpiRow("ac-naive", "naive-broadcast cost")); grid.appendChild(kpiRow("ac-mesi", "MESI-ACS cost")); grid.appendChild(kpiRow("ac-save", "cost saved (this trace)")); grid.appendChild(kpiRow("ac-inv", "invariants (SW / MV / BS)")); grid.appendChild(kpiRow("ac-label", "honesty label")); card.appendChild(grid); const fn = document.createElement("div"); fn.style.cssText = "font-size:9.5px;color:#6b7a86;line-height:1.5"; fn.textContent = "Token Coherence arXiv:2603.15183 (Parakhin) \u00b7 Multi-Agent Memory / Comp-Arch arXiv:2603.10062 (Yu et al.) \u00b7 Governed Shared Memory arXiv:2606.24535. MODELED \u00b7 not claimed-as."; card.appendChild(fn); _overlay.appendChild(card); const pl = document.createElement("button"); pl.textContent = "\u25d1 what this means"; pl.title = "Toggle plain-language explanation for investors & consumers."; pl.style.cssText = "font:11px ui-monospace,monospace;padding:5px 11px;border-radius:7px;border:1px solid #3af4c8;background:#08140f;color:#3af4c8;cursor:pointer;width:fit-content"; pl.addEventListener("click", () => { _plain = !_plain; pl.style.background = _plain ? "#0f2a20" : "#08140f"; _applyPlain(); }); _overlay.appendChild(pl); const pd = document.createElement("div"); pd.id = "ac-plain"; pd.style.cssText = "font-size:10.5px;color:#c9d6df;line-height:1.55;border:1px dashed #26333f;border-radius:7px;padding:7px 9px;display:none"; _el["plain"] = pd; _overlay.appendChild(pd); // Fold the legacy panel into the shared showcase overlay (surfaces/_showcase.js): // title + live badge + doctrine legend live in the always-visible chrome; the // descriptive text + KPI card become the collapsible body so the 3D scene is the star. _show = createShowcase(_ctx, { id: ID, title: TITLE, accent: "#5b8dee", badge: _badge, legend: true, }); _overlay.style.position = "static"; _overlay.style.left = _overlay.style.top = "auto"; _overlay.style.maxWidth = "none"; _overlay.style.font = "inherit"; if (_overlay.firstChild) _overlay.removeChild(_overlay.firstChild); // drop duplicate title _show.body.appendChild(_overlay); _paintOverlay(); } function _applyPlain() { const pd = _el["plain"]; if (!pd) return; pd.style.display = _plain ? "block" : "none"; if (!_plain) return; const nc = (S.naive && typeof S.naive.cost === "number") ? String(S.naive.cost) : "loading\u2026"; const mc = (S.mesi && typeof S.mesi.cost === "number") ? String(S.mesi.cost) : "loading\u2026"; let save = "loading\u2026"; if (S.naive && S.mesi && S.naive.cost) { save = (100 * (1 - S.mesi.cost / S.naive.cost)).toFixed(0) + "%"; } const allHold = S.invariants ? (S.invariants.all_hold ? "all HOLD" : "one FAILS (see BS)") : "loading\u2026"; pd.innerHTML = "What this means: When several AI agents share the same working memory, the " + "naive fix is to re-send the entire shared state to everyone on every change \u2014 " + "expensive and slow (here it costs " + nc + " proxy units on this trace). " + "Borrowing a 40-year-old trick from computer CPUs (the MESI cache-coherence " + "protocol), we instead send tiny \u201cyour copy is stale\u201d notices and only re-fetch " + "the full data when an agent actually reads it \u2014 dropping the cost to " + mc + " " + "(about " + save + " cheaper) while still guaranteeing only one agent writes at a " + "time, versions never go backwards, and reads are never too stale (" + allHold + "). " + "The mesi_buggy mode deliberately skips one \u201cstale\u201d notice so you can watch a " + "guarantee break. " + "

Honesty (MODELED): Inspired-not-real. This is a toy deterministic " + "simulation of the MESI\u2192artifact coherence MECHANISM, not the paper\u2019s Artifact " + "Coherence System. \u201cArtifacts\u201d are integer-versioned dict entries over 3\u20134 items and " + "a handful of agents; \u201ccost\u201d is a counted token/byte proxy, not measured LLM tokens; " + "invariants are checked by in-sim assertions, NOT the paper\u2019s TLA+ model checker (no " + "~2,400-state exploration); there is no LangGraph/CrewAI/AutoGen integration. It " + "demonstrates WHY lazy invalidation beats full-state rebroadcast while preserving " + "single-writer safety, monotonic versioning and bounded staleness on a constructed " + "trace; it does NOT reproduce Token Coherence\u2019s 84\u201395% measured savings or prove the " + "Token Coherence Theorem. NEW AXIS: this is a distributed-consistency protocol " + "(\u2260 graphmem retrieval, \u2260 single-agent memory organs, \u2260 governance policy)."; } function _tok(s) { if (s === "live") return null; if (s === "missing") return "NO-LIVE-DATA"; if (s === "degraded") return "DEGRADED"; if (s === "error") return "OFFLINE"; return "\u2026"; } function _set(id, v) { if (_el[id]) _el[id].textContent = v; } function _invLetter(x) { if (!x || !x.status) return "\u2014"; return x.status === "PASS" ? "\u2713" : "\u2717"; } function _paintOverlay() { const t = _tok(S.state); _set("ac-mode", t || (S.mode || "\u2014")); _set("ac-naive", t || (S.naive && typeof S.naive.cost === "number" ? String(S.naive.cost) : "\u2014")); _set("ac-mesi", t || (S.mesi && typeof S.mesi.cost === "number" ? String(S.mesi.cost) : "\u2014")); let save = "\u2014"; if (S.naive && S.mesi && S.naive.cost) { save = (100 * (1 - S.mesi.cost / S.naive.cost)).toFixed(1) + "%"; } _set("ac-save", t || save); let inv = "\u2014"; if (S.invariants) { inv = _invLetter(S.invariants.single_writer) + " " + _invLetter(S.invariants.monotonic_versioning) + " " + _invLetter(S.invariants.bounded_staleness); } _set("ac-inv", t || inv); // honesty label verbatim — never upgraded _set("ac-label", t || (S.label || "MODELED")); if (_plain) _applyPlain(); } // ============================================================================= // unmount — clean up everything; must not affect other organs // ============================================================================= export function unmount() { _polls.forEach((p) => { try { p.stop(); } catch (_) {} }); _polls = []; try { if (_show) _show.destroy(); } catch (_) {} try { if (_group && _stage) { _group.traverse((o) => { if (o.geometry && o.geometry.dispose) o.geometry.dispose(); if (o.material) { const ms = Array.isArray(o.material) ? o.material : [o.material]; ms.forEach((m) => { if (m.dispose) m.dispose(); }); } }); _stage.scene.remove(_group); } } catch (_) {} _group = _overlay = _show = null; _cells = []; _flash = []; _links = null; _el = {}; _badge = null; _plain = false; _frameReg = false; _stage = _THREE = _ctx = null; S.label = S.timeline = S.naive = S.mesi = S.invariants = null; S.costCurve = S.invEvents = S.mode = null; S.state = "init"; } export default { id: ID, title: TITLE, endpoints: [EP], mount, unmount };