move himalaya wrapper from skills/himalaya/ to scripts/
The himalaya skill is a third-party ClawhHub package — putting custom scripts inside it risks conflicts on updates. The wrapper is local customization, so it belongs in scripts/ alongside email_processor.
This commit is contained in:
17
MEMORY.md
17
MEMORY.md
@@ -4,9 +4,14 @@ _这份文件记录持续性项目和重要状态,跨会话保留。_
|
|||||||
|
|
||||||
## 📝 重要规则
|
## 📝 重要规则
|
||||||
|
|
||||||
### 邮件发送规则(v2)
|
### 邮件发送规则(v3)
|
||||||
- **youlu@luyanxin.com → mail@luyx.org**: 直接发送,无需确认(用户 SimpleLogin 别名)
|
- **绝不向不在通讯录中的地址发送任何邮件**(日历邀请和普通邮件均适用)
|
||||||
- 其他所有对外邮件: 仍需确认
|
- 发送邮件/邀请时使用通讯录名称(如 `小橘子:work`),不要手写邮箱地址
|
||||||
|
- 通讯录管理: `contacts.sh list/add/delete/resolve`(`skills/contacts/`)
|
||||||
|
- 添加联系人和发送邮件是**独立操作**,不要在同一次请求中先 add 再 send
|
||||||
|
- 普通邮件使用 himalaya 包装器(`scripts/himalaya.sh`),自动校验收件人
|
||||||
|
- **youlu@luyanxin.com → mail@luyx.org**: 直接发送,无需确认(用户 SimpleLogin 别名,需在通讯录中)
|
||||||
|
- 其他所有对外邮件: 确认后再发送
|
||||||
|
|
||||||
### 代码审查规则
|
### 代码审查规则
|
||||||
写/改/部署代码前,必须先确认:
|
写/改/部署代码前,必须先确认:
|
||||||
@@ -73,7 +78,7 @@ _这份文件记录持续性项目和重要状态,跨会话保留。_
|
|||||||
### 3. 日历邀请 + CalDAV 同步
|
### 3. 日历邀请 + CalDAV 同步
|
||||||
**状态**: 运行中
|
**状态**: 运行中
|
||||||
**创建**: 2026-03-18
|
**创建**: 2026-03-18
|
||||||
**更新**: 2026-03-25(添加 RRULE 支持 + 事件管理 + 安全规则)
|
**更新**: 2026-03-31(收件人校验移至 contacts 技能 + himalaya 包装器)
|
||||||
**配置**:
|
**配置**:
|
||||||
- 技能: `~/.openclaw/workspace/skills/calendar/`
|
- 技能: `~/.openclaw/workspace/skills/calendar/`
|
||||||
- 日历数据: `~/.openclaw/workspace/calendars/` (home/work/tasks/journals)
|
- 日历数据: `~/.openclaw/workspace/calendars/` (home/work/tasks/journals)
|
||||||
@@ -103,9 +108,11 @@ _这份文件记录持续性项目和重要状态,跨会话保留。_
|
|||||||
| 项目 | 位置 |
|
| 项目 | 位置 |
|
||||||
|------|------|
|
|------|------|
|
||||||
| 邮件处理器 | `~/.openclaw/workspace/scripts/email_processor/` |
|
| 邮件处理器 | `~/.openclaw/workspace/scripts/email_processor/` |
|
||||||
|
| 通讯录 | `~/.openclaw/workspace/skills/contacts/`(数据: `contacts/default/`)|
|
||||||
| 日历/待办 | `~/.openclaw/workspace/skills/calendar/` |
|
| 日历/待办 | `~/.openclaw/workspace/skills/calendar/` |
|
||||||
| 日历数据 | `~/.openclaw/workspace/calendars/` (home=事件, tasks=待办) |
|
| 日历数据 | `~/.openclaw/workspace/calendars/` (home=事件, tasks=待办) |
|
||||||
|
| himalaya 包装器 | `~/.openclaw/workspace/scripts/himalaya.sh` |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
_最后更新: 2026-03-25_
|
_最后更新: 2026-03-31_
|
||||||
|
|||||||
4
TOOLS.md
4
TOOLS.md
@@ -28,14 +28,14 @@ Skills define _how_ tools work. This file is for _your_ specifics — the stuff
|
|||||||
|
|
||||||
**本地配置:**
|
**本地配置:**
|
||||||
- 二进制:`~/.local/bin/himalaya`
|
- 二进制:`~/.local/bin/himalaya`
|
||||||
- **安全包装器**:`~/.openclaw/workspace/skills/himalaya/scripts/himalaya.sh`(验证收件人)
|
- **安全包装器**:`~/.openclaw/workspace/scripts/himalaya.sh`(验证收件人)
|
||||||
- 配置:`~/.config/himalaya/config.toml`
|
- 配置:`~/.config/himalaya/config.toml`
|
||||||
- 文档:`~/.openclaw/workspace/skills/himalaya/SKILL.md`
|
- 文档:`~/.openclaw/workspace/skills/himalaya/SKILL.md`
|
||||||
|
|
||||||
**重要:发送邮件时必须使用包装器,不要直接调用 himalaya**
|
**重要:发送邮件时必须使用包装器,不要直接调用 himalaya**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
HIMALAYA=~/.openclaw/workspace/skills/himalaya/scripts/himalaya.sh
|
HIMALAYA=~/.openclaw/workspace/scripts/himalaya.sh
|
||||||
|
|
||||||
$HIMALAYA envelope list --page-size 20 # 列出邮件(直接透传)
|
$HIMALAYA envelope list --page-size 20 # 列出邮件(直接透传)
|
||||||
$HIMALAYA message read <id> # 读取邮件(直接透传)
|
$HIMALAYA message read <id> # 读取邮件(直接透传)
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ if [[ -z "$HIMALAYA" ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CONTACTS="$(cd "$(dirname "$0")/../../contacts/scripts" && pwd)/contacts.py"
|
CONTACTS="$(cd "$(dirname "$0")/../skills/contacts/scripts" && pwd)/contacts.py"
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Helpers
|
# Helpers
|
||||||
@@ -65,7 +65,7 @@ def _sync_calendar():
|
|||||||
print("Warning: CalDAV sync failed (will retry on next heartbeat)")
|
print("Warning: CalDAV sync failed (will retry on next heartbeat)")
|
||||||
|
|
||||||
|
|
||||||
HIMALAYA_WRAPPER = Path(__file__).resolve().parent.parent.parent / "himalaya" / "scripts" / "himalaya.sh"
|
HIMALAYA_WRAPPER = Path(__file__).resolve().parent.parent.parent.parent / "scripts" / "himalaya.sh"
|
||||||
|
|
||||||
|
|
||||||
def _send_email(email_str, account=None):
|
def _send_email(email_str, account=None):
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ Use the wrapper script (`scripts/himalaya.sh`) instead of calling `himalaya` dir
|
|||||||
- Everything else: `envelope list`, `message read`, `message delete`, `folder`, `flag`, `attachment`, `account`, etc.
|
- Everything else: `envelope list`, `message read`, `message delete`, `folder`, `flag`, `attachment`, `account`, etc.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
HIMALAYA=~/.openclaw/workspace/skills/himalaya/scripts/himalaya.sh
|
HIMALAYA=~/.openclaw/workspace/scripts/himalaya.sh
|
||||||
|
|
||||||
# All commands work the same as `himalaya`
|
# All commands work the same as `himalaya`
|
||||||
$HIMALAYA envelope list
|
$HIMALAYA envelope list
|
||||||
|
|||||||
Reference in New Issue
Block a user