Goal
Add an adapter so watchmen captures openclaw sessions alongside Claude Code, Codex, pi.dev, OpenCode, and Cursor (#113). One corpus across tools.
Adapter contract
Per src/watchmen/adapters/init.py, a new adapter is a module exposing:
- NAME: str
- discover() -> Iterable[FileEntry] (walk the install path, yield sessions; return [] when openclaw isn't installed)
- scan(entry) -> (session_dict, prompts, tool_calls)
It registers in the ADAPTERS tuple. claude_code / codex are the cleanest references for a JSONL-on-disk source; cursor.py is the reference for a SQLite key-value store.
Open questions (resolve before coding)
Acceptance criteria
Note: storage location/format is unconfirmed; first task is to nail that down before writing the parser.
Goal
Add an adapter so watchmen captures openclaw sessions alongside Claude Code, Codex, pi.dev, OpenCode, and Cursor (#113). One corpus across tools.
Adapter contract
Per src/watchmen/adapters/init.py, a new adapter is a module exposing:
It registers in the ADAPTERS tuple. claude_code / codex are the cleanest references for a JSONL-on-disk source; cursor.py is the reference for a SQLite key-value store.
Open questions (resolve before coding)
Acceptance criteria
Note: storage location/format is unconfirmed; first task is to nail that down before writing the parser.