contacts: extract into standalone skill, add himalaya wrapper for all email sends
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
This commit is contained in:
@@ -52,11 +52,6 @@ $SKILL_DIR/scripts/calendar.sh reply [options]
|
||||
$SKILL_DIR/scripts/calendar.sh event list [options]
|
||||
$SKILL_DIR/scripts/calendar.sh event delete [options]
|
||||
|
||||
# Manage contacts (used for recipient validation)
|
||||
$SKILL_DIR/scripts/calendar.sh contact list
|
||||
$SKILL_DIR/scripts/calendar.sh contact add [options]
|
||||
$SKILL_DIR/scripts/calendar.sh contact delete [options]
|
||||
|
||||
# Manage todos
|
||||
$SKILL_DIR/scripts/calendar.sh todo add [options]
|
||||
$SKILL_DIR/scripts/calendar.sh todo list [options]
|
||||
@@ -197,28 +192,9 @@ $SKILL_DIR/scripts/calendar.sh event delete --match "Allergy Shot" --all
|
||||
|
||||
---
|
||||
|
||||
## Managing Contacts
|
||||
## Recipient Resolution
|
||||
|
||||
Contacts are stored as vCard (.vcf) files in `~/.openclaw/workspace/contacts/default/` and synced to Migadu CardDAV via vdirsyncer. The `send` command validates recipients against this contact list.
|
||||
|
||||
```bash
|
||||
# List all contacts
|
||||
$SKILL_DIR/scripts/calendar.sh contact list
|
||||
|
||||
# Add a contact (single email)
|
||||
$SKILL_DIR/scripts/calendar.sh contact add --name "小鹿" --email "mail@luyx.org"
|
||||
|
||||
# Add with email type and nickname
|
||||
$SKILL_DIR/scripts/calendar.sh contact add --name "小橘子" --email "Erica.Jiang@anderson.ucla.edu" --type work --nickname "小橘子"
|
||||
|
||||
# Add a second email to an existing contact
|
||||
$SKILL_DIR/scripts/calendar.sh contact add --name "小橘子" --email "xueweijiang0313@gmail.com" --type home
|
||||
|
||||
# Delete a contact
|
||||
$SKILL_DIR/scripts/calendar.sh contact delete --name "小橘子"
|
||||
```
|
||||
|
||||
### Sending to Contacts
|
||||
The `send --to` flag delegates to the **contacts skill** (`skills/contacts/`) for address resolution. See the contacts skill SKILL.md for full documentation on adding/managing contacts.
|
||||
|
||||
```bash
|
||||
# By name (works when contact has a single email)
|
||||
|
||||
Reference in New Issue
Block a user