Files
passepartout/.env.example
Amr Gharbeia c86d079418
Some checks failed
Deploy (Gitea) / deploy (push) Failing after 2s
passepartout: v0.5.0 — File Reorganization & Token Economics
File Reorganization:
- Extracted core-context → symbolic-awareness (skill)
- Extracted heartbeat → symbolic-events (skill)
- Relocated 6 utility fragments, renamed 23 files, deleted system-model.lisp
- Renamed gateway-* → channel-*, split gateway-messaging → 4 channel-* files
- Renamed defskill/defpackage names to match new file prefixes
- Deleted gateway-messaging.org/.lisp, removed core-context filter
- Documented self-repair criterion, added AGENTS.md core boundary rule

Token Economics (v0.5.0, skills not core):
- tokenizer.lisp: count-tokens, model-token-ratio, token-cost, provider-token-cost (11 tests)
- cost-tracker.lisp: cost-track-call, cost-session-total, cost-by-provider (6 tests)
- token-economics.lisp: prompt-prefix-cached, context-assemble-cached,
  enforce-token-budget with CONTEXT_MAX_TOKENS env var (9 tests)

Bug Fixes:
- Fixed DeepSeek 400 (removed malformed tools from cascade)
- Fixed UNDEFINED-FUNCTION crash (fboundp guards in think())
- Fixed gate-trace duplication (setf replaces list* in cognitive-verify)
- Tightened dexador connect-timeout 10s→5s

Test suite: 116/116 (100%)
2026-05-08 08:36:41 -04:00

113 lines
4.7 KiB
Plaintext

# passepartout: Environment Configuration Template
# Copy this to .env and fill in your values
# =============================================================================
# IDENTITY
# =============================================================================
MEMEX_USER="YourName"
MEMEX_ASSISTANT="AgentName"
# =============================================================================
# LLM PROVIDERS (OpenRouter recommended as primary)
# =============================================================================
OPENROUTER_API_KEY="your_openrouter_key_here"
OPENAI_API_KEY="your_openai_key_here"
ANTHROPIC_API_KEY="your_anthropic_key_here"
GROQ_API_KEY="your_groq_api_key_here"
GEMINI_API_KEY="your_gemini_key_here"
DEEPSEEK_API_KEY="your_deepseek_key_here"
NVIDIA_API_KEY="your_nvidia_nim_key_here"
# Cascade order (first available provider wins)
# Default (if unset): openrouter,openai,anthropic,groq,gemini-api,deepseek,nvidia
PROVIDER_CASCADE=deepseek,openrouter,openai,anthropic,groq,gemini,nvidia
# =============================================================================
# LOCAL LLM (generic OpenAI-compatible endpoint)
# =============================================================================
# Set this to the base URL of any local OpenAI-compatible server
# (llama.cpp, Ollama, vLLM, LM Studio, etc.)
LOCAL_BASE_URL="localhost:8080"
# Ollama host (legacy: falls back to LOCAL_BASE_URL if not set)
OLLAMA_HOST="localhost:11434"
# =============================================================================
# VECTOR EMBEDDINGS (semantic search)
# =============================================================================
EMBEDDING_PROVIDER="hashing" # "hashing" (local, no deps), "local", or "openai"
EMBEDDING_MODEL="nomic-embed-text" # model name for embeddings
EMBEDDING_BASE_URL="https://api.openai.com/v1" # for :openai provider
# =============================================================================
# MESSAGING GATEWAYS (optional)
# =============================================================================
TELEGRAM_BOT_TOKEN="your_telegram_bot_token_here"
SIGNAL_ACCOUNT_NUMBER="+1..."
# =============================================================================
# DAEMON CONFIGURATION
# =============================================================================
ORG_AGENT_DAEMON_PORT=9105
DAEMON_HOST="0.0.0.0"
HEARTBEAT_INTERVAL=60
DAEMON_SLEEP_INTERVAL=3600
DEFAULT_ACTUATOR="cli"
SILENT_ACTUATORS="cli,system-message,emacs"
# =============================================================================
# SECURITY
# =============================================================================
PROTOCOL_ENFORCE_HMAC=false
PROTOCOL_HMAC_SECRET="change-this-to-a-secure-random-string"
# Privacy filter tags: comma-separated list of tags that mark content as private.
# Files/headings tagged with any of these will be filtered from LLM context.
# Default: @personal
PRIVACY_FILTER_TAGS="@personal,@health,@finance"
# =============================================================================
# DISPATCHER RULE LEARNING
# =============================================================================
# Number of HITL approvals before a pattern becomes a permanent rule
DISPATCHER_RULE_THRESHOLD=3
# Where learned rules are persisted
RULES_FILE="$HOME/memex/system/rules.org"
# =============================================================================
# BOOTSTRAP
# =============================================================================
MANDATORY_SKILLS="security-policy,security-dispatcher"
# =============================================================================
# CONTEXT / MEMORY
# =============================================================================
CONTEXT_SEMANTIC_THRESHOLD=0.75
CONTEXT_LOG_LIMIT=20
# =============================================================================
# MEMEX STRUCTURE
# =============================================================================
MEMEX_DIR="$HOME/memex"
ZETTELKASTEN_DIR="$HOME/memex/notes"
INBOX_DIR="$HOME/memex/inbox"
DAILY_DIR="$HOME/memex/daily"
PROJECTS_DIR="$HOME/memex/projects"
AREAS_DIR="$HOME/memex/areas"
RESOURCES_DIR="$HOME/memex/resources"
ARCHIVES_DIR="$HOME/memex/archives"
SYSTEM_DIR="$HOME/memex/system"
LLM_REQUEST_TIMEOUT=30
# =============================================================================
# TOKEN ECONOMICS (v0.5.0)
# =============================================================================
# Max tokens for the combined system prompt + context + user prompt.
# Default: 16384 (half of a 32K context window, leaves room for model response).
CONTEXT_MAX_TOKENS=16384
# Soft daily cost cap in USD. Warning injected into system prompt when
# approaching budget.
COST_BUDGET_DAILY=1.00