# {{project_name}} — environment. Copy to .env and fill in.  cp env .env
#
# The whole pod runs on Tier 1 alone against the seed source store (./data). The
# LLM chain (extract -> risk -> code -> approval routing) works day-0; the
# invoice reads, ERP posting, and approval notifications use dev stand-ins that
# announce themselves until you wire Tier 2.

# ── Tier 1 — required to boot ──────────────────────────────────────────────
LEAFMESH_LICENSE_KEY=
ANTHROPIC_API_KEY=            # Ivy (extraction) + Mat (coding) run on Claude
OPENAI_API_KEY=              # Cora + Ray + the Manager (gpt-4o-mini) — required unless you change the models

# ── State store ────────────────────────────────────────────────────────────
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=

# ── HITL — where human members are notified (AP clerk / Controller / CFO / Lead) ──
HITL_OUTBOUND_URL=http://127.0.0.1:9999/human-notify

# ── Tier 2 — real invoice connectors (ERP / mailbox). Set the URL, then
#    UNCOMMENT the mcp block on invoice_intake_agent in configs/config.yaml.
#    Inert until then. ──
ERP_MCP_URL=
ERP_MCP_TOKEN=
MAIL_MCP_URL=
MAIL_MCP_TOKEN=

# ── Dev stand-ins (irrelevant in production) ───────────────────────────────
# The dev "ERP" Poe posts to is a local SQLite ledger; the seeded source store
# holds sample invoices + POs + a vendor master + a GL chart so the FULL chain
# runs with no connectors. Going live = swap the function bodies in
# agency/_shared/erp_poster.py and agency/_shared/store.py for the real calls.
ERP_TYPE=netsuite                        # tags each posted ledger row
FINANCE_OPS_ERP_LEDGER=./data/erp_postings.db
FINANCE_OPS_STORE_DIR=./data
