198 lines
8.4 KiB
YAML
198 lines
8.4 KiB
YAML
# app.yaml — AIPA Application Configuration
|
|
#
|
|
# This file defines structure and defaults for the entire application.
|
|
# Environment variables override individual settings (see comments).
|
|
# Secrets (API keys) are never stored here — use .env.
|
|
#
|
|
# Docker deployment pattern:
|
|
# - Bake this file into the image, or mount it as a volume.
|
|
# - Set AIPA_ROOT to your data volume mount point.
|
|
# - Override per-environment values with environment variables.
|
|
# - Pass secrets via Docker secrets or environment injection.
|
|
#
|
|
# Path resolution:
|
|
# - Relative paths are resolved against AIPA_ROOT (if set) or the repo root.
|
|
# - Absolute paths are used as-is.
|
|
# - Set AIPA_ROOT=/app/data in production to relocate all mutable data.
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Application Identity
|
|
# ---------------------------------------------------------------------------
|
|
|
|
app:
|
|
name: AIPA # env: AIPA_APP_NAME
|
|
version: "1.0.0"
|
|
environment: development # env: AIPA_ENV (development | production | test)
|
|
log_level: INFO # env: AIPA_LOG_LEVEL (DEBUG | INFO | WARNING | ERROR)
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Paths
|
|
#
|
|
# Paths marked [config] are read-only at runtime (baked into image or repo).
|
|
# Paths marked [data] are read-write and should be on a mounted volume in Docker.
|
|
# Paths marked [runtime] are generated at runtime.
|
|
# ---------------------------------------------------------------------------
|
|
|
|
paths:
|
|
# Root override for Docker / relocatable deployments.
|
|
# All relative paths below resolve against this value if set.
|
|
# If unset, resolves against the repo root.
|
|
# env: AIPA_ROOT
|
|
root: ""
|
|
|
|
# Agent system
|
|
prompts_dir: agents/prompts # [config] env: AIPA_PROMPTS_DIR
|
|
registry: agents/registry/agent_registry.md # [config] env: AIPA_REGISTRY_PATH
|
|
|
|
# Configuration
|
|
agents_config: config/agents.yaml # [config] env: AIPA_AGENTS_CONFIG
|
|
app_config: config/app.yaml # [config] (self-referential, for reference)
|
|
|
|
# Memory and session data
|
|
standing_brief: docs/standing_brief.md # [data] env: AIPA_STANDING_BRIEF_PATH
|
|
brief_template: docs/standing_brief_template.md # [config] env: AIPA_BRIEF_TEMPLATE_PATH
|
|
archive_dir: docs/archive # [data] env: AIPA_ARCHIVE_DIR
|
|
|
|
# Logs
|
|
logs_dir: logs # [runtime] env: AIPA_LOGS_DIR
|
|
|
|
# Data / persistent storage
|
|
data_dir: data # [data] env: AIPA_DATA_DIR
|
|
tasks_dir: data/tasks # [data] env: AIPA_TASKS_DIR
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Logging
|
|
# ---------------------------------------------------------------------------
|
|
|
|
logging:
|
|
# Log level — also controlled by app.log_level above.
|
|
# env: AIPA_LOG_LEVEL
|
|
level: INFO # DEBUG | INFO | WARNING | ERROR | CRITICAL
|
|
|
|
# Terminal output format.
|
|
# env: AIPA_LOG_FORMAT
|
|
format: rich # rich | plain | json
|
|
|
|
# File logging — disabled by default.
|
|
file:
|
|
enabled: false # env: AIPA_LOG_FILE_ENABLED
|
|
path: logs/aipa.log # env: AIPA_LOG_FILE_PATH (relative to AIPA_ROOT)
|
|
rotation: daily # env: AIPA_LOG_ROTATION (daily | size | none)
|
|
max_size_mb: 100 # env: AIPA_LOG_MAX_SIZE_MB (when rotation: size)
|
|
retention_days: 30 # env: AIPA_LOG_RETENTION_DAYS
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Session
|
|
# Defaults for each orchestration session.
|
|
# All overridable at runtime via slash commands within a session.
|
|
# ---------------------------------------------------------------------------
|
|
|
|
session:
|
|
# Number of session log entries to retain in the standing brief before archiving.
|
|
# env: AIPA_SESSION_LOG_RETENTION
|
|
log_retention: 10
|
|
|
|
# Seconds to wait for a lead agent before timing out.
|
|
# env: AIPA_LEAD_TIMEOUT
|
|
lead_timeout: 120
|
|
|
|
# Automatically run Vera's audit after every directive.
|
|
# env: AIPA_AUTO_AUDIT
|
|
auto_audit: true
|
|
|
|
# Print raw agent outputs to terminal (useful for debugging).
|
|
# env: AIPA_DEBUG
|
|
debug_output: false
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Memory
|
|
# Configuration for agent memory and knowledge persistence.
|
|
# ---------------------------------------------------------------------------
|
|
|
|
memory:
|
|
# Standing brief — Miranda's cross-session working memory.
|
|
standing_brief:
|
|
enabled: true # env: AIPA_MEMORY_BRIEF_ENABLED
|
|
# Maximum sections retained before Miranda is asked to archive.
|
|
max_session_logs: 10 # env: AIPA_MEMORY_MAX_SESSION_LOGS
|
|
|
|
# Agent memory store — for future long-term agent memory support.
|
|
# Currently unused; placeholder for vector store or database integration.
|
|
store:
|
|
enabled: false # env: AIPA_MEMORY_STORE_ENABLED
|
|
backend: none # env: AIPA_MEMORY_STORE_BACKEND
|
|
# none | sqlite | postgres | chroma | pinecone
|
|
|
|
# SQLite (local, no additional infrastructure)
|
|
sqlite:
|
|
path: data/memory.db # env: AIPA_MEMORY_SQLITE_PATH
|
|
|
|
# PostgreSQL
|
|
postgres:
|
|
host: localhost # env: AIPA_MEMORY_PG_HOST
|
|
port: 5432 # env: AIPA_MEMORY_PG_PORT
|
|
database: aipa # env: AIPA_MEMORY_PG_DB
|
|
user: aipa # env: AIPA_MEMORY_PG_USER
|
|
# password: via env only # env: AIPA_MEMORY_PG_PASSWORD
|
|
|
|
# Vector store (for semantic memory / RAG)
|
|
vector:
|
|
backend: none # env: AIPA_MEMORY_VECTOR_BACKEND
|
|
# none | chroma | pinecone | weaviate
|
|
collection: aipa_memory # env: AIPA_MEMORY_VECTOR_COLLECTION
|
|
|
|
chroma:
|
|
host: localhost # env: AIPA_MEMORY_CHROMA_HOST
|
|
port: 8000 # env: AIPA_MEMORY_CHROMA_PORT
|
|
persist_dir: data/chroma # env: AIPA_MEMORY_CHROMA_PERSIST_DIR
|
|
|
|
pinecone:
|
|
index: aipa-memory # env: AIPA_MEMORY_PINECONE_INDEX
|
|
# api_key: via env only # env: PINECONE_API_KEY
|
|
environment: us-east-1-aws # env: AIPA_MEMORY_PINECONE_ENV
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Infrastructure
|
|
# ---------------------------------------------------------------------------
|
|
|
|
infrastructure:
|
|
|
|
# REST API server — for future web/programmatic access.
|
|
# Currently unused; placeholder for FastAPI or similar.
|
|
api:
|
|
enabled: false # env: AIPA_API_ENABLED
|
|
host: 0.0.0.0 # env: AIPA_API_HOST
|
|
port: 8080 # env: AIPA_API_PORT
|
|
workers: 1 # env: AIPA_API_WORKERS
|
|
cors_origins: # env: AIPA_API_CORS_ORIGINS (comma-separated)
|
|
- "*"
|
|
# tls:
|
|
# enabled: false # env: AIPA_API_TLS_ENABLED
|
|
# cert: certs/server.crt # env: AIPA_API_TLS_CERT
|
|
# key: certs/server.key # env: AIPA_API_TLS_KEY
|
|
|
|
# Response caching — for future use.
|
|
cache:
|
|
enabled: false # env: AIPA_CACHE_ENABLED
|
|
backend: memory # env: AIPA_CACHE_BACKEND (memory | redis)
|
|
ttl_seconds: 3600 # env: AIPA_CACHE_TTL
|
|
|
|
redis:
|
|
host: localhost # env: AIPA_REDIS_HOST
|
|
port: 6379 # env: AIPA_REDIS_PORT
|
|
db: 0 # env: AIPA_REDIS_DB
|
|
# password: via env only # env: AIPA_REDIS_PASSWORD
|
|
|
|
# Queue — for async task dispatch (future).
|
|
queue:
|
|
enabled: false # env: AIPA_QUEUE_ENABLED
|
|
backend: memory # env: AIPA_QUEUE_BACKEND (memory | redis | rabbitmq)
|
|
|
|
# Docker / container settings
|
|
container:
|
|
# Data volume mount point — set AIPA_ROOT to this in docker-compose.
|
|
# All relative paths resolve against this in production.
|
|
data_volume: /app/data # env: AIPA_ROOT (when deployed)
|
|
config_volume: /app/config # informational — mount config/ here
|
|
prompts_volume: /app/agents/prompts # informational — mount agents/prompts here
|