{ "schema_version": 1, "diagram_type": "architecture", "meta": { "title": "Paseo on the Home Lab", "quality_profile": "showcase", "viewBox": [1120, 600] }, "components": [ { "id": "cli", "type": "frontend", "label": "paseo CLI", "sublabel": ".27 / .51", "pos": [120, 120] }, { "id": "web", "type": "frontend", "label": "Web UI / mobile", "sublabel": "browser :6767", "pos": [120, 240] }, { "id": "daemon", "type": "backend", "label": "Paseo daemon", "sublabel": "0.7.2 · :6767 · auth", "pos": [420, 120] }, { "id": "pi", "type": "backend", "label": "pi agent", "sublabel": "0.82.1 · --mode rpc", "pos": [420, 300] }, { "id": "cfg", "type": "database", "label": "pi config", "sublabel": "paseo-home/.pi", "pos": [700, 300] }, { "id": "ws", "type": "database", "label": "workspace", "sublabel": "/workspace/demo", "pos": [700, 440] }, { "id": "omni", "type": "backend", "label": "OmniRoute", "sublabel": ".13:20129", "pos": [760, 120] }, { "id": "llm", "type": "external", "label": "LLM providers", "sublabel": "combo routing", "pos": [940, 120] } ], "boundaries": [ { "kind": "region", "label": "clients", "wraps": ["cli", "web"] }, { "kind": "region", "label": "Paseo daemon (.13 Docker)", "wraps": ["daemon", "pi", "cfg", "ws"] } ], "connections": [ { "id": "cli-to-daemon", "from": "cli", "to": "daemon", "label": "PASEO_HOST + password", "labelAt": [270, 60] }, { "id": "web-to-daemon", "from": "web", "to": "daemon", "label": "https :6767" }, { "id": "daemon-to-pi", "from": "daemon", "to": "pi", "label": "spawns / manages", "labelAt": [480, 205], "fromSide": "bottom", "toSide": "top" }, { "id": "pi-to-cfg", "from": "pi", "to": "cfg", "label": "reads settings + models", "labelAt": [700, 370] }, { "id": "pi-to-ws", "from": "pi", "to": "ws", "label": "works in", "labelAt": [700, 520] }, { "id": "pi-to-omni", "from": "pi", "to": "omni", "label": "omni provider /v1", "labelAt": [590, 225], "fromSide": "right", "toSide": "bottom" }, { "id": "omni-to-llm", "from": "omni", "to": "llm", "label": "combo routing", "labelAt": [910, 194] } ], "cards": [ { "dot": "cyan", "title": "Proven end-to-end", "items": [ "paseo run --provider pi → agent 560ffca0 (pi/omni/openrouter/qwen/qwen3.7-flash)", "Agent read HELLO.txt, wrote DEMO_SUMMARY.md into /workspace/demo", "paseo logs shows full timeline (user → thought → shell → read)", "Web UI http://192.168.20.13:6767 → HTTP 200" ] }, { "dot": "emerald", "title": "Deployment facts", "items": [ "Container: /home/sam/Docker/Containers/paseo/ (restart: always)", "pi + omniroute ext baked at build time (USER root) — image runs as paseo (uid 1000)", "pi 0.82.1 in container; host Nix pi untouched", "Secrets only in .env (chmod 600)" ] }, { "dot": "amber", "title": "Findings", "items": [ "OmniRoute default combo (default-opencode-go-ds-flash) → 400 x-opencode-session issue", "Working models: openrouter/qwen/qwen3.7-flash, openrouter/openai/gpt-5.6-sol, aug/claude-haiku-4.5", "Fix combo/credentials on OmniRoute to restore the default path" ] } ] }