Files
varys-monitor/flow.html
T
2026-05-06 05:02:19 +02:00

109 lines
3.4 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>NxM Agent Architecture</title>
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: monospace; background: #0d1117; color: #c9d1d9; padding: 2rem; }
h1 { color: #58a6ff; margin-bottom: 0.25rem; }
.meta { color: #8b949e; font-size: 0.85rem; margin-bottom: 2rem; }
.meta a { color: #8b949e; }
.diagram { background: #161b22; border: 1px solid #30363d; border-radius: 6px; padding: 2rem; overflow-x: auto; }
</style>
</head>
<body>
<h1>NxM Agent Architecture</h1>
<p class="meta">Communication flow between agents and services &nbsp;·&nbsp; <a href="/">← home</a></p>
<div class="diagram">
<pre class="mermaid">
%%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#21262d', 'primaryTextColor': '#c9d1d9', 'primaryBorderColor': '#30363d', 'lineColor': '#58a6ff', 'secondaryColor': '#161b22', 'tertiaryColor': '#0d1117', 'edgeLabelBackground': '#0d1117'}}}%%
flowchart TD
subgraph sched ["Scheduler"]
cron_bran["⏰ cron 06:00 daily"]
cron_varys["⏰ cron every 15 min"]
end
subgraph agents ["One-Shot Agents"]
bran["bran-changelog"]
varys["varys-monitor"]
end
subgraph research ["Research Agent"]
sam["sam-research :8500"]
searxng["SearXNG :8600"]
end
subgraph external ["External Sources"]
github["GitHub API"]
opnsense["OPNsense changelog"]
web_ext["Web (search results)"]
end
subgraph llm ["LLM Layer"]
hodor["hodor-gateway :8200"]
ollama["Ollama :11434"]
end
subgraph infra ["Infrastructure — 12 services"]
svc["portainer · gitea · open-webui · npm\nuptime-kuma · headscale · vaultwarden\nplane · homarr · netbox · hodor · citadel"]
end
subgraph storage ["Shared Storage — /opt/"]
sites["sites/\nchangelog/ varys/ bran/ sam/"]
agentOS["agent-os/logs/\nbran-changelog/ varys-monitor/ sam-research/"]
end
subgraph serving ["Serving Layer"]
nginx["agent-sites nginx"]
citadel["citadel-mcp :8300"]
end
subgraph gui ["User Interface"]
web["agents.nxm.co.za"]
openwebui["Open WebUI :3010"]
end
cron_bran --> bran
cron_varys --> varys
bran -->|fetch releases| github
bran -->|fetch changelog| opnsense
github --> bran
opnsense --> bran
bran -->|POST /ask| hodor
hodor <-->|api/chat| ollama
hodor --> bran
varys -->|HTTP GET| svc
sam -->|GET /search| searxng
searxng -->|results| web_ext
web_ext --> searxng
sam -->|POST /api/chat| ollama
ollama --> sam
openwebui -->|web_search MCP tool| citadel
citadel -->|GET /search| searxng
bran -->|index.html + last-output.md| sites
bran -->|last-run.json| agentOS
varys -->|index.html + last-output.md| sites
varys -->|last-run.json| agentOS
sam -->|index.html + last-output.md| sites
sam -->|last-run.json| agentOS
sites --> nginx
nginx -->|NPM proxy| web
agentOS -->|list_agents / get_agent_status| citadel
sites -->|get_agent_output| citadel
citadel -->|MCP tools| openwebui
</pre>
</div>
<script src="https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.min.js"></script>
<script>mermaid.initialize({startOnLoad: true});</script>
</body>
</html>