cocottetech/@platform/codebase/@features/content-ingestor/.env.example
autocommit ed436ea97e feat(content-pipeline): content-social engine, content-ingestor, platform.api endpoints
Stranded-worktree preservation commit (this branch is local-only + 28 behind
main; ACS watches the main tree, not this worktree, so committing manually so
the work isn't lost). Integration to main is a follow-up.

- @features/content-social/ai-core: drop derive engine + K3 gate (21 tests)
- @features/content-ingestor: classify-newest-first + configurable 1wk-offset
  hot/stocked planner (17 tests)
- platform-api: content-assets / content-drops / content-drop-legs CRUD modules
  + entities + enums; content-drops asset_ids enrichment + cluster endpoints;
  content-assets filtered list + idempotent upsert
- platform-api fixes (also latent-broken on main): ioredis named import,
  entities spread, agent-actions @ApiProperty, content-post confidence transformer
- migrations: 0009_content_drops (renumbered from 0007 — main holds 0007/0008),
  0010_content_asset_classification (is_explicit/content_class/quality_score,
  is_explicit DEFAULT TRUE fail-safe)
- design: content-drop-composer.screen + content-drop.flow

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 11:15:52 -07:00

44 lines
1.7 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 (apricot GPU) ---
MODEL_BOSS_BASE_URL=http://apricot.lan:4505
MODEL_BOSS_VISION_MODEL=qwen3-vl-8b-instruct
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