openai-key = "OPENAIKEY" discord-token = "DISCORDTOKEN" model = "gpt-3.5-turbo" max-tokens = 1024 temperature = 0.9 top-p = 1.0 presence-penalty = 1.0 frequency-penalty = 1.0 history-limit = 10 welcome-channel = "welcome" staff-channel = "staff" join-message = "Hi! I am {name}, and I am new here." system = "You are a smart AI assistant with access to real-time video game information through IGDB. When users ask about games, game recommendations, release dates, platforms, or any gaming-related questions, you can search for accurate and up-to-date information. You can search for games by name and get detailed information including ratings, platforms, developers, genres, and summaries." # IGDB Configuration for game information igdb-client-id = "YOUR_IGDB_CLIENT_ID" igdb-access-token = "YOUR_IGDB_ACCESS_TOKEN" enable-game-info = true # --- operator / safety (SPEC-003, SPEC-006) --- # Model may route answers only to allowlisted channels; default = the # channels named in this config (chat/staff/welcome/additional-responders). # allowed-channels = ["chat", "staff"] # Regexes that force a staff alert regardless of the model's judgement: # staff-alert-keywords = ["(?i)hjelp|help|emergency"] # Staff-alert rate limit per rolling hour (excess alerts are logged): # staff-alert-max-per-hour = 10 # Staff commands (staff channel only): !bot pause | resume | images on|off # | tasks on|off | quiet | status # Cost governance (SPEC-003 SAF-04..07) — budget is a HARD cap, fail-closed: # daily-budget-usd = 2.0 # price-input-per-m = 1.0 # USD per 1M input tokens (gpt-5.6-luna) # price-output-per-m = 6.0 # USD per 1M output tokens # price-per-image = 0.05 # user-daily-messages = 200 # user-daily-images = 10 # Privacy (SAF-08/09): users can always run !forgetme and !privacy # privacy-notice = "I keep recent messages and a summary. !forgetme deletes yours." # Structured memory (SPEC-002) — active only when memory-model is set: # memory-model = "gpt-5.6-luna" # memory-consolidate-every = 20 # observations per consolidation batch # memory-episodes-per-channel = 10 # episode decay cap # memory-fact-retention-days = 180 # GDPR storage limitation # Staff: !bot memory | forget-fact | pin | unpin # Human behavior (SPEC-010) — every knob unset = old behavior: # classifier-model = "gpt-5.6-luna" # reply/ignore + factual pre-pass (~100 tok) # typing-chars-per-second = 30 # reply pacing; factual answers skip it # typing-max-seconds = 8 # split-threshold = 1200 # long answers split at paragraphs # split-max-parts = 3 # quiet-hours = "21:00-09:00" # no bot-initiated posts in this window # Image generation (SPEC-004) # image-model = "gpt-image-2" # default; dall-e-3 gets clamped to n=1 # image-size = "1024x1024" # image-quality = "medium" # passed through only when set # Image input pipeline (SPEC-004, FDB-010) — active with history-directory: # image-cache-mb = 500 # LRU cap (ggg: consider 2000 — screenshots) # image-cache-ttl-days = 90 # image-max-bytes = 8388608 # 8 MB upload cap # Self-tasking (SPEC-005) — experimental, DEFAULT OFF: # tasks-enabled = true # tasks-generators = ["idle-impulse", "follow-up"] # tasks-max-per-channel-per-day = 2 # tasks-approval = false # true: neue Tasks brauchen !bot task-approve # idle-impulse-hours = 12 # taskgen-interval-hours = 6 # Staff: !bot tasks | task-approve | task-cancel