87 lines
6.9 KiB
XML
87 lines
6.9 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 520" width="720" height="520" font-family="system-ui, sans-serif" font-size="11">
|
|
<defs>
|
|
<marker id="arr" markerWidth="8" markerHeight="6" refX="8" refY="3" orient="auto">
|
|
<path d="M0,0 L8,3 L0,6" fill="none" stroke="#666" stroke-width="1"/>
|
|
</marker>
|
|
</defs>
|
|
<rect width="720" height="520" rx="8" fill="#f8f9fa"/>
|
|
<text x="360" y="24" text-anchor="middle" font-size="14" font-weight="bold" fill="#1a1a2e">Dirigent package architecture</text>
|
|
|
|
<!-- Layer: External Tools (top) -->
|
|
<rect x="20" y="40" width="680" height="70" rx="8" fill="#e8f0fe" stroke="#4285f4" stroke-width="1.5"/>
|
|
<text x="30" y="58" font-size="10" font-weight="600" fill="#4285f4">STANDALONE TOOLS</text>
|
|
<rect x="40" y="66" width="130" height="32" rx="6" fill="#fff" stroke="#4285f4"/>
|
|
<text x="105" y="86" text-anchor="middle" fill="#333" font-weight="600">fermata</text>
|
|
<rect x="200" y="66" width="130" height="32" rx="6" fill="#fff" stroke="#4285f4"/>
|
|
<text x="265" y="86" text-anchor="middle" fill="#333" font-weight="600">dirigate</text>
|
|
<rect x="360" y="66" width="130" height="32" rx="6" fill="#fff" stroke="#4285f4"/>
|
|
<text x="425" y="86" text-anchor="middle" fill="#333" font-weight="600">anth</text>
|
|
<text x="530" y="80" fill="#4285f4" font-size="10" font-style="italic">← own repos, installable</text>
|
|
|
|
<!-- Layer: Orchestration -->
|
|
<rect x="20" y="130" width="680" height="80" rx="8" fill="#fef9e7" stroke="#f0ad4e" stroke-width="1.5"/>
|
|
<text x="30" y="148" font-size="10" font-weight="600" fill="#b9770e">ORCHESTRATION</text>
|
|
<rect x="40" y="158" width="140" height="36" rx="6" fill="#fff" stroke="#f0ad4e"/>
|
|
<text x="110" y="172" text-anchor="middle" fill="#333" font-size="10" font-weight="600">dirigent_core</text>
|
|
<text x="110" y="185" text-anchor="middle" fill="#888" font-size="9">multi-connector runtime</text>
|
|
<rect x="210" y="158" width="140" height="36" rx="6" fill="#fff" stroke="#f0ad4e"/>
|
|
<text x="280" y="172" text-anchor="middle" fill="#333" font-size="10" font-weight="600">dirigent_acp_api</text>
|
|
<text x="280" y="185" text-anchor="middle" fill="#888" font-size="9">ACP server</text>
|
|
<rect x="380" y="158" width="140" height="36" rx="6" fill="#fff" stroke="#f0ad4e"/>
|
|
<text x="450" y="172" text-anchor="middle" fill="#333" font-size="10" font-weight="600">dirigent_taskrunner</text>
|
|
<text x="450" y="185" text-anchor="middle" fill="#888" font-size="9">background tasks</text>
|
|
<rect x="550" y="158" width="140" height="36" rx="6" fill="#fff" stroke="#f0ad4e"/>
|
|
<text x="620" y="172" text-anchor="middle" fill="#333" font-size="10" font-weight="600">dirigent_archivist</text>
|
|
<text x="620" y="185" text-anchor="middle" fill="#888" font-size="9">session archival</text>
|
|
|
|
<!-- Layer: Foundation -->
|
|
<rect x="20" y="230" width="680" height="80" rx="8" fill="#e8f8f0" stroke="#1e8449" stroke-width="1.5"/>
|
|
<text x="30" y="248" font-size="10" font-weight="600" fill="#1e8449">FOUNDATION</text>
|
|
<rect x="40" y="258" width="140" height="36" rx="6" fill="#fff" stroke="#1e8449"/>
|
|
<text x="110" y="272" text-anchor="middle" fill="#333" font-size="10" font-weight="600">dirigent_protocol</text>
|
|
<text x="110" y="285" text-anchor="middle" fill="#888" font-size="9">ACP types + messages</text>
|
|
<rect x="210" y="258" width="140" height="36" rx="6" fill="#fff" stroke="#1e8449"/>
|
|
<text x="280" y="272" text-anchor="middle" fill="#333" font-size="10" font-weight="600">dirigent_tools</text>
|
|
<text x="280" y="285" text-anchor="middle" fill="#888" font-size="9">tool sandbox</text>
|
|
<rect x="380" y="258" width="140" height="36" rx="6" fill="#fff" stroke="#1e8449"/>
|
|
<text x="450" y="272" text-anchor="middle" fill="#333" font-size="10" font-weight="600">dirigent_config</text>
|
|
<text x="450" y="285" text-anchor="middle" fill="#888" font-size="9">configuration</text>
|
|
<rect x="550" y="258" width="140" height="36" rx="6" fill="#fff" stroke="#1e8449"/>
|
|
<text x="620" y="272" text-anchor="middle" fill="#333" font-size="10" font-weight="600">dirigent_auth</text>
|
|
<text x="620" y="285" text-anchor="middle" fill="#888" font-size="9">authorization</text>
|
|
|
|
<!-- Layer: Integrations -->
|
|
<rect x="20" y="330" width="680" height="80" rx="8" fill="#f3e8fd" stroke="#8e44ad" stroke-width="1.5"/>
|
|
<text x="30" y="348" font-size="10" font-weight="600" fill="#8e44ad">INTEGRATIONS</text>
|
|
<rect x="40" y="358" width="100" height="36" rx="6" fill="#fff" stroke="#8e44ad"/>
|
|
<text x="90" y="372" text-anchor="middle" fill="#333" font-size="10" font-weight="600">matrix</text>
|
|
<text x="90" y="385" text-anchor="middle" fill="#888" font-size="9">session sharing</text>
|
|
<rect x="160" y="358" width="100" height="36" rx="6" fill="#fff" stroke="#8e44ad"/>
|
|
<text x="210" y="372" text-anchor="middle" fill="#333" font-size="10" font-weight="600">langfuse</text>
|
|
<text x="210" y="385" text-anchor="middle" fill="#888" font-size="9">observability</text>
|
|
<rect x="280" y="358" width="100" height="36" rx="6" fill="#fff" stroke="#8e44ad"/>
|
|
<text x="330" y="372" text-anchor="middle" fill="#333" font-size="10" font-weight="600">zed</text>
|
|
<text x="330" y="385" text-anchor="middle" fill="#888" font-size="9">editor</text>
|
|
|
|
<!-- Layer: Parsers -->
|
|
<rect x="20" y="430" width="680" height="70" rx="8" fill="#fdecea" stroke="#c0392b" stroke-width="1.5" stroke-dasharray="6,3"/>
|
|
<text x="30" y="448" font-size="10" font-weight="600" fill="#c0392b">PARSERS (third-party format readers)</text>
|
|
<rect x="40" y="458" width="120" height="30" rx="6" fill="#fff" stroke="#c0392b" stroke-dasharray="4,2"/>
|
|
<text x="100" y="477" text-anchor="middle" fill="#333" font-size="10">opencode_client</text>
|
|
<rect x="180" y="458" width="120" height="30" rx="6" fill="#fff" stroke="#c0392b" stroke-dasharray="4,2"/>
|
|
<text x="240" y="477" text-anchor="middle" fill="#333" font-size="10">dirigent_chatgpt</text>
|
|
<rect x="320" y="458" width="120" height="30" rx="6" fill="#fff" stroke="#c0392b" stroke-dasharray="4,2"/>
|
|
<text x="380" y="477" text-anchor="middle" fill="#333" font-size="10">dirigent_codex</text>
|
|
<rect x="460" y="458" width="120" height="30" rx="6" fill="#fff" stroke="#c0392b" stroke-dasharray="4,2"/>
|
|
<text x="520" y="477" text-anchor="middle" fill="#333" font-size="10">dirigent_inspector</text>
|
|
|
|
<!-- Dependency arrows -->
|
|
<line x1="105" y1="98" x2="110" y2="158" stroke="#666" stroke-width="1" marker-end="url(#arr)"/>
|
|
<line x1="265" y1="98" x2="110" y2="158" stroke="#666" stroke-width="1" marker-end="url(#arr)"/>
|
|
<line x1="265" y1="98" x2="280" y2="158" stroke="#666" stroke-width="1" marker-end="url(#arr)"/>
|
|
<line x1="110" y1="194" x2="110" y2="258" stroke="#666" stroke-width="1" marker-end="url(#arr)"/>
|
|
<line x1="110" y1="194" x2="280" y2="258" stroke="#666" stroke-width="1" marker-end="url(#arr)"/>
|
|
<line x1="280" y1="194" x2="110" y2="258" stroke="#666" stroke-width="1" marker-end="url(#arr)"/>
|
|
<line x1="450" y1="194" x2="450" y2="258" stroke="#666" stroke-width="1" marker-end="url(#arr)"/>
|
|
</svg>
|