@sksoftofficial/mindroot 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Persistent two-layer memory system for AI agents. Embedding-searched **memories** over human-editable markdown **notes**, exposed through a local HTTP service with an MCP interface.
|
|
4
4
|
|
|
5
|
+

|
|
6
|
+
|
|
5
7
|
- **Notes** (Layer 2): human-editable markdown files under `~/.mindroot/notes/<project>/`, parsed into heading-addressable sections. The unit of storage.
|
|
6
8
|
- **Memories** (Layer 1): short, retrieval-optimized texts linked (or standalone) that point into notes. Embedded and full-text indexed. The unit of retrieval.
|
|
7
9
|
- **Search**: hybrid semantic (embeddinggemma-300m ONNX) + keyword (SQLite FTS5/bm25), strictly project-scoped. Fuzzy project-name matching included (`search_projects`).
|
|
@@ -14,9 +16,9 @@ Persistent two-layer memory system for AI agents. Embedding-searched **memories*
|
|
|
14
16
|
Requires Node.js >= 22.
|
|
15
17
|
|
|
16
18
|
```sh
|
|
17
|
-
npm install -g mindroot # or: npm link from a clone
|
|
18
|
-
mindroot init
|
|
19
|
-
mindroot start
|
|
19
|
+
npm install -g @sksoftofficial/mindroot # or: npm link from a clone
|
|
20
|
+
mindroot init # creates store, caches the embedding model (~316MB)
|
|
21
|
+
mindroot start # daemonizes and waits until healthy
|
|
20
22
|
```
|
|
21
23
|
|
|
22
24
|
## Quick start (MCP)
|
|
@@ -37,7 +39,41 @@ Point your MCP client at the service:
|
|
|
37
39
|
|
|
38
40
|
The API key is generated by `mindroot init` and stored in `~/.mindroot/config.json` (never printed). Dashboard lives at `http://127.0.0.1:7620/`.
|
|
39
41
|
|
|
40
|
-
|
|
42
|
+
## Agent memory policy
|
|
43
|
+
|
|
44
|
+
Add this policy to your agent's instructions:
|
|
45
|
+
|
|
46
|
+
```markdown
|
|
47
|
+
<!-- mindroot:start -->
|
|
48
|
+
# Agent memory policy (mindroot)
|
|
49
|
+
|
|
50
|
+
Use mindroot MCP tools as persistent memory for durable project facts. It's a project index, not a scratchpad.
|
|
51
|
+
|
|
52
|
+
- Once per session, before relying on memory or exploring source: `list_projects` (or `search_projects` for fuzzy name matching), then `search_memories` / `read_note` on relevant subjects. Source files are ground truth; fall back to them when memory lacks the detail.
|
|
53
|
+
- Every content tool needs a project slug. A project is created automatically on first write.
|
|
54
|
+
|
|
55
|
+
## Notes vs memories
|
|
56
|
+
|
|
57
|
+
Notes are storage; memories are the retrieval index into them. They work as a pair:
|
|
58
|
+
|
|
59
|
+
- **Memories** (`save_memory`, `delete_memory`) — short, standalone atomic facts ("where email delivery lives", "never migrate during business hours"), optionally linked via `target_path` ("note.md::Heading"). No listing tool: `search_memories` is how you find them; hits carry the ids for `delete_memory`. When in doubt, save a memory.
|
|
60
|
+
- **Notes** (`save_note`, `update_section`, `read_note`, `delete_note`) — structured markdown docs parsed by headings. `update_section` takes full heading paths (`Audit logging::API`); run `read_note` first and copy exact paths.
|
|
61
|
+
|
|
62
|
+
After writing or updating a notable note section, also save 1–3 memories pointing at it (`target_path`) so future searches surface it — one per key fact a future agent would search for. If a memory stands alone (no note worth writing), that's fine too. Dedupe by searching first, then deleting stale hits — never stack near-copies.
|
|
63
|
+
|
|
64
|
+
Notes read like compact index cards: one sentence on what the feature is, then the files, entry points, and data flow needed to work on it later — enough to answer "where is this implemented?" without reading source. Keep one feature per note under keyword-rich headings (`## Model`, `## API`, `## Gotchas`, …), plus standard cross-cutting notes: `overview.md`, `conventions.md` (patterns shared across features), `commands.md`, `gotchas.md`.
|
|
65
|
+
|
|
66
|
+
## What to save
|
|
67
|
+
|
|
68
|
+
Facts that improve future navigation, implementation, debugging, or verification: structure and key files, config values, frameworks/services, build/test/deploy commands, conventions, recurring bugs and gotchas.
|
|
69
|
+
|
|
70
|
+
Never save: task history, reasoning trails, rejected alternatives, dated recaps, secrets, logs, or speculation.
|
|
71
|
+
|
|
72
|
+
Write bullets as standalone present-tense facts with file anchors (`models/AuditLog.jsx` defines model `AuditLog` in collection `auditlog`). Not "we decided X today".
|
|
73
|
+
|
|
74
|
+
After work that changes a durable fact, update the smallest relevant note section — plus linked memories for its key facts — automatically before your final response, no confirmation needed. Notes stay compact: merge overlapping bullets, drop stale ones.
|
|
75
|
+
<!-- mindroot:end -->
|
|
76
|
+
```
|
|
41
77
|
|
|
42
78
|
## CLI
|
|
43
79
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sksoftofficial/mindroot",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Persistent two-layer memory for AI agents: embedding-searched memories over human-editable markdown facts. Runs as a local background service.",
|
|
5
5
|
"homepage": "https://skbilisim.com/en/projects/mindroot",
|
|
6
6
|
"type": "module",
|