<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="eli.ai" agent="eli.ai diagram exporter" version="1">
  <diagram id="ports-system-architecture-5a58d8c0" name="Ports — system architecture">
    <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 — system architecture" schemaVersion="1" diagramId="ports-system-architecture-5a58d8c0" canonicalAppearanceKey="tsx:src/app/(docs)/docs/modules/ports/page.tsx:systemArchitectureChart#1" sourceSha256="5a58d8c0f7f92963663aa62883702e1d0cbb699730a1f3ae52508e35d94cde88" metadataPayloadSha256="eb5c5ec1042fad7e8cb2db347033cebbbddcaf5df19cf3795cfcf95fb927907f" generationKey="ee6f31e7c940a1efe74c2fcbd9b197ee2aa47858075209096f8af609bb4b7213" concepts="[&quot;System architecture&quot;,&quot;Public surface&quot;,&quot;Worker loop&quot;,&quot;Run control (web process)&quot;,&quot;Modules&quot;,&quot;Ports&quot;]" keywords="[&quot;POST {slug}/runs (API)&quot;,&quot;POST + {slug} (API)&quot;,&quot;GET {id} + /steps + /stream (API)&quot;,&quot;POST {id}/cancel + /approve + /feedback (API)&quot;,&quot;Reattach SSE tail (service)&quot;,&quot;Native MCP server (service)&quot;,&quot;Agent runner (service)&quot;,&quot;Tool registry (service)&quot;,&quot;Approval gate (service)&quot;,&quot;model: chat&quot;,&quot;Admission control (service)&quot;,&quot;Durable executor + job queue (service)&quot;,&quot;Capability lock (service)&quot;,&quot;/api/v1/agents&quot;,&quot;/api/v1/runs&quot;,&quot;/api/mcp&quot;,&quot;/api/mcp/agents&quot;,&quot;slug&quot;,&quot;id&quot;,&quot;store&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="TB" generatedAt="2026-08-17T18:36:09.695Z" mermaidSource="flowchart TB&#10;  subgraph SURFACE[&quot;Public surface&quot;]&#10;    RUN_API[&quot;POST /api/v1/agents/{slug}/runs (API)&quot;]&#10;    READ_API[&quot;GET /api/v1/runs/{id} + /steps + /stream (API)&quot;]&#10;    ACT_API[&quot;POST /api/v1/runs/{id}/cancel + /approve + /feedback (API)&quot;]&#10;    MCP_API[&quot;POST /api/mcp + /api/mcp/agents/{slug} (API)&quot;]&#10;  end&#10;&#10;  subgraph CONTROL[&quot;Run control (web process)&quot;]&#10;    ADMIT[&quot;Admission control (service)&quot;]&#10;    EXECDUR[&quot;Durable executor + job queue (service)&quot;]&#10;    REATTACH[&quot;Reattach SSE tail (service)&quot;]&#10;  end&#10;&#10;  subgraph WORKER[&quot;Worker loop&quot;]&#10;    RUNNER[&quot;Agent runner (service)&quot;]&#10;    LOCK[&quot;Capability lock (service)&quot;]&#10;    REGISTRY[&quot;Tool registry (service)&quot;]&#10;    HITL[&quot;Approval gate (service)&quot;]&#10;  end&#10;&#10;  CHAT(&quot;Chat model (model: chat)&quot;)&#10;  MCPSRV[&quot;Native MCP server (service)&quot;]&#10;&#10;  subgraph STORES[&quot;Workspace stores (RLS)&quot;]&#10;    T_AGENTS[(&quot;agents + agent_versions (store)&quot;)]&#10;    T_RUNS[(&quot;agent_runs (store)&quot;)]&#10;    T_STEPS[(&quot;run_steps (store)&quot;)]&#10;    T_APPR[(&quot;run_approvals (store)&quot;)]&#10;    T_FB[(&quot;feedback + guardrail_verdicts (store)&quot;)]&#10;    T_CONV[(&quot;conversations + messages (store)&quot;)]&#10;  end&#10;&#10;  RUN_API --&gt; ADMIT&#10;  ADMIT --&gt; EXECDUR&#10;  EXECDUR --&gt; T_RUNS&#10;  EXECDUR --&gt; RUNNER&#10;  RUNNER --&gt; T_AGENTS&#10;  RUNNER --&gt; LOCK&#10;  LOCK --&gt; REGISTRY&#10;  RUNNER --&gt; CHAT&#10;  RUNNER --&gt; T_STEPS&#10;  RUNNER --&gt; HITL&#10;  HITL --&gt; T_APPR&#10;  RUNNER --&gt; T_FB&#10;  RUNNER --&gt; T_CONV&#10;  READ_API --&gt; REATTACH&#10;  REATTACH --&gt; T_STEPS&#10;  REATTACH --&gt; T_RUNS&#10;  ACT_API --&gt; T_APPR&#10;  ACT_API --&gt; T_RUNS&#10;  ACT_API --&gt; T_FB&#10;  MCP_API --&gt; MCPSRV&#10;  MCPSRV --&gt; LOCK">
          <mxCell parent="0"/>
        </object>
        <object id="c:STORES" label="Workspace stores (RLS)" mermaidId="STORES" 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="795.546875" y="763" width="1430.03125" height="159.334236" as="geometry"/>
          </mxCell>
        </object>
        <object id="c:WORKER" label="Worker loop" mermaidId="WORKER" 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="534" width="765.652344" height="388.334236" as="geometry"/>
          </mxCell>
        </object>
        <object id="c:CONTROL" label="Run control (web process)" mermaidId="CONTROL" 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="401.28125" y="232" width="1044.765625" height="252" as="geometry"/>
          </mxCell>
        </object>
        <object id="c:SURFACE" label="Public surface" mermaidId="SURFACE" 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="9.421875" y="8" width="1901.65625" height="174" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:RUN_API" label="POST /api/v1/agents/{slug}/runs (API)" mermaidId="RUN_API" mermaidShape="rectangle">
          <mxCell parent="c:SURFACE" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="484.839844" y="37" width="257.203125" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:READ_API" label="GET /api/v1/runs/{id} + /steps + /stream (API)" mermaidId="READ_API" mermaidShape="rectangle">
          <mxCell parent="c:SURFACE" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="1146.007813" y="49" width="256" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:ACT_API" label="POST /api/v1/runs/{id}/cancel + /approve + /feedback (API)" mermaidId="ACT_API" mermaidShape="rectangle">
          <mxCell parent="c:SURFACE" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="1474.265625" y="25" width="256" height="124" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:MCP_API" label="POST /api/mcp + /api/mcp/agents/{slug} (API)" mermaidId="MCP_API" mermaidShape="rectangle">
          <mxCell parent="c:SURFACE" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="35" y="37" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:ADMIT" label="Admission control (service)" mermaidId="ADMIT" mermaidShape="rectangle">
          <mxCell parent="c:CONTROL" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="93.582031" y="25" width="256" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:EXECDUR" label="Durable executor + job queue (service)" mermaidId="EXECDUR" mermaidShape="rectangle">
          <mxCell parent="c:CONTROL" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="93.582031" y="151" width="256" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:REATTACH" label="Reattach SSE tail (service)" mermaidId="REATTACH" mermaidShape="rectangle">
          <mxCell parent="c:CONTROL" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="754.53125" y="163" width="255.234375" height="52" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:RUNNER" label="Agent runner (service)" mermaidId="RUNNER" mermaidShape="rectangle">
          <mxCell parent="c:WORKER" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="443.039063" y="25" width="226.484375" height="52" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:LOCK" label="Capability lock (service)" mermaidId="LOCK" mermaidShape="rectangle">
          <mxCell parent="c:WORKER" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="35" y="127" width="238.84375" height="52" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:REGISTRY" label="Tool registry (service)" mermaidId="REGISTRY" mermaidShape="rectangle">
          <mxCell parent="c:WORKER" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="43.554688" y="282.667118" width="221.734375" height="52" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:HITL" label="Approval gate (service)" mermaidId="HITL" mermaidShape="rectangle">
          <mxCell parent="c:WORKER" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="374" y="127" width="232.53125" height="52" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:CHAT" label="Chat model (model: chat)" mermaidId="CHAT" mermaidShape="rounded">
          <mxCell parent="1" vertex="1" style="arcSize=12;fillColor=#ECECFF;fontColor=#333333;html=1;rounded=1;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="861.617188" y="661" width="219.1875" height="52" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:MCPSRV" label="Native MCP server (service)" mermaidId="MCPSRV" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="44.421875" y="257" width="256" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:T_AGENTS" label="agents + agent_versions (store)" mermaidId="T_AGENTS" mermaidShape="cylinder">
          <mxCell parent="c:STORES" vertex="1" style="backgroundOutline=1;boundedLbl=1;fillColor=#ECECFF;fontColor=#333333;html=1;shape=cylinder3;size=15;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="35" y="24.994552" width="214" height="109.345133" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:T_RUNS" label="agent_runs (store)" mermaidId="T_RUNS" mermaidShape="cylinder">
          <mxCell parent="c:STORES" vertex="1" style="backgroundOutline=1;boundedLbl=1;fillColor=#ECECFF;fontColor=#333333;html=1;shape=cylinder3;size=15;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="299" y="40.075194" width="152.234375" height="79.183847" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:T_STEPS" label="run_steps (store)" mermaidId="T_STEPS" mermaidShape="cylinder">
          <mxCell parent="c:STORES" vertex="1" style="backgroundOutline=1;boundedLbl=1;fillColor=#ECECFF;fontColor=#333333;html=1;shape=cylinder3;size=15;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="501.234375" y="40.754174" width="141.53125" height="77.825888" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:T_APPR" label="run_approvals (store)" mermaidId="T_APPR" mermaidShape="cylinder">
          <mxCell parent="c:STORES" vertex="1" style="backgroundOutline=1;boundedLbl=1;fillColor=#ECECFF;fontColor=#333333;html=1;shape=cylinder3;size=15;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="692.765625" y="38.830461" width="174.265625" height="81.673315" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:T_FB" label="feedback + guardrail_verdicts (store)" mermaidId="T_FB" mermaidShape="cylinder">
          <mxCell parent="c:STORES" vertex="1" style="backgroundOutline=1;boundedLbl=1;fillColor=#ECECFF;fontColor=#333333;html=1;shape=cylinder3;size=15;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="917.03125" y="24.994552" width="214" height="109.345133" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:T_CONV" label="conversations + messages (store)" mermaidId="T_CONV" mermaidShape="cylinder">
          <mxCell parent="c:STORES" vertex="1" style="backgroundOutline=1;boundedLbl=1;fillColor=#ECECFF;fontColor=#333333;html=1;shape=cylinder3;size=15;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="1181.03125" y="24.994552" width="214" height="109.345133" as="geometry"/>
          </mxCell>
        </object>
        <object id="e:L_RUN_API_ADMIT_0" label="" mermaidId="L_RUN_API_ADMIT_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:RUN_API" target="n:ADMIT" 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="622.863281" y="145" as="sourcePoint"/>
              <mxPoint x="622.863281" y="257" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="622.863281" y="182"/>
                <mxPoint x="622.863281" y="207"/>
                <mxPoint x="622.863281" y="232"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_ADMIT_EXECDUR_0" label="" mermaidId="L_ADMIT_EXECDUR_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:ADMIT" target="n:EXECDUR" 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="622.863281" y="333" as="sourcePoint"/>
              <mxPoint x="622.863281" y="383" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="622.863281" y="358"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_EXECDUR_T_RUNS_0" label="" mermaidId="L_EXECDUR_T_RUNS_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:EXECDUR" target="n:T_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="750.863281" y="437.358942" as="sourcePoint"/>
              <mxPoint x="1143.400768" y="803.985985" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1115.804688" y="484"/>
                <mxPoint x="1115.804688" y="509"/>
                <mxPoint x="1115.804688" y="534"/>
                <mxPoint x="1115.804688" y="585"/>
                <mxPoint x="1115.804688" y="636"/>
                <mxPoint x="1115.804688" y="687"/>
                <mxPoint x="1115.804688" y="738"/>
                <mxPoint x="1115.804688" y="763"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_EXECDUR_RUNNER_0" label="" mermaidId="L_EXECDUR_RUNNER_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:EXECDUR" target="n:RUNNER" 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="587.528088" y="459" as="sourcePoint"/>
              <mxPoint x="564.28125" y="559" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="564.28125" y="484"/>
                <mxPoint x="564.28125" y="509"/>
                <mxPoint x="564.28125" y="534"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_RUNNER_T_AGENTS_0" label="" mermaidId="L_RUNNER_T_AGENTS_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:RUNNER" target="n:T_AGENTS" 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="451.039063" y="609.339688" as="sourcePoint"/>
              <mxPoint x="830.546875" y="828.705239" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="327" y="636"/>
                <mxPoint x="327" y="687"/>
                <mxPoint x="327" y="738"/>
                <mxPoint x="327" y="763"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_RUNNER_LOCK_0" label="" mermaidId="L_RUNNER_LOCK_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:RUNNER" target="n:LOCK" 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="451.039063" y="597.312337" as="sourcePoint"/>
              <mxPoint x="128.157475" y="661" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="95.210938" y="636"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_LOCK_REGISTRY_0" label="" mermaidId="L_LOCK_REGISTRY_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:LOCK" target="n:REGISTRY" 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="162.421875" y="713" as="sourcePoint"/>
              <mxPoint x="162.421875" y="816.667118" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="162.421875" y="738"/>
                <mxPoint x="162.421875" y="763"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_RUNNER_CHAT_0" label="" mermaidId="L_RUNNER_CHAT_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:RUNNER" target="n:CHAT" 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="628.134191" y="611" as="sourcePoint"/>
              <mxPoint x="861.617188" y="667.157315" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="689.53125" y="636"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_RUNNER_T_STEPS_0" label="" mermaidId="L_RUNNER_T_STEPS_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:RUNNER" target="n:T_STEPS" 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="453.510417" y="611" as="sourcePoint"/>
              <mxPoint x="1296.78125" y="837.142929" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="347" y="636"/>
                <mxPoint x="347" y="687"/>
                <mxPoint x="347" y="738"/>
                <mxPoint x="347" y="763"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_RUNNER_HITL_0" label="" mermaidId="L_RUNNER_HITL_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:RUNNER" target="n:HITL" 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="530.626225" y="611" as="sourcePoint"/>
              <mxPoint x="498.265625" y="661" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="498.265625" y="636"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_HITL_T_APPR_0" label="" mermaidId="L_HITL_T_APPR_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:HITL" target="n:T_APPR" 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="498.265625" y="713" as="sourcePoint"/>
              <mxPoint x="1488.3125" y="836.222864" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="498.265625" y="738"/>
                <mxPoint x="498.265625" y="763"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_RUNNER_T_FB_0" label="" mermaidId="L_RUNNER_T_FB_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:RUNNER" target="n:T_FB" 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="607.742034" y="611" as="sourcePoint"/>
              <mxPoint x="1712.578125" y="835.381614" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="649.53125" y="636"/>
                <mxPoint x="649.53125" y="687"/>
                <mxPoint x="649.53125" y="738"/>
                <mxPoint x="649.53125" y="763"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_RUNNER_T_CONV_0" label="" mermaidId="L_RUNNER_T_CONV_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:RUNNER" target="n:T_CONV" 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="617.938113" y="611" as="sourcePoint"/>
              <mxPoint x="1976.578125" y="836.638759" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="669.53125" y="636"/>
                <mxPoint x="669.53125" y="687"/>
                <mxPoint x="669.53125" y="738"/>
                <mxPoint x="669.53125" y="763"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_READ_API_REATTACH_0" label="" mermaidId="L_READ_API_REATTACH_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:READ_API" target="n:REATTACH" 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="1283.429688" y="133" as="sourcePoint"/>
              <mxPoint x="1283.429688" y="395" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1283.429688" y="182"/>
                <mxPoint x="1283.429688" y="207"/>
                <mxPoint x="1283.429688" y="232"/>
                <mxPoint x="1283.429688" y="295"/>
                <mxPoint x="1283.429688" y="358"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_REATTACH_T_STEPS_0" label="" mermaidId="L_REATTACH_T_STEPS_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:REATTACH" target="n:T_STEPS" 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="1318.144717" y="447" as="sourcePoint"/>
              <mxPoint x="1367.546875" y="803.754173" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1367.546875" y="484"/>
                <mxPoint x="1367.546875" y="509"/>
                <mxPoint x="1367.546875" y="534"/>
                <mxPoint x="1367.546875" y="585"/>
                <mxPoint x="1367.546875" y="636"/>
                <mxPoint x="1367.546875" y="687"/>
                <mxPoint x="1367.546875" y="738"/>
                <mxPoint x="1367.546875" y="763"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_REATTACH_T_RUNS_0" label="" mermaidId="L_REATTACH_T_RUNS_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:REATTACH" target="n:T_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="1248.089162" y="447" as="sourcePoint"/>
              <mxPoint x="1184.148173" y="803.292317" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1197.796875" y="484"/>
                <mxPoint x="1197.796875" y="509"/>
                <mxPoint x="1197.796875" y="534"/>
                <mxPoint x="1197.796875" y="585"/>
                <mxPoint x="1197.796875" y="636"/>
                <mxPoint x="1197.796875" y="687"/>
                <mxPoint x="1197.796875" y="738"/>
                <mxPoint x="1197.796875" y="763"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_ACT_API_T_APPR_0" label="" mermaidId="L_ACT_API_T_APPR_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:ACT_API" target="n:T_APPR" 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="1585.859734" y="157" as="sourcePoint"/>
              <mxPoint x="1575.445313" y="801.83046" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1575.445313" y="182"/>
                <mxPoint x="1575.445313" y="207"/>
                <mxPoint x="1575.445313" y="232"/>
                <mxPoint x="1575.445313" y="295"/>
                <mxPoint x="1575.445313" y="358"/>
                <mxPoint x="1575.445313" y="421"/>
                <mxPoint x="1575.445313" y="484"/>
                <mxPoint x="1575.445313" y="509"/>
                <mxPoint x="1575.445313" y="534"/>
                <mxPoint x="1575.445313" y="585"/>
                <mxPoint x="1575.445313" y="636"/>
                <mxPoint x="1575.445313" y="687"/>
                <mxPoint x="1575.445313" y="738"/>
                <mxPoint x="1575.445313" y="763"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_ACT_API_T_RUNS_0" label="" mermaidId="L_ACT_API_T_RUNS_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:ACT_API" target="n:T_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="1569.725036" y="157" as="sourcePoint"/>
              <mxPoint x="1219.586186" y="806.286159" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1552.804688" y="182"/>
                <mxPoint x="1552.804688" y="207"/>
                <mxPoint x="1552.804688" y="232"/>
                <mxPoint x="1552.804688" y="295"/>
                <mxPoint x="1552.804688" y="358"/>
                <mxPoint x="1552.804688" y="421"/>
                <mxPoint x="1552.804688" y="484"/>
                <mxPoint x="1269.105469" y="509"/>
                <mxPoint x="1269.105469" y="534"/>
                <mxPoint x="1269.105469" y="585"/>
                <mxPoint x="1269.105469" y="636"/>
                <mxPoint x="1269.105469" y="687"/>
                <mxPoint x="1269.105469" y="738"/>
                <mxPoint x="1269.105469" y="763"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_ACT_API_T_FB_0" label="" mermaidId="L_ACT_API_T_FB_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:ACT_API" target="n:T_FB" 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="1739.6875" y="148.566629" as="sourcePoint"/>
              <mxPoint x="1819.578125" y="788" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1819.578125" y="182"/>
                <mxPoint x="1819.578125" y="207"/>
                <mxPoint x="1819.578125" y="232"/>
                <mxPoint x="1819.578125" y="295"/>
                <mxPoint x="1819.578125" y="358"/>
                <mxPoint x="1819.578125" y="421"/>
                <mxPoint x="1819.578125" y="484"/>
                <mxPoint x="1819.578125" y="509"/>
                <mxPoint x="1819.578125" y="534"/>
                <mxPoint x="1819.578125" y="585"/>
                <mxPoint x="1819.578125" y="636"/>
                <mxPoint x="1819.578125" y="687"/>
                <mxPoint x="1819.578125" y="738"/>
                <mxPoint x="1819.578125" y="763"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_MCP_API_MCPSRV_0" label="" mermaidId="L_MCP_API_MCPSRV_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:MCP_API" target="n:MCPSRV" 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="172.421875" y="145" as="sourcePoint"/>
              <mxPoint x="172.421875" y="257" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="172.421875" y="182"/>
                <mxPoint x="172.421875" y="207"/>
                <mxPoint x="172.421875" y="232"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_MCPSRV_LOCK_0" label="" mermaidId="L_MCPSRV_LOCK_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:MCPSRV" target="n:LOCK" 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="172.421875" y="333" as="sourcePoint"/>
              <mxPoint x="167.519914" y="661" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="172.421875" y="358"/>
                <mxPoint x="172.421875" y="421"/>
                <mxPoint x="172.421875" y="484"/>
                <mxPoint x="172.421875" y="509"/>
                <mxPoint x="172.421875" y="534"/>
                <mxPoint x="172.421875" y="585"/>
                <mxPoint x="172.421875" y="636"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
