## What Removes the exec agent (PR #697). Its functionality is replaced by: 1. **OpenClaw skill** — teaches any OpenClaw instance to be the factory's face 2. **Vault API** — structured interface for proposals, approvals, rejections The exec agent was rebuilding OpenClaw in bash. Every piece has a native OpenClaw equivalent: - CHARACTER.md → SOUL.md - exec/MEMORY.md → MEMORY.md - exec-session.sh → session management - exec-briefing.sh → heartbeats/cron - Matrix dispatch → channel plugins ## Why Prudence isn't a separate agent. She's what OpenClaw becomes when it has the disinto skill. One LLM, one vault API, no LLM-to-LLM. ## Related - #721 — remove escalation, route through vault - #709 — skill registry research - #466 — example project (vault should have handled this, not escalation) Co-authored-by: openhands <openhands@all-hands.dev> Reviewed-on: https://codeberg.org/johba/disinto/pulls/722
57 lines
4 KiB
Text
57 lines
4 KiB
Text
# Disinto — Environment Configuration
|
|
# Copy to .env and fill in your values.
|
|
# NEVER commit .env to the repo.
|
|
#
|
|
# With SOPS + age installed, `disinto init` encrypts secrets into .env.enc
|
|
# and removes plaintext .env. To migrate an existing .env: `disinto secrets migrate`
|
|
#
|
|
# Variables marked [SECRET] are credentials that grant access if leaked.
|
|
# Variables marked [CONFIG] are non-sensitive and safe in plaintext.
|
|
|
|
# ── Per-project config ────────────────────────────────────────────────────
|
|
# Project-specific settings (FORGE_REPO, PROJECT_REPO_ROOT, PRIMARY_BRANCH,
|
|
# WOODPECKER_REPO_ID) now live in projects/*.toml — see projects/harb.toml
|
|
# for an example. Do NOT set them here; they leak into every session.
|
|
|
|
# ── Forge (Forgejo) ─────────────────────────────────────────────────────
|
|
FORGE_URL=http://localhost:3000 # [CONFIG] local Forgejo instance
|
|
|
|
# ── Auth tokens ───────────────────────────────────────────────────────────
|
|
FORGE_TOKEN= # [SECRET] dev-bot API token
|
|
FORGE_REVIEW_TOKEN= # [SECRET] review-bot API token
|
|
FORGE_BOT_USERNAMES= # [CONFIG] comma-separated bot usernames
|
|
|
|
# ── Backwards compatibility ───────────────────────────────────────────────
|
|
# If CODEBERG_TOKEN is set but FORGE_TOKEN is not, env.sh falls back to
|
|
# CODEBERG_TOKEN automatically (same for REVIEW_BOT_TOKEN, CODEBERG_REPO,
|
|
# CODEBERG_BOT_USERNAMES). No action needed for existing deployments.
|
|
|
|
# ── Woodpecker CI ─────────────────────────────────────────────────────────
|
|
WOODPECKER_TOKEN= # [SECRET] Woodpecker API token
|
|
WOODPECKER_SERVER=http://localhost:8000 # [CONFIG] Woodpecker server URL
|
|
WOODPECKER_AGENT_SECRET= # [SECRET] shared secret for server↔agent auth (auto-generated)
|
|
# WOODPECKER_REPO_ID — now per-project, set in projects/*.toml [ci] section
|
|
|
|
# Woodpecker Postgres (for direct DB queries)
|
|
WOODPECKER_DB_PASSWORD= # [SECRET] Postgres password
|
|
WOODPECKER_DB_USER=woodpecker # [CONFIG] Postgres user
|
|
WOODPECKER_DB_HOST=127.0.0.1 # [CONFIG] Postgres host
|
|
WOODPECKER_DB_NAME=woodpecker # [CONFIG] Postgres database name
|
|
|
|
# ── Matrix (optional — real-time notifications & escalation replies) ──────
|
|
# In compose mode, Dendrite runs inside the Docker network. `disinto init`
|
|
# provisions the bot user, room, and token automatically.
|
|
# Compose: MATRIX_HOMESERVER defaults to http://dendrite:8008 (set by env.sh)
|
|
# Bare metal: MATRIX_HOMESERVER defaults to http://localhost:8008
|
|
MATRIX_HOMESERVER=http://dendrite:8008 # [CONFIG] Dendrite URL (compose default)
|
|
MATRIX_BOT_USER=@factory-bot:disinto.local # [CONFIG] bot's Matrix user ID
|
|
MATRIX_TOKEN= # [SECRET] bot's access token (auto-provisioned)
|
|
MATRIX_ROOM_ID= # [CONFIG] coordination room ID (auto-provisioned)
|
|
|
|
# ── Project-specific secrets ──────────────────────────────────────────────
|
|
# Store all project secrets here so formulas reference env vars, never hardcode.
|
|
BASE_RPC_URL= # [SECRET] on-chain RPC endpoint
|
|
|
|
# ── Tuning ────────────────────────────────────────────────────────────────
|
|
CLAUDE_TIMEOUT=7200 # [CONFIG] max seconds per Claude invocation
|
|
|