{
	"nodes":[
		{"id":"title","type":"text","x":60,"y":30,"width":720,"height":90,"text":"Service Topology\n\nRuntime dependencies around Atlas: gateway → control plane → local capabilities → persistence.","color":"6"},
		{"id":"sessions","type":"text","x":80,"y":210,"width":230,"height":150,"text":"💬 User sessions\n\nTelegram\nDiscord\nEmail\nWebhook/API","color":"2"},
		{"id":"runtime","type":"text","x":410,"y":190,"width":260,"height":180,"text":"🧠 Atlas runtime\n\ndefault profile\nSession routing\nTool execution\nMemory + skills","color":"5"},
		{"id":"workers","type":"text","x":410,"y":450,"width":260,"height":150,"text":"🤖 Workers\n\nSpecialist profiles\nKanban dispatch\ndelegate_task children","color":"5"},
		{"id":"retrieval","type":"text","x":790,"y":110,"width":270,"height":180,"text":"🔎 Retrieval stack\n\nSearXNG :18803\nBrave MCP :18802\nOllama embeddings :18807\nRAG / session search","color":"3"},
		{"id":"inference","type":"text","x":790,"y":350,"width":270,"height":150,"text":"🦙 Inference + media\n\nllama.cpp :18806\nWhisper :18801\nKokoro :18805","color":"3"},
		{"id":"automation","type":"text","x":790,"y":560,"width":270,"height":150,"text":"⚙️ Automation\n\nn8n :18808\nHermes cron\nWebhook subscriptions","color":"3"},
		{"id":"obsidian","type":"text","x":1180,"y":170,"width":280,"height":180,"text":"📚 Obsidian layer\n\nLocal REST API :27123\nwill-shared-zap vault\nDaily research briefs","color":"6"},
		{"id":"repos","type":"text","x":1180,"y":440,"width":280,"height":170,"text":"🌿 Code + artifacts\n\nGitea repos\nHermes source mirror\nMinIO/S3 backups","color":"6"},
		{"id":"targets","type":"text","x":1540,"y":310,"width":260,"height":170,"text":"☸️ Deploy targets\n\nPi Kubernetes cluster\nnamespace: swarm\nExternal APIs","color":"0"}
	],
	"edges":[
		{"id":"e1","fromNode":"sessions","toNode":"runtime","label":"inbound","fromSide":"right","toSide":"left"},
		{"id":"e2","fromNode":"runtime","toNode":"workers","label":"delegates","fromSide":"bottom","toSide":"top"},
		{"id":"e3","fromNode":"runtime","toNode":"retrieval","label":"searches","fromSide":"right","toSide":"left"},
		{"id":"e4","fromNode":"runtime","toNode":"inference","label":"generates","fromSide":"right","toSide":"left"},
		{"id":"e5","fromNode":"runtime","toNode":"automation","label":"schedules","fromSide":"right","toSide":"left"},
		{"id":"e6","fromNode":"retrieval","toNode":"obsidian","label":"indexes","fromSide":"right","toSide":"left","color":"6"},
		{"id":"e7","fromNode":"automation","toNode":"obsidian","label":"writes notes","fromSide":"right","toSide":"left","color":"6"},
		{"id":"e8","fromNode":"runtime","toNode":"obsidian","label":"reads/writes","fromSide":"right","toSide":"left","color":"6"},
		{"id":"e9","fromNode":"runtime","toNode":"repos","label":"commits/backups","fromSide":"right","toSide":"left"},
		{"id":"e10","fromNode":"automation","toNode":"repos","label":"artifacts","fromSide":"right","toSide":"left"},
		{"id":"e11","fromNode":"runtime","toNode":"targets","label":"deploys/tests","fromSide":"right","toSide":"left"}
	],
	"metadata":{
		"version":"1.0-1.0",
		"frontmatter":{}
	}
}