193 lines
4.3 KiB
JSON
193 lines
4.3 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"diagram_type": "architecture",
|
|
"meta": {
|
|
"title": "Tools Software WebUI",
|
|
"quality_profile": "showcase",
|
|
"viewBox": [1120, 620]
|
|
},
|
|
"components": [
|
|
{
|
|
"id": "agents",
|
|
"type": "backend",
|
|
"label": "pi agents",
|
|
"sublabel": "per machine (.27/.13/.51)",
|
|
"pos": [120, 160]
|
|
},
|
|
{
|
|
"id": "ext",
|
|
"type": "backend",
|
|
"label": "dashboard.ts",
|
|
"sublabel": "extension",
|
|
"pos": [330, 160]
|
|
},
|
|
{
|
|
"id": "smc",
|
|
"type": "database",
|
|
"label": "state JSON",
|
|
"sublabel": "~/.pi/agent/dashboard",
|
|
"pos": [520, 160]
|
|
},
|
|
{
|
|
"id": "tui",
|
|
"type": "frontend",
|
|
"label": "pi-dashboard",
|
|
"sublabel": "Go TUI",
|
|
"pos": [710, 100]
|
|
},
|
|
{
|
|
"id": "portal",
|
|
"type": "frontend",
|
|
"label": "console portal",
|
|
"sublabel": "Python :8500",
|
|
"pos": [710, 260]
|
|
},
|
|
{
|
|
"id": "omni",
|
|
"type": "backend",
|
|
"label": "OmniRoute",
|
|
"sublabel": "LLM :20129",
|
|
"pos": [330, 370]
|
|
},
|
|
{
|
|
"id": "n8n",
|
|
"type": "backend",
|
|
"label": "n8n",
|
|
"sublabel": ":5678",
|
|
"pos": [140, 470]
|
|
},
|
|
{
|
|
"id": "prefect",
|
|
"type": "backend",
|
|
"label": "Prefect 3",
|
|
"sublabel": ":4200",
|
|
"pos": [350, 470]
|
|
},
|
|
{
|
|
"id": "headroom",
|
|
"type": "backend",
|
|
"label": "headroom",
|
|
"sublabel": "compress :8787",
|
|
"pos": [140, 370]
|
|
},
|
|
{
|
|
"id": "caddy",
|
|
"type": "external",
|
|
"label": "Caddy",
|
|
"sublabel": "reverse proxy .35",
|
|
"pos": [920, 300]
|
|
},
|
|
{
|
|
"id": "gitea",
|
|
"type": "external",
|
|
"label": "Gitea",
|
|
"sublabel": ":3001/:2222",
|
|
"pos": [920, 120]
|
|
},
|
|
{
|
|
"id": "phone",
|
|
"type": "external",
|
|
"label": "Mobile",
|
|
"sublabel": "Termux / KDE Connect",
|
|
"pos": [920, 480]
|
|
}
|
|
],
|
|
"boundaries": [
|
|
{
|
|
"kind": "region",
|
|
"label": "console & telemetry",
|
|
"wraps": ["ext", "smc", "tui", "portal"]
|
|
},
|
|
{
|
|
"kind": "region",
|
|
"label": "web-facing host (.13)",
|
|
"wraps": ["omni", "n8n", "prefect", "headroom"]
|
|
},
|
|
{
|
|
"kind": "region",
|
|
"label": "home lab (.35)",
|
|
"wraps": ["caddy", "gitea"]
|
|
}
|
|
],
|
|
"connections": [
|
|
{
|
|
"id": "agents-to-ext",
|
|
"from": "agents",
|
|
"to": "ext",
|
|
"label": "runs every session",
|
|
"labelAt": [285, 150]
|
|
},
|
|
{
|
|
"id": "ext-to-smc",
|
|
"from": "ext",
|
|
"to": "smc",
|
|
"label": "writes JSON"
|
|
},
|
|
{
|
|
"id": "smc-to-tui",
|
|
"from": "smc",
|
|
"to": "tui",
|
|
"label": "ssh pull / read",
|
|
"labelAt": [665, 90]
|
|
},
|
|
{
|
|
"id": "smc-to-portal",
|
|
"from": "smc",
|
|
"to": "portal",
|
|
"label": "collected on .13",
|
|
"fromSide": "bottom",
|
|
"toSide": "top"
|
|
},
|
|
{
|
|
"id": "agents-to-omni",
|
|
"from": "agents",
|
|
"to": "omni",
|
|
"label": "LLM (omni provider)",
|
|
"fromSide": "bottom",
|
|
"toSide": "top"
|
|
},
|
|
{
|
|
"id": "omni-to-caddy",
|
|
"from": "omni",
|
|
"to": "caddy",
|
|
"label": "combo routing"
|
|
},
|
|
{
|
|
"id": "caddy-to-gitea",
|
|
"from": "caddy",
|
|
"to": "gitea",
|
|
"label": "gitea.lab"
|
|
}
|
|
],
|
|
"cards": [
|
|
{
|
|
"dot": "cyan",
|
|
"title": "Core loop",
|
|
"items": [
|
|
"Every pi session runs dashboard.ts → heartbeat JSON per machine",
|
|
"Collected on .13; rendered by Go TUI and Python portal",
|
|
"LLM traffic proxied through OmniRoute with priority fallback combos",
|
|
"Headroom compresses heavy contexts; NTFY alerts mobile on completion",
|
|
"n8n webhooks / Prefect pipelines can trigger around the agents"
|
|
]
|
|
},
|
|
{
|
|
"dot": "emerald",
|
|
"title": "Access routes",
|
|
"items": [
|
|
"Console: pi-dashboard TUI on .27/.13 · portal Admin via console.lab",
|
|
"n8n :5678 · Prefect :4200 · Open WebUI :3000 on .13",
|
|
"Phone: Tailscale + Termux SSH + KDE Connect + NTFY"
|
|
]
|
|
},
|
|
{
|
|
"dot": "amber",
|
|
"title": "Decisions",
|
|
"items": [
|
|
"Windmill not needed — n8n (canvas) + Prefect (pipelines) cover it",
|
|
"Paseo / Pi Web UI deferred to roadmap — current console suffices",
|
|
"Gitea Actions recommended: auto-sync ~/.agents clones on push"
|
|
]
|
|
}
|
|
]
|
|
} |