cocottetech/@platform/codebase/@features/content-ingestor/.env.example
2026-06-07 21:36:09 -07:00

48 lines
2 KiB
Text

# content-ingestor environment — copy to .env for local runs.
# Single source of truth for ports: ../../../infrastructure/.env.ports.
# Health HTTP
CONTENT_INGESTOR_HEALTH_PORT=3825
# Poll cadence (how often the worker scans mac-sync for new photos)
INGEST_POLL_INTERVAL_MS=300000
INGEST_BATCH_SIZE=50
# --- Source: mac-sync photo mirror (macsync.photos on black) ---
# Direct read of the macsync schema. Switch to mac-sync's HTTP API if its photo
# routes are exposed; the PhotoSource interface keeps that swappable.
MACSYNC_PG_URL=postgres://readonly@black.lan:25436/macsync
# Base URL to fetch a photo's binary bytes (for classification). Resolves a
# storage_key to a fetchable object URL (MinIO presigned / mac-sync server route).
MACSYNC_OBJECT_BASE_URL=http://black.lan:3201/objects
# --- Classifier: @model-boss vision coordinator (apricot GPU) ---
# The classifier POSTs the contrastive primitive /v1/vision/score (verified live;
# there is NO server-side /score_image_rubric route — that's an MCP-only helper).
# Model must be `vision`-category (siglip2-so400m, what imajin-semantic uses); a
# `vlm` like qwen3-vl-8b-instruct is the wrong category for the contrastive scorer.
MODEL_BOSS_BASE_URL=http://apricot.lan:8210
MODEL_BOSS_VISION_MODEL=siglip2-so400m
MODEL_BOSS_TIMEOUT_MS=60000
# --- Sink: platform.api (data plane on black:3060) ---
PLATFORM_API_BASE_URL=http://black.lan:3060/api/v1
SPECIALIST_TOKEN=changeme
SPECIALIST_ID=content-ingestor
# Single-tenant at P0: the Person who owns the synced library. Device→user
# mapping is the multi-tenant seam (one INGEST_USER_ID until then).
INGEST_USER_ID=00000000-0000-0000-0000-000000000000
# --- Planner: configurable posting cadence ("configurable sendings") ---
# The deliberate offset that creates the hot/stocked planning window.
PLAN_OFFSET_DAYS=7
PLAN_HORIZON_DAYS=7
PLAN_SLOTS_PER_DAY=3
# An asset counts as "hot" if taken within this window AND quality >= threshold.
PLAN_HOT_WINDOW_DAYS=14
PLAN_HOT_QUALITY_MIN=0.6
# Logging
LOG_LEVEL=info
NODE_ENV=development