style(config): auto-sync rules and mcp configuration

This commit is contained in:
NodimiDO 2026-08-08 11:03:51 +02:00
parent 6b45ce7447
commit 08c36d863b
21 changed files with 2751 additions and 0 deletions

227
scripts/pve_mapper.py Normal file
View file

@ -0,0 +1,227 @@
#!/usr/bin/env python3
# pve_mapper.py
# Frägt die Proxmox-Cluster-Infrastruktur sowie Docker-Container ab
# und generiert einen strukturierten digitalen Zwilling (JSON).
import json
import subprocess
import os
import sys
HOST = "80.90.43.178"
SSH_KEY = os.path.expanduser("~/.ssh/id_rsa")
def run_ssh(host, command, user="root"):
"""Führt einen Befehl über SSH aus und gibt das Ergebnis zurück."""
ssh_cmd = [
"ssh",
"-i", SSH_KEY,
"-o", "StrictHostKeyChecking=no",
"-o", "UserKnownHostsFile=/dev/null",
f"{user}@{host}",
command
]
try:
res = subprocess.run(ssh_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, timeout=15)
if res.returncode == 0:
return res.stdout.strip()
else:
return None
except subprocess.TimeoutExpired:
return None
except Exception:
return None
def main():
print("=== 1. Fräge Proxmox Cluster-Ressourcen ab ===")
pve_raw = run_ssh(HOST, "pvesh get /cluster/resources --output-format json")
if not pve_raw:
print("Fehler: Konnte keine Verbindung zum Proxmox-Host herstellen oder pvesh ausführen.")
sys.exit(1)
try:
resources = json.loads(pve_raw)
except Exception as e:
print(f"Fehler beim Parsen der Proxmox-Ressourcen: {e}")
sys.exit(1)
twin = {
"nodes": [],
"vms": [],
"lxcs": [],
"docker_hosts": {}
}
# Bekannte Docker-Hosts für tiefere Inspektion
known_docker_hosts = {
"80.90.43.178": "pve-host",
"10.190.20.10": "venus-traefik",
"10.190.20.50": "venus-rustdesk"
}
for res in resources:
res_type = res.get("type")
res_name = res.get("name")
res_node = res.get("node")
vmid = res.get("vmid")
status = res.get("status")
if res_type == "node":
twin["nodes"].append({
"name": res.get("node"),
"status": res.get("status"),
"cpu_cores": res.get("maxcpu"),
"memory_max_gb": round(res.get("maxmem", 0) / (1024**3), 2) if res.get("maxmem") else 0
})
continue
if res_type not in ["qemu", "lxc"]:
continue
item = {
"vmid": vmid,
"name": res_name,
"node": res_node,
"status": status,
"cpu_cores": res.get("maxcpu"),
"memory_max_gb": round(res.get("maxmem", 0) / (1024**3), 2) if res.get("maxmem") else 0,
"ips": []
}
if status == "running":
# IP-Adressen ermitteln
if res_type == "qemu":
ip_raw = run_ssh(HOST, f"pvesh get /nodes/{res_node}/qemu/{vmid}/agent/network-get-interfaces --output-format json")
if ip_raw:
try:
interfaces = json.loads(ip_raw).get("result", [])
for iface in interfaces:
for addr in iface.get("ip-addresses", []):
ip = addr.get("ip-address")
if ip and not ip.startswith("127.") and not ip.startswith("172.") and ":" not in ip:
item["ips"].append(ip)
except Exception:
pass
elif res_type == "lxc":
ip_raw = run_ssh(HOST, f"pvesh get /nodes/{res_node}/lxc/{vmid}/interfaces --output-format json")
if ip_raw:
try:
interfaces = json.loads(ip_raw)
for iface in interfaces:
for addr in iface.get("ip-addresses", []):
ip = addr.get("ip-address")
if ip and not ip.startswith("127.") and not ip.startswith("172.") and ":" not in ip:
item["ips"].append(ip)
except Exception:
pass
if res_type == "qemu":
twin["vms"].append(item)
else:
twin["lxcs"].append(item)
print("=== 2. Fräge Docker-Container auf aktiven Hosts ab ===")
for ip, label in known_docker_hosts.items():
print(f"Inspektion von Docker-Host: {label} ({ip})")
# Port 22 oder ProxyJump-Auswertung
# PVE-Host direkt, VMs über SSH-Routing (das lokale ssh-config kümmert sich um das Proxy-Routing)
target = ip
if label == "pve-host":
docker_cmd = "docker ps --format '{{json .}}'"
else:
# Wir verwenden die in ~/.ssh/config definierten Host-Namen (venus-traefik, venus-rustdesk)
target = label
docker_cmd = "docker ps --format '{{json .}}'"
docker_raw = run_ssh(target, docker_cmd)
if docker_raw:
twin["docker_hosts"][label] = {
"ip": ip,
"containers": []
}
# Mehrere JSON-Objekte zeilenweise parsen
for line in docker_raw.split("\n"):
if not line.strip():
continue
try:
c = json.loads(line)
twin["docker_hosts"][label]["containers"].append({
"id": c.get("ID"),
"name": c.get("Names"),
"image": c.get("Image"),
"status": c.get("Status"),
"ports": c.get("Ports")
})
except Exception:
pass
# Speicherpfad definieren
state_dir = "/Volumes/omv-150/MayaDO/Infrastruktur/agent-bootstrap/state"
os.makedirs(state_dir, exist_ok=True)
out_path = os.path.join(state_dir, "digital_twin.json")
with open(out_path, "w", encoding="utf-8") as f:
json.dump(twin, f, indent=2, ensure_ascii=False)
print(f"=== 3. Digitaler Zwilling erfolgreich geschrieben nach: {out_path} ===")
# Generiere Markdown-Zusammenfassung für Graphify
md_lines = [
"# Digitaler Zwilling: Proxmox & Docker Cluster-Topologie",
"",
"Dieses Dokument beschreibt die physische und virtuelle Infrastruktur von MayaDO.",
""
]
md_lines.append("## Physische Cluster-Nodes")
for n in twin["nodes"]:
md_lines.append(f"### Node: {n['name']}")
md_lines.append(f"- **Status**: {n['status']}")
md_lines.append(f"- **CPU Kerne**: {n['cpu_cores']}")
md_lines.append(f"- **Maximaler Arbeitsspeicher**: {n['memory_max_gb']} GB")
md_lines.append("")
md_lines.append("## Virtuelle Maschinen (Qemu/VM)")
for vm in twin["vms"]:
md_lines.append(f"### VM {vm['vmid']}: {vm['name']}")
md_lines.append(f"- **Node**: {vm['node']}")
md_lines.append(f"- **Status**: {vm['status']}")
md_lines.append(f"- **CPU Kerne**: {vm['cpu_cores']}")
md_lines.append(f"- **RAM Limit**: {vm['memory_max_gb']} GB")
if vm["ips"]:
md_lines.append(f"- **IP-Adressen**: {', '.join(vm['ips'])}")
md_lines.append("")
md_lines.append("## LXC-Container")
for lxc in twin["lxcs"]:
md_lines.append(f"### LXC {lxc['vmid']}: {lxc['name']}")
md_lines.append(f"- **Node**: {lxc['node']}")
md_lines.append(f"- **Status**: {lxc['status']}")
md_lines.append(f"- **CPU Kerne**: {lxc['cpu_cores']}")
md_lines.append(f"- **RAM Limit**: {lxc['memory_max_gb']} GB")
if lxc["ips"]:
md_lines.append(f"- **IP-Adressen**: {', '.join(lxc['ips'])}")
md_lines.append("")
md_lines.append("## Docker-Dienste und -Container")
for host_label, host_info in twin["docker_hosts"].items():
md_lines.append(f"### Docker-Host: {host_label} (IP: {host_info['ip']})")
if not host_info["containers"]:
md_lines.append("- *Keine laufenden Container gefunden*")
for c in host_info["containers"]:
md_lines.append(f"#### Container: {c['name']}")
md_lines.append(f" - **ID**: `{c['id']}`")
md_lines.append(f" - **Image**: `{c['image']}`")
md_lines.append(f" - **Status**: {c['status']}")
if c['ports']:
md_lines.append(f" - **Ports**: `{c['ports']}`")
md_lines.append("")
md_path = os.path.join(state_dir, "digital_twin.md")
with open(md_path, "w", encoding="utf-8") as f:
f.write("\n".join(md_lines))
print(f"=== 4. Markdown-Zusammenfassung geschrieben nach: {md_path} ===")
if __name__ == "__main__":
main()

