Refactors the contacts system from being embedded in cal_tool.py into a standalone contacts skill that serves as the single source of truth for recipient validation across all outbound email paths. - New skills/contacts/ skill: list, add, delete, resolve commands - New skills/himalaya/scripts/himalaya.sh wrapper: validates To/Cc/Bcc recipients against contacts for message send, template send, and message write commands; passes everything else through unchanged - cal_tool.py now delegates to contacts.py resolve instead of inline logic - TOOLS.md updated: agent should use himalaya wrapper, not raw himalaya
24 lines
1008 B
Bash
Executable File
24 lines
1008 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# calendar — wrapper script for the calendar and todo tool.
|
|
#
|
|
# Usage:
|
|
# ./calendar.sh send [options] # send a calendar invite (supports --rrule)
|
|
# ./calendar.sh reply [options] # accept/decline/tentative
|
|
# ./calendar.sh event list [options] # list/search calendar events
|
|
# ./calendar.sh event delete [options] # delete an event by UID or summary
|
|
# ./calendar.sh todo add [options] # create a todo
|
|
# ./calendar.sh todo list [options] # list pending todos
|
|
# ./calendar.sh todo edit [options] # edit a todo's fields
|
|
# ./calendar.sh todo complete [options] # mark todo as done
|
|
# ./calendar.sh todo delete [options] # remove a todo
|
|
# ./calendar.sh todo check # daily digest for cron
|
|
#
|
|
# Requires: uv, himalaya, vdirsyncer (for CalDAV sync).
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
SKILL_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
|
|
exec uv run --project "$SKILL_DIR" python "$SCRIPT_DIR/cal_tool.py" "$@"
|