Shared memory and context tools for agentic work.
Code Rooms
<svg width="2752" height="1536" viewBox="0 0 2752 1536" fill="none" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="bg" x1="144" y1="108" x2="2612" y2="1438" gradientUnits="userSpaceOnUse">
<stop stop-color="#07101E"/>
<stop offset="0.52" stop-color="#0A1424"/>
<stop offset="1" stop-color="#06111D"/>
</linearGradient>
<linearGradient id="beam" x1="0" y1="0" x2="2752" y2="0" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF5C76"/>
<stop offset="0.3" stop-color="#FFB700"/>
<stop offset="0.58" stop-color="#00F5FF"/>
<stop offset="1" stop-color="#7B61FF"/>
<linearGradient id="coreStroke" x1="996" y1="1042" x2="1756" y2="1292" gradientUnits="userSpaceOnUse">
<stop stop-color="#30F3FF"/>
<stop offset="1" stop-color="#60B7FF"/>
<linearGradient id="ingestStroke" x1="372" y1="714" x2="1008" y2="930" gradientUnits="userSpaceOnUse">
<stop stop-color="#8D78FF"/>
<stop offset="1" stop-color="#BE8BFF"/>
<linearGradient id="mcpStroke" x1="1744" y1="714" x2="2380" y2="930" gradientUnits="userSpaceOnUse">
<stop stop-color="#00F5FF"/>
<stop offset="1" stop-color="#00FF88"/>
<linearGradient id="bridgeStroke" x1="1060" y1="376" x2="1692" y2="560" gradientUnits="userSpaceOnUse">
<stop stop-color="#FFB700"/>
<stop offset="1" stop-color="#FF8A3D"/>
<linearGradient id="lineFoundation" x1="688" y1="1046" x2="2064" y2="1046" gradientUnits="userSpaceOnUse">
<stop stop-color="#6A63FF"/>
<stop offset="0.45" stop-color="#30F3FF"/>
<filter id="softGlow" x="-40%" y="-40%" width="180%" height="180%">
<feGaussianBlur stdDeviation="14" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<filter id="panelGlow" x="-15%" y="-25%" width="130%" height="160%">
<feDropShadow dx="0" dy="0" stdDeviation="18" flood-color="#39EEFF" flood-opacity="0.12"/>
<feDropShadow dx="0" dy="0" stdDeviation="24" flood-color="#7B61FF" flood-opacity="0.08"/>
<style>
.eyebrow {
font-family: Helvetica, Arial, sans-serif;
font-size: 32px;
font-weight: 600;
letter-spacing: 0.28em;
fill: #95A7C4;
}
.node-title {
font-size: 76px;
font-weight: 700;
fill: #F4F7FF;
.node-subtitle {
font-size: 34px;
font-weight: 400;
fill: #ADC0DE;
.version-tag {
font-family: Menlo, monospace;
font-size: 26px;
letter-spacing: 0.08em;
fill: #D9E8FF;
.micro {
font-size: 28px;
font-weight: 500;
letter-spacing: 0.12em;
fill: #A9B8D3;
</style>
</defs>
<rect width="2752" height="1536" rx="44" fill="url(#bg)"/>
<rect x="32" y="28" width="2688" height="10" rx="5" fill="url(#beam)" opacity="0.95"/>
<circle cx="1376" cy="768" r="536" fill="#0E1829" opacity="0.52"/>
<circle cx="1376" cy="768" r="396" fill="#08111D" opacity="0.66"/>
<g opacity="0.75">
<path d="M1376 1024V936H688" stroke="url(#lineFoundation)" stroke-width="12" stroke-linecap="round"/>
<path d="M1376 1024V936H2064" stroke="url(#lineFoundation)" stroke-width="12" stroke-linecap="round"/>
<path d="M2064 730V642H1376" stroke="url(#lineFoundation)" stroke-width="12" stroke-linecap="round"/>
<path d="M1008 830H1744" stroke="url(#lineFoundation)" stroke-width="10" stroke-linecap="round" opacity="0.72"/>
<circle cx="1376" cy="936" r="14" fill="#00F5FF" filter="url(#softGlow)"/>
<circle cx="1376" cy="642" r="14" fill="#7B61FF" filter="url(#softGlow)"/>
<circle cx="1008" cy="830" r="12" fill="#9D8AFF" filter="url(#softGlow)"/>
<circle cx="1744" cy="830" r="12" fill="#00FF88" filter="url(#softGlow)"/>
</g>
<g filter="url(#panelGlow)">
<rect x="996" y="1034" width="760" height="258" rx="36" fill="#0D1B2B" fill-opacity="0.92" stroke="url(#coreStroke)" stroke-width="5"/>
<rect x="372" y="714" width="636" height="228" rx="34" fill="#0D1828" fill-opacity="0.92" stroke="url(#ingestStroke)" stroke-width="4"/>
<rect x="1744" y="714" width="636" height="228" rx="34" fill="#0D1828" fill-opacity="0.92" stroke="url(#mcpStroke)" stroke-width="4"/>
<rect x="1060" y="376" width="632" height="204" rx="32" fill="#131B28" fill-opacity="0.94" stroke="url(#bridgeStroke)" stroke-width="4"/>
<g opacity="0.24">
<path d="M1124 1126H1628" stroke="#7B61FF" stroke-width="2"/>
<path d="M1124 1162H1628" stroke="#00F5FF" stroke-width="2"/>
<path d="M500 804H880" stroke="#8D78FF" stroke-width="2"/>
<path d="M500 838H880" stroke="#BE8BFF" stroke-width="2"/>
<path d="M1880 804H2260" stroke="#00F5FF" stroke-width="2"/>
<path d="M1880 838H2260" stroke="#00FF88" stroke-width="2"/>
<path d="M1188 460H1564" stroke="#FFB700" stroke-width="2"/>
<path d="M1188 492H1564" stroke="#FF8A3D" stroke-width="2"/>
<text x="1376" y="202" text-anchor="middle" class="eyebrow">Actual Workspace Dependency Flow</text>
<text x="1376" y="258" text-anchor="middle" class="micro">Three core crates plus one auxiliary bridge crate</text>
<text x="1376" y="344" text-anchor="middle" class="eyebrow" fill="#FFCC72">Runtime + Bridge</text>
<text x="688" y="686" text-anchor="middle" class="eyebrow" fill="#C3A8FF">Extraction Layer</text>
<text x="2062" y="686" text-anchor="middle" class="eyebrow" fill="#7AF8D0">Server Surface</text>
<text x="1376" y="1002" text-anchor="middle" class="eyebrow" fill="#7CEBFF">Foundation</text>
<g>
<text x="1376" y="490" text-anchor="middle" class="node-title">m1nd-openclaw</text>
<text x="1376" y="542" text-anchor="middle" class="node-subtitle">Auxiliary OpenClaw bridge on top of the MCP runtime</text>
<text x="1610" y="430" text-anchor="end" class="version-tag">0.1.0</text>
<text x="690" y="820" text-anchor="middle" class="node-title">m1nd-ingest</text>
<text x="690" y="872" text-anchor="middle" class="node-subtitle">Extraction, adapters, and graph construction</text>
<text x="928" y="768" text-anchor="end" class="version-tag">0.9.0-beta.2</text>
<text x="2062" y="820" text-anchor="middle" class="node-title">m1nd-mcp</text>
<text x="2062" y="872" text-anchor="middle" class="node-subtitle">MCP server, runtime surface, optional HTTP serve</text>
<text x="2300" y="768" text-anchor="end" class="version-tag">0.9.0-beta.2</text>
<text x="1376" y="1148" text-anchor="middle" class="node-title">m1nd-core</text>
<text x="1376" y="1200" text-anchor="middle" class="node-subtitle">Graph engine and reasoning primitives used by the whole stack</text>
<text x="1688" y="1088" text-anchor="end" class="version-tag">0.9.0-beta.2</text>
<g opacity="0.95">
<path d="M688 958L716 982L688 1006" stroke="#C9B2FF" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M2064 958L2036 982L2064 1006" stroke="#7CEBFF" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M1376 608L1404 636L1432 608" stroke="#FFB965" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M1710 802L1738 830L1710 858" stroke="#7AF8D0" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<text x="502" y="1454" class="micro">m1nd-core feeds ingest and runtime</text>
<text x="1192" y="1454" class="micro">m1nd-ingest feeds m1nd-mcp</text>
<text x="1894" y="1454" class="micro">m1nd-openclaw depends on m1nd-mcp</text>
</svg>