Heartbeat system overhaul: - Fix email/calendar checks to parse JSON output correctly - Add per-check cooldowns and quiet hours config - Send findings to Discord channel instead of just logging - Auto-reindex KB when stale files detected - Claude CLI called only if HEARTBEAT.md has extra instructions - All settings configurable via config.json heartbeat section Move hardcoded values to config.json: - allowed_tools list (claude_session.py) - Ollama URL/model (memory_search.py now reads ollama.url from config) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
80 lines
2.0 KiB
JSON
80 lines
2.0 KiB
JSON
{
|
|
"bot": {
|
|
"name": "Echo",
|
|
"default_model": "opus",
|
|
"owner": "949388626146517022",
|
|
"admins": ["5040014994"]
|
|
},
|
|
"channels": {
|
|
"echo-core": {
|
|
"id": "1471916752119009432",
|
|
"default_model": "opus"
|
|
}
|
|
},
|
|
"telegram_channels": {},
|
|
"whatsapp": {
|
|
"enabled": true,
|
|
"bridge_url": "http://127.0.0.1:8098",
|
|
"owner": "40723197939",
|
|
"admins": []
|
|
},
|
|
"whatsapp_channels": {
|
|
"echo-test": {
|
|
"id": "120363424350922235@g.us",
|
|
"default_model": "opus"
|
|
}
|
|
},
|
|
"heartbeat": {
|
|
"enabled": true,
|
|
"interval_minutes": 30,
|
|
"channel": "echo-core",
|
|
"model": "haiku",
|
|
"quiet_hours": [23, 8],
|
|
"checks": {
|
|
"email": true,
|
|
"calendar": true,
|
|
"kb_index": true,
|
|
"git": true
|
|
},
|
|
"cooldowns": {
|
|
"email": 1800,
|
|
"calendar": 0,
|
|
"kb_index": 14400,
|
|
"git": 14400
|
|
}
|
|
},
|
|
"allowed_tools": [
|
|
"Read", "Edit", "Write", "Glob", "Grep",
|
|
"WebFetch", "WebSearch",
|
|
"Bash(python3 *)", "Bash(.venv/bin/python3 *)",
|
|
"Bash(pip *)", "Bash(pytest *)",
|
|
"Bash(git add *)", "Bash(git commit *)",
|
|
"Bash(git push)", "Bash(git push *)",
|
|
"Bash(git pull)", "Bash(git pull *)",
|
|
"Bash(git status)", "Bash(git status *)",
|
|
"Bash(git diff)", "Bash(git diff *)",
|
|
"Bash(git log)", "Bash(git log *)",
|
|
"Bash(git checkout *)",
|
|
"Bash(git branch)", "Bash(git branch *)",
|
|
"Bash(git stash)", "Bash(git stash *)",
|
|
"Bash(npm *)", "Bash(node *)", "Bash(npx *)",
|
|
"Bash(systemctl --user *)",
|
|
"Bash(trash *)", "Bash(mkdir *)", "Bash(cp *)",
|
|
"Bash(mv *)", "Bash(ls *)", "Bash(cat *)", "Bash(chmod *)",
|
|
"Bash(docker *)", "Bash(docker-compose *)", "Bash(docker compose *)",
|
|
"Bash(ssh *@10.0.20.*)", "Bash(ssh root@10.0.20.*)",
|
|
"Bash(ssh echo@10.0.20.*)",
|
|
"Bash(scp *10.0.20.*)", "Bash(rsync *10.0.20.*)"
|
|
],
|
|
"ollama": {
|
|
"url": "http://localhost:11434"
|
|
},
|
|
"paths": {
|
|
"personality": "personality/",
|
|
"tools": "tools/",
|
|
"memory": "memory/",
|
|
"logs": "logs/",
|
|
"sessions": "sessions/"
|
|
}
|
|
}
|