<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="eli.ai" agent="eli.ai diagram exporter" version="1">
  <diagram id="ports-rest-mcp-durable-agents-and-events-6662b869" name="Ports — REST, MCP, durable agents, and events">
    <mxGraphModel dx="1600" dy="1200" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="1200" math="0" shadow="0">
      <root>
        <mxCell id="0"/>
        <object id="1" label="Ports — REST, MCP, durable agents, and events" schemaVersion="1" diagramId="ports-rest-mcp-durable-agents-and-events-6662b869" canonicalAppearanceKey="tsx:src/app/(docs)/docs/concepts/system-diagrams/page.tsx:PORTS_CHART#1" sourceSha256="6662b869be5ec7937a335aab8457df7bc68418af9ba412ffec22f39c4089f3e8" metadataPayloadSha256="e36785c18d608f4f8ced8005783fc9fd03f9f58b7806d23a66cfea6c31621238" generationKey="08bd8579d8eacb3d001a3ad6dfeda5c7a3004305ad39819a922c0f875be38652" concepts="[&quot;System diagrams&quot;,&quot;Key-gated surfaces · one RLS pipeline&quot;,&quot;Ports&quot;,&quot;Ports — REST, MCP, durable agents, and events&quot;,&quot;Durable run loop · enqueue → worker → reattach&quot;]" keywords="[&quot;kb_* tools under RLS&quot;,&quot;reattach SSE&quot;,&quot;MCP clients · Claude · IDEs · agents&quot;,&quot;stable-key pg-boss reconcile&quot;,&quot;Grounded pipeline · withWorkspace RLS&quot;,&quot;encrypted HMAC · safe bounded HTTP&quot;,&quot;pg-boss agent-run / agent-resume&quot;,&quot;eli_sk_ / eli_uk_&quot;,&quot;agent_runs = queued&quot;,&quot;runner.ts durable loop&quot;,&quot;api_keys / user_api_keys&quot;,&quot;scheduled_jobs desired state&quot;,&quot;webhook_endpoints · webhook_deliveries&quot;,&quot;admitRun → executor.enqueue&quot;,&quot;run.completed / failed / suspended&quot;,&quot;Durable agents&quot;,&quot;worker start / resume&quot;,&quot;GET :id/stream&quot;,&quot;kb / data / reports&quot;,&quot;kb / data scope&quot;,&quot;allow / deny / edit&quot;,&quot;suspended → queued&quot;,&quot;HITL suspend · reaper&quot;,&quot;poll steps by cursor&quot;,&quot;REST clients · SDKs · playground&quot;,&quot;workspace + scopes + live capabilities + ACL&quot;,&quot;SHA-256 hash · scope grants&quot;,&quot;retrieval · graph · answerStructured&quot;,&quot;dispatchRunEvent → deliverAlert&quot;,&quot;query · documents · search · entities&quot;,&quot;hash lookup · requireScope&quot;,&quot;atomic decision (allow / deny / edit)&quot;,&quot;MCP&quot;,&quot;/api/v1&quot;,&quot;/api/mcp&quot;,&quot;/api/v1/runs&quot;,&quot;resolveAnyApiKey&quot;,&quot;Sn&quot;,&quot;Dn&quot;,&quot;REST&quot;]" application="{&quot;name&quot;:&quot;eli-ai&quot;,&quot;version&quot;:&quot;0.1.0&quot;}" packages="{&quot;mermaid&quot;:&quot;11.16.0&quot;,&quot;mermaidCli&quot;:&quot;11.16.0&quot;,&quot;playwright&quot;:&quot;1.62.1&quot;,&quot;playwrightCore&quot;:&quot;1.62.1&quot;,&quot;puppeteer&quot;:&quot;25.6.0&quot;,&quot;puppeteerCore&quot;:&quot;25.6.0&quot;}" environment="{&quot;architecture&quot;:&quot;x64&quot;,&quot;containerImage&quot;:&quot;playwright:v1.62.1-noble@sha256:c091b21d9fae78c76e85cd4356431e9b018402f172a214fc7d7a5e9a7e29d8ac+node:26.3.1-bookworm-slim@sha256:209558c3e5e40e8adff68959d3c2ba7cd73723e716d89196878a0c362fa1e109&quot;,&quot;node&quot;:&quot;v26.3.1&quot;,&quot;platform&quot;:&quot;linux&quot;,&quot;yarn&quot;:&quot;4.17.1&quot;}" renderer="{&quot;browser&quot;:{&quot;executableSha256&quot;:&quot;0b20b130e7edd9dd51873be867761295fe0cfad490c2b9a64f95bd3cfc08fa71&quot;,&quot;name&quot;:&quot;chromium&quot;,&quot;revision&quot;:&quot;1234&quot;,&quot;version&quot;:&quot;151.0.7922.34&quot;},&quot;font&quot;:{&quot;family&quot;:&quot;Eli Diagram Inter Variable&quot;,&quot;fileSha256&quot;:&quot;3100e775e8616cd2611beecfa23a4263d7037586789b43f035236a2e6fbd4c62&quot;,&quot;licenseSha256&quot;:&quot;3b0a5fca3d17942cde889069889dedbbbd075e9b599968c82a95f4d944e9b345&quot;},&quot;mermaidConfigSha256&quot;:&quot;68c10966fe84406ee626034d58bfabd555df9f65f691204b7c46db24038da101&quot;,&quot;themeCssSha256&quot;:&quot;c80287a78d80ad63d27bd5ca348b2ef9a7e2f44da289e436be6484ea28a1b033&quot;}" adapterVersions="{&quot;diagramGenerator&quot;:&quot;2&quot;,&quot;drawioFlowchart&quot;:&quot;1&quot;,&quot;drawioGantt&quot;:&quot;1&quot;,&quot;drawioSequence&quot;:&quot;1&quot;,&quot;drawioState&quot;:&quot;1&quot;}" mermaidType="flowchart" direction="TD" generatedAt="2026-08-12T23:40:51.634Z" mermaidSource="flowchart TD&#10;  REST([&quot;REST clients · SDKs · playground&quot;])&#10;  MCPC([&quot;MCP clients · Claude · IDEs · agents&quot;])&#10;  KEY{&quot;resolveAnyApiKey&lt;br/&gt;eli_sk_ / eli_uk_&lt;br/&gt;workspace + scopes + live capabilities + ACL&quot;}&#10;  AK[(&quot;api_keys / user_api_keys&lt;br/&gt;SHA-256 hash · scope grants&quot;)]&#10;  SCH[&quot;scheduled_jobs desired state&lt;br/&gt;stable-key pg-boss reconcile&quot;]&#10;  PIPE[&quot;Grounded pipeline · withWorkspace RLS&lt;br/&gt;retrieval · graph · answerStructured&quot;]&#10;  ANS([&quot;[Sn]/[Dn] dual-cited answer · rows · docs&quot;])&#10;  WH[&quot;dispatchRunEvent → deliverAlert&quot;]&#10;  WHDB[(&quot;webhook_endpoints · webhook_deliveries&lt;br/&gt;encrypted HMAC · safe bounded HTTP&quot;)]&#10;&#10;  subgraph SURF[&quot;Key-gated surfaces · one RLS pipeline&quot;]&#10;    V1[&quot;REST /api/v1&lt;br/&gt;query · documents · search · entities&lt;br/&gt;data · reports · runs · evals · manifest&quot;]&#10;    MCP[&quot;MCP /api/mcp&lt;br/&gt;10 tools · 2 resources&quot;]&#10;    RUNS[&quot;Durable agents&lt;br/&gt;admitRun → executor.enqueue&quot;]&#10;  end&#10;&#10;  subgraph DUR[&quot;Durable run loop · enqueue → worker → reattach&quot;]&#10;    ENQ[(&quot;pg-boss agent-run / agent-resume&lt;br/&gt;agent_runs = queued&quot;)]&#10;    WK[&quot;worker start / resume&lt;br/&gt;runner.ts durable loop&quot;]&#10;    RSTATE[(&quot;run_steps · run_approvals&lt;br/&gt;edited_input · due_at (SLA)&lt;br/&gt;agent_memory · resume_cursor&quot;)]&#10;    RE([&quot;reattach SSE&lt;br/&gt;GET /api/v1/runs/:id/stream&quot;])&#10;  end&#10;&#10;  REST --&gt; KEY&#10;  MCPC --&gt; KEY&#10;  KEY -.-&gt;|&quot;hash lookup · requireScope&quot;| AK&#10;  KEY --&gt;|&quot;kb / data / reports&quot;| V1&#10;  KEY --&gt;|&quot;kb / data scope&quot;| MCP&#10;  KEY --&gt;|&quot;agents:run&quot;| RUNS&#10;  KEY --&gt;|&quot;runs:read&quot;| RE&#10;&#10;  RUNS --&gt; ENQ&#10;  SCH --&gt; ENQ&#10;  ENQ --&gt; WK&#10;  WK --&gt; RSTATE&#10;  RSTATE --&gt;|&quot;atomic decision (allow / deny / edit):&lt;br/&gt;suspended → queued&quot;| ENQ&#10;  WK -.-&gt;|&quot;HITL suspend · reaper&quot;| RSTATE&#10;  RE -.-&gt;|&quot;poll steps by cursor&quot;| RSTATE&#10;&#10;  V1 --&gt; PIPE&#10;  MCP --&gt; PIPE&#10;  WK --&gt;|&quot;kb_* tools under RLS&quot;| PIPE&#10;  PIPE --&gt; ANS&#10;&#10;  WK --&gt;|&quot;run.completed / failed / suspended&quot;| WH&#10;  WH --&gt; WHDB">
          <mxCell parent="0"/>
        </object>
        <object id="c:DUR" label="Durable run loop · enqueue → worker → reattach" mermaidId="DUR" mermaidShape="frame">
          <mxCell parent="1" vertex="1" style="collapsible=0;container=1;dashed=1;fillColor=none;fontColor=#333333;html=1;recursiveResize=0;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="8" y="814" width="1271.43103" height="598.668488" as="geometry"/>
          </mxCell>
        </object>
        <object id="c:SURF" label="Key-gated surfaces · one RLS pipeline" mermaidId="SURF" mermaidShape="frame">
          <mxCell parent="1" vertex="1" style="collapsible=0;container=1;dashed=1;fillColor=none;fontColor=#333333;html=1;recursiveResize=0;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="981.727905" y="542" width="910.109375" height="198" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:REST" label="REST clients · SDKs · playground" mermaidId="REST" mermaidShape="stadium">
          <mxCell parent="1" vertex="1" style="arcSize=50;fillColor=#ECECFF;fontColor=#333333;html=1;rounded=1;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="1083.587277" y="8" width="229.468145" height="62" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:MCPC" label="MCP clients · Claude · IDEs · agents" mermaidId="MCPC" mermaidShape="stadium">
          <mxCell parent="1" vertex="1" style="arcSize=50;fillColor=#ECECFF;fontColor=#333333;html=1;rounded=1;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="804.119138" y="8" width="229.468145" height="62" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:KEY" label="resolveAnyApiKeyeli_sk_ / eli_uk_workspace + scopes + live capabilities + ACL" mermaidId="KEY" mermaidShape="diamond">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;perimeter=rhombusPerimeter;shape=rhombus;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="897.08728" y="120" width="324" height="324" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:AK" label="api_keys / user_api_keysSHA-256 hash · scope grants" mermaidId="AK" mermaidShape="cylinder">
          <mxCell parent="1" vertex="1" style="backgroundOutline=1;boundedLbl=1;fillColor=#ECECFF;fontColor=#333333;html=1;shape=cylinder3;size=15;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="415.727905" y="574.327434" width="214" height="133.345133" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:SCH" label="scheduled_jobs desired statestable-key pg-boss reconcile" mermaidId="SCH" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="679.727905" y="579" width="256" height="124" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:PIPE" label="Grounded pipeline · withWorkspace RLSretrieval · graph · answerStructured" mermaidId="PIPE" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="1338.954468" y="1235.001366" width="256" height="124" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:ANS" label="[Sn]/[Dn] dual-cited answer · rows · docs" mermaidId="ANS" mermaidShape="stadium">
          <mxCell parent="1" vertex="1" style="arcSize=50;fillColor=#ECECFF;fontColor=#333333;html=1;rounded=1;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="1352.220395" y="1510.335609" width="229.468145" height="62" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:WH" label="dispatchRunEvent → deliverAlert" mermaidId="WH" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="1644.954468" y="1259.001366" width="256" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:WHDB" label="webhook_endpoints · webhook_deliveriesencrypted HMAC · safe bounded HTTP" mermaidId="WHDB" mermaidShape="cylinder">
          <mxCell parent="1" vertex="1" style="backgroundOutline=1;boundedLbl=1;fillColor=#ECECFF;fontColor=#333333;html=1;shape=cylinder3;size=15;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="1665.954468" y="1462.663043" width="214" height="157.345133" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:V1" label="REST /api/v1query · documents · search · entitiesdata · reports · runs · evals · manifest" mermaidId="V1" mermaidShape="rectangle">
          <mxCell parent="c:SURF" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="619.109375" y="25" width="256" height="148" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:MCP" label="MCP /api/mcp10 tools · 2 resources" mermaidId="MCP" mermaidShape="rectangle">
          <mxCell parent="c:SURF" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="352.296875" y="61" width="216.8125" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:RUNS" label="Durable agentsadmitRun → executor.enqueue" mermaidId="RUNS" mermaidShape="rectangle">
          <mxCell parent="c:SURF" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="35" y="49" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:ENQ" label="pg-boss agent-run / agent-resumeagent_runs = queued" mermaidId="ENQ" mermaidShape="cylinder">
          <mxCell parent="c:DUR" vertex="1" style="backgroundOutline=1;boundedLbl=1;fillColor=#ECECFF;fontColor=#333333;html=1;shape=cylinder3;size=15;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="780.58728" y="24.994556" width="214" height="133.345133" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:WK" label="worker start / resumerunner.ts durable loop" mermaidId="WK" mermaidShape="rectangle">
          <mxCell parent="c:DUR" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="776.58728" y="213.334244" width="222" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:RSTATE" label="run_steps · run_approvalsedited_input · due_at (SLA)agent_memory · resume_cursor" mermaidId="RSTATE" mermaidShape="cylinder">
          <mxCell parent="c:DUR" vertex="1" style="backgroundOutline=1;boundedLbl=1;fillColor=#ECECFF;fontColor=#333333;html=1;shape=cylinder3;size=15;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="320.704468" y="392.328799" width="214" height="181.345133" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:RE" label="reattach SSEGET /api/v1/runs/:id/stream" mermaidId="RE" mermaidShape="stadium">
          <mxCell parent="c:DUR" vertex="1" style="arcSize=50;fillColor=#ECECFF;fontColor=#333333;html=1;rounded=1;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="254.999998" y="208.334244" width="235.455815" height="86" as="geometry"/>
          </mxCell>
        </object>
        <object id="e:L_REST_KEY_0" label="" mermaidId="L_REST_KEY_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:REST" target="n:KEY" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1198.82135" y="70.5" as="sourcePoint"/>
              <mxPoint x="1127.869677" y="189.282396" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1198.32135" y="95"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_MCPC_KEY_0" label="" mermaidId="L_MCPC_KEY_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:MCPC" target="n:KEY" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="919.35321" y="70.5" as="sourcePoint"/>
              <mxPoint x="989.304884" y="189.282396" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="918.85321" y="95"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_KEY_AK_0" label="hash lookup · requireScope" mermaidId="L_KEY_AK_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:KEY" target="n:AK" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="942.354932" y="327.767652" as="sourcePoint"/>
              <mxPoint x="522.727905" y="574.332878" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="522.727905" y="493"/>
                <mxPoint x="522.727905" y="542"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_KEY_V1_0" label="kb / data / reports" mermaidId="L_KEY_V1_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:KEY" target="n:V1" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1181.799195" y="320.788085" as="sourcePoint"/>
              <mxPoint x="1728.83728" y="567" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1728.83728" y="493"/>
                <mxPoint x="1728.83728" y="542"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_KEY_MCP_0" label="kb / data scope" mermaidId="L_KEY_MCP_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:KEY" target="n:MCP" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1163.12345" y="339.46383" as="sourcePoint"/>
              <mxPoint x="1442.43103" y="603" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1442.43103" y="493"/>
                <mxPoint x="1442.43103" y="542"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_KEY_RUNS_0" label="agents:run" mermaidId="L_KEY_RUNS_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:KEY" target="n:RUNS" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1105.550839" y="397.036441" as="sourcePoint"/>
              <mxPoint x="1144.727905" y="591" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1144.727905" y="493"/>
                <mxPoint x="1144.727905" y="542"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_KEY_RE_0" label="runs:read" mermaidId="L_KEY_RE_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:KEY" target="n:RE" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="935.043307" y="320.456027" as="sourcePoint"/>
              <mxPoint x="381.227905" y="1022.834244" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="380.727905" y="493"/>
                <mxPoint x="380.727905" y="542"/>
                <mxPoint x="380.727905" y="641"/>
                <mxPoint x="380.727905" y="740"/>
                <mxPoint x="380.727905" y="777"/>
                <mxPoint x="380.727905" y="814"/>
                <mxPoint x="380.727905" y="905.667122"/>
                <mxPoint x="380.727905" y="997.334244"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_RUNS_ENQ_0" label="" mermaidId="L_RUNS_ENQ_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:RUNS" target="n:ENQ" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1144.727905" y="691" as="sourcePoint"/>
              <mxPoint x="1002.58728" y="866.298263" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1144.727905" y="740"/>
                <mxPoint x="1144.727905" y="777"/>
                <mxPoint x="1144.727905" y="814"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_SCH_ENQ_0" label="" mermaidId="L_SCH_ENQ_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:SCH" target="n:ENQ" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="807.727905" y="703" as="sourcePoint"/>
              <mxPoint x="831.689434" y="842.123041" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="807.727905" y="740"/>
                <mxPoint x="807.727905" y="777"/>
                <mxPoint x="807.727905" y="814"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_ENQ_WK_0" label="" mermaidId="L_ENQ_WK_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:ENQ" target="n:WK" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="895.58728" y="972.334244" as="sourcePoint"/>
              <mxPoint x="895.58728" y="1027.334244" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="895.58728" y="997.334244"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_WK_RSTATE_0" label="" mermaidId="L_WK_RSTATE_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:WK" target="n:RSTATE" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="833.943768" y="1103.334244" as="sourcePoint"/>
              <mxPoint x="542.704468" y="1248.893099" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="746.345093" y="1157.334244"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_RSTATE_ENQ_0" label="atomic decision (allow / deny / edit):suspended → queued" mermaidId="L_RSTATE_ENQ_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:RSTATE" target="n:ENQ" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="328.704468" y="1248.434043" as="sourcePoint"/>
              <mxPoint x="788.58728" y="918.44532" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="128" y="1157.334244"/>
                <mxPoint x="128" y="1065.334244"/>
                <mxPoint x="128" y="997.334244"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_WK_RSTATE_2" label="HITL suspend · reaper" mermaidId="L_WK_RSTATE_2" mermaidKind="relationship">
          <mxCell parent="1" source="n:WK" target="n:RSTATE" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="791.032423" y="1103.334244" as="sourcePoint"/>
              <mxPoint x="542.704468" y="1224.718986" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="642.454468" y="1157.334244"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_RE_RSTATE_0" label="poll steps by cursor" mermaidId="L_RE_RSTATE_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:RE" target="n:RSTATE" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="381.227905" y="1108.834244" as="sourcePoint"/>
              <mxPoint x="400.015562" y="1207.237975" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="380.727905" y="1157.334244"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_V1_PIPE_0" label="" mermaidId="L_V1_PIPE_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:V1" target="n:PIPE" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1728.83728" y="715" as="sourcePoint"/>
              <mxPoint x="1583.207557" y="1235.001366" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1728.83728" y="740"/>
                <mxPoint x="1728.83728" y="777"/>
                <mxPoint x="1728.83728" y="814"/>
                <mxPoint x="1728.83728" y="905.667122"/>
                <mxPoint x="1728.83728" y="997.334244"/>
                <mxPoint x="1728.83728" y="1065.334244"/>
                <mxPoint x="1728.83728" y="1157.334244"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_MCP_PIPE_0" label="" mermaidId="L_MCP_PIPE_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:MCP" target="n:PIPE" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1442.43103" y="679" as="sourcePoint"/>
              <mxPoint x="1456.068204" y="1235.001366" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1442.43103" y="740"/>
                <mxPoint x="1442.43103" y="777"/>
                <mxPoint x="1442.43103" y="814"/>
                <mxPoint x="1442.43103" y="905.667122"/>
                <mxPoint x="1442.43103" y="997.334244"/>
                <mxPoint x="1442.43103" y="1065.334244"/>
                <mxPoint x="1442.43103" y="1157.334244"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_WK_PIPE_0" label="kb_* tools under RLS" mermaidId="L_WK_PIPE_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:WK" target="n:PIPE" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="915.884495" y="1103.334244" as="sourcePoint"/>
              <mxPoint x="1338.954468" y="1262.768347" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="944.727905" y="1157.334244"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_PIPE_ANS_0" label="" mermaidId="L_PIPE_ANS_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:PIPE" target="n:ANS" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1466.954468" y="1359.001366" as="sourcePoint"/>
              <mxPoint x="1467.454468" y="1510.835609" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1466.954468" y="1412.668488"/>
                <mxPoint x="1466.954468" y="1437.668488"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_WK_WH_0" label="run.completed / failed / suspended" mermaidId="L_WK_WH_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:WK" target="n:WH" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="999.196655" y="1103.334244" as="sourcePoint"/>
              <mxPoint x="1644.954468" y="1268.467091" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1146.43103" y="1157.334244"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_WH_WHDB_0" label="" mermaidId="L_WH_WHDB_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:WH" target="n:WHDB" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1772.954468" y="1335.001366" as="sourcePoint"/>
              <mxPoint x="1772.954468" y="1462.668488" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1772.954468" y="1412.668488"/>
                <mxPoint x="1772.954468" y="1437.668488"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