2
state/.graphifyignore Normal file
View file

@ -0,0 +1,2 @@
digital_twin.json
*.json

282
state/digital_twin.json Normal file
View file

@ -0,0 +1,282 @@
{
"nodes": [
{
"name": "pve-venus",
"status": "online",
"cpu_cores": 4,
"memory_max_gb": 15.45
}
],
"vms": [
{
"vmid": 10190100,
"name": "Router190",
"node": "pve-venus",
"status": "running",
"cpu_cores": 1,
"memory_max_gb": 2.0,
"ips": [
"10.255.255.2",
"10.190.10.1",
"10.190.20.1",
"10.190.30.1",
"10.190.40.1",
"10.190.50.1",
"100.64.1.4"
]
},
{
"vmid": 10190129,
"name": "Traefik190-01",
"node": "pve-venus",
"status": "running",
"cpu_cores": 1,
"memory_max_gb": 1.0,
"ips": [
"10.190.20.10"
]
},
{
"vmid": 10190130,
"name": "fc190",
"node": "pve-venus",
"status": "running",
"cpu_cores": 1,
"memory_max_gb": 4.0,
"ips": [
"10.190.30.10"
]
},
{
"vmid": 10190150,
"name": "RustDesk-WWW",
"node": "pve-venus",
"status": "running",
"cpu_cores": 1,
"memory_max_gb": 4.0,
"ips": [
"10.190.20.50"
]
}
],
"lxcs": [
{
"vmid": 10190120,
"name": "db19001200",
"node": "pve-venus",
"status": "running",
"cpu_cores": 1,
"memory_max_gb": 1.0,
"ips": [
"10.190.10.20"
]
},
{
"vmid": 10190121,
"name": "crawler19001210",
"node": "pve-venus",
"status": "running",
"cpu_cores": 1,
"memory_max_gb": 1.0,
"ips": [
"10.190.50.20"
]
},
{
"vmid": 10190180,
"name": "web19001180",
"node": "pve-venus",
"status": "running",
"cpu_cores": 1,
"memory_max_gb": 1.0,
"ips": [
"10.190.20.20"
]
}
],
"docker_hosts": {
"pve-host": {
"ip": "80.90.43.178",
"containers": [
{
"id": "0b9d8273fb5b",
"name": "jmap-proxy",
"image": "jmap-proxy-jmap-proxy",
"status": "Up 21 minutes",
"ports": "0.0.0.0:20129->20129/tcp, [::]:20129->20129/tcp"
},
{
"id": "4e758b086b20",
"name": "agent-reach",
"image": "agent-reach-agent-reach",
"status": "Up 9 hours",
"ports": ""
},
{
"id": "acc06fbb53f8",
"name": "omniroute",
"image": "omniroute-omniroute",
"status": "Up 21 minutes",
"ports": "0.0.0.0:20128->20128/tcp"
},
{
"id": "534df33e6588",
"name": "phoenix_onboarding",
"image": "phoenix-onboarding",
"status": "Up 6 days",
"ports": "0.0.0.0:8090->80/tcp, [::]:8090->80/tcp"
},
{
"id": "1d414d575995",
"name": "ram_graph_general",
"image": "ram-graphs-deploy-ram-graph-general",
"status": "Up 8 days",
"ports": "0.0.0.0:8081->80/tcp, [::]:8081->80/tcp"
},
{
"id": "7f2a8ee43467",
"name": "ram_graph_sovereign",
"image": "ram-graphs-deploy-ram-graph-sovereign",
"status": "Up 8 days",
"ports": "0.0.0.0:8082->80/tcp, [::]:8082->80/tcp"
},
{
"id": "5d98afbaf52d",
"name": "bernados_app",
"image": "bernados-app",
"status": "Up 3 weeks",
"ports": "0.0.0.0:80->5001/tcp, [::]:80->5001/tcp"
}
]
},
"venus-traefik": {
"ip": "10.190.20.10",
"containers": [
{
"id": "514cdd54baa2",
"name": "traefik",
"image": "traefik:v3",
"status": "Up About an hour",
"ports": "0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp, 0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp"
},
{
"id": "f6cd66c87de1",
"name": "oauth2-proxy",
"image": "quay.io/oauth2-proxy/oauth2-proxy:v7.6.0",
"status": "Up 2 weeks",
"ports": "0.0.0.0:4180->4180/tcp, [::]:4180->4180/tcp"
}
]
},
"venus-rustdesk": {
"ip": "10.190.20.50",
"containers": [
{
"id": "cb81a05e861d",
"name": "lp-manager-worker",
"image": "lp-manager-worker",
"status": "Up 46 hours",
"ports": ""
},
{
"id": "9db022e0de8b",
"name": "lp-manager-app",
"image": "lp-manager-app",
"status": "Up 45 hours",
"ports": "0.0.0.0:8000->8000/tcp, [::]:8000->8000/tcp"
},
{
"id": "e5d40a093981",
"name": "lp-onboarding-service",
"image": "lp-manager-onboarding",
"status": "Up 6 days",
"ports": "0.0.0.0:8026->8026/tcp, [::]:8026->8026/tcp"
},
{
"id": "bc9e663754d4",
"name": "dev-widget-nginx",
"image": "nginx:alpine",
"status": "Up 6 days",
"ports": "0.0.0.0:8025->80/tcp, [::]:8025->80/tcp"
},
{
"id": "0a6a1ea97c9e",
"name": "lp-manager-ui-control",
"image": "lp-manager-ui-control",
"status": "Up 6 days",
"ports": "0.0.0.0:8020->8010/tcp, [::]:8020->8010/tcp"
},
{
"id": "fe1c1068921c",
"name": "lp-manager-postgres-leads",
"image": "postgres:16-alpine",
"status": "Up 6 days",
"ports": "0.0.0.0:5433->5432/tcp, [::]:5433->5432/tcp"
},
{
"id": "c8446921b15a",
"name": "lp-manager-postgres-platform",
"image": "postgres:16-alpine",
"status": "Up 6 days",
"ports": "0.0.0.0:5432->5432/tcp, [::]:5432->5432/tcp"
},
{
"id": "1e0ed06280f5",
"name": "lp-manager-minio",
"image": "minio/minio:latest",
"status": "Up 6 days",
"ports": "0.0.0.0:9000-9001->9000-9001/tcp, [::]:9000-9001->9000-9001/tcp"
},
{
"id": "921ad465ed8e",
"name": "forgejo",
"image": "codeberg.org/forgejo/forgejo:8",
"status": "Up 6 days",
"ports": "0.0.0.0:2222->22/tcp, [::]:2222->22/tcp, 0.0.0.0:8095->3000/tcp, [::]:8095->3000/tcp"
},
{
"id": "7261dfe38d83",
"name": "space-agent-ui",
"image": "space-agent-image:latest",
"status": "Up 6 days",
"ports": "0.0.0.0:3000->3000/tcp, [::]:3000->3000/tcp"
},
{
"id": "244da8aba77d",
"name": "lp-manager-redis",
"image": "redis:7-alpine",
"status": "Up 6 days",
"ports": "0.0.0.0:6379->6379/tcp, [::]:6379->6379/tcp"
},
{
"id": "d3d8ed3bd56f",
"name": "quotes-app",
"image": "infisical/infisical:latest",
"status": "Up 6 days",
"ports": "443/tcp, 0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp"
},
{
"id": "5fa5fd299d0c",
"name": "quotes-db",
"image": "postgres:15-alpine",
"status": "Up 6 days",
"ports": "5432/tcp"
},
{
"id": "078f16f124d0",
"name": "quotes-cache",
"image": "redis:7-alpine",
"status": "Up 6 days",
"ports": "6379/tcp"
},
{
"id": "fa2b6c8fc25f",
"name": "fti-app",
"image": "mcp-registry-policy-fti-app",
"status": "Up 6 days",
"ports": "0.0.0.0:3030->3030/tcp, [::]:3030->3030/tcp"
}
]
}
}
}

