## New Features - **Gitea MCP Tools** (zero API cost): - gitea_read_file: Read files from homelab repo - gitea_list_files: Browse directories - gitea_search_code: Search by filename - gitea_get_tree: Get directory tree - **Gitea Client** (gitea_tools/client.py): REST API wrapper with OAuth - **Proxmox SSH Scripts** (scripts/): Homelab data collection utilities - **Obsidian MCP Support** (obsidian_mcp.py): Advanced vault operations - **Voice Integration Plan** (JARVIS_VOICE_INTEGRATION_PLAN.md) ## Improvements - **Increased timeout**: 5min → 10min for complex tasks (llm_interface.py) - **Removed Direct API fallback**: Gitea tools are MCP-only (zero cost) - **Updated .env.example**: Added Obsidian MCP configuration - **Enhanced .gitignore**: Protect personal memory files (SOUL.md, MEMORY.md) ## Cleanup - Deleted 24 obsolete files (temp/test/experimental scripts, outdated docs) - Untracked personal memory files (SOUL.md, MEMORY.md now in .gitignore) - Removed: AGENT_SDK_IMPLEMENTATION.md, HYBRID_SEARCH_SUMMARY.md, IMPLEMENTATION_SUMMARY.md, MIGRATION.md, test_agent_sdk.py, etc. ## Configuration - Added config/gitea_config.example.yaml (Gitea setup template) - Added config/obsidian_mcp.example.yaml (Obsidian MCP template) - Updated scheduled_tasks.yaml with new task examples Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
165 lines
4.9 KiB
YAML
165 lines
4.9 KiB
YAML
# Scheduled Tasks Configuration
|
|
# Tasks that require the Agent/LLM to execute
|
|
|
|
tasks:
|
|
# Morning briefing - sent to Slack/Telegram
|
|
- name: morning-weather
|
|
prompt: |
|
|
Check the user profile (Jordan.md) for the location (Centennial, CO). Use the get_weather tool with OpenWeatherMap API to fetch the current weather.
|
|
|
|
Also use web_fetch to get today's high/low from a weather service:
|
|
https://wttr.in/Centennial,CO?format=j1
|
|
|
|
Parse the JSON response to extract:
|
|
- maxtempF (today's high)
|
|
- mintempF (today's low)
|
|
|
|
Format the report as:
|
|
|
|
🌤️ **Weather Report for Centennial, CO**
|
|
- Current: [current]°F (feels like [feels_like]°F)
|
|
- Today's High: [high]°F
|
|
- Today's Low: [low]°F
|
|
- Conditions: [conditions]
|
|
- Wind: [wind speed] mph
|
|
- Recommendation: [brief clothing/activity suggestion]
|
|
|
|
Keep it brief and friendly!
|
|
schedule: "daily 06:00"
|
|
enabled: true
|
|
send_to_platform: "telegram"
|
|
send_to_channel: "8088983654" # Your Telegram user ID
|
|
|
|
# Daily Zettelkasten Review
|
|
- name: zettelkasten-daily-review
|
|
prompt: |
|
|
Time for your daily zettelkasten review! Help Jordan process fleeting notes:
|
|
|
|
1. Use search_by_tags to find all notes tagged with "fleeting"
|
|
2. Show Jordan the list of fleeting notes captured today/recently
|
|
3. For each note, ask: "Would you like to:
|
|
a) Process this into a permanent note
|
|
b) Keep as fleeting for now
|
|
c) Delete (not useful)"
|
|
|
|
Format:
|
|
📝 **Daily Zettelkasten Review**
|
|
|
|
You have [X] fleeting notes to review:
|
|
|
|
1. [Title] - [first line of content]
|
|
2. [Title] - [first line of content]
|
|
...
|
|
|
|
Reply with the number to process, or 'skip' to review later.
|
|
|
|
Keep it conversational and low-pressure!
|
|
schedule: "daily 20:00"
|
|
enabled: true
|
|
send_to_platform: "telegram"
|
|
send_to_channel: "8088983654"
|
|
|
|
# Daily API cost report
|
|
- name: daily-cost-report
|
|
prompt: |
|
|
Generate a daily API usage and cost report:
|
|
|
|
Read the usage_data.json file to get today's API usage statistics.
|
|
|
|
Format the report as follows:
|
|
📊 **Daily API Usage Report**
|
|
|
|
**Today's Stats:**
|
|
- Total API calls: [count]
|
|
- Input tokens: [count]
|
|
- Output tokens: [count]
|
|
- Cache hits: [count] (if any)
|
|
|
|
**Costs:**
|
|
- Today: $[amount]
|
|
- Model breakdown: [breakdown by model]
|
|
|
|
**Budget Tracking:**
|
|
- Remaining budget: $19.86
|
|
- 75% threshold: $14.90 (⚠️ WARN IF EXCEEDED)
|
|
- Status: [On track / Warning - approaching 75% / Critical - over 75%]
|
|
|
|
⚠️ **IMPORTANT:** If cumulative cost exceeds $14.90 (75% of $19.86), display a clear warning message.
|
|
|
|
Keep it clear and actionable!
|
|
schedule: "daily 23:00"
|
|
enabled: true
|
|
send_to_platform: "telegram"
|
|
send_to_channel: "8088983654"
|
|
|
|
# Evening summary
|
|
- name: evening-report
|
|
prompt: |
|
|
Good evening! Time for the daily wrap-up:
|
|
|
|
1. What was accomplished today?
|
|
2. Any tasks still pending?
|
|
3. Preview of tomorrow's priorities
|
|
4. Weather forecast for tomorrow (infer or say API needed)
|
|
|
|
Keep it concise and positive.
|
|
schedule: "daily 18:00"
|
|
enabled: false
|
|
send_to_platform: "telegram"
|
|
send_to_channel: "123456789" # Replace with chat ID
|
|
|
|
# Hourly health check (no message sending)
|
|
- name: system-health-check
|
|
prompt: |
|
|
Quick health check:
|
|
|
|
1. Are there any tasks that have been pending > 24 hours?
|
|
2. Is the memory system healthy?
|
|
3. Any alerts or issues?
|
|
|
|
Respond with "HEALTHY" if all is well, otherwise describe the issue.
|
|
schedule: "hourly"
|
|
enabled: false
|
|
username: "health-checker"
|
|
|
|
# Weekly review on Friday
|
|
- name: weekly-summary
|
|
prompt: |
|
|
It's Friday! Time for the weekly review:
|
|
|
|
1. Major accomplishments this week
|
|
2. Challenges faced and lessons learned
|
|
3. Key metrics (tasks completed, etc.)
|
|
4. Goals for next week
|
|
5. Team shoutouts (if applicable)
|
|
|
|
Make it comprehensive but engaging.
|
|
schedule: "weekly fri 17:00"
|
|
enabled: false
|
|
send_to_platform: "slack"
|
|
send_to_channel: "C12345"
|
|
|
|
# Custom: Midday standup
|
|
- name: midday-standup
|
|
prompt: |
|
|
Midday check-in! Quick standup report:
|
|
|
|
1. Morning accomplishments
|
|
2. Current focus
|
|
3. Any blockers?
|
|
4. Afternoon plan
|
|
|
|
Keep it brief - standup style.
|
|
schedule: "daily 12:00"
|
|
enabled: false
|
|
send_to_platform: "slack"
|
|
send_to_channel: "C12345"
|
|
|
|
# Configuration notes:
|
|
# - schedule formats:
|
|
# - "hourly" - Every hour on the hour
|
|
# - "daily HH:MM" - Every day at specified time (24h format)
|
|
# - "weekly day HH:MM" - Every week on specified day (mon, tue, wed, thu, fri, sat, sun)
|
|
# - send_to_platform: null = don't send to messaging (only log)
|
|
# - username: Agent memory username to use for this task
|