<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="eli.ai" agent="eli.ai diagram exporter" version="1">
  <diagram id="ai-platform-detailed-system-view-d5ad756d" name="AI platform — detailed system view">
    <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="AI platform — detailed system view" schemaVersion="1" diagramId="ai-platform-detailed-system-view-d5ad756d" canonicalAppearanceKey="md:docs/architecture/workspace/04-ai-platform.md#2" sourceSha256="d5ad756d4b1c053321795ef9417f7af73625cc84989c1ff661ef0796a725f132" metadataPayloadSha256="86098ecb3944e0da67716c4b68c3908b3f17d968e488d8b2edf3d698611e958b" generationKey="f515dce1f2a643568333757f7cca1c6b11f3f822137db7b691e96542111b84e8" concepts="[&quot;AI platform&quot;,&quot;Core AI libs (lib/ai)&quot;,&quot;Chat system&quot;,&quot;Digest system&quot;,&quot;Key management&quot;,&quot;Settings + usage UI&quot;,&quot;Feature routes (app/api/ai)&quot;,&quot;External + sibling clusters&quot;,&quot;v1 facade (app/v1)&quot;]" keywords="[&quot;SSE re-encode, eli_ extensions&quot;,&quot;CRON_SECRET, fan-out&quot;,&quot;ai_keys_decrypt RPC&quot;,&quot;Bearer CRON_SECRET&quot;,&quot;tier registry + EMBEDDING_DIMS&quot;,&quot;vault ToolSet + ai.tool.* audit&quot;,&quot;HIPAA, no-training&quot;,&quot;tier key resolution&quot;,&quot;stream, fast&quot;,&quot;fast, 5 actions&quot;,&quot;smart, task notes&quot;,&quot;stream, smart&quot;,&quot;non-streaming RAG&quot;,&quot;UI-message stream&quot;,&quot;history fetch&quot;,&quot;threads + messages&quot;,&quot;pure markdown builder&quot;,&quot;runDigest upsert&quot;,&quot;embedTexts delegate&quot;,&quot;pgcrypto RPCs&quot;,&quot;KMS rotation&quot;,&quot;Vercel AI Gateway&quot;,&quot;getStorage() adapters&quot;,&quot;PAT auth + rate limit&quot;,&quot;Vercel Cron&quot;,&quot;no provider param&quot;,&quot;RAG discovery&quot;,&quot;read/write notes&quot;,&quot;PAT verify&quot;,&quot;persisted order+sort loader&quot;,&quot;metering + read-time cost&quot;,&quot;fast, frontmatter persist&quot;,&quot;hybridSearch + chunkText + embedTexts&quot;,&quot;resolveAiKey (no provider param)&quot;,&quot;gateway options per call&quot;,&quot;draft/route.ts&quot;,&quot;summarize/route.ts&quot;,&quot;transform/route.ts&quot;,&quot;research/route.ts&quot;,&quot;extract-tasks/route.ts&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="LR" generatedAt="2026-08-12T23:36:32.642Z" mermaidSource="flowchart LR&#10;  subgraph sgCore[&quot;Core AI libs (lib/ai)&quot;]&#10;    reg[&quot;models.ts&lt;br/&gt;tier registry + EMBEDDING_DIMS&quot;]&#10;    gwo[&quot;gateway-opts.ts&lt;br/&gt;order/sort/only, HIPAA, no-training&quot;]&#10;    gwc[&quot;gateway-config.ts&lt;br/&gt;persisted order+sort loader&quot;]&#10;    res[&quot;resolver.ts&lt;br/&gt;3-tier key resolution&quot;]&#10;    met[&quot;usage.ts + pricing.ts&lt;br/&gt;metering + read-time cost&quot;]&#10;    tls[&quot;tools.ts + audit.ts&lt;br/&gt;vault ToolSet + ai.tool.* audit&quot;]&#10;  end&#10;  subgraph sgRoutes[&quot;Feature routes (app/api/ai)&quot;]&#10;    drf[&quot;draft/route.ts&lt;br/&gt;stream, fast&quot;]&#10;    smz[&quot;summarize/route.ts&lt;br/&gt;fast, frontmatter persist&quot;]&#10;    trf[&quot;transform/route.ts&lt;br/&gt;fast, 5 actions&quot;]&#10;    rsc[&quot;research/route.ts&lt;br/&gt;map-reduce&quot;]&#10;    exr[&quot;extract-tasks/route.ts&lt;br/&gt;smart, task notes&quot;]&#10;    cnt[&quot;continue/route.ts&lt;br/&gt;stream, smart&quot;]&#10;  end&#10;  subgraph sgChat[&quot;Chat system&quot;]&#10;    cht[&quot;chat/route.ts&lt;br/&gt;non-streaming RAG&quot;]&#10;    chs[&quot;chat/stream/route.ts&lt;br/&gt;UI-message stream&quot;]&#10;    chm[&quot;chat/messages/route.ts&lt;br/&gt;history fetch&quot;]&#10;    cst[&quot;lib/chat/storage.ts&lt;br/&gt;threads + messages&quot;]&#10;    vch[&quot;vault-chat.tsx&lt;br/&gt;/chat + /w/[ws]/chat&quot;]&#10;  end&#10;  subgraph sgDigest[&quot;Digest system&quot;]&#10;    dgb[&quot;digest.ts&lt;br/&gt;pure markdown builder&quot;]&#10;    dgr[&quot;digest-runner.ts&lt;br/&gt;runDigest upsert&quot;]&#10;    dgc[&quot;api/cron/digest/route.ts&lt;br/&gt;CRON_SECRET, fan-out&quot;]&#10;    dga[&quot;_actions/digest.ts&lt;br/&gt;+ DigestNowButton&quot;]&#10;  end&#10;  subgraph sgV1[&quot;v1 facade (app/v1)&quot;]&#10;    v1c[&quot;chat/completions/route.ts&lt;br/&gt;SSE re-encode, eli_ extensions&quot;]&#10;    v1e[&quot;embeddings/route.ts&lt;br/&gt;embedTexts delegate&quot;]&#10;    v1m[&quot;models + openapi.json&lt;br/&gt;discovery&quot;]&#10;  end&#10;  subgraph sgKeys[&quot;Key management&quot;]&#10;    ksa[&quot;_actions/ai-keys.ts&lt;br/&gt;SaaS BYOK CRUD + test-key.ts&quot;]&#10;    krpc[&quot;storage/supabase/ai-keys.ts&lt;br/&gt;pgcrypto RPCs&quot;]&#10;    kla[&quot;_actions/ai-key-local.ts&lt;br/&gt;~/.eli/config.json&quot;]&#10;    rot[&quot;scripts/rotate-ai-keys.mjs&lt;br/&gt;KMS rotation&quot;]&#10;  end&#10;  subgraph sgUI[&quot;Settings + usage UI&quot;]&#10;    setp[&quot;/ai-key + /w/[ws]/settings/ai&lt;br/&gt;+ usage cards&quot;]&#10;    gform[&quot;gateway-config-form.tsx&lt;br/&gt;_actions/ai-gateway.ts&quot;]&#10;  end&#10;  subgraph sgExt[&quot;External + sibling clusters&quot;]&#10;    vgw[&quot;Vercel AI Gateway&quot;]&#10;    hs[&quot;hybridSearch + chunkText + embedTexts (C3)&quot;]&#10;    sto[&quot;getStorage() adapters (C1)&quot;]&#10;    sec[&quot;PAT auth + rate limit (C5)&quot;]&#10;    vcr[&quot;Vercel Cron&quot;]&#10;  end&#10;  drf --&gt;|&quot;resolveAiKey&quot;| res&#10;  cht --&gt;|&quot;resolveAiKey&quot;| res&#10;  v1c --&gt;|&quot;resolveAiKey (no provider param)&quot;| res&#10;  res --&gt;|&quot;ai_keys_decrypt RPC&quot;| krpc&#10;  ksa --&gt; krpc&#10;  rot --&gt; krpc&#10;  gwc --&gt; gwo&#10;  gform --&gt;|&quot;save order/sort&quot;| gwc&#10;  gwo --&gt;|&quot;gateway options per call&quot;| vgw&#10;  cht --&gt;|&quot;RAG discovery&quot;| hs&#10;  v1c --&gt; hs&#10;  v1e --&gt; hs&#10;  cht --&gt;|&quot;useTools&quot;| tls&#10;  v1c --&gt;|&quot;eli_use_tools&quot;| tls&#10;  tls --&gt;|&quot;read/write notes&quot;| sto&#10;  cht --&gt; cst&#10;  chm --&gt; cst&#10;  vch --&gt; cht&#10;  drf --&gt;|&quot;recordUsage&quot;| met&#10;  dgr --&gt;|&quot;recordUsage&quot;| met&#10;  setp --&gt;|&quot;rollups&quot;| met&#10;  vcr --&gt;|&quot;Bearer CRON_SECRET&quot;| dgc&#10;  dgc --&gt; dgr&#10;  dga --&gt; dgr&#10;  dgr --&gt; dgb&#10;  dgr --&gt;|&quot;upsert digests/date.md&quot;| sto&#10;  v1c --&gt;|&quot;PAT verify + 60/min&quot;| sec&#10;  classDef libs fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f&#10;  classDef ext fill:#f5f5f5,stroke:#666666,color:#333333&#10;  class reg,gwo,gwc,res,met,tls libs&#10;  class vgw,hs,sto,sec,vcr ext">
          <mxCell parent="0"/>
        </object>
        <object id="c:sgExt" label="External + sibling clusters" mermaidId="sgExt" 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="734" width="2238" height="272" as="geometry"/>
          </mxCell>
        </object>
        <object id="c:sgUI" label="Settings + usage UI" mermaidId="sgUI" 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="397.59375" y="1630" width="306" height="438.5" as="geometry"/>
          </mxCell>
        </object>
        <object id="c:sgKeys" label="Key management" mermaidId="sgKeys" 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="1424.578125" y="2405" width="821.421875" height="411.5" as="geometry"/>
          </mxCell>
        </object>
        <object id="c:sgV1" label="v1 facade (app/v1)" mermaidId="sgV1" 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="868.578125" y="1026" width="306" height="422" as="geometry"/>
          </mxCell>
        </object>
        <object id="c:sgDigest" label="Digest system" mermaidId="sgDigest" 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="397.59375" y="8" width="1332.984375" height="272" as="geometry"/>
          </mxCell>
        </object>
        <object id="c:sgChat" label="Chat system" mermaidId="sgChat" 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="397.59375" y="300" width="1332.984375" height="414" as="geometry"/>
          </mxCell>
        </object>
        <object id="c:sgRoutes" label="Feature routes (app/api/ai)" mermaidId="sgRoutes" 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="868.578125" y="2217.5" width="306" height="776" as="geometry"/>
          </mxCell>
        </object>
        <object id="c:sgCore" label="Core AI libs (lib/ai)" mermaidId="sgCore" 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="868.578125" y="1468" width="862" height="729.5" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:reg" label="models.tstier registry + EMBEDDING_DIMS" mermaidId="reg" mermaidShape="rectangle">
          <mxCell parent="c:sgCore" vertex="1" style="fillColor=#dbeafe !important;fontColor=#333333;html=1;rounded=0;strokeColor=#3b82f6 !important;whiteSpace=wrap;">
            <mxGeometry x="581" y="35" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:gwo" label="gateway-opts.tsorder/sort/only, HIPAA, no-training" mermaidId="gwo" mermaidShape="rectangle">
          <mxCell parent="c:sgCore" vertex="1" style="fillColor=#dbeafe !important;fontColor=#333333;html=1;rounded=0;strokeColor=#3b82f6 !important;whiteSpace=wrap;">
            <mxGeometry x="581" y="185" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:gwc" label="gateway-config.tspersisted order+sort loader" mermaidId="gwc" mermaidShape="rectangle">
          <mxCell parent="c:sgCore" vertex="1" style="fillColor=#dbeafe !important;fontColor=#333333;html=1;rounded=0;strokeColor=#3b82f6 !important;whiteSpace=wrap;">
            <mxGeometry x="25" y="185" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:res" label="resolver.ts3-tier key resolution" mermaidId="res" mermaidShape="rectangle">
          <mxCell parent="c:sgCore" vertex="1" style="fillColor=#dbeafe !important;fontColor=#333333;html=1;rounded=0;strokeColor=#3b82f6 !important;whiteSpace=wrap;">
            <mxGeometry x="605.125" y="611" width="207.75" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:met" label="usage.ts + pricing.tsmetering + read-time cost" mermaidId="met" mermaidShape="rectangle">
          <mxCell parent="c:sgCore" vertex="1" style="fillColor=#dbeafe !important;fontColor=#333333;html=1;rounded=0;strokeColor=#3b82f6 !important;whiteSpace=wrap;">
            <mxGeometry x="582.296875" y="485" width="253.40625" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:tls" label="tools.ts + audit.tsvault ToolSet + ai.tool.* audit" mermaidId="tls" mermaidShape="rectangle">
          <mxCell parent="c:sgCore" vertex="1" style="fillColor=#dbeafe !important;fontColor=#333333;html=1;rounded=0;strokeColor=#3b82f6 !important;whiteSpace=wrap;">
            <mxGeometry x="581" y="335" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:drf" label="draft/route.tsstream, fast" mermaidId="drf" mermaidShape="rectangle">
          <mxCell parent="c:sgRoutes" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="75.734375" y="35" width="154.53125" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:smz" label="summarize/route.tsfast, frontmatter persist" mermaidId="smz" mermaidShape="rectangle">
          <mxCell parent="c:sgRoutes" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="36.140625" y="161" width="233.71875" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:trf" label="transform/route.tsfast, 5 actions" mermaidId="trf" mermaidShape="rectangle">
          <mxCell parent="c:sgRoutes" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="56.703125" y="287" width="192.59375" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:rsc" label="research/route.tsmap-reduce" mermaidId="rsc" mermaidShape="rectangle">
          <mxCell parent="c:sgRoutes" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="60.257813" y="413" width="185.484375" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:exr" label="extract-tasks/route.tssmart, task notes" mermaidId="exr" mermaidShape="rectangle">
          <mxCell parent="c:sgRoutes" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="43.617188" y="539" width="218.765625" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:cnt" label="continue/route.tsstream, smart" mermaidId="cnt" mermaidShape="rectangle">
          <mxCell parent="c:sgRoutes" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="60.671875" y="665" width="184.65625" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:cht" label="chat/route.tsnon-streaming RAG" mermaidId="cht" mermaidShape="rectangle">
          <mxCell parent="c:sgChat" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="521.90625" y="262" width="204.15625" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:chs" label="chat/stream/route.tsUI-message stream" mermaidId="chs" mermaidShape="rectangle">
          <mxCell parent="c:sgChat" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="1075.171875" y="35" width="209.625" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:chm" label="chat/messages/route.tshistory fetch" mermaidId="chm" mermaidShape="rectangle">
          <mxCell parent="c:sgChat" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="506.726563" y="98" width="234.515625" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:cst" label="lib/chat/storage.tsthreads + messages" mermaidId="cst" mermaidShape="rectangle">
          <mxCell parent="c:sgChat" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="1075.203125" y="161" width="209.5625" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:vch" label="vault-chat.tsx/chat + /w/[ws]/chat" mermaidId="vch" mermaidShape="rectangle">
          <mxCell parent="c:sgChat" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="47.703125" y="262" width="210.59375" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:dgb" label="digest.tspure markdown builder" mermaidId="dgb" mermaidShape="rectangle">
          <mxCell parent="c:sgDigest" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="1064.5625" y="35" width="230.84375" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:dgr" label="digest-runner.tsrunDigest upsert" mermaidId="dgr" mermaidShape="rectangle">
          <mxCell parent="c:sgDigest" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="532.875" y="112.5" width="182.21875" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:dgc" label="api/cron/digest/route.tsCRON_SECRET, fan-out" mermaidId="dgc" mermaidShape="rectangle">
          <mxCell parent="c:sgDigest" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="35.140625" y="161" width="235.71875" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:dga" label="_actions/digest.ts+ DigestNowButton" mermaidId="dga" mermaidShape="rectangle">
          <mxCell parent="c:sgDigest" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="51.460938" y="35" width="203.078125" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:v1c" label="chat/completions/route.tsSSE re-encode, eli_ extensions" mermaidId="v1c" mermaidShape="rectangle">
          <mxCell parent="c:sgV1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="25" y="161" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:v1e" label="embeddings/route.tsembedTexts delegate" mermaidId="v1e" mermaidShape="rectangle">
          <mxCell parent="c:sgV1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="43.539063" y="35" width="218.921875" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:v1m" label="models + openapi.jsondiscovery" mermaidId="v1m" mermaidShape="rectangle">
          <mxCell parent="c:sgV1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="39.273438" y="311" width="227.453125" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:ksa" label="_actions/ai-keys.tsSaaS BYOK CRUD + test-key.ts" mermaidId="ksa" mermaidShape="rectangle">
          <mxCell parent="c:sgKeys" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="25" y="167" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:krpc" label="storage/supabase/ai-keys.tspgcrypto RPCs" mermaidId="krpc" mermaidShape="rectangle">
          <mxCell parent="c:sgKeys" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="540.421875" y="150.5" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:kla" label="_actions/ai-key-local.ts~/.eli/config.json" mermaidId="kla" mermaidShape="rectangle">
          <mxCell parent="c:sgKeys" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="552.960938" y="300.5" width="230.921875" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:rot" label="scripts/rotate-ai-keys.mjsKMS rotation" mermaidId="rot" mermaidShape="rectangle">
          <mxCell parent="c:sgKeys" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="27.90625" y="41" width="250.1875" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:setp" label="/ai-key + /w/[ws]/settings/ai+ usage cards" mermaidId="setp" mermaidShape="rectangle">
          <mxCell parent="c:sgUI" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="25" y="303.5" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:gform" label="gateway-config-form.tsx_actions/ai-gateway.ts" mermaidId="gform" mermaidShape="rectangle">
          <mxCell parent="c:sgUI" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="31.078125" y="35" width="243.84375" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:vgw" label="Vercel AI Gateway" mermaidId="vgw" mermaidShape="rectangle">
          <mxCell parent="c:sgExt" vertex="1" style="fillColor=#f5f5f5 !important;fontColor=#333333;html=1;rounded=0;strokeColor=#666666 !important;whiteSpace=wrap;">
            <mxGeometry x="1988.0625" y="47" width="193.875" height="52" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:hs" label="hybridSearch + chunkText + embedTexts (C3)" mermaidId="hs" mermaidShape="rectangle">
          <mxCell parent="c:sgExt" vertex="1" style="fillColor=#f5f5f5 !important;fontColor=#333333;html=1;rounded=0;strokeColor=#666666 !important;whiteSpace=wrap;">
            <mxGeometry x="1441.578125" y="35" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:sto" label="getStorage() adapters (C1)" mermaidId="sto" mermaidShape="rectangle">
          <mxCell parent="c:sgExt" vertex="1" style="fillColor=#f5f5f5 !important;fontColor=#333333;html=1;rounded=0;strokeColor=#666666 !important;whiteSpace=wrap;">
            <mxGeometry x="1957" y="149" width="256" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:sec" label="PAT auth + rate limit (C5)" mermaidId="sec" mermaidShape="rectangle">
          <mxCell parent="c:sgExt" vertex="1" style="fillColor=#f5f5f5 !important;fontColor=#333333;html=1;rounded=0;strokeColor=#666666 !important;whiteSpace=wrap;">
            <mxGeometry x="1447.367188" y="185" width="244.421875" height="52" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:vcr" label="Vercel Cron" mermaidId="vcr" mermaidShape="rectangle">
          <mxCell parent="c:sgExt" vertex="1" style="fillColor=#f5f5f5 !important;fontColor=#333333;html=1;rounded=0;strokeColor=#666666 !important;whiteSpace=wrap;">
            <mxGeometry x="25" y="110" width="144.65625" height="52" as="geometry"/>
          </mxCell>
        </object>
        <object id="e:L_drf_res_0" label="resolveAiKey" mermaidId="L_drf_res_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:drf" target="n:res" 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="1038.603015" y="2328.5" as="sourcePoint"/>
              <mxPoint x="1473.703125" y="2149.927696" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1174.578125" y="2632"/>
                <mxPoint x="1299.578125" y="2165.5"/>
                <mxPoint x="1424.578125" y="2165.5"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_cht_res_0" label="resolveAiKey" mermaidId="L_cht_res_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:cht" target="n:res" 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="1092.480564" y="638" as="sourcePoint"/>
              <mxPoint x="1573.526557" y="2079" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1174.578125" y="682"/>
                <mxPoint x="1299.578125" y="682"/>
                <mxPoint x="1424.578125" y="682"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_v1c_res_0" label="resolveAiKey (no provider param)" mermaidId="L_v1c_res_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:v1c" target="n:res" 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="1094.089973" y="1287" as="sourcePoint"/>
              <mxPoint x="1473.703125" y="2111.908088" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1174.578125" y="1342.5"/>
                <mxPoint x="1299.578125" y="2109.5"/>
                <mxPoint x="1424.578125" y="2109.5"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_res_krpc_0" label="ai_keys_decrypt RPC" mermaidId="L_res_krpc_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:res" target="n:krpc" 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="1681.453125" y="2117" as="sourcePoint"/>
              <mxPoint x="1965" y="2652.21896" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1730.578125" y="2117"/>
                <mxPoint x="1847.789063" y="2695"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_ksa_krpc_0" label="" mermaidId="L_ksa_krpc_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:ksa" target="n:krpc" 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="1705.578125" y="2622" as="sourcePoint"/>
              <mxPoint x="1965" y="2614.112993" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1730.578125" y="2622"/>
                <mxPoint x="1847.789063" y="2622"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_rot_krpc_0" label="" mermaidId="L_rot_krpc_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:rot" target="n:krpc" 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="1702.671875" y="2484" as="sourcePoint"/>
              <mxPoint x="1992.090149" y="2555.5" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1730.578125" y="2484"/>
                <mxPoint x="1847.789063" y="2484"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_gwc_gwo_0" label="" mermaidId="L_gwc_gwo_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:gwc" target="n:gwo" 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="1149.578125" y="1703" as="sourcePoint"/>
              <mxPoint x="1449.578125" y="1703" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1174.578125" y="1703"/>
                <mxPoint x="1299.578125" y="1703"/>
                <mxPoint x="1424.578125" y="1703"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_gform_gwc_0" label="save order/sort" mermaidId="L_gform_gwc_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:gform" target="n:gwc" 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="672.515625" y="1703" as="sourcePoint"/>
              <mxPoint x="893.578125" y="1703" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="703.59375" y="1703"/>
                <mxPoint x="786.085938" y="1703"/>
                <mxPoint x="868.578125" y="1703"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_gwo_vgw_0" label="gateway options per call" mermaidId="L_gwo_vgw_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:gwo" target="n:vgw" 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="1705.578125" y="1703" as="sourcePoint"/>
              <mxPoint x="1996.0625" y="807" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1730.578125" y="1703"/>
                <mxPoint x="1847.789063" y="807"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_cht_hs_0" label="RAG discovery" mermaidId="L_cht_hs_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:cht" target="n:hs" 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="1123.65625" y="595.996936" as="sourcePoint"/>
              <mxPoint x="1543.578125" y="769" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1174.578125" y="594"/>
                <mxPoint x="1299.578125" y="594"/>
                <mxPoint x="1424.578125" y="594"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_v1c_hs_0" label="" mermaidId="L_v1c_hs_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:v1c" target="n:hs" 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="1149.578125" y="1187.640523" as="sourcePoint"/>
              <mxPoint x="1449.578125" y="860.411765" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1174.578125" y="1178"/>
                <mxPoint x="1299.578125" y="868.5"/>
                <mxPoint x="1424.578125" y="868.5"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_v1e_hs_0" label="" mermaidId="L_v1e_hs_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:v1e" target="n:hs" 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="1131.039063" y="1099" as="sourcePoint"/>
              <mxPoint x="1449.578125" y="812.72549" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1174.578125" y="1099"/>
                <mxPoint x="1299.578125" y="811.5"/>
                <mxPoint x="1424.578125" y="811.5"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_cht_tls_0" label="useTools" mermaidId="L_cht_tls_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:cht" target="n:tls" 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="1123.65625" y="625.352737" as="sourcePoint"/>
              <mxPoint x="1571.281829" y="1803" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1174.578125" y="638"/>
                <mxPoint x="1299.578125" y="638"/>
                <mxPoint x="1424.578125" y="638"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_v1c_tls_0" label="eli_use_tools" mermaidId="L_v1c_tls_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:v1c" target="n:tls" 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="1111.051809" y="1287" as="sourcePoint"/>
              <mxPoint x="1449.578125" y="1853" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1174.578125" y="1322.5"/>
                <mxPoint x="1299.578125" y="1853"/>
                <mxPoint x="1424.578125" y="1853"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_tls_sto_0" label="read/write notes" mermaidId="L_tls_sto_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:tls" target="n:sto" 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="1705.578125" y="1853" as="sourcePoint"/>
              <mxPoint x="1965" y="931.700991" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1730.578125" y="1853"/>
                <mxPoint x="1847.789063" y="941.5"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_cht_cst_0" label="" mermaidId="L_cht_cst_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:cht" target="n:cst" 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="1123.65625" y="574.647263" as="sourcePoint"/>
              <mxPoint x="1485.292411" y="537" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1174.578125" y="562"/>
                <mxPoint x="1299.578125" y="562"/>
                <mxPoint x="1424.578125" y="562"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_chm_cst_0" label="" mermaidId="L_chm_cst_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:chm" target="n:cst" 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="1138.835938" y="436" as="sourcePoint"/>
              <mxPoint x="1485.292411" y="461" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1174.578125" y="436"/>
                <mxPoint x="1299.578125" y="436"/>
                <mxPoint x="1424.578125" y="436"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_vch_cht_0" label="" mermaidId="L_vch_cht_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:vch" target="n:cht" 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="655.890625" y="600" as="sourcePoint"/>
              <mxPoint x="919.5" y="600" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="703.59375" y="600"/>
                <mxPoint x="786.085938" y="600"/>
                <mxPoint x="868.578125" y="600"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_drf_met_0" label="recordUsage" mermaidId="L_drf_met_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:drf" target="n:met" 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="1098.84375" y="2282.167433" as="sourcePoint"/>
              <mxPoint x="1450.875" y="2027.023438" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1174.578125" y="2274"/>
                <mxPoint x="1299.578125" y="2034.5"/>
                <mxPoint x="1424.578125" y="2034.5"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_dgr_met_0" label="recordUsage" mermaidId="L_dgr_met_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:dgr" target="n:met" 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="1089.978125" y="196.5" as="sourcePoint"/>
              <mxPoint x="1574.251086" y="1953" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1174.578125" y="243.5"/>
                <mxPoint x="1299.578125" y="243.5"/>
                <mxPoint x="1424.578125" y="243.5"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_setp_met_0" label="rollups" mermaidId="L_setp_met_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:setp" target="n:met" 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="678.59375" y="1983.5" as="sourcePoint"/>
              <mxPoint x="1450.875" y="1984.789063" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="703.59375" y="1983.5"/>
                <mxPoint x="786.085938" y="1983.5"/>
                <mxPoint x="868.578125" y="1983.5"/>
                <mxPoint x="1021.578125" y="1983.5"/>
                <mxPoint x="1174.578125" y="1983.5"/>
                <mxPoint x="1299.578125" y="1983.5"/>
                <mxPoint x="1424.578125" y="1983.5"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_vcr_dgc_0" label="Bearer CRON_SECRET" mermaidId="L_vcr_dgc_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:vcr" target="n:dgc" 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="177.65625" y="870" as="sourcePoint"/>
              <mxPoint x="541.824519" y="245" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="287.625" y="870"/>
                <mxPoint x="397.59375" y="870"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_dgc_dgr_0" label="" mermaidId="L_dgc_dgr_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:dgc" target="n:dgr" 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="668.453125" y="207" as="sourcePoint"/>
              <mxPoint x="930.46875" y="187.381076" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="703.59375" y="207"/>
                <mxPoint x="786.085938" y="207"/>
                <mxPoint x="868.578125" y="207"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_dga_dgr_0" label="" mermaidId="L_dga_dgr_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:dga" target="n:dgr" 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="652.132813" y="81" as="sourcePoint"/>
              <mxPoint x="946.55877" y="120.5" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="703.59375" y="81"/>
                <mxPoint x="786.085938" y="81"/>
                <mxPoint x="868.578125" y="81"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_dgr_dgb_0" label="" mermaidId="L_dgr_dgb_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:dgr" target="n:dgb" 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.59748" y="120.5" as="sourcePoint"/>
              <mxPoint x="1462.15625" y="81" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1174.578125" y="81"/>
                <mxPoint x="1299.578125" y="81"/>
                <mxPoint x="1424.578125" y="81"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_dgr_sto_0" label="upsert digests/date.md" mermaidId="L_dgr_sto_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:dgr" target="n:sto" 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="1112.6875" y="175.173611" as="sourcePoint"/>
              <mxPoint x="1965" y="899.598018" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1174.578125" y="186.5"/>
                <mxPoint x="1299.578125" y="186.5"/>
                <mxPoint x="1424.578125" y="186.5"/>
                <mxPoint x="1577.578125" y="186.5"/>
                <mxPoint x="1730.578125" y="186.5"/>
                <mxPoint x="1847.789063" y="880"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_v1c_sec_0" label="PAT verify + 60/min" mermaidId="L_v1c_sec_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:v1c" target="n:sec" 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="1149.578125" y="1218.176471" as="sourcePoint"/>
              <mxPoint x="1455.367188" y="945" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1174.578125" y="1214.5"/>
                <mxPoint x="1299.578125" y="945"/>
                <mxPoint x="1424.578125" y="945"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