206
state/digital_twin.md Normal file
View file

@ -0,0 +1,206 @@
# Digitaler Zwilling: Proxmox & Docker Cluster-Topologie
Dieses Dokument beschreibt die physische und virtuelle Infrastruktur von MayaDO.
## Physische Cluster-Nodes
### Node: pve-venus
- **Status**: online
- **CPU Kerne**: 4
- **Maximaler Arbeitsspeicher**: 15.45 GB
## Virtuelle Maschinen (Qemu/VM)
### VM 10190100: Router190
- **Node**: pve-venus
- **Status**: running
- **CPU Kerne**: 1
- **RAM Limit**: 2.0 GB
- **IP-Adressen**: 10.255.255.2, 10.190.10.1, 10.190.20.1, 10.190.30.1, 10.190.40.1, 10.190.50.1, 100.64.1.4
### VM 10190129: Traefik190-01
- **Node**: pve-venus
- **Status**: running
- **CPU Kerne**: 1
- **RAM Limit**: 1.0 GB
- **IP-Adressen**: 10.190.20.10
### VM 10190130: fc190
- **Node**: pve-venus
- **Status**: running
- **CPU Kerne**: 1
- **RAM Limit**: 4.0 GB
- **IP-Adressen**: 10.190.30.10
### VM 10190150: RustDesk-WWW
- **Node**: pve-venus
- **Status**: running
- **CPU Kerne**: 1
- **RAM Limit**: 4.0 GB
- **IP-Adressen**: 10.190.20.50
## LXC-Container
### LXC 10190120: db19001200
- **Node**: pve-venus
- **Status**: running
- **CPU Kerne**: 1
- **RAM Limit**: 1.0 GB
- **IP-Adressen**: 10.190.10.20
### LXC 10190121: crawler19001210
- **Node**: pve-venus
- **Status**: running
- **CPU Kerne**: 1
- **RAM Limit**: 1.0 GB
- **IP-Adressen**: 10.190.50.20
### LXC 10190180: web19001180
- **Node**: pve-venus
- **Status**: running
- **CPU Kerne**: 1
- **RAM Limit**: 1.0 GB
- **IP-Adressen**: 10.190.20.20
## Docker-Dienste und -Container
### Docker-Host: pve-host (IP: 80.90.43.178)
#### Container: jmap-proxy
- **ID**: `0b9d8273fb5b`
- **Image**: `jmap-proxy-jmap-proxy`
- **Status**: Up 21 minutes
- **Ports**: `0.0.0.0:20129->20129/tcp, [::]:20129->20129/tcp`
#### Container: agent-reach
- **ID**: `4e758b086b20`
- **Image**: `agent-reach-agent-reach`
- **Status**: Up 9 hours
#### Container: omniroute
- **ID**: `acc06fbb53f8`
- **Image**: `omniroute-omniroute`
- **Status**: Up 21 minutes
- **Ports**: `0.0.0.0:20128->20128/tcp`
#### Container: phoenix_onboarding
- **ID**: `534df33e6588`
- **Image**: `phoenix-onboarding`
- **Status**: Up 6 days
- **Ports**: `0.0.0.0:8090->80/tcp, [::]:8090->80/tcp`
#### Container: ram_graph_general
- **ID**: `1d414d575995`
- **Image**: `ram-graphs-deploy-ram-graph-general`
- **Status**: Up 8 days
- **Ports**: `0.0.0.0:8081->80/tcp, [::]:8081->80/tcp`
#### Container: ram_graph_sovereign
- **ID**: `7f2a8ee43467`
- **Image**: `ram-graphs-deploy-ram-graph-sovereign`
- **Status**: Up 8 days
- **Ports**: `0.0.0.0:8082->80/tcp, [::]:8082->80/tcp`
#### Container: bernados_app
- **ID**: `5d98afbaf52d`
- **Image**: `bernados-app`
- **Status**: Up 3 weeks
- **Ports**: `0.0.0.0:80->5001/tcp, [::]:80->5001/tcp`
### Docker-Host: venus-traefik (IP: 10.190.20.10)
#### Container: traefik
- **ID**: `514cdd54baa2`
- **Image**: `traefik:v3`
- **Status**: Up About an hour
- **Ports**: `0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp, 0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp`
#### Container: oauth2-proxy
- **ID**: `f6cd66c87de1`
- **Image**: `quay.io/oauth2-proxy/oauth2-proxy:v7.6.0`
- **Status**: Up 2 weeks
- **Ports**: `0.0.0.0:4180->4180/tcp, [::]:4180->4180/tcp`
### Docker-Host: venus-rustdesk (IP: 10.190.20.50)
#### Container: lp-manager-worker
- **ID**: `cb81a05e861d`
- **Image**: `lp-manager-worker`
- **Status**: Up 46 hours
#### Container: lp-manager-app
- **ID**: `9db022e0de8b`
- **Image**: `lp-manager-app`
- **Status**: Up 45 hours
- **Ports**: `0.0.0.0:8000->8000/tcp, [::]:8000->8000/tcp`
#### Container: lp-onboarding-service
- **ID**: `e5d40a093981`
- **Image**: `lp-manager-onboarding`
- **Status**: Up 6 days
- **Ports**: `0.0.0.0:8026->8026/tcp, [::]:8026->8026/tcp`
#### Container: dev-widget-nginx
- **ID**: `bc9e663754d4`
- **Image**: `nginx:alpine`
- **Status**: Up 6 days
- **Ports**: `0.0.0.0:8025->80/tcp, [::]:8025->80/tcp`
#### Container: lp-manager-ui-control
- **ID**: `0a6a1ea97c9e`
- **Image**: `lp-manager-ui-control`
- **Status**: Up 6 days
- **Ports**: `0.0.0.0:8020->8010/tcp, [::]:8020->8010/tcp`
#### Container: lp-manager-postgres-leads
- **ID**: `fe1c1068921c`
- **Image**: `postgres:16-alpine`
- **Status**: Up 6 days
- **Ports**: `0.0.0.0:5433->5432/tcp, [::]:5433->5432/tcp`
#### Container: lp-manager-postgres-platform
- **ID**: `c8446921b15a`
- **Image**: `postgres:16-alpine`
- **Status**: Up 6 days
- **Ports**: `0.0.0.0:5432->5432/tcp, [::]:5432->5432/tcp`
#### Container: lp-manager-minio
- **ID**: `1e0ed06280f5`
- **Image**: `minio/minio:latest`
- **Status**: Up 6 days
- **Ports**: `0.0.0.0:9000-9001->9000-9001/tcp, [::]:9000-9001->9000-9001/tcp`
#### Container: forgejo
- **ID**: `921ad465ed8e`
- **Image**: `codeberg.org/forgejo/forgejo:8`
- **Status**: Up 6 days
- **Ports**: `0.0.0.0:2222->22/tcp, [::]:2222->22/tcp, 0.0.0.0:8095->3000/tcp, [::]:8095->3000/tcp`
#### Container: space-agent-ui
- **ID**: `7261dfe38d83`
- **Image**: `space-agent-image:latest`
- **Status**: Up 6 days
- **Ports**: `0.0.0.0:3000->3000/tcp, [::]:3000->3000/tcp`
#### Container: lp-manager-redis
- **ID**: `244da8aba77d`
- **Image**: `redis:7-alpine`
- **Status**: Up 6 days
- **Ports**: `0.0.0.0:6379->6379/tcp, [::]:6379->6379/tcp`
#### Container: quotes-app
- **ID**: `d3d8ed3bd56f`
- **Image**: `infisical/infisical:latest`
- **Status**: Up 6 days
- **Ports**: `443/tcp, 0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp`
#### Container: quotes-db
- **ID**: `5fa5fd299d0c`
- **Image**: `postgres:15-alpine`
- **Status**: Up 6 days
- **Ports**: `5432/tcp`
#### Container: quotes-cache
- **ID**: `078f16f124d0`
- **Image**: `redis:7-alpine`
- **Status**: Up 6 days
- **Ports**: `6379/tcp`
#### Container: fti-app
- **ID**: `fa2b6c8fc25f`
- **Image**: `mcp-registry-policy-fti-app`
- **Status**: Up 6 days
- **Ports**: `0.0.0.0:3030->3030/tcp, [::]:3030->3030/tcp`

