clawdie-ai/docs/WARDEN.md

2.5 KiB

Warden Runtime

Warden is the project name for Clawdie's isolated execution and service layer on FreeBSD.

It does not replace Bastille or FreeBSD jail terminology. It describes how Clawdie uses those primitives together.

Current Model

  • the FreeBSD host runs the main orchestrator
  • Bastille manages the jailed service and worker layer
  • worker execution happens inside jailed runtimes
  • persistent service jails provide database, git, and CMS functions

In practice:

  • FreeBSD enforces isolation
  • Bastille creates and manages jails
  • Clawdie dispatches work and services into the Warden layout

Canonical Roles

Current main uses these runtime classes:

Role Runtime Shape Persistence Network
worker FreeBSD jail thin ephemeral shared
networked-worker FreeBSD jail thin ephemeral VNET
git FreeBSD jail thick persistent VNET
cms FreeBSD jail thick persistent VNET
browser-vm Linux VM image persistent bridged

The database jail is also a persistent Warden service, but it is provisioned by setup/db.ts rather than the generic jail profile table.

Canonical Network Layout

The default internal Warden subnet is 10.0.0.0/24 on bridge warden0.

Reserved addresses:

  • 10.0.0.1 gateway on warden0
  • 10.0.0.2 reserved compatibility slot, intentionally unused
  • 10.0.0.3 db
  • 10.0.0.4 git
  • 10.0.0.5 cms
  • 10.0.0.6 ollama
  • 10.0.0.101+ workers
  • 10.0.0.150 browser/gui profile

Internal names should use AGENT_INTERNAL_DOMAIN=<agent>.home.arpa.

Naming Rules

  • public domain: AGENT_DOMAIN
  • internal jail/service domain: AGENT_INTERNAL_DOMAIN
  • jail names derive from AGENT_NAME
  • do not use .local as the internal default
  • do not reintroduce the old operator-jail model into the active runtime

Operator Model

There is no operator jail on current main.

  • SSH and Ansible target the FreeBSD host
  • the host manages Bastille, PF, services, and ZFS
  • db, git, and cms stay as host-managed service jails
  • workers remain sandboxed execution jails, not SSH-managed servers

Canonical operator reference:

Long-Term Direction

  • keep host orchestration on the FreeBSD host
  • keep persistent services in dedicated thick jails
  • keep worker execution isolated from those services
  • add browser automation through the separate VM class, not by bloating the jail model