52 lines
1.5 KiB
Markdown
52 lines
1.5 KiB
Markdown
|
|
---
|
||
|
|
name: memory
|
||
|
|
version: "1.0.0"
|
||
|
|
description: Session state backend for WDS. Called by wrap, start, and handoff tools — never directly by users. Writes to progress/ in the project repo.
|
||
|
|
agents: [saga, freya, mimir]
|
||
|
|
---
|
||
|
|
|
||
|
|
# WDS Memory — File Backend
|
||
|
|
|
||
|
|
Handles all persistent state for WDS sessions. Two operations: save and load.
|
||
|
|
|
||
|
|
State lives in `progress/` at the project root. This folder is project-scoped — not global, not per-machine.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## save
|
||
|
|
|
||
|
|
**Called by:** wrap (step 3), handoff (step 3)
|
||
|
|
|
||
|
|
**Input:**
|
||
|
|
- `agent_id` — the agent whose state is being saved (saga, freya, mimir)
|
||
|
|
- `data` — the compiled state block (Wrapped, Context, Plan, Next, Learned, Spec Sync fields)
|
||
|
|
|
||
|
|
**Steps:**
|
||
|
|
|
||
|
|
1. Ensure `progress/` exists at the project root. Create it if not.
|
||
|
|
2. Write `progress/[agent_id].md` with the data block exactly as provided.
|
||
|
|
3. Return: `saved progress/[agent_id].md`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## load
|
||
|
|
|
||
|
|
**Called by:** start (step 2)
|
||
|
|
|
||
|
|
**Input:**
|
||
|
|
- `agent_id` — the agent whose state is being loaded
|
||
|
|
|
||
|
|
**Steps:**
|
||
|
|
|
||
|
|
1. Check if `progress/[agent_id].md` exists.
|
||
|
|
2. If found: return the full file content.
|
||
|
|
3. If not found: return nothing. The calling tool handles the fresh-start case.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Notes
|
||
|
|
|
||
|
|
- `progress/` should be in `.gitignore`. It is machine-local session context, not project content.
|
||
|
|
- Both save and load are synchronous file operations — no tokens, no async, no IDs.
|
||
|
|
- This is the canonical storage backend. State is local to the machine and project — not synced, not shared.
|