View file

@ -0,0 +1,159 @@
{
"communities": {
"0": [
"digital_twin_dev_widget_nginx",
"digital_twin_forgejo",
"digital_twin_fti_app",
"digital_twin_lp_manager_app",
"digital_twin_lp_manager_minio",
"digital_twin_lp_manager_postgres_leads",
"digital_twin_lp_manager_postgres_platform",
"digital_twin_lp_manager_redis",
"digital_twin_lp_manager_ui_control",
"digital_twin_lp_manager_worker",
"digital_twin_lp_onboarding_service",
"digital_twin_quotes_app",
"digital_twin_quotes_db",
"digital_twin_space_agent_ui",
"digital_twin_venus_rustdesk"
],
"1": [
"digital_twin_agent_reach",
"digital_twin_bernados_app",
"digital_twin_jmap_proxy",
"digital_twin_omniroute",
"digital_twin_phoenix_onboarding",
"digital_twin_pve_host",
"digital_twin_ram_graph_general",
"digital_twin_ram_graph_sovereign"
],
"2": [
"digital_twin_crawler19001210",
"digital_twin_db19001200",
"digital_twin_fc190",
"digital_twin_pve_venus",
"digital_twin_router190",
"digital_twin_rustdesk_www",
"digital_twin_web19001180"
],
"3": [
"digital_twin_oauth2_proxy",
"digital_twin_traefik",
"digital_twin_traefik190_01",
"digital_twin_venus_traefik"
],
"4": [
"digital_twin"
]
},
"cohesion": {
"0": 0.13333333333333333,
"1": 0.25,
"2": 0.2857142857142857,
"3": 0.5,
"4": 1.0
},
"gods": [
{
"id": "digital_twin_venus_rustdesk",
"label": "Docker-Host: venus-rustdesk",
"degree": 15
},
{
"id": "digital_twin_pve_venus",
"label": "Node: pve-venus",
"degree": 7
},
{
"id": "digital_twin_pve_host",
"label": "Docker-Host: pve-host",
"degree": 7
},
{
"id": "digital_twin_venus_traefik",
"label": "Docker-Host: venus-traefik",
"degree": 3
},
{
"id": "digital_twin_traefik190_01",
"label": "VM 10190129: Traefik190-01",
"degree": 2
},
{
"id": "digital_twin_rustdesk_www",
"label": "VM 10190150: RustDesk-WWW",
"degree": 2
},
{
"id": "digital_twin_router190",
"label": "VM 10190100: Router190",
"degree": 1
},
{
"id": "digital_twin_fc190",
"label": "VM 10190130: fc190",
"degree": 1
},
{
"id": "digital_twin_db19001200",
"label": "LXC 10190120: db19001200",
"degree": 1
},
{
"id": "digital_twin_crawler19001210",
"label": "LXC 10190121: crawler19001210",
"degree": 1
}
],
"surprises": [
{
"source": "Docker-Host: venus-rustdesk",
"target": "VM 10190150: RustDesk-WWW",
"source_files": [
"digital_twin.md",
"digital_twin.md"
],
"confidence": "INFERRED",
"relation": "runs_on",
"note": "Bridges community 2 → community 0"
},
{
"source": "VM 10190129: Traefik190-01",
"target": "Node: pve-venus",
"source_files": [
"digital_twin.md",
"digital_twin.md"
],
"confidence": "EXTRACTED",
"relation": "runs_on",
"note": "Bridges community 2 → community 3"
}
],
"questions": [
{
"type": "bridge_node",
"question": "Why does `Docker-Host: venus-rustdesk` connect `Docker-Host: venus-rustdesk` to `Node: pve-venus`?",
"why": "High betweenness centrality (0.437) - this node is a cross-community bridge."
},
{
"type": "bridge_node",
"question": "Why does `Node: pve-venus` connect `Node: pve-venus` to `Docker-Host: venus-traefik`?",
"why": "High betweenness centrality (0.310) - this node is a cross-community bridge."
},
{
"type": "bridge_node",
"question": "Why does `VM 10190150: RustDesk-WWW` connect `Node: pve-venus` to `Docker-Host: venus-rustdesk`?",
"why": "High betweenness centrality (0.267) - this node is a cross-community bridge."
},
{
"type": "isolated_nodes",
"question": "What connects `Digitaler Zwilling: Proxmox & Docker Cluster-Topologie`, `VM 10190100: Router190`, `VM 10190130: fc190` to the rest of the system?",
"why": "29 weakly-connected nodes found - possible documentation gaps or missing edges."
},
{
"type": "low_cohesion",
"question": "Should `Docker-Host: venus-rustdesk` be split into smaller, more focused modules?",
"why": "Cohesion score 0.13333333333333333 - nodes in this community are weakly interconnected."
}
]
}

View file

@ -0,0 +1 @@
{"0": "Docker-Host: venus-rustdesk", "1": "Docker-Host: pve-host", "2": "Node: pve-venus", "3": "Docker-Host: venus-traefik", "4": "Digitaler Zwilling: Proxmox & Docker Cluster-Topologie"}

View file

@ -0,0 +1 @@
{"0": "02d4b3e42c040002", "1": "30b3814779335f2f", "2": "f9fe4c149b0b3fe4", "3": "60296882db71693b", "4": "0d00146556ee1eaa"}

View file

@ -0,0 +1 @@
/Volumes/omv-150/MayaDO/Infrastruktur/agent-bootstrap/state

View file

@ -0,0 +1 @@
{"output_tokens": 4768}

View file

