mirror of
https://github.com/hansjone/oclaw.git
synced 2026-10-09 01:50:44 +08:00
重构仓库目录为统一的 runtime 分层并清理历史 openclaw 残留。
本次迁移将网关/通道/工具/技能/脚本与协议资源集中到新结构,统一路径常量与脚本转发机制,减少顶层噪音并保证运行与测试行为一致。 Made-with: Cursor
This commit is contained in:
parent
ba3836f00f
commit
4a23b715a2
498 changed files with 2760 additions and 2200 deletions
35
runtime/hooks/bundled/command-logger/handler.py
Normal file
35
runtime/hooks/bundled/command-logger/handler.py
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import os
|
||||
from pathlib import Path
|
||||
from typing import Any, Dict
|
||||
|
||||
|
||||
def _resolve_state_dir() -> Path:
|
||||
# Keep this compatible with typical Oclaw layouts.
|
||||
override = os.environ.get("OCLAW_STATE_DIR") or os.environ.get("OCLAW_HOME")
|
||||
if override and override.strip():
|
||||
return Path(os.path.expanduser(override.strip())).resolve()
|
||||
return Path.home() / ".oclaw"
|
||||
|
||||
|
||||
def handle(event) -> None:
|
||||
if getattr(event, "type", None) != "command":
|
||||
return
|
||||
|
||||
state_dir = _resolve_state_dir()
|
||||
log_dir = state_dir / "logs"
|
||||
log_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
payload: Dict[str, Any] = {
|
||||
"timestamp": getattr(getattr(event, "timestamp", None), "isoformat", lambda: None)(),
|
||||
"action": getattr(event, "action", None),
|
||||
"sessionKey": getattr(event, "sessionKey", None),
|
||||
"senderId": (getattr(event, "context", {}) or {}).get("senderId", "unknown"),
|
||||
"source": (getattr(event, "context", {}) or {}).get("commandSource", "unknown"),
|
||||
}
|
||||
|
||||
with (log_dir / "commands.log").open("a", encoding="utf-8") as f:
|
||||
f.write(json.dumps(payload, ensure_ascii=False) + "\n")
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue