PRODUCTAGENTharrisonhjohnson/productagent · /harnesses/todo/bot/config.py
000%

config.py

view on github ↗76 lines · python
"""
Navi Bot Configuration

Security settings and authorized users
"""
import os

# Authorized Telegram User IDs
# To find your user ID: message @userinfobot on Telegram
AUTHORIZED_USERS = [
    int(os.environ.get("TELEGRAM_USER_ID", "0")),  # authorized user
]

# Display name used in prompts ("reply in <name>'s voice", "helping <name>")
USER_NAME = os.environ.get("NAVI_USER_NAME", "you")
SLACK_USER_NAME = USER_NAME

# Bot Settings
MAX_MESSAGE_LENGTH = 4096  # Telegram's limit
CLAUDE_TIMEOUT = 120  # seconds

# Retry Settings
MAX_RETRIES = 3
INITIAL_RETRY_DELAY = 2  # seconds
MAX_RETRY_DELAY = 30  # seconds
RETRY_BACKOFF_MULTIPLIER = 2  # exponential backoff

# 409 Conflict Handling
CONFLICT_WAIT_TIME = 35  # seconds (Telegram's long polling timeout is 30s)

# Logging
LOG_UNAUTHORIZED_ATTEMPTS = True
LOG_FILE_MAX_BYTES = 10 * 1024 * 1024  # 10MB
LOG_FILE_BACKUP_COUNT = 5  # Keep 5 old log files

# Session/Context Settings
SESSION_TIMEOUT_MINUTES = 30  # Clear context after 30 min of inactivity
MAX_CONTEXT_MESSAGES = 10  # Number of recent messages to include in context
CLEANUP_INTERVAL_SECONDS = 300  # Clean up expired sessions every 5 minutes

# TODO Integration
TODO_PATH = None  # None = default to ~/TODO.md
TODO_AUTO_UPDATE_DATE = True  # Automatically update "Last Updated" date

# Scheduler Settings
SCHEDULER_TIMEZONE = 'America/New_York'  # Your timezone
SCHEDULER_ENABLED = True  # Enable scheduled jobs
DEFAULT_TODO_SUMMARY_TIME = (8, 0)  # Daily TODO summary at 8:00am (hour, minute)
DEFAULT_EVENING_SUMMARY_TIME = (17, 0)  # Evening summary at 5:00pm (hour, minute)
DEFAULT_WEEKLY_REVIEW_DAY = 'fri'  # Weekly review on Friday
DEFAULT_WEEKLY_REVIEW_TIME = (17, 0)  # Weekly review at 5:00pm
MORNING_TOP_PRIORITIES = 3  # Number of top priorities to show in morning summary
CATCHUP_SUMMARY_ENABLED = False  # Send catch-up summary when user messages after missed scheduled summary

# War Room Settings
WARROOM_ENABLED = True  # Enable War Room feature
WARROOM_QUESTIONS_HOUR = 8  # Hour to generate daily hard questions (24h format)
WARROOM_QUESTIONS_MINUTE = 30  # Minute to generate daily hard questions
WARROOM_ROOT = None  # None = default to ~/work/warrooms

# Claude Code Agent Inbox
# Background agents write completion summaries here; Navi sends them to Telegram
AGENT_INBOX_ENABLED = True
AGENT_INBOX_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'inbox')
AGENT_INBOX_POLL_SECONDS = 10  # Check inbox every 10 seconds

# Karma Knowledge Graph Integration
KARMA_ENABLED = True
KARMA_DIR = os.path.expanduser("~/Documents/GitHub/karma")

# Ventures PM signal (standup #8 accord, 2026-08-24)
# Navi transports ~/ventures signals + executes bounded verbs; see ventures_signal.py
VENTURES_ENABLED = True
VENTURES_ROOT = None  # None = default to ~/ventures
VENTURES_MORNING_TIME = (8, 5)  # dawn read-back push (after the 8:00 briefing)
VENTURES_ALERT_POLL_SECONDS = 30  # immediate ALERT.md relay check in the main loop
flow-designglobal
SKILL.md74 lines
SKILL.md162 lines
pm-strategistglobal
pm-strategist.md51 lines
todosystem
bot31 items
agent_executor.py344 lines
behavior_state.py106 lines
BOT.md175 lines
config.py76 lines
git_sync.py87 lines
hyrule_server.py284 lines
manage_bot.sh47 lines
mcp_server.py324 lines
mobile_mode.py229 lines
navi_tab.py95 lines
prework_engine.py426 lines
run_bot.sh18 lines
run_hyrule.sh38 lines
scheduler.py958 lines
session.py264 lines
telegram_bot.py3328 lines
todo_manager.py1130 lines
ventures_signal.py314 lines
voice_handler.py203 lines
VOICE_SETUP.md112 lines
warroom_manager.py1004 lines
README.md44 lines
night-orderssystem
README.md84 lines
loops-spec.md212 lines
settings.json116 lines
README.md59 lines