@ -0,0 +1,159 @@
{
"communities": {
"0": [
"digital_twin_dev_widget_nginx",
"digital_twin_forgejo",
"digital_twin_fti_app",
"digital_twin_lp_manager_app",
"digital_twin_lp_manager_minio",
"digital_twin_lp_manager_postgres_leads",
"digital_twin_lp_manager_postgres_platform",
"digital_twin_lp_manager_redis",
"digital_twin_lp_manager_ui_control",
"digital_twin_lp_manager_worker",
"digital_twin_lp_onboarding_service",
"digital_twin_quotes_app",
"digital_twin_quotes_db",
"digital_twin_space_agent_ui",
"digital_twin_venus_rustdesk"
],
"1": [
"digital_twin_agent_reach",
"digital_twin_bernados_app",
"digital_twin_jmap_proxy",
"digital_twin_omniroute",
"digital_twin_phoenix_onboarding",
"digital_twin_pve_host",
"digital_twin_ram_graph_general",
"digital_twin_ram_graph_sovereign"
],
"2": [
"digital_twin_crawler19001210",
"digital_twin_db19001200",
"digital_twin_fc190",
"digital_twin_pve_venus",
"digital_twin_router190",
"digital_twin_rustdesk_www",
"digital_twin_web19001180"
],
"3": [
"digital_twin_oauth2_proxy",
"digital_twin_traefik",
"digital_twin_traefik190_01",
"digital_twin_venus_traefik"
],
"4": [
"digital_twin"
]
},
"cohesion": {
"0": 0.13333333333333333,
"1": 0.25,
"2": 0.2857142857142857,
"3": 0.5,
"4": 1.0
},
"gods": [
{
"id": "digital_twin_venus_rustdesk",
"label": "Docker-Host: venus-rustdesk",
"degree": 15
},
{
"id": "digital_twin_pve_venus",
"label": "Node: pve-venus",
"degree": 7
},
{
"id": "digital_twin_pve_host",
"label": "Docker-Host: pve-host",
"degree": 7
},
{
"id": "digital_twin_venus_traefik",
"label": "Docker-Host: venus-traefik",
"degree": 3
},
{
"id": "digital_twin_traefik190_01",
"label": "VM 10190129: Traefik190-01",
"degree": 2
},
{
"id": "digital_twin_rustdesk_www",
"label": "VM 10190150: RustDesk-WWW",
"degree": 2
},
{
"id": "digital_twin_router190",
"label": "VM 10190100: Router190",
"degree": 1
},
{
"id": "digital_twin_fc190",
"label": "VM 10190130: fc190",
"degree": 1
},
{
"id": "digital_twin_db19001200",
"label": "LXC 10190120: db19001200",
"degree": 1
},
{
"id": "digital_twin_crawler19001210",
"label": "LXC 10190121: crawler19001210",
"degree": 1
}
],
"surprises": [
{
"source": "Docker-Host: venus-rustdesk",
"target": "VM 10190150: RustDesk-WWW",
"source_files": [
"digital_twin.md",
"digital_twin.md"
],
"confidence": "INFERRED",
"relation": "runs_on",
"note": "Bridges community 2 → community 0"
},
{
"source": "VM 10190129: Traefik190-01",
"target": "Node: pve-venus",
"source_files": [
"digital_twin.md",
"digital_twin.md"
],
"confidence": "EXTRACTED",
"relation": "runs_on",
"note": "Bridges community 2 → community 3"
}
],
"questions": [
{
"type": "bridge_node",
"question": "Why does `Docker-Host: venus-rustdesk` connect `Docker-Host: venus-rustdesk` to `Node: pve-venus`?",
"why": "High betweenness centrality (0.437) - this node is a cross-community bridge."
},
{
"type": "bridge_node",
"question": "Why does `Node: pve-venus` connect `Node: pve-venus` to `Docker-Host: venus-traefik`?",
"why": "High betweenness centrality (0.310) - this node is a cross-community bridge."
},
{
"type": "bridge_node",
"question": "Why does `VM 10190150: RustDesk-WWW` connect `Node: pve-venus` to `Docker-Host: venus-rustdesk`?",
"why": "High betweenness centrality (0.267) - this node is a cross-community bridge."
},
{
"type": "isolated_nodes",
"question": "What connects `Digitaler Zwilling: Proxmox & Docker Cluster-Topologie`, `VM 10190100: Router190`, `VM 10190130: fc190` to the rest of the system?",
"why": "29 weakly-connected nodes found - possible documentation gaps or missing edges."
},
{
"type": "low_cohesion",
"question": "Should `Docker-Host: venus-rustdesk` be split into smaller, more focused modules?",
"why": "Cohesion score 0.13333333333333333 - nodes in this community are weakly interconnected."
}
]
}

View file

@ -0,0 +1 @@
{"0": "Docker-Host: venus-rustdesk", "1": "Docker-Host: pve-host", "2": "Node: pve-venus", "3": "Docker-Host: venus-traefik", "4": "Digitaler Zwilling: Proxmox & Docker Cluster-Topologie"}

View file

@ -0,0 +1 @@
{"output_tokens": 4768}

View file

