Yanxin Lu f05a84d8ca 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
2026-03-31 11:12:08 -07:00
2026-03-25 00:00:03 -07:00
2026-03-18 13:36:25 -07:00
2026-03-24 15:36:46 -07:00
2026-02-18 22:39:35 -08:00
2026-02-18 22:39:35 -08:00
2026-03-18 13:36:25 -07:00
2026-03-24 14:38:37 -07:00
2026-02-18 22:39:35 -08:00
Description
Youlu's openclaw workspace
1.2 MiB
Languages
Python 93.4%
Shell 6.6%