<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="eli.ai" agent="eli.ai diagram exporter" version="1">
  <diagram id="intake-connect-and-ingest-98d98cb8" name="Intake — connect and ingest">
    <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="Intake — connect and ingest" schemaVersion="1" diagramId="intake-connect-and-ingest-98d98cb8" canonicalAppearanceKey="tsx:src/app/(docs)/docs/concepts/system-diagrams/page.tsx:INTAKE_CHART#1" sourceSha256="98d98cb8b75042b0195fab5ad998bd0804f6e9ad5add341e71b3eaa7ca95b21e" metadataPayloadSha256="c9615427ae6b8b04b9d327b83168a6faaedb5c5d38111ffbb8ed8062d73070e7" generationKey="2474867a7d6be348bdec9eea2694364c71767ca81ec2bb63febfc37cafac6cf5" concepts="[&quot;System diagrams&quot;,&quot;Ingest + index&quot;,&quot;Intake — connect and ingest&quot;,&quot;Sync + normalize · worker&quot;,&quot;Inputs&quot;,&quot;Intake&quot;]" keywords="[&quot;REST API · UI · schedule&quot;,&quot;connector_source types&quot;,&quot;upsert by (source_id, external_id)&quot;,&quot;documents + document_revisions&quot;,&quot;Confluence · SharePoint&quot;,&quot;Slack · Markdown upload&quot;,&quot;normalize →&quot;,&quot;contentHash /&quot;,&quot;sourceVersion changed?&quot;,&quot;embedChunks → embedMany&quot;,&quot;batch of 64&quot;,&quot;enqueue SyncJob&quot;,&quot;start / finish ledger&quot;,&quot;await idempotent ingest&quot;,&quot;unchanged, live&quot;,&quot;chunks + tsvector&quot;,&quot;pgvector rows&quot;,&quot;enqueueExtract · chunks&quot;,&quot;tsvector FTS&quot;,&quot;vector kNN&quot;,&quot;Manual edit · bulk import · binary upload&quot;,&quot;saveDocument · importMany · normalize&quot;,&quot;per-source DB advisory lock&quot;,&quot;all sync kinds / all workers&quot;,&quot;syncWithConnector · drainCrawl&quot;,&quot;fullLoad / poll → DocBatch&quot;,&quot;skip re-chunk / re-embed&quot;,&quot;chunkMarkdown → persistChunks&quot;,&quot;Atlas · entity extraction&quot;,&quot;Lens · hybrid FTS + vector&quot;,&quot;confirmed page → checkpoint&quot;,&quot;sync_state&quot;,&quot;acl_principals&quot;,&quot;chunk_embeddings&quot;,&quot;embedding_spaces&quot;,&quot;/api/v1/connectors&quot;,&quot;id/sync&quot;,&quot;NormalizedDocument&quot;,&quot;ingestConnectorDocument&quot;,&quot;GIN&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:39:30.559Z" mermaidSource="flowchart TD&#10;  subgraph INP[&quot;Inputs&quot;]&#10;    CONN[&quot;Confluence · SharePoint&lt;br/&gt;Slack · Markdown upload&lt;br/&gt;connector_source types&quot;]&#10;    API([&quot;REST API · UI · schedule&lt;br/&gt;/api/v1/connectors/:id/sync&quot;])&#10;    VAULT([&quot;Manual edit · bulk import · binary upload&lt;br/&gt;saveDocument · importMany · normalize&quot;])&#10;  end&#10;&#10;  subgraph SY[&quot;Sync + normalize · worker&quot;]&#10;    LOCK[&quot;per-source DB advisory lock&lt;br/&gt;all sync kinds / all workers&quot;]&#10;    SYNC[&quot;syncWithConnector · drainCrawl&lt;br/&gt;fullLoad / poll → DocBatch&quot;]&#10;    NORM[&quot;normalize →&lt;br/&gt;NormalizedDocument&quot;]&#10;  end&#10;&#10;  subgraph IG[&quot;Ingest + index&quot;]&#10;    INGEST[&quot;ingestConnectorDocument&lt;br/&gt;upsert by (source_id, external_id)&quot;]&#10;    HASH{&quot;contentHash /&lt;br/&gt;sourceVersion changed?&quot;}&#10;    SKIP[&quot;skip re-chunk / re-embed&quot;]&#10;    CHUNK[&quot;chunkMarkdown → persistChunks&quot;]&#10;    EMBED[&quot;embedChunks → embedMany&lt;br/&gt;batch of 64&quot;]&#10;  end&#10;&#10;  subgraph ST[&quot;Stores · FORCE-RLS&quot;]&#10;    BOOK[(&quot;connector_sources (sync_state)&lt;br/&gt;sync_runs ledger&quot;)]&#10;    DOC[(&quot;documents + document_revisions&lt;br/&gt;acl_principals&quot;)]&#10;    CH[(&quot;chunks + tsv FTS (GIN)&quot;)]&#10;    EMB[(&quot;chunk_embeddings&lt;br/&gt;embedding_spaces&quot;)]&#10;  end&#10;&#10;  ATLAS([&quot;Atlas · entity extraction&quot;])&#10;  LENS([&quot;Lens · hybrid FTS + vector&quot;])&#10;&#10;  CONN --&gt;|&quot;buildConnector&quot;| SYNC&#10;  API -.-&gt;|&quot;enqueue SyncJob&quot;| LOCK&#10;  LOCK --&gt; SYNC&#10;  SYNC --&gt;|&quot;DocBatch&quot;| NORM&#10;  SYNC -.-&gt;|&quot;start / finish ledger&quot;| BOOK&#10;  NORM --&gt;|&quot;await idempotent ingest&quot;| INGEST&#10;  INGEST --&gt;|&quot;upsert&quot;| DOC&#10;  INGEST --&gt;|&quot;confirmed page → checkpoint&quot;| BOOK&#10;  INGEST --&gt; HASH&#10;  HASH -.-&gt;|&quot;unchanged, live&quot;| SKIP&#10;  HASH --&gt;|&quot;changed&quot;| CHUNK&#10;  VAULT --&gt;|&quot;persistChunks&quot;| CHUNK&#10;  VAULT --&gt;|&quot;upsert&quot;| DOC&#10;  CHUNK --&gt;|&quot;chunks + tsvector&quot;| CH&#10;  CH -.-&gt;|&quot;enqueueEmbed&quot;| EMBED&#10;  EMBED --&gt;|&quot;pgvector rows&quot;| EMB&#10;  CH -.-&gt;|&quot;enqueueExtract · chunks&quot;| ATLAS&#10;  CH --&gt;|&quot;tsvector FTS&quot;| LENS&#10;  EMB --&gt;|&quot;vector kNN&quot;| LENS">
          <mxCell parent="0"/>
        </object>
        <object id="c:ST" label="Stores · FORCE-RLS" mermaidId="ST" 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="18.5" y="1499.515625" width="912.05603" height="560.583153" as="geometry"/>
          </mxCell>
        </object>
        <object id="c:IG" label="Ingest + index" mermaidId="IG" 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="1197.395874" y="790" width="998.210938" height="1066.849869" as="geometry"/>
          </mxCell>
        </object>
        <object id="c:SY" label="Sync + normalize · worker" mermaidId="SY" 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="242" width="1233.365082" height="474" as="geometry"/>
          </mxCell>
        </object>
        <object id="c:INP" label="Inputs" mermaidId="INP" 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="12.695313" y="8" width="2166.650208" height="160" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:CONN" label="Confluence · SharePointSlack · Markdown uploadconnector_source types" mermaidId="CONN" mermaidShape="rectangle">
          <mxCell parent="c:INP" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="35" y="30" width="246.609375" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:API" label="REST API · UI · schedule/api/v1/connectors/:id/sync" mermaidId="API" mermaidShape="stadium">
          <mxCell parent="c:INP" vertex="1" style="arcSize=50;fillColor=#ECECFF;fontColor=#333333;html=1;rounded=1;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="935.518796" y="49" width="236.01502" height="62" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:VAULT" label="Manual edit · bulk import · binary uploadsaveDocument · importMany · normalize" mermaidId="VAULT" mermaidShape="stadium">
          <mxCell parent="c:INP" vertex="1" style="arcSize=50;fillColor=#ECECFF;fontColor=#333333;html=1;rounded=1;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="1857.824981" y="25" width="241.443484" height="110" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:LOCK" label="per-source DB advisory lockall sync kinds / all workers" mermaidId="LOCK" mermaidShape="rectangle">
          <mxCell parent="c:SY" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="930.221619" y="25" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:SYNC" label="syncWithConnector · drainCrawlfullLoad / poll → DocBatch" mermaidId="SYNC" mermaidShape="rectangle">
          <mxCell parent="c:SY" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="66.516968" y="175" width="256" height="124" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:NORM" label="normalize →NormalizedDocument" mermaidId="NORM" mermaidShape="rectangle">
          <mxCell parent="c:SY" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="978.193207" y="373" width="220.171875" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:INGEST" label="ingestConnectorDocumentupsert by (source_id, external_id)" mermaidId="INGEST" mermaidShape="rectangle">
          <mxCell parent="c:IG" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="396.451782" y="25" width="259.53125" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:HASH" label="contentHash /sourceVersion changed?" mermaidId="HASH" mermaidShape="diamond">
          <mxCell parent="c:IG" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;perimeter=rhombusPerimeter;shape=rhombus;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="375.195313" y="199" width="262.515625" height="262.515625" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:SKIP" label="skip re-chunk / re-embed" mermaidId="SKIP" mermaidShape="rectangle">
          <mxCell parent="c:IG" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="35" y="571.515625" width="249.625" height="52" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:CHUNK" label="chunkMarkdown → persistChunks" mermaidId="CHUNK" mermaidShape="rectangle">
          <mxCell parent="c:IG" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="707.210938" y="559.515625" width="256" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:EMBED" label="embedChunks → embedManybatch of 64" mermaidId="EMBED" mermaidShape="rectangle">
          <mxCell parent="c:IG" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="371.105469" y="941.849869" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:BOOK" label="connector_sources (sync_state)sync_runs ledger" mermaidId="BOOK" mermaidShape="cylinder">
          <mxCell parent="c:ST" 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.994556" width="214" height="133.345133" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:DOC" label="documents + document_revisionsacl_principals" mermaidId="DOC" mermaidShape="cylinder">
          <mxCell parent="c:ST" vertex="1" style="backgroundOutline=1;boundedLbl=1;fillColor=#ECECFF;fontColor=#333333;html=1;shape=cylinder3;size=15;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="300.516968" y="24.994556" width="214" height="133.345133" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:CH" label="chunks + tsv FTS (GIN)" mermaidId="CH" mermaidShape="cylinder">
          <mxCell parent="c:ST" vertex="1" style="backgroundOutline=1;boundedLbl=1;fillColor=#ECECFF;fontColor=#333333;html=1;shape=cylinder3;size=15;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="564.516968" y="50.055459" width="189.84375" height="83.223325" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:EMB" label="chunk_embeddingsembedding_spaces" mermaidId="EMB" mermaidShape="cylinder">
          <mxCell parent="c:ST" vertex="1" style="backgroundOutline=1;boundedLbl=1;fillColor=#ECECFF;fontColor=#333333;html=1;shape=cylinder3;size=15;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="411.925781" y="431.334244" width="161.25" height="104.248908" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:ATLAS" label="Atlas · entity extraction" mermaidId="ATLAS" mermaidShape="stadium">
          <mxCell parent="1" vertex="1" style="arcSize=50;fillColor=#ECECFF;fontColor=#333333;html=1;rounded=1;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="965.556027" y="1762.849869" width="196.839851" height="38" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:LENS" label="Lens · hybrid FTS + vector" mermaidId="LENS" mermaidShape="stadium">
          <mxCell parent="1" vertex="1" style="arcSize=50;fillColor=#ECECFF;fontColor=#333333;html=1;rounded=1;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="273.966793" y="2134.098778" width="223.277351" height="38" as="geometry"/>
          </mxCell>
        </object>
        <object id="e:L_CONN_SYNC_0" label="buildConnector" mermaidId="L_CONN_SYNC_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:CONN" target="n:SYNC" 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="171" y="138" as="sourcePoint"/>
              <mxPoint x="180.0566" y="417" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="171" y="168"/>
                <mxPoint x="171" y="205"/>
                <mxPoint x="171" y="242"/>
                <mxPoint x="171" y="317"/>
                <mxPoint x="171" y="392"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_API_LOCK_0" label="enqueue SyncJob" mermaidId="L_API_LOCK_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:API" 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="1066.721619" y="119.5" as="sourcePoint"/>
              <mxPoint x="1066.221619" y="267" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1066.221619" y="168"/>
                <mxPoint x="1066.221619" y="205"/>
                <mxPoint x="1066.221619" y="242"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_LOCK_SYNC_0" label="" mermaidId="L_LOCK_SYNC_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:LOCK" target="n:SYNC" 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="1066.221619" y="367" as="sourcePoint"/>
              <mxPoint x="330.516968" y="466.106704" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1066.221619" y="392"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_SYNC_NORM_0" label="DocBatch" mermaidId="L_SYNC_NORM_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:SYNC" target="n:NORM" 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="330.516968" y="493.178268" as="sourcePoint"/>
              <mxPoint x="1096.279144" y="615" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1096.279144" y="578"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_SYNC_BOOK_0" label="start / finish ledger" mermaidId="L_SYNC_BOOK_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:SYNC" target="n:BOOK" 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="176.203311" y="541" as="sourcePoint"/>
              <mxPoint x="160.5" y="1524.515625" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="160.5" y="578"/>
                <mxPoint x="160.5" y="653"/>
                <mxPoint x="160.5" y="716"/>
                <mxPoint x="160.5" y="753"/>
                <mxPoint x="160.5" y="790"/>
                <mxPoint x="160.5" y="865"/>
                <mxPoint x="160.5" y="952"/>
                <mxPoint x="160.5" y="1120.257813"/>
                <mxPoint x="160.5" y="1300.515625"/>
                <mxPoint x="160.5" y="1387.515625"/>
                <mxPoint x="160.5" y="1462.515625"/>
                <mxPoint x="160.5" y="1499.515625"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_NORM_INGEST_0" label="await idempotent ingest" mermaidId="L_NORM_INGEST_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:NORM" target="n:INGEST" 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="1096.279144" y="691" as="sourcePoint"/>
              <mxPoint x="1723.613281" y="815" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1096.279144" y="716"/>
                <mxPoint x="1723.613281" y="753"/>
                <mxPoint x="1723.613281" y="790"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_INGEST_DOC_0" label="upsert" mermaidId="L_INGEST_DOC_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:INGEST" target="n:DOC" 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="1807.517609" y="915" as="sourcePoint"/>
              <mxPoint x="533.016968" y="1584.388309" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1869.606812" y="952"/>
                <mxPoint x="1869.606812" y="1120.257813"/>
                <mxPoint x="1869.606812" y="1300.515625"/>
                <mxPoint x="1869.606812" y="1387.515625"/>
                <mxPoint x="1869.606812" y="1462.515625"/>
                <mxPoint x="1869.606812" y="1499.515625"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_INGEST_BOOK_0" label="confirmed page → checkpoint" mermaidId="L_INGEST_BOOK_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:INGEST" target="n:BOOK" 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="1616.416675" y="915" as="sourcePoint"/>
              <mxPoint x="267.5" y="1584.057624" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1537.091187" y="952"/>
                <mxPoint x="1537.091187" y="1120.257813"/>
                <mxPoint x="1537.091187" y="1300.515625"/>
                <mxPoint x="1537.091187" y="1387.515625"/>
                <mxPoint x="1537.091187" y="1462.515625"/>
                <mxPoint x="1537.091187" y="1499.515625"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_INGEST_HASH_0" label="" mermaidId="L_INGEST_HASH_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:INGEST" target="n:HASH" 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="1711.967142" y="915" as="sourcePoint"/>
              <mxPoint x="1703.348999" y="989" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1703.348999" y="952"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_HASH_SKIP_0" label="unchanged, live" mermaidId="L_HASH_SKIP_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:HASH" target="n:SKIP" 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="1617.038596" y="1165.205222" as="sourcePoint"/>
              <mxPoint x="1357.208374" y="1361.515625" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1357.208374" y="1300.515625"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_HASH_CHUNK_0" label="changed" mermaidId="L_HASH_CHUNK_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:HASH" target="n:CHUNK" 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="1783.904303" y="1170.960321" as="sourcePoint"/>
              <mxPoint x="2013.883212" y="1349.515625" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1989.739624" y="1300.515625"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_VAULT_CHUNK_0" label="persistChunks" mermaidId="L_VAULT_CHUNK_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:VAULT" target="n:CHUNK" 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="2038.396383" y="143.5" as="sourcePoint"/>
              <mxPoint x="2044.179818" y="1349.515625" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="2059.102905" y="168"/>
                <mxPoint x="2059.102905" y="205"/>
                <mxPoint x="2059.102905" y="242"/>
                <mxPoint x="2059.102905" y="317"/>
                <mxPoint x="2059.102905" y="392"/>
                <mxPoint x="2059.102905" y="479"/>
                <mxPoint x="2059.102905" y="578"/>
                <mxPoint x="2059.102905" y="653"/>
                <mxPoint x="2059.102905" y="716"/>
                <mxPoint x="2059.102905" y="753"/>
                <mxPoint x="2059.102905" y="790"/>
                <mxPoint x="2059.102905" y="865"/>
                <mxPoint x="2059.102905" y="952"/>
                <mxPoint x="2059.102905" y="1120.257813"/>
                <mxPoint x="2059.102905" y="1300.515625"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_VAULT_DOC_0" label="upsert" mermaidId="L_VAULT_DOC_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:VAULT" target="n:DOC" 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="1872.955879" y="102.969044" as="sourcePoint"/>
              <mxPoint x="426.016968" y="1524.515625" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1334.467987" y="168"/>
                <mxPoint x="1334.467987" y="205"/>
                <mxPoint x="1334.467987" y="242"/>
                <mxPoint x="1334.467987" y="317"/>
                <mxPoint x="1334.467987" y="392"/>
                <mxPoint x="1334.467987" y="479"/>
                <mxPoint x="1334.467987" y="578"/>
                <mxPoint x="1334.467987" y="653"/>
                <mxPoint x="1334.467987" y="716"/>
                <mxPoint x="426.016968" y="753"/>
                <mxPoint x="426.016968" y="790"/>
                <mxPoint x="426.016968" y="865"/>
                <mxPoint x="426.016968" y="952"/>
                <mxPoint x="426.016968" y="1120.257813"/>
                <mxPoint x="426.016968" y="1300.515625"/>
                <mxPoint x="426.016968" y="1387.515625"/>
                <mxPoint x="426.016968" y="1462.515625"/>
                <mxPoint x="426.016968" y="1499.515625"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_CHUNK_CH_0" label="chunks + tsvector" mermaidId="L_CHUNK_CH_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:CHUNK" target="n:CH" 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="2032.606812" y="1425.515625" as="sourcePoint"/>
              <mxPoint x="772.860718" y="1584.759612" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="2032.606812" y="1462.515625"/>
                <mxPoint x="2032.606812" y="1499.515625"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_CH_EMBED_0" label="enqueueEmbed" mermaidId="L_CH_EMBED_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:CH" target="n:EMBED" 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="747.483989" y="1627.979606" as="sourcePoint"/>
              <mxPoint x="1568.501343" y="1768.675921" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="851.196655" y="1694.849869"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_EMBED_EMB_0" label="pgvector rows" mermaidId="L_EMBED_EMB_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:EMBED" target="n:EMB" 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="1696.501343" y="1831.849869" as="sourcePoint"/>
              <mxPoint x="511.050781" y="1930.849869" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1696.501343" y="1856.849869"/>
                <mxPoint x="511.050781" y="1893.849869"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_CH_ATLAS_0" label="enqueueExtract · chunks" mermaidId="L_CH_ATLAS_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:CH" target="n:ATLAS" 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="677.938843" y="1632.794407" as="sourcePoint"/>
              <mxPoint x="981.594433" y="1763.671115" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="677.938843" y="1694.849869"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_CH_LENS_0" label="tsvector FTS" mermaidId="L_CH_LENS_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:CH" target="n:LENS" 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="583.016968" y="1603.948911" as="sourcePoint"/>
              <mxPoint x="365.36928" y="2134.598778" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="324.488281" y="1694.849869"/>
                <mxPoint x="324.488281" y="1781.849869"/>
                <mxPoint x="324.488281" y="1856.849869"/>
                <mxPoint x="324.488281" y="1893.849869"/>
                <mxPoint x="324.488281" y="1982.974323"/>
                <mxPoint x="324.488281" y="2060.098778"/>
                <mxPoint x="324.488281" y="2097.098778"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_EMB_LENS_0" label="vector kNN" mermaidId="L_EMB_LENS_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:EMB" target="n:LENS" 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="511.050781" y="2035.098778" as="sourcePoint"/>
              <mxPoint x="428.667271" y="2134.598778" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="511.050781" y="2060.098778"/>
                <mxPoint x="511.050781" y="2097.098778"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
