文件预览

auto_save_capsule.py

查看 灵枢 AutoBrain 技能包中的文件内容。

文件内容

bundle/auto_save_capsule.py

#!/usr/bin/env python3
"""
auto_save_capsule.py — 自动保存会话胶囊 v1.0

由 index.js 的 message:received 和 message:sent hooks 调用。
保存当前工作记忆到会话胶囊,确保进程重启后能恢复上下文。

用法:
  python3 scripts/auto_save_capsule.py
"""

import json, os, sys
from datetime import datetime, timezone, timedelta

BEIJING_TZ = timezone(timedelta(hours=8))
WORKSPACE = os.environ.get("OPENCLAW_WORKSPACE") or os.path.expanduser("~/.openclaw/workspace")
CAPSULE_FILE = os.path.join(WORKSPACE, ".context_capsule.json")


def save_capsule():
    """保存当前上下文快照"""
    state = {
        "last_saved": datetime.now(BEIJING_TZ).isoformat(),
        "status": "ok"
    }
    try:
        os.makedirs(os.path.dirname(CAPSULE_FILE), exist_ok=True)
        with open(CAPSULE_FILE, "w", encoding="utf-8") as f:
            json.dump(state, f, indent=2, ensure_ascii=False)
        print(json.dumps({"status": "ok", "path": CAPSULE_FILE}))
    except Exception as e:
        print(json.dumps({"status": "error", "message": str(e)}))


if __name__ == "__main__":
    save_capsule()