@ -0,0 +1,71 @@
# Graph Report - /Volumes/omv-150/MayaDO/Infrastruktur/agent-bootstrap/state (2026-08-08)
## Corpus Check
- cluster-only mode — file stats not available
## Summary
- 35 nodes · 32 edges · 5 communities (4 shown, 1 thin omitted)
- Extraction: 94% EXTRACTED · 6% INFERRED · 0% AMBIGUOUS · INFERRED: 2 edges (avg confidence: 0.8)
- Token cost: 0 input · 0 output
## Community Hubs (Navigation)
- Docker-Host: venus-rustdesk
- Docker-Host: pve-host
- Node: pve-venus
- Docker-Host: venus-traefik
- Digitaler Zwilling: Proxmox & Docker Cluster-Topologie
## God Nodes (most connected - your core abstractions)
1. `Docker-Host: venus-rustdesk` - 15 edges
2. `Node: pve-venus` - 7 edges
3. `Docker-Host: pve-host` - 7 edges
4. `Docker-Host: venus-traefik` - 3 edges
5. `VM 10190129: Traefik190-01` - 2 edges
6. `VM 10190150: RustDesk-WWW` - 2 edges
7. `VM 10190100: Router190` - 1 edges
8. `VM 10190130: fc190` - 1 edges
9. `LXC 10190120: db19001200` - 1 edges
10. `LXC 10190121: crawler19001210` - 1 edges
## Surprising Connections (you probably didn't know these)
- `Docker-Host: venus-rustdesk` --runs_on--> `VM 10190150: RustDesk-WWW` [INFERRED]
digital_twin.md → digital_twin.md _Bridges community 2 → community 0_
- `VM 10190129: Traefik190-01` --runs_on--> `Node: pve-venus` [EXTRACTED]
digital_twin.md → digital_twin.md _Bridges community 2 → community 3_
## Communities (5 total, 1 thin omitted)
### Community 0 - "Docker-Host: venus-rustdesk"
Cohesion: 0.13
Nodes (15): Container: dev-widget-nginx, Container: forgejo, Container: fti-app, Container: lp-manager-app, Container: lp-manager-minio, Container: lp-manager-postgres-leads, Container: lp-manager-postgres-platform, Container: lp-manager-redis (+7 more)
### Community 1 - "Docker-Host: pve-host"
Cohesion: 0.25
Nodes (8): Container: agent-reach, Container: bernados_app, Container: jmap-proxy, Container: omniroute, Container: phoenix_onboarding, Docker-Host: pve-host, Container: ram_graph_general, Container: ram_graph_sovereign
### Community 2 - "Node: pve-venus"
Cohesion: 0.29
Nodes (7): LXC 10190121: crawler19001210, LXC 10190120: db19001200, VM 10190130: fc190, Node: pve-venus, VM 10190100: Router190, VM 10190150: RustDesk-WWW, LXC 10190180: web19001180
### Community 3 - "Docker-Host: venus-traefik"
Cohesion: 0.50
Nodes (4): Container: oauth2-proxy, Container: traefik, VM 10190129: Traefik190-01, Docker-Host: venus-traefik
## Knowledge Gaps
- **29 isolated node(s):** `Digitaler Zwilling: Proxmox & Docker Cluster-Topologie`, `VM 10190100: Router190`, `VM 10190130: fc190`, `LXC 10190120: db19001200`, `LXC 10190121: crawler19001210` (+24 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **1 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
- **Why does `Docker-Host: venus-rustdesk` connect `Docker-Host: venus-rustdesk` to `Node: pve-venus`?**
_High betweenness centrality (0.437) - this node is a cross-community bridge._
- **Why does `Node: pve-venus` connect `Node: pve-venus` to `Docker-Host: venus-traefik`?**
_High betweenness centrality (0.310) - this node is a cross-community bridge._
- **Why does `VM 10190150: RustDesk-WWW` connect `Node: pve-venus` to `Docker-Host: venus-rustdesk`?**
_High betweenness centrality (0.267) - this node is a cross-community bridge._
- **What connects `Digitaler Zwilling: Proxmox & Docker Cluster-Topologie`, `VM 10190100: Router190`, `VM 10190130: fc190` to the rest of the system?**
_29 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Should `Docker-Host: venus-rustdesk` be split into smaller, more focused modules?**
_Cohesion score 0.13333333333333333 - nodes in this community are weakly interconnected._

View file

@ -0,0 +1,616 @@
{
"directed": false,
"multigraph": false,
"graph": {},
"nodes": [
{
"label": "Digitaler Zwilling: Proxmox & Docker Cluster-Topologie",
"file_type": "document",
"source_file": "digital_twin.md",
"source_location": null,
"community": 4,
"norm_label": "digitaler zwilling: proxmox & docker cluster-topologie",
"id": "digital_twin",
"community_name": "Digitaler Zwilling: Proxmox & Docker Cluster-Topologie"
},
{
"label": "Node: pve-venus",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 2,
"norm_label": "node: pve-venus",
"id": "digital_twin_pve_venus",
"community_name": "Node: pve-venus"
},
{
"label": "VM 10190100: Router190",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 2,
"norm_label": "vm 10190100: router190",
"id": "digital_twin_router190",
"community_name": "Node: pve-venus"
},
{
"label": "VM 10190129: Traefik190-01",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 3,
"norm_label": "vm 10190129: traefik190-01",
"id": "digital_twin_traefik190_01",
"community_name": "Docker-Host: venus-traefik"
},
{
"label": "VM 10190130: fc190",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 2,
"norm_label": "vm 10190130: fc190",
"id": "digital_twin_fc190",
"community_name": "Node: pve-venus"
},
{
"label": "VM 10190150: RustDesk-WWW",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 2,
"norm_label": "vm 10190150: rustdesk-www",
"id": "digital_twin_rustdesk_www",
"community_name": "Node: pve-venus"
},
{
"label": "LXC 10190120: db19001200",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 2,
"norm_label": "lxc 10190120: db19001200",
"id": "digital_twin_db19001200",
"community_name": "Node: pve-venus"
},
{
"label": "LXC 10190121: crawler19001210",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 2,
"norm_label": "lxc 10190121: crawler19001210",
"id": "digital_twin_crawler19001210",
"community_name": "Node: pve-venus"
},
{
"label": "LXC 10190180: web19001180",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 2,
"norm_label": "lxc 10190180: web19001180",
"id": "digital_twin_web19001180",
"community_name": "Node: pve-venus"
},
{
"label": "Docker-Host: pve-host",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 1,
"norm_label": "docker-host: pve-host",
"id": "digital_twin_pve_host",
"community_name": "Docker-Host: pve-host"
},
{
"label": "Container: jmap-proxy",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 1,
"norm_label": "container: jmap-proxy",
"id": "digital_twin_jmap_proxy",
"community_name": "Docker-Host: pve-host"
},
{
"label": "Container: agent-reach",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 1,
"norm_label": "container: agent-reach",
"id": "digital_twin_agent_reach",
"community_name": "Docker-Host: pve-host"
},
{
"label": "Container: omniroute",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 1,
"norm_label": "container: omniroute",
"id": "digital_twin_omniroute",
"community_name": "Docker-Host: pve-host"
},
{
"label": "Container: phoenix_onboarding",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 1,
"norm_label": "container: phoenix_onboarding",
"id": "digital_twin_phoenix_onboarding",
"community_name": "Docker-Host: pve-host"
},
{
"label": "Container: ram_graph_general",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 1,
"norm_label": "container: ram_graph_general",
"id": "digital_twin_ram_graph_general",
"community_name": "Docker-Host: pve-host"
},
{
"label": "Container: ram_graph_sovereign",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 1,
"norm_label": "container: ram_graph_sovereign",
"id": "digital_twin_ram_graph_sovereign",
"community_name": "Docker-Host: pve-host"
},
{
"label": "Container: bernados_app",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 1,
"norm_label": "container: bernados_app",
"id": "digital_twin_bernados_app",
"community_name": "Docker-Host: pve-host"
},
{
"label": "Docker-Host: venus-traefik",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 3,
"norm_label": "docker-host: venus-traefik",
"id": "digital_twin_venus_traefik",
"community_name": "Docker-Host: venus-traefik"
},
{
"label": "Container: traefik",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 3,
"norm_label": "container: traefik",
"id": "digital_twin_traefik",
"community_name": "Docker-Host: venus-traefik"
},
{
"label": "Container: oauth2-proxy",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 3,
"norm_label": "container: oauth2-proxy",
"id": "digital_twin_oauth2_proxy",
"community_name": "Docker-Host: venus-traefik"
},
{
"label": "Docker-Host: venus-rustdesk",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "docker-host: venus-rustdesk",
"id": "digital_twin_venus_rustdesk",
"community_name": "Docker-Host: venus-rustdesk"
},
{
"label": "Container: lp-manager-worker",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: lp-manager-worker",
"id": "digital_twin_lp_manager_worker",
"community_name": "Docker-Host: venus-rustdesk"
},
{
"label": "Container: lp-manager-app",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: lp-manager-app",
"id": "digital_twin_lp_manager_app",
"community_name": "Docker-Host: venus-rustdesk"
},
{
"label": "Container: lp-onboarding-service",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: lp-onboarding-service",
"id": "digital_twin_lp_onboarding_service",
"community_name": "Docker-Host: venus-rustdesk"
},
{
"label": "Container: dev-widget-nginx",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: dev-widget-nginx",
"id": "digital_twin_dev_widget_nginx",
"community_name": "Docker-Host: venus-rustdesk"
},
{
"label": "Container: lp-manager-ui-control",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: lp-manager-ui-control",
"id": "digital_twin_lp_manager_ui_control",
"community_name": "Docker-Host: venus-rustdesk"
},
{
"label": "Container: lp-manager-postgres-leads",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: lp-manager-postgres-leads",
"id": "digital_twin_lp_manager_postgres_leads",
"community_name": "Docker-Host: venus-rustdesk"
},
{
"label": "Container: lp-manager-postgres-platform",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: lp-manager-postgres-platform",
"id": "digital_twin_lp_manager_postgres_platform",
"community_name": "Docker-Host: venus-rustdesk"
},
{
"label": "Container: lp-manager-minio",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: lp-manager-minio",
"id": "digital_twin_lp_manager_minio",
"community_name": "Docker-Host: venus-rustdesk"
},
{
"label": "Container: forgejo",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: forgejo",
"id": "digital_twin_forgejo",
"community_name": "Docker-Host: venus-rustdesk"
},
{
"label": "Container: space-agent-ui",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: space-agent-ui",
"id": "digital_twin_space_agent_ui",
"community_name": "Docker-Host: venus-rustdesk"
},
{
"label": "Container: lp-manager-redis",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: lp-manager-redis",
"id": "digital_twin_lp_manager_redis",
"community_name": "Docker-Host: venus-rustdesk"
},
{
"label": "Container: quotes-app",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: quotes-app",
"id": "digital_twin_quotes_app",
"community_name": "Docker-Host: venus-rustdesk"
},
{
"label": "Container: quotes-db",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: quotes-db",
"id": "digital_twin_quotes_db",
"community_name": "Docker-Host: venus-rustdesk"
},
{
"label": "Container: fti-app",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: fti-app",
"id": "digital_twin_fti_app",
"community_name": "Docker-Host: venus-rustdesk"
}
],
"links": [
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_crawler19001210",
"target": "digital_twin_pve_venus"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_db19001200",
"target": "digital_twin_pve_venus"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_fc190",
"target": "digital_twin_pve_venus"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_router190",
"target": "digital_twin_pve_venus"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_rustdesk_www",
"target": "digital_twin_pve_venus"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_traefik190_01",
"target": "digital_twin_pve_venus"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_web19001180",
"target": "digital_twin_pve_venus"
},
{
"relation": "runs_on",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "digital_twin.md",
"source": "digital_twin_venus_traefik",
"target": "digital_twin_traefik190_01"
},
{
"relation": "runs_on",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "digital_twin.md",
"source": "digital_twin_venus_rustdesk",
"target": "digital_twin_rustdesk_www"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_agent_reach",
"target": "digital_twin_pve_host"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_bernados_app",
"target": "digital_twin_pve_host"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_jmap_proxy",
"target": "digital_twin_pve_host"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_omniroute",
"target": "digital_twin_pve_host"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_phoenix_onboarding",
"target": "digital_twin_pve_host"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_ram_graph_general",
"target": "digital_twin_pve_host"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_ram_graph_sovereign",
"target": "digital_twin_pve_host"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_oauth2_proxy",
"target": "digital_twin_venus_traefik"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_traefik",
"target": "digital_twin_venus_traefik"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_dev_widget_nginx",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_forgejo",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_fti_app",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_lp_manager_app",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_lp_manager_minio",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_lp_manager_postgres_leads",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_lp_manager_postgres_platform",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_lp_manager_redis",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_lp_manager_ui_control",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_lp_manager_worker",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_lp_onboarding_service",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_quotes_app",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_quotes_db",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_space_agent_ui",
"target": "digital_twin_venus_rustdesk"
}
],
"hyperedges": []
}

