# Genesis Manifest — generated by scripts/gen_genesis_manifest.py. Do NOT edit by hand.
#
# The single index an agent (or scripts/install.sh) loops to deploy agent-utilities:
#   1. pick a `profile`            (tiny | single-node-prod | enterprise)
#   2. run `preflight`             (does this host have the runtimes/tools?)
#   3. install + generate config   (scripts/install.sh -> setup-config)
#   4. wire the MCP `servers`      (via the profile's `skill`)
#   5. wire any `components` + `ide_targets`, then `verify`
#
# Composes existing sources (mcp-fleet.registry.yml, config profiles, docs/recipes/*,
# the deployment preflight) — it does not duplicate them. Regenerate after changing
# any of those; scripts/check_genesis_manifest.py gates drift.
version: 1
entrypoints:
  preflight: agent-utilities-doctor --preflight --profile <profile> [--component <c>]
  install: 'scripts/install.sh (Windows: scripts/install.ps1)'
  config: setup-config generate --profile <profile>
  verify: agent-utilities-doctor
  single_node_skill: agent-utilities-deployment
  multi_node_skill: agent-os-genesis
profiles:
  tiny:
    summary: zero-infra, all-local (laptop / Raspberry Pi) — homelab quick start
    recipe: docs/recipes/tiny.md
    docker: false
    secrets: dotenv
    servers: none
    skill: agent-utilities-deployment
  single-node-prod:
    summary: one durable, secured host (Postgres/pg-age) + the core MCP connectors
    recipe: docs/recipes/single-node-prod.md
    docker: true
    secrets: openbao-or-dotenv
    servers: core
    skill: agent-utilities-deployment
  enterprise:
    summary: multi-host Docker Swarm, full integration (Vault/SSO/DNS/ingress/observability + all connectors)
    recipe: docs/recipes/enterprise.md
    docker: true
    secrets: openbao
    servers: all
    skill: agent-os-genesis
preflight:
  command: agent-utilities-doctor --preflight
  mcp_action: graph_configure action=preflight config_key=<profile>
  always:
  - python>=3.11,<3.15
  - uv-or-pip
  - epistemic-graph-server (from the agent-utilities wheel; Rust only as a fallback)
  docker_when: profile != tiny
components:
  agent-terminal-ui:
    connect: http
    deps:
    - python>=3.11
    container: true
    note: thin Textual TUI over the gateway; many fit on a Pi-class node
  agent-webui:
    connect: http
    deps:
    - node>=18
    - pnpm>=10
    container: needs-dockerfile
    note: React/Vite SPA + FastAPI; talks to the gateway over /api/*
  geniusbot:
    connect: import
    deps:
    - python>=3.11
    - PySide6/Qt6
    - libGL
    - libxcb
    - display
    container: false
    note: PySide6 desktop app; needs an X11/Wayland display — not headless/cloud
ide_targets:
  install_skills: install-skills --all-detected
  install_mcp: mcp-installer --all-detected
  harness_fence: setup-config harness-fence --target ~/.claude
  tools:
  - claude
  - claude-desktop
  - windsurf
  - opencode
  - openclaw
  - antigravity
  - codex
  - devin
  - cursor
  - zed
  - agent-utilities
  - agent-terminal-ui
servers:
  source: deploy/mcp-fleet.registry.yml
  transport: streamable-http
  count: 54
  core_count: 6
  core:
  - caddy-mcp
  - container-manager-mcp
  - openbao-mcp
  - pulselink-mcp
  - technitium-dns-mcp
  - vector-mcp
