<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="eli.ai" agent="eli.ai diagram exporter" version="1">
  <diagram id="ports-primary-runtime-flow-3a39f92a" name="Ports — primary runtime flow">
    <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 — primary runtime flow" schemaVersion="1" diagramId="ports-primary-runtime-flow-3a39f92a" canonicalAppearanceKey="tsx:src/app/(docs)/docs/modules/ports/page.tsx:primaryRuntimeFlowChart#1" sourceSha256="3a39f92a07b0bccbfc5c8661732c7474c7e0ad6586907e8289e4ee28b2806830" metadataPayloadSha256="c7e71c15a76cfd0b53f985f537b0f44b81c922b23f08c4a585da34d601f2fd5d" generationKey="53f8144616b572d64dabbd80669c564c2825512b70362df790aadcebc48c5c4f" concepts="[&quot;Primary runtime flow&quot;,&quot;Modules&quot;,&quot;Ports&quot;]" keywords="[&quot;agent-run routes (API)&quot;,&quot;GET {id}/stream (API)&quot;,&quot;Durable executor + pg-boss queue (service)&quot;,&quot;agent_runs + run_steps + run_approvals (store)&quot;,&quot;commit queued agent_runs row, then enqueue job&quot;,&quot;append run_steps, update budgets&quot;,&quot;pending run_approvals row, status suspended&quot;,&quot;Chat model (model)&quot;,&quot;worker claims the run&quot;,&quot;text or tool calls&quot;,&quot;Your app (agents:run / runs:read)&quot;,&quot;Admission control (service)&quot;,&quot;Agent runner (service, worker)&quot;,&quot;Tool registry under capability lock (service)&quot;,&quot;createAgentRun — input, optional conversationId&quot;,&quot;concurrency + monthly spend checks&quot;,&quot;admitted (else 429 or 402)&quot;,&quot;single-step generation with the locked toolset&quot;,&quot;execute tool under scope + lock checks&quot;,&quot;streamRun — replay persisted steps, then poll&quot;,&quot;suspended frame, stream closes&quot;,&quot;resolveRunApproval — allow or deny&quot;,&quot;decision + suspended-to-queued commit together&quot;,&quot;resume from the persisted cursor&quot;,&quot;terminal status + output&quot;,&quot;final frame with text and citations&quot;,&quot;/api/v1&quot;,&quot;/api/v1/runs&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="sequence" generatedAt="2026-08-17T18:36:02.850Z" mermaidSource="sequenceDiagram&#10;  autonumber&#10;  participant App as Your app (agents:run / runs:read)&#10;  participant Routes as /api/v1 agent-run routes (API)&#10;  participant Admit as Admission control (service)&#10;  participant Exec as Durable executor + pg-boss queue (service)&#10;  participant Runner as Agent runner (service, worker)&#10;  participant Chat as Chat model (model)&#10;  participant Tools as Tool registry under capability lock (service)&#10;  participant Store as agent_runs + run_steps + run_approvals (store)&#10;  participant Tail as GET /api/v1/runs/{id}/stream (API)&#10;&#10;  App-&gt;&gt;Routes: createAgentRun — input, optional conversationId&#10;  Routes-&gt;&gt;Admit: concurrency + monthly spend checks&#10;  Admit--&gt;&gt;Routes: admitted (else 429 or 402)&#10;  Routes-&gt;&gt;Exec: commit queued agent_runs row, then enqueue job&#10;  Routes--&gt;&gt;App: 202 runId, status queued, stream URL&#10;  Exec-&gt;&gt;Runner: worker claims the run&#10;  loop one model step at a time&#10;    Runner-&gt;&gt;Chat: single-step generation with the locked toolset&#10;    Chat--&gt;&gt;Runner: text or tool calls&#10;    Runner-&gt;&gt;Tools: execute tool under scope + lock checks&#10;    Runner-&gt;&gt;Store: append run_steps, update budgets&#10;  end&#10;  App-&gt;&gt;Tail: streamRun — replay persisted steps, then poll&#10;  alt a tool needs a human&#10;    Runner-&gt;&gt;Store: pending run_approvals row, status suspended&#10;    Tail--&gt;&gt;App: suspended frame, stream closes&#10;    App-&gt;&gt;Routes: resolveRunApproval — allow or deny&#10;    Routes-&gt;&gt;Exec: decision + suspended-to-queued commit together&#10;    Exec-&gt;&gt;Runner: resume from the persisted cursor&#10;  else run reaches a terminal status&#10;    Runner-&gt;&gt;Store: terminal status + output&#10;    Tail--&gt;&gt;App: final frame with text and citations&#10;  end">
          <mxCell parent="0"/>
        </object>
        <object id="c:i12" label="loop [one model step at a time]" mermaidId="i12" 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="1668" y="375" width="1158" height="245" as="geometry"/>
          </mxCell>
        </object>
        <object id="c:i23" label="alt [a tool needs a human] / [run reaches a terminal status]" mermaidId="i23" 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="124.5" y="680" width="3079" height="440" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:Tail" label="GET /api/v1/runs/{id}/stream (API)" mermaidId="Tail" mermaidShape="participant">
          <mxCell parent="1" vertex="1" style="fillColor=#eaeaea;fontColor=#333333;html=1;participant=umlActor;shape=umlLifeline;strokeColor=#666;whiteSpace=wrap;">
            <mxGeometry x="3053.5" y="0" width="278" height="65" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:Store" label="agent_runs + run_steps + run_approvals (store)" mermaidId="Store" mermaidShape="participant">
          <mxCell parent="1" vertex="1" style="fillColor=#eaeaea;fontColor=#333333;html=1;participant=umlActor;shape=umlLifeline;strokeColor=#666;whiteSpace=wrap;">
            <mxGeometry x="2626.5" y="0" width="377" height="65" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:Tools" label="Tool registry under capability lock (service)" mermaidId="Tools" mermaidShape="participant">
          <mxCell parent="1" vertex="1" style="fillColor=#eaeaea;fontColor=#333333;html=1;participant=umlActor;shape=umlLifeline;strokeColor=#666;whiteSpace=wrap;">
            <mxGeometry x="2228.5" y="0" width="348" height="65" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:Chat" label="Chat model (model)" mermaidId="Chat" mermaidShape="participant">
          <mxCell parent="1" vertex="1" style="fillColor=#eaeaea;fontColor=#333333;html=1;participant=umlActor;shape=umlLifeline;strokeColor=#666;whiteSpace=wrap;">
            <mxGeometry x="2009.5" y="0" width="169" height="65" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:Runner" label="Agent runner (service, worker)" mermaidId="Runner" mermaidShape="participant">
          <mxCell parent="1" vertex="1" style="fillColor=#eaeaea;fontColor=#333333;html=1;participant=umlActor;shape=umlLifeline;strokeColor=#666;whiteSpace=wrap;">
            <mxGeometry x="1553" y="0" width="252" height="65" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:Exec" label="Durable executor + pg-boss queue (service)" mermaidId="Exec" mermaidShape="participant">
          <mxCell parent="1" vertex="1" style="fillColor=#eaeaea;fontColor=#333333;html=1;participant=umlActor;shape=umlLifeline;strokeColor=#666;whiteSpace=wrap;">
            <mxGeometry x="1147" y="0" width="356" height="65" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:Admit" label="Admission control (service)" mermaidId="Admit" mermaidShape="participant">
          <mxCell parent="1" vertex="1" style="fillColor=#eaeaea;fontColor=#333333;html=1;participant=umlActor;shape=umlLifeline;strokeColor=#666;whiteSpace=wrap;">
            <mxGeometry x="870" y="0" width="227" height="65" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:Routes" label="/api/v1 agent-run routes (API)" mermaidId="Routes" mermaidShape="participant">
          <mxCell parent="1" vertex="1" style="fillColor=#eaeaea;fontColor=#333333;html=1;participant=umlActor;shape=umlLifeline;strokeColor=#666;whiteSpace=wrap;">
            <mxGeometry x="454" y="0" width="243" height="65" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:App" label="Your app (agents:run / runs:read)" mermaidId="App" mermaidShape="participant">
          <mxCell parent="1" vertex="1" style="fillColor=#eaeaea;fontColor=#333333;html=1;participant=umlActor;shape=umlLifeline;strokeColor=#666;whiteSpace=wrap;">
            <mxGeometry x="0" y="0" width="271" height="65" as="geometry"/>
          </mxCell>
        </object>
        <object id="e:lifeline:Tail" label="" mermaidId="lifeline:Tail" mermaidKind="lifeline">
          <mxCell parent="1" source="n:Tail" target="n:Tail" edge="1" style="dashed=1;dashPattern=4 4;edgeStyle=none;endArrow=none;endFill=0;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#999;strokeWidth=0.5;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="3192.5" y="65" as="sourcePoint"/>
              <mxPoint x="3192.5" y="1140" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:lifeline:Store" label="" mermaidId="lifeline:Store" mermaidKind="lifeline">
          <mxCell parent="1" source="n:Store" target="n:Store" edge="1" style="dashed=1;dashPattern=4 4;edgeStyle=none;endArrow=none;endFill=0;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#999;strokeWidth=0.5;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="2815" y="65" as="sourcePoint"/>
              <mxPoint x="2815" y="1140" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:lifeline:Tools" label="" mermaidId="lifeline:Tools" mermaidKind="lifeline">
          <mxCell parent="1" source="n:Tools" target="n:Tools" edge="1" style="dashed=1;dashPattern=4 4;edgeStyle=none;endArrow=none;endFill=0;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#999;strokeWidth=0.5;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="2402.5" y="65" as="sourcePoint"/>
              <mxPoint x="2402.5" y="1140" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:lifeline:Chat" label="" mermaidId="lifeline:Chat" mermaidKind="lifeline">
          <mxCell parent="1" source="n:Chat" target="n:Chat" edge="1" style="dashed=1;dashPattern=4 4;edgeStyle=none;endArrow=none;endFill=0;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#999;strokeWidth=0.5;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="2094" y="65" as="sourcePoint"/>
              <mxPoint x="2094" y="1140" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:lifeline:Runner" label="" mermaidId="lifeline:Runner" mermaidKind="lifeline">
          <mxCell parent="1" source="n:Runner" target="n:Runner" edge="1" style="dashed=1;dashPattern=4 4;edgeStyle=none;endArrow=none;endFill=0;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#999;strokeWidth=0.5;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1679" y="65" as="sourcePoint"/>
              <mxPoint x="1679" y="1140" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:lifeline:Exec" label="" mermaidId="lifeline:Exec" mermaidKind="lifeline">
          <mxCell parent="1" source="n:Exec" target="n:Exec" edge="1" style="dashed=1;dashPattern=4 4;edgeStyle=none;endArrow=none;endFill=0;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#999;strokeWidth=0.5;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1325" y="65" as="sourcePoint"/>
              <mxPoint x="1325" y="1140" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:lifeline:Admit" label="" mermaidId="lifeline:Admit" mermaidKind="lifeline">
          <mxCell parent="1" source="n:Admit" target="n:Admit" edge="1" style="dashed=1;dashPattern=4 4;edgeStyle=none;endArrow=none;endFill=0;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#999;strokeWidth=0.5;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="983.5" y="65" as="sourcePoint"/>
              <mxPoint x="983.5" y="1140" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:lifeline:Routes" label="" mermaidId="lifeline:Routes" mermaidKind="lifeline">
          <mxCell parent="1" source="n:Routes" target="n:Routes" edge="1" style="dashed=1;dashPattern=4 4;edgeStyle=none;endArrow=none;endFill=0;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#999;strokeWidth=0.5;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="575.5" y="65" as="sourcePoint"/>
              <mxPoint x="575.5" y="1140" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:lifeline:App" label="" mermaidId="lifeline:App" mermaidKind="lifeline">
          <mxCell parent="1" source="n:App" target="n:App" edge="1" style="dashed=1;dashPattern=4 4;edgeStyle=none;endArrow=none;endFill=0;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#999;strokeWidth=0.5;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="135.5" y="65" as="sourcePoint"/>
              <mxPoint x="135.5" y="1140" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:i1" label="createAgentRun — input, optional conversationId" mermaidId="i1" mermaidKind="message">
          <mxCell parent="1" source="n:App" target="n:Routes" edge="1" style="edgeStyle=none;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;strokeWidth=2;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="142.5" y="115" as="sourcePoint"/>
              <mxPoint x="571.5" y="115" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:i2" label="concurrency + monthly spend checks" mermaidId="i2" mermaidKind="message">
          <mxCell parent="1" source="n:Routes" target="n:Admit" edge="1" style="edgeStyle=none;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;strokeWidth=2;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="582.5" y="165" as="sourcePoint"/>
              <mxPoint x="979.5" y="165" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:i3" label="admitted (else 429 or 402)" mermaidId="i3" mermaidKind="message">
          <mxCell parent="1" source="n:Admit" target="n:Routes" edge="1" style="dashed=1;dashPattern=3  3;edgeStyle=none;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;strokeWidth=2;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="988.5" y="215" as="sourcePoint"/>
              <mxPoint x="579.5" y="215" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:i4" label="commit queued agent_runs row, then enqueue job" mermaidId="i4" mermaidKind="message">
          <mxCell parent="1" source="n:Routes" target="n:Exec" edge="1" style="edgeStyle=none;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;strokeWidth=2;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="582.5" y="265" as="sourcePoint"/>
              <mxPoint x="1321" y="265" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:i5" label="202 runId, status queued, stream URL" mermaidId="i5" mermaidKind="message">
          <mxCell parent="1" source="n:Routes" target="n:App" edge="1" style="dashed=1;dashPattern=3  3;edgeStyle=none;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;strokeWidth=2;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="580.5" y="315" as="sourcePoint"/>
              <mxPoint x="139.5" y="315" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:i6" label="worker claims the run" mermaidId="i6" mermaidKind="message">
          <mxCell parent="1" source="n:Exec" target="n:Runner" edge="1" style="edgeStyle=none;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;strokeWidth=2;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1332" y="365" as="sourcePoint"/>
              <mxPoint x="1675" y="365" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:i8" label="single-step generation with the locked toolset" mermaidId="i8" mermaidKind="message">
          <mxCell parent="1" source="n:Runner" target="n:Chat" edge="1" style="edgeStyle=none;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;strokeWidth=2;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1686" y="460" as="sourcePoint"/>
              <mxPoint x="2090" y="460" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:i9" label="text or tool calls" mermaidId="i9" mermaidKind="message">
          <mxCell parent="1" source="n:Chat" target="n:Runner" edge="1" style="dashed=1;dashPattern=3  3;edgeStyle=none;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;strokeWidth=2;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="2099" y="510" as="sourcePoint"/>
              <mxPoint x="1683" y="510" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:i10" label="execute tool under scope + lock checks" mermaidId="i10" mermaidKind="message">
          <mxCell parent="1" source="n:Runner" target="n:Tools" edge="1" style="edgeStyle=none;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;strokeWidth=2;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1686" y="560" as="sourcePoint"/>
              <mxPoint x="2398.5" y="560" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:i11" label="append run_steps, update budgets" mermaidId="i11" mermaidKind="message">
          <mxCell parent="1" source="n:Runner" target="n:Store" edge="1" style="edgeStyle=none;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;strokeWidth=2;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1686" y="610" as="sourcePoint"/>
              <mxPoint x="2811" y="610" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:i13" label="streamRun — replay persisted steps, then poll" mermaidId="i13" mermaidKind="message">
          <mxCell parent="1" source="n:App" target="n:Tail" edge="1" style="edgeStyle=none;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;strokeWidth=2;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="142.5" y="670" as="sourcePoint"/>
              <mxPoint x="3188.5" y="670" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:i15" label="pending run_approvals row, status suspended" mermaidId="i15" mermaidKind="message">
          <mxCell parent="1" source="n:Runner" target="n:Store" edge="1" style="edgeStyle=none;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;strokeWidth=2;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1686" y="765" as="sourcePoint"/>
              <mxPoint x="2811" y="765" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:i16" label="suspended frame, stream closes" mermaidId="i16" mermaidKind="message">
          <mxCell parent="1" source="n:Tail" target="n:App" edge="1" style="dashed=1;dashPattern=3  3;edgeStyle=none;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;strokeWidth=2;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="3197.5" y="815" as="sourcePoint"/>
              <mxPoint x="139.5" y="815" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:i17" label="resolveRunApproval — allow or deny" mermaidId="i17" mermaidKind="message">
          <mxCell parent="1" source="n:App" target="n:Routes" edge="1" style="edgeStyle=none;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;strokeWidth=2;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="142.5" y="865" as="sourcePoint"/>
              <mxPoint x="571.5" y="865" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:i18" label="decision + suspended-to-queued commit together" mermaidId="i18" mermaidKind="message">
          <mxCell parent="1" source="n:Routes" target="n:Exec" edge="1" style="edgeStyle=none;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;strokeWidth=2;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="582.5" y="915" as="sourcePoint"/>
              <mxPoint x="1321" y="915" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:i19" label="resume from the persisted cursor" mermaidId="i19" mermaidKind="message">
          <mxCell parent="1" source="n:Exec" target="n:Runner" edge="1" style="edgeStyle=none;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;strokeWidth=2;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1332" y="965" as="sourcePoint"/>
              <mxPoint x="1675" y="965" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:i21" label="terminal status + output" mermaidId="i21" mermaidKind="message">
          <mxCell parent="1" source="n:Runner" target="n:Store" edge="1" style="edgeStyle=none;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;strokeWidth=2;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1686" y="1060" as="sourcePoint"/>
              <mxPoint x="2811" y="1060" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:i22" label="final frame with text and citations" mermaidId="i22" mermaidKind="message">
          <mxCell parent="1" source="n:Tail" target="n:App" edge="1" style="dashed=1;dashPattern=3  3;edgeStyle=none;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;strokeWidth=2;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="3197.5" y="1110" as="sourcePoint"/>
              <mxPoint x="139.5" y="1110" as="targetPoint"/>
            </mxGeometry>
          </mxCell>
        </object>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