View file

@ -0,0 +1,7 @@
{
"digital_twin.md": {
"mtime": 1786179392.3292885,
"ast_hash": "4cabb774622ad1285edd64b7ec788db3",
"semantic_hash": "4cabb774622ad1285edd64b7ec788db3"
}
}

View file

@ -0,0 +1,71 @@
# Graph Report - /Volumes/omv-150/MayaDO/Infrastruktur/agent-bootstrap/state (2026-08-08)
## Corpus Check
- cluster-only mode — file stats not available
## Summary
- 35 nodes · 32 edges · 5 communities (4 shown, 1 thin omitted)
- Extraction: 94% EXTRACTED · 6% INFERRED · 0% AMBIGUOUS · INFERRED: 2 edges (avg confidence: 0.8)
- Token cost: 0 input · 0 output
## Community Hubs (Navigation)
- Docker-Host: venus-rustdesk
- Docker-Host: pve-host
- Node: pve-venus
- Docker-Host: venus-traefik
- Digitaler Zwilling: Proxmox & Docker Cluster-Topologie
## God Nodes (most connected - your core abstractions)
1. `Docker-Host: venus-rustdesk` - 15 edges
2. `Node: pve-venus` - 7 edges
3. `Docker-Host: pve-host` - 7 edges
4. `Docker-Host: venus-traefik` - 3 edges
5. `VM 10190129: Traefik190-01` - 2 edges
6. `VM 10190150: RustDesk-WWW` - 2 edges
7. `VM 10190100: Router190` - 1 edges
8. `VM 10190130: fc190` - 1 edges
9. `LXC 10190120: db19001200` - 1 edges
10. `LXC 10190121: crawler19001210` - 1 edges
## Surprising Connections (you probably didn't know these)
- `Docker-Host: venus-rustdesk` --runs_on--> `VM 10190150: RustDesk-WWW` [INFERRED]
digital_twin.md → digital_twin.md _Bridges community 2 → community 0_
- `VM 10190129: Traefik190-01` --runs_on--> `Node: pve-venus` [EXTRACTED]
digital_twin.md → digital_twin.md _Bridges community 2 → community 3_
## Communities (5 total, 1 thin omitted)
### Community 0 - "Docker-Host: venus-rustdesk"
Cohesion: 0.13
Nodes (15): Container: dev-widget-nginx, Container: forgejo, Container: fti-app, Container: lp-manager-app, Container: lp-manager-minio, Container: lp-manager-postgres-leads, Container: lp-manager-postgres-platform, Container: lp-manager-redis (+7 more)
### Community 1 - "Docker-Host: pve-host"
Cohesion: 0.25
Nodes (8): Container: agent-reach, Container: bernados_app, Container: jmap-proxy, Container: omniroute, Container: phoenix_onboarding, Docker-Host: pve-host, Container: ram_graph_general, Container: ram_graph_sovereign
### Community 2 - "Node: pve-venus"
Cohesion: 0.29
Nodes (7): LXC 10190121: crawler19001210, LXC 10190120: db19001200, VM 10190130: fc190, Node: pve-venus, VM 10190100: Router190, VM 10190150: RustDesk-WWW, LXC 10190180: web19001180
### Community 3 - "Docker-Host: venus-traefik"
Cohesion: 0.50
Nodes (4): Container: oauth2-proxy, Container: traefik, VM 10190129: Traefik190-01, Docker-Host: venus-traefik
## Knowledge Gaps
- **29 isolated node(s):** `Digitaler Zwilling: Proxmox & Docker Cluster-Topologie`, `VM 10190100: Router190`, `VM 10190130: fc190`, `LXC 10190120: db19001200`, `LXC 10190121: crawler19001210` (+24 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **1 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
- **Why does `Docker-Host: venus-rustdesk` connect `Docker-Host: venus-rustdesk` to `Node: pve-venus`?**
_High betweenness centrality (0.437) - this node is a cross-community bridge._
- **Why does `Node: pve-venus` connect `Node: pve-venus` to `Docker-Host: venus-traefik`?**
_High betweenness centrality (0.310) - this node is a cross-community bridge._
- **Why does `VM 10190150: RustDesk-WWW` connect `Node: pve-venus` to `Docker-Host: venus-rustdesk`?**
_High betweenness centrality (0.267) - this node is a cross-community bridge._
- **What connects `Digitaler Zwilling: Proxmox & Docker Cluster-Topologie`, `VM 10190100: Router190`, `VM 10190130: fc190` to the rest of the system?**
_29 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Should `Docker-Host: venus-rustdesk` be split into smaller, more focused modules?**
_Cohesion score 0.13333333333333333 - nodes in this community are weakly interconnected._

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
{"/Volumes/omv-150/MayaDO/Infrastruktur/agent-bootstrap/state/digital_twin.json":{"size":7633,"mtime_ns":1786179201467079100,"word_count":543,"hashes":{"digital_twin.json":"8f1c2341282db81db16bb3583628767c910ae57a3110a9d5be42e557fbffc84b"}},"/Volumes/omv-150/MayaDO/Infrastruktur/agent-bootstrap/state/digital_twin.md":{"size":6017,"mtime_ns":1786179392329288600,"word_count":649,"hashes":{"digital_twin.md":"f266a8238c8a2bd9f2559c4374e13e9910385c9dda6eaed985d0d769f23d3e32"}}}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,616 @@
{
"directed": false,
"multigraph": false,
"graph": {},
"nodes": [
{
"label": "Digitaler Zwilling: Proxmox & Docker Cluster-Topologie",
"file_type": "document",
"source_file": "digital_twin.md",
"source_location": null,
"community": 4,
"norm_label": "digitaler zwilling: proxmox & docker cluster-topologie",
"community_name": "Digitaler Zwilling: Proxmox & Docker Cluster-Topologie",
"id": "digital_twin"
},
{
"label": "Node: pve-venus",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 2,
"norm_label": "node: pve-venus",
"community_name": "Node: pve-venus",
"id": "digital_twin_pve_venus"
},
{
"label": "VM 10190100: Router190",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 2,
"norm_label": "vm 10190100: router190",
"community_name": "Node: pve-venus",
"id": "digital_twin_router190"
},
{
"label": "VM 10190129: Traefik190-01",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 3,
"norm_label": "vm 10190129: traefik190-01",
"community_name": "Docker-Host: venus-traefik",
"id": "digital_twin_traefik190_01"
},
{
"label": "VM 10190130: fc190",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 2,
"norm_label": "vm 10190130: fc190",
"community_name": "Node: pve-venus",
"id": "digital_twin_fc190"
},
{
"label": "VM 10190150: RustDesk-WWW",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 2,
"norm_label": "vm 10190150: rustdesk-www",
"community_name": "Node: pve-venus",
"id": "digital_twin_rustdesk_www"
},
{
"label": "LXC 10190120: db19001200",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 2,
"norm_label": "lxc 10190120: db19001200",
"community_name": "Node: pve-venus",
"id": "digital_twin_db19001200"
},
{
"label": "LXC 10190121: crawler19001210",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 2,
"norm_label": "lxc 10190121: crawler19001210",
"community_name": "Node: pve-venus",
"id": "digital_twin_crawler19001210"
},
{
"label": "LXC 10190180: web19001180",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 2,
"norm_label": "lxc 10190180: web19001180",
"community_name": "Node: pve-venus",
"id": "digital_twin_web19001180"
},
{
"label": "Docker-Host: pve-host",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 1,
"norm_label": "docker-host: pve-host",
"community_name": "Docker-Host: pve-host",
"id": "digital_twin_pve_host"
},
{
"label": "Container: jmap-proxy",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 1,
"norm_label": "container: jmap-proxy",
"community_name": "Docker-Host: pve-host",
"id": "digital_twin_jmap_proxy"
},
{
"label": "Container: agent-reach",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 1,
"norm_label": "container: agent-reach",
"community_name": "Docker-Host: pve-host",
"id": "digital_twin_agent_reach"
},
{
"label": "Container: omniroute",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 1,
"norm_label": "container: omniroute",
"community_name": "Docker-Host: pve-host",
"id": "digital_twin_omniroute"
},
{
"label": "Container: phoenix_onboarding",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 1,
"norm_label": "container: phoenix_onboarding",
"community_name": "Docker-Host: pve-host",
"id": "digital_twin_phoenix_onboarding"
},
{
"label": "Container: ram_graph_general",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 1,
"norm_label": "container: ram_graph_general",
"community_name": "Docker-Host: pve-host",
"id": "digital_twin_ram_graph_general"
},
{
"label": "Container: ram_graph_sovereign",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 1,
"norm_label": "container: ram_graph_sovereign",
"community_name": "Docker-Host: pve-host",
"id": "digital_twin_ram_graph_sovereign"
},
{
"label": "Container: bernados_app",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 1,
"norm_label": "container: bernados_app",
"community_name": "Docker-Host: pve-host",
"id": "digital_twin_bernados_app"
},
{
"label": "Docker-Host: venus-traefik",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 3,
"norm_label": "docker-host: venus-traefik",
"community_name": "Docker-Host: venus-traefik",
"id": "digital_twin_venus_traefik"
},
{
"label": "Container: traefik",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 3,
"norm_label": "container: traefik",
"community_name": "Docker-Host: venus-traefik",
"id": "digital_twin_traefik"
},
{
"label": "Container: oauth2-proxy",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 3,
"norm_label": "container: oauth2-proxy",
"community_name": "Docker-Host: venus-traefik",
"id": "digital_twin_oauth2_proxy"
},
{
"label": "Docker-Host: venus-rustdesk",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "docker-host: venus-rustdesk",
"community_name": "Docker-Host: venus-rustdesk",
"id": "digital_twin_venus_rustdesk"
},
{
"label": "Container: lp-manager-worker",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: lp-manager-worker",
"community_name": "Docker-Host: venus-rustdesk",
"id": "digital_twin_lp_manager_worker"
},
{
"label": "Container: lp-manager-app",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: lp-manager-app",
"community_name": "Docker-Host: venus-rustdesk",
"id": "digital_twin_lp_manager_app"
},
{
"label": "Container: lp-onboarding-service",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: lp-onboarding-service",
"community_name": "Docker-Host: venus-rustdesk",
"id": "digital_twin_lp_onboarding_service"
},
{
"label": "Container: dev-widget-nginx",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: dev-widget-nginx",
"community_name": "Docker-Host: venus-rustdesk",
"id": "digital_twin_dev_widget_nginx"
},
{
"label": "Container: lp-manager-ui-control",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: lp-manager-ui-control",
"community_name": "Docker-Host: venus-rustdesk",
"id": "digital_twin_lp_manager_ui_control"
},
{
"label": "Container: lp-manager-postgres-leads",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: lp-manager-postgres-leads",
"community_name": "Docker-Host: venus-rustdesk",
"id": "digital_twin_lp_manager_postgres_leads"
},
{
"label": "Container: lp-manager-postgres-platform",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: lp-manager-postgres-platform",
"community_name": "Docker-Host: venus-rustdesk",
"id": "digital_twin_lp_manager_postgres_platform"
},
{
"label": "Container: lp-manager-minio",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: lp-manager-minio",
"community_name": "Docker-Host: venus-rustdesk",
"id": "digital_twin_lp_manager_minio"
},
{
"label": "Container: forgejo",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: forgejo",
"community_name": "Docker-Host: venus-rustdesk",
"id": "digital_twin_forgejo"
},
{
"label": "Container: space-agent-ui",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: space-agent-ui",
"community_name": "Docker-Host: venus-rustdesk",
"id": "digital_twin_space_agent_ui"
},
{
"label": "Container: lp-manager-redis",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: lp-manager-redis",
"community_name": "Docker-Host: venus-rustdesk",
"id": "digital_twin_lp_manager_redis"
},
{
"label": "Container: quotes-app",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: quotes-app",
"community_name": "Docker-Host: venus-rustdesk",
"id": "digital_twin_quotes_app"
},
{
"label": "Container: quotes-db",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: quotes-db",
"community_name": "Docker-Host: venus-rustdesk",
"id": "digital_twin_quotes_db"
},
{
"label": "Container: fti-app",
"file_type": "concept",
"source_file": "digital_twin.md",
"source_location": null,
"community": 0,
"norm_label": "container: fti-app",
"community_name": "Docker-Host: venus-rustdesk",
"id": "digital_twin_fti_app"
}
],
"links": [
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_crawler19001210",
"target": "digital_twin_pve_venus"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_db19001200",
"target": "digital_twin_pve_venus"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_fc190",
"target": "digital_twin_pve_venus"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_router190",
"target": "digital_twin_pve_venus"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_rustdesk_www",
"target": "digital_twin_pve_venus"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_traefik190_01",
"target": "digital_twin_pve_venus"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_web19001180",
"target": "digital_twin_pve_venus"
},
{
"relation": "runs_on",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "digital_twin.md",
"source": "digital_twin_venus_traefik",
"target": "digital_twin_traefik190_01"
},
{
"relation": "runs_on",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "digital_twin.md",
"source": "digital_twin_venus_rustdesk",
"target": "digital_twin_rustdesk_www"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_agent_reach",
"target": "digital_twin_pve_host"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_bernados_app",
"target": "digital_twin_pve_host"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_jmap_proxy",
"target": "digital_twin_pve_host"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_omniroute",
"target": "digital_twin_pve_host"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_phoenix_onboarding",
"target": "digital_twin_pve_host"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_ram_graph_general",
"target": "digital_twin_pve_host"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_ram_graph_sovereign",
"target": "digital_twin_pve_host"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_oauth2_proxy",
"target": "digital_twin_venus_traefik"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_traefik",
"target": "digital_twin_venus_traefik"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_dev_widget_nginx",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_forgejo",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_fti_app",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_lp_manager_app",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_lp_manager_minio",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_lp_manager_postgres_leads",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_lp_manager_postgres_platform",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_lp_manager_redis",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_lp_manager_ui_control",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_lp_manager_worker",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_lp_onboarding_service",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_quotes_app",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_quotes_db",
"target": "digital_twin_venus_rustdesk"
},
{
"relation": "runs_on",
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "digital_twin.md",
"source": "digital_twin_space_agent_ui",
"target": "digital_twin_venus_rustdesk"
}
],
"hyperedges": []
}

View file

@ -0,0 +1,7 @@
{
"digital_twin.md": {
"mtime": 1786179392.3292885,
"ast_hash": "4cabb774622ad1285edd64b7ec788db3",
"semantic_hash": "4cabb774622ad1285edd64b7ec788db3"
}
}