<mxfile host="app.diagrams.net" modified="2026-08-24T02:35:00.000Z" agent="Codex" version="29.7.9" type="device">
  <diagram id="escape-lab-architecture-v4" name="System Architecture">
    <mxGraphModel dx="1480" dy="1000" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1480" pageHeight="1000" math="0" shadow="0" adaptiveColors="auto">
      <root>
        <mxCell id="0"/>
        <mxCell id="1" parent="0"/>
        <mxCell id="title" value="&lt;b&gt;Ostiari Escape Lab — System Architecture&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;fontSize=24;fontColor=#1f2937;" vertex="1" parent="1">
          <mxGeometry x="40" y="20" width="1370" height="50" as="geometry"/>
        </mxCell>
        <mxCell id="subtitle" value="Provider-neutral containment benchmark with pluggable agent/range boundaries and an agent-inaccessible evidence plane" style="text;html=1;align=center;verticalAlign=middle;fontSize=13;fontColor=#4b5563;" vertex="1" parent="1">
          <mxGeometry x="40" y="65" width="1370" height="30" as="geometry"/>
        </mxCell>
        <mxCell id="inputs" value="Inputs &amp; Integrations" style="swimlane;startSize=34;rounded=1;container=1;collapsible=0;horizontal=1;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=2;fontStyle=1;fontSize=15;html=1;" vertex="1" parent="1">
          <mxGeometry x="40" y="110" width="260" height="680" as="geometry"/>
        </mxCell>
        <mxCell id="scenario_registry" value="&lt;b&gt;Scenario Registry&lt;/b&gt;&lt;br&gt;12 versioned S01–S12 contracts&lt;br&gt;manifest digest + assertions" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;fillColor=#ffffff;strokeColor=#6c8ebf;strokeWidth=2;fontSize=12;" vertex="1" parent="inputs">
          <mxGeometry x="45" y="70" width="170" height="90" as="geometry"/>
        </mxCell>
        <mxCell id="agent_adapter" value="&lt;b&gt;Agent Adapter&lt;/b&gt;&lt;br&gt;scripted + AxonLLM + external RPC&lt;br&gt;host or gVisor process boundary" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#6c8ebf;strokeWidth=2;fontSize=12;" vertex="1" parent="inputs">
          <mxGeometry x="45" y="210" width="170" height="85" as="geometry"/>
        </mxCell>
        <mxCell id="operator_cli" value="&lt;b&gt;Operator + CLI&lt;/b&gt;&lt;br&gt;run, compare, replay&lt;br&gt;budgets + kill switch" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#6c8ebf;strokeWidth=2;fontSize=12;" vertex="1" parent="inputs">
          <mxGeometry x="45" y="345" width="170" height="85" as="geometry"/>
        </mxCell>
        <mxCell id="ostiari_guard" value="&lt;b&gt;Ostiari Guard Bridge&lt;/b&gt;&lt;br&gt;optional C2–C4 score/tier&lt;br&gt;fail closed" style="rounded=1;whiteSpace=wrap;html=1;dashed=1;fillColor=#f5f5f5;strokeColor=#666666;strokeWidth=2;fontSize=12;" vertex="1" parent="inputs">
          <mxGeometry x="45" y="480" width="170" height="85" as="geometry"/>
        </mxCell>
        <mxCell id="execution" value="Control &amp; Execution Plane" style="swimlane;startSize=34;rounded=1;container=1;collapsible=0;horizontal=1;fillColor=#d5e8d4;strokeColor=#82b366;strokeWidth=2;fontStyle=1;fontSize=15;html=1;" vertex="1" parent="1">
          <mxGeometry x="350" y="110" width="610" height="680" as="geometry"/>
        </mxCell>
        <mxCell id="orchestrator" value="&lt;b&gt;Run Orchestrator&lt;/b&gt;&lt;br&gt;freeze inputs + correlate trajectory&lt;br&gt;budgets, kill checks, teardown" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#82b366;strokeWidth=2;fontSize=12;" vertex="1" parent="execution">
          <mxGeometry x="45" y="70" width="200" height="95" as="geometry"/>
        </mxCell>
        <mxCell id="control_plane" value="&lt;b&gt;Control Plane&lt;/b&gt;&lt;br&gt;C0–C4 authority + risk&lt;br&gt;reference or Ostiari-assisted" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=2;fontSize=12;" vertex="1" parent="execution">
          <mxGeometry x="350" y="70" width="210" height="95" as="geometry"/>
        </mxCell>
        <mxCell id="checkpoint" value="&lt;b&gt;Checkpoint / Recovery&lt;/b&gt;&lt;br&gt;pre-action state copy&lt;br&gt;bounded rollback" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#82b366;strokeWidth=2;fontSize=12;" vertex="1" parent="execution">
          <mxGeometry x="45" y="225" width="200" height="80" as="geometry"/>
        </mxCell>
        <mxCell id="approval" value="&lt;b&gt;Scoped Approval&lt;/b&gt;&lt;br&gt;HMAC-bound action, params,&lt;br&gt;resource, parent and expiry" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;strokeWidth=2;fontSize=12;" vertex="1" parent="execution">
          <mxGeometry x="350" y="225" width="210" height="80" as="geometry"/>
        </mxCell>
        <mxCell id="range_adapter" value="&lt;b&gt;Range Backend Adapter&lt;/b&gt;&lt;br&gt;selected per run&lt;br&gt;runtime identity recorded" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#9673a6;strokeWidth=2;fontSize=12;" vertex="1" parent="execution">
          <mxGeometry x="45" y="345" width="200" height="75" as="geometry"/>
        </mxCell>
        <mxCell id="isolated_agent" value="&lt;b&gt;gVisor Agent-RPC Worker&lt;/b&gt;&lt;br&gt;fixture or arbitrary OCI image&lt;br&gt;create → attest → start&lt;br&gt;syscall · filesystem · egress policy" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=3;fontSize=11;" vertex="1" parent="execution">
          <mxGeometry x="350" y="345" width="210" height="100" as="geometry"/>
        </mxCell>
        <mxCell id="synthetic_range" value="&lt;b&gt;In-Process Synthetic Range&lt;/b&gt;&lt;br&gt;deterministic T0/T1 state machine&lt;br&gt;&lt;i&gt;no shell or sockets&lt;/i&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;strokeWidth=2;fontSize=11;" vertex="1" parent="execution">
          <mxGeometry x="45" y="465" width="200" height="85" as="geometry"/>
        </mxCell>
        <mxCell id="isolated_range" value="&lt;b&gt;Hardened OCI / gVisor Worker&lt;/b&gt;&lt;br&gt;range state + tool effects inside&lt;br&gt;network none · read-only · non-root&lt;br&gt;immutable image ID + in-boundary probe" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;strokeWidth=3;fontSize=11;" vertex="1" parent="execution">
          <mxGeometry x="350" y="475" width="210" height="100" as="geometry"/>
        </mxCell>
        <mxCell id="adjudicator" value="&lt;b&gt;Outcome Adjudicator&lt;/b&gt;&lt;br&gt;observable state assertions&lt;br&gt;highest O0–O4 outcome" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;strokeWidth=2;fontSize=12;" vertex="1" parent="execution">
          <mxGeometry x="195" y="595" width="210" height="65" as="geometry"/>
        </mxCell>
        <mxCell id="evidence" value="Out-of-Band Evidence Plane" style="swimlane;startSize=34;rounded=1;container=1;collapsible=0;horizontal=1;fillColor=#fff2cc;strokeColor=#d6b656;strokeWidth=2;fontStyle=1;fontSize=15;html=1;" vertex="1" parent="1">
          <mxGeometry x="1010" y="110" width="400" height="680" as="geometry"/>
        </mxCell>
        <mxCell id="evidence_store" value="&lt;b&gt;Append-Only Event Store&lt;/b&gt;&lt;br&gt;ordered JSONL + redacted summaries&lt;br&gt;agent has no write path" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;fillColor=#ffffff;strokeColor=#d6b656;strokeWidth=2;fontSize=12;" vertex="1" parent="evidence">
          <mxGeometry x="60" y="70" width="280" height="100" as="geometry"/>
        </mxCell>
        <mxCell id="snapshots" value="&lt;b&gt;State Snapshots&lt;/b&gt;&lt;br&gt;before / after / teardown" style="shape=mxgraph.flowchart.document;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#d6b656;strokeWidth=2;fontSize=11;" vertex="1" parent="evidence">
          <mxGeometry x="50" y="225" width="130" height="80" as="geometry"/>
        </mxCell>
        <mxCell id="integrity" value="&lt;b&gt;Integrity&lt;/b&gt;&lt;br&gt;SHA-256 hash chain&lt;br&gt;tamper verification" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#d6b656;strokeWidth=2;fontSize=11;" vertex="1" parent="evidence">
          <mxGeometry x="220" y="225" width="130" height="80" as="geometry"/>
        </mxCell>
        <mxCell id="reports" value="&lt;b&gt;Reports&lt;/b&gt;&lt;br&gt;result.json&lt;br&gt;incident brief" style="shape=mxgraph.flowchart.document;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#d6b656;strokeWidth=2;fontSize=11;" vertex="1" parent="evidence">
          <mxGeometry x="50" y="375" width="130" height="80" as="geometry"/>
        </mxCell>
        <mxCell id="replay" value="&lt;b&gt;Replay / Experiments&lt;/b&gt;&lt;br&gt;paired profiles&lt;br&gt;reproducibility" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#d6b656;strokeWidth=2;fontSize=11;" vertex="1" parent="evidence">
          <mxGeometry x="220" y="375" width="130" height="80" as="geometry"/>
        </mxCell>
        <mxCell id="disclosure" value="&lt;b&gt;Disclosure Ledger&lt;/b&gt;&lt;br&gt;private → acknowledged → remediated → coordinated → publishable" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;fillColor=#ffffff;strokeColor=#d6b656;strokeWidth=2;fontSize=11;" vertex="1" parent="evidence">
          <mxGeometry x="50" y="510" width="300" height="70" as="geometry"/>
        </mxCell>
        <mxCell id="edge_scenario_orchestrator" value="" style="edgeStyle=elbowEdgeStyle;elbow=vertical;rounded=1;html=1;endArrow=classic;endFill=1;strokeColor=#4b5563;fontSize=11;" edge="1" parent="1" source="scenario_registry" target="orchestrator">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="edge_agent_orchestrator" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;endArrow=classic;endFill=1;strokeColor=#6c8ebf;strokeWidth=2;fontSize=11;" edge="1" parent="1" source="agent_adapter" target="orchestrator">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="edge_orchestrator_control" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;startArrow=classic;startFill=1;endArrow=classic;endFill=1;strokeColor=#d79b00;strokeWidth=2;fontSize=11;" edge="1" parent="execution" source="orchestrator" target="control_plane">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="edge_orchestrator_checkpoint" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;endArrow=classic;endFill=1;strokeColor=#82b366;fontSize=11;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="execution" source="orchestrator" target="checkpoint">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="edge_control_approval" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;startArrow=classic;startFill=1;endArrow=classic;endFill=1;strokeColor=#d6b656;fontSize=11;" edge="1" parent="execution" source="control_plane" target="approval">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="edge_checkpoint_range" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;startArrow=classic;startFill=1;endArrow=classic;endFill=1;strokeColor=#9673a6;fontSize=11;" edge="1" parent="execution" source="checkpoint" target="range_adapter">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="edge_control_range" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;endArrow=classic;endFill=1;strokeColor=#d79b00;strokeWidth=2;fontSize=11;" edge="1" parent="execution" source="control_plane" target="range_adapter">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="edge_orchestrator_agent_rpc_v2" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;startArrow=classic;startFill=1;endArrow=classic;endFill=1;strokeColor=#6c8ebf;strokeWidth=2;fontSize=10;" edge="1" parent="execution" source="orchestrator" target="isolated_agent">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="edge_adapter_synthetic" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;endArrow=classic;endFill=1;strokeColor=#9673a6;fontSize=11;" edge="1" parent="execution" source="range_adapter" target="synthetic_range">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="edge_adapter_isolated" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;endArrow=classic;endFill=1;strokeColor=#9673a6;strokeWidth=2;fontSize=11;" edge="1" parent="execution" source="range_adapter" target="isolated_range">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="edge_range_adjudicator" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;endArrow=classic;endFill=1;strokeColor=#b85450;strokeWidth=2;fontSize=11;" edge="1" parent="execution" source="synthetic_range" target="adjudicator">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="edge_isolated_adjudicator" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;endArrow=classic;endFill=1;strokeColor=#b85450;strokeWidth=2;fontSize=11;" edge="1" parent="execution" source="isolated_range" target="adjudicator">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="edge_orchestrator_evidence" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;dashed=1;endArrow=classic;endFill=1;strokeColor=#1a73e8;strokeWidth=2;fontSize=11;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="orchestrator" target="evidence_store">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="495" y="100"/>
              <mxPoint x="1210" y="100"/>
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="edge_snapshots_store" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;endArrow=classic;endFill=1;strokeColor=#d6b656;fontSize=10;" edge="1" parent="evidence" source="snapshots" target="evidence_store">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="edge_store_integrity" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;endArrow=classic;endFill=1;strokeColor=#d6b656;fontSize=10;" edge="1" parent="evidence" source="evidence_store" target="integrity">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="edge_store_reports" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;endArrow=classic;endFill=1;strokeColor=#d6b656;fontSize=10;" edge="1" parent="evidence" source="evidence_store" target="reports">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="edge_store_replay" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;endArrow=classic;endFill=1;strokeColor=#d6b656;fontSize=10;" edge="1" parent="evidence" source="evidence_store" target="replay">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="edge_reports_disclosure" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;endArrow=classic;endFill=1;strokeColor=#d6b656;fontSize=10;" edge="1" parent="evidence" source="reports" target="disclosure">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="legend" value="&lt;b&gt;Legend:&lt;/b&gt; solid arrows = execution/control flow    &lt;font color=&quot;#1a73e8&quot;&gt;dashed blue arrows = out-of-band evidence flow&lt;/font&gt;    dashed component = optional integration" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#9ca3af;fontSize=12;align=center;" vertex="1" parent="1">
          <mxGeometry x="350" y="825" width="760" height="55" as="geometry"/>
        </mxCell>
        <mxCell id="boundary_note" value="&lt;b&gt;Trust boundary:&lt;/b&gt; fixture or arbitrary Agent-RPC processes and modeled range effects can execute in separate gVisor/OCI workers while controls, kill checks, adjudication, and evidence remain outside. Credentialed remote inference still requires a reviewed broker." style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontSize=12;align=center;" vertex="1" parent="1">
          <mxGeometry x="220" y="895" width="1020" height="55" as="geometry"/>
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
