generalbots/.github/profile/architecture.svg
Rodrigo Rodriguez (Pragmatismo) 037db5c381 feat: Major workspace reorganization and documentation update
- Add comprehensive documentation in botbook/ with 12 chapters
- Add botapp/ Tauri desktop application
- Add botdevice/ IoT device support
- Add botlib/ shared library crate
- Add botmodels/ Python ML models service
- Add botplugin/ browser extension
- Add botserver/ reorganized server code
- Add bottemplates/ bot templates
- Add bottest/ integration tests
- Add botui/ web UI server
- Add CI/CD workflows in .forgejo/workflows/
- Add AGENTS.md and PROD.md documentation
- Add dependency management scripts (DEPENDENCIES.sh/ps1)
- Remove legacy src/ structure and migrations
- Clean up temporary and backup files
2026-04-19 08:14:25 -03:00

174 lines
10 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 600">
<defs>
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#0d1117"/>
<stop offset="100%" style="stop-color:#161b22"/>
</linearGradient>
<linearGradient id="rootGrad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#238636"/>
<stop offset="100%" style="stop-color:#1a7f37"/>
</linearGradient>
<linearGradient id="coreGrad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#1f6feb"/>
<stop offset="100%" style="stop-color:#1958c7"/>
</linearGradient>
<linearGradient id="uiGrad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#a371f7"/>
<stop offset="100%" style="stop-color:#8957e5"/>
</linearGradient>
<linearGradient id="libGrad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#f78166"/>
<stop offset="100%" style="stop-color:#da6d53"/>
</linearGradient>
<linearGradient id="toolGrad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#7ee787"/>
<stop offset="100%" style="stop-color:#56d364"/>
</linearGradient>
<filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
<feDropShadow dx="2" dy="2" stdDeviation="3" flood-opacity="0.3"/>
</filter>
</defs>
<!-- Background -->
<rect width="900" height="600" fill="url(#bgGrad)"/>
<!-- Title -->
<text x="450" y="45" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="28" font-weight="bold" fill="#ffffff">General Bots Architecture</text>
<text x="450" y="70" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#8b949e">Monorepo with Git Submodules</text>
<!-- Root Repository (gb) -->
<g filter="url(#shadow)">
<rect x="350" y="95" width="200" height="60" rx="8" fill="url(#rootGrad)"/>
<text x="450" y="125" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="18" font-weight="bold" fill="#ffffff">gb</text>
<text x="450" y="143" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="11" fill="#d1fae5">Root Repository</text>
</g>
<!-- Connection lines from root -->
<g stroke="#30363d" stroke-width="2">
<!-- To botserver -->
<path d="M 450 155 L 450 180 L 150 180 L 150 210" fill="none"/>
<!-- To botui -->
<path d="M 450 155 L 450 180 L 350 180 L 350 210" fill="none"/>
<!-- To botapp -->
<path d="M 450 155 L 450 180 L 550 180 L 550 210" fill="none"/>
<!-- To botlib -->
<path d="M 450 155 L 450 180 L 750 180 L 750 210" fill="none"/>
</g>
<!-- Core Layer -->
<g filter="url(#shadow)">
<rect x="50" y="210" width="200" height="80" rx="8" fill="url(#coreGrad)"/>
<text x="150" y="245" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="16" font-weight="bold" fill="#ffffff">botserver</text>
<text x="150" y="265" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="11" fill="#a5d6ff">Core API Server</text>
<text x="150" y="280" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="10" fill="#79c0ff">LLM • Automation • API</text>
</g>
<!-- UI Layer -->
<g filter="url(#shadow)">
<rect x="275" y="210" width="150" height="80" rx="8" fill="url(#uiGrad)"/>
<text x="350" y="245" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="16" font-weight="bold" fill="#ffffff">botui</text>
<text x="350" y="265" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="11" fill="#e2d5f7">Pure Web UI</text>
<text x="350" y="280" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="10" fill="#d2a8ff">HTMX • HTML • CSS</text>
</g>
<g filter="url(#shadow)">
<rect x="475" y="210" width="150" height="80" rx="8" fill="url(#uiGrad)"/>
<text x="550" y="245" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="16" font-weight="bold" fill="#ffffff">botapp</text>
<text x="550" y="265" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="11" fill="#e2d5f7">Desktop App</text>
<text x="550" y="280" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="10" fill="#d2a8ff">Tauri • Native</text>
</g>
<!-- Shared Library -->
<g filter="url(#shadow)">
<rect x="650" y="210" width="200" height="80" rx="8" fill="url(#libGrad)"/>
<text x="750" y="245" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="16" font-weight="bold" fill="#ffffff">botlib</text>
<text x="750" y="265" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="11" fill="#ffddd2">Shared Library</text>
<text x="750" y="280" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="10" fill="#ffa28b">Types • Utils • HTTP</text>
</g>
<!-- Connection lines to second row -->
<g stroke="#30363d" stroke-width="2">
<path d="M 150 290 L 150 330" fill="none"/>
<path d="M 350 290 L 350 320 L 150 320 L 150 330" fill="none" stroke-dasharray="5,3"/>
<path d="M 550 290 L 550 320 L 350 320" fill="none" stroke-dasharray="5,3"/>
<path d="M 750 290 L 750 320 L 550 320" fill="none" stroke-dasharray="5,3"/>
</g>
<!-- Second row - Extensions -->
<g filter="url(#shadow)">
<rect x="50" y="330" width="140" height="65" rx="6" fill="url(#toolGrad)"/>
<text x="120" y="360" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" font-weight="bold" fill="#0d1117">botmodels</text>
<text x="120" y="378" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="10" fill="#1a4721">AI Models</text>
</g>
<g filter="url(#shadow)">
<rect x="210" y="330" width="140" height="65" rx="6" fill="url(#toolGrad)"/>
<text x="280" y="360" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" font-weight="bold" fill="#0d1117">botplugin</text>
<text x="280" y="378" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="10" fill="#1a4721">Plugin System</text>
</g>
<g filter="url(#shadow)">
<rect x="370" y="330" width="140" height="65" rx="6" fill="url(#toolGrad)"/>
<text x="440" y="360" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" font-weight="bold" fill="#0d1117">botdevice</text>
<text x="440" y="378" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="10" fill="#1a4721">Device Integration</text>
</g>
<g filter="url(#shadow)">
<rect x="530" y="330" width="140" height="65" rx="6" fill="url(#toolGrad)"/>
<text x="600" y="360" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" font-weight="bold" fill="#0d1117">bottemplates</text>
<text x="600" y="378" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="10" fill="#1a4721">Templates</text>
</g>
<!-- Third row - Support -->
<g filter="url(#shadow)">
<rect x="210" y="420" width="140" height="65" rx="6" fill="#484f58"/>
<text x="280" y="450" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" font-weight="bold" fill="#ffffff">botbook</text>
<text x="280" y="468" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="10" fill="#8b949e">Documentation</text>
</g>
<g filter="url(#shadow)">
<rect x="370" y="420" width="140" height="65" rx="6" fill="#484f58"/>
<text x="440" y="450" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" font-weight="bold" fill="#ffffff">bottest</text>
<text x="440" y="468" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="10" fill="#8b949e">Integration Tests</text>
</g>
<g filter="url(#shadow)">
<rect x="530" y="420" width="140" height="65" rx="6" fill="#484f58"/>
<text x="600" y="450" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="14" font-weight="bold" fill="#ffffff">.github</text>
<text x="600" y="468" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="10" fill="#8b949e">GitHub Config</text>
</g>
<!-- Connection lines to third row -->
<g stroke="#30363d" stroke-width="1.5" stroke-dasharray="3,3">
<line x1="280" y1="395" x2="280" y2="420"/>
<line x1="440" y1="395" x2="440" y2="420"/>
<line x1="600" y1="395" x2="600" y2="420"/>
</g>
<!-- Legend -->
<g transform="translate(690, 340)">
<text x="0" y="0" font-family="system-ui, -apple-system, sans-serif" font-size="12" font-weight="bold" fill="#8b949e">LEGEND</text>
<rect x="0" y="15" width="16" height="12" rx="2" fill="url(#rootGrad)"/>
<text x="22" y="25" font-family="system-ui, -apple-system, sans-serif" font-size="10" fill="#8b949e">Root Repo</text>
<rect x="0" y="35" width="16" height="12" rx="2" fill="url(#coreGrad)"/>
<text x="22" y="45" font-family="system-ui, -apple-system, sans-serif" font-size="10" fill="#8b949e">Core Server</text>
<rect x="0" y="55" width="16" height="12" rx="2" fill="url(#uiGrad)"/>
<text x="22" y="65" font-family="system-ui, -apple-system, sans-serif" font-size="10" fill="#8b949e">User Interface</text>
<rect x="0" y="75" width="16" height="12" rx="2" fill="url(#libGrad)"/>
<text x="22" y="85" font-family="system-ui, -apple-system, sans-serif" font-size="10" fill="#8b949e">Shared Lib</text>
<rect x="0" y="95" width="16" height="12" rx="2" fill="url(#toolGrad)"/>
<text x="22" y="105" font-family="system-ui, -apple-system, sans-serif" font-size="10" fill="#8b949e">Extensions</text>
<rect x="0" y="115" width="16" height="12" rx="2" fill="#484f58"/>
<text x="22" y="125" font-family="system-ui, -apple-system, sans-serif" font-size="10" fill="#8b949e">Support</text>
</g>
<!-- Footer -->
<text x="450" y="530" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="12" fill="#484f58">git clone --recursive https://github.com/GeneralBots/gb.git</text>
<text x="450" y="555" text-anchor="middle" font-family="system-ui, -apple-system, sans-serif" font-size="11" fill="#30363d">Code Name: Guaribas • AGPL-3.0</text>
</svg>