@strvmarv/total-recall 0.1.0 → 0.2.0

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.
@@ -1,18 +1,19 @@
1
1
  {
2
2
  "name": "total-recall",
3
3
  "description": "Multi-tiered memory and knowledge base with semantic search, auto-compaction, and built-in evaluation. Works across Claude Code, Copilot CLI, OpenCode, Cline, and Cursor.",
4
- "version": "0.1.0",
4
+ "version": "0.1.5",
5
5
  "author": {
6
6
  "name": "strvmarv"
7
7
  },
8
- "skills": "./skills/",
9
- "agents": "./agents/",
10
- "hooks": "./hooks/hooks.json",
11
- "mcpServers": {
12
- "total-recall": {
13
- "command": "node",
14
- "args": ["dist/index.js"],
15
- "env": {}
16
- }
17
- }
8
+ "homepage": "https://github.com/strvmarv/total-recall",
9
+ "repository": "https://github.com/strvmarv/total-recall",
10
+ "license": "MIT",
11
+ "keywords": [
12
+ "memory",
13
+ "knowledge-base",
14
+ "mcp",
15
+ "vector-search",
16
+ "sqlite",
17
+ "embeddings"
18
+ ]
18
19
  }
@@ -5,8 +5,8 @@
5
5
  "skills": "./skills/",
6
6
  "mcpServers": {
7
7
  "total-recall": {
8
- "command": "node",
9
- "args": ["dist/index.js"]
8
+ "command": "npx",
9
+ "args": ["-y", "@strvmarv/total-recall"]
10
10
  }
11
11
  }
12
12
  }
@@ -6,8 +6,8 @@
6
6
  "hooks": "./hooks/hooks-cursor.json",
7
7
  "mcpServers": {
8
8
  "total-recall": {
9
- "command": "node",
10
- "args": ["dist/index.js"]
9
+ "command": "npx",
10
+ "args": ["-y", "@strvmarv/total-recall"]
11
11
  }
12
12
  }
13
13
  }
package/.mcp.json ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "mcpServers": {
3
+ "total-recall": {
4
+ "command": "bash",
5
+ "args": ["${CLAUDE_PLUGIN_ROOT}/bin/total-recall.sh"]
6
+ }
7
+ }
8
+ }
package/README.md CHANGED
@@ -119,27 +119,24 @@ All state lives in `~/.total-recall/db.sqlite`. The embedding model is cached at
119
119
 
120
120
  ## Commands
121
121
 
122
- | Command | Description |
123
- |---|---|
124
- | `/memory status` | Dashboard overview |
125
- | `/memory search <query>` | Semantic search across all tiers |
126
- | `/memory ingest <path>` | Add files/dirs to knowledge base |
127
- | `/memory forget <query>` | Find and delete entries |
128
- | `/memory compact` | Force compaction with preview |
129
- | `/memory inspect <id>` | Deep dive on single entry |
130
- | `/memory promote <id>` | Move entry to higher tier |
131
- | `/memory demote <id>` | Move entry to lower tier |
132
- | `/memory export` | Export to portable format |
133
- | `/memory import <file>` | Import from export file |
134
- | `/memory eval` | Live performance metrics |
135
- | `/memory eval --benchmark` | Run synthetic benchmark |
136
- | `/memory eval --compare <name>` | Compare configs |
137
- | `/memory eval --snapshot <name>` | Save current config baseline |
138
- | `/memory eval --grow` | Add real misses to benchmark |
139
- | `/memory config get <key>` | Read config value |
140
- | `/memory config set <key> <value>` | Update config |
141
- | `/memory history` | Show recent tier movements |
142
- | `/memory lineage <id>` | Show compaction ancestry |
122
+ | Command | MCP Tool | Description |
123
+ |---|---|---|
124
+ | `/memory status` | `status` | Dashboard overview |
125
+ | `/memory search <query>` | `memory_search` | Semantic search across all tiers |
126
+ | `/memory ingest <path>` | `kb_ingest_file` / `kb_ingest_dir` | Add files/dirs to knowledge base |
127
+ | `/memory forget <query>` | `memory_search` + `memory_delete` | Find and delete entries |
128
+ | `/memory compact` | `compact_now` | Force compaction with preview |
129
+ | `/memory inspect <id>` | `memory_inspect` | Deep dive on single entry |
130
+ | `/memory promote <id>` | `memory_promote` | Move entry to higher tier |
131
+ | `/memory demote <id>` | `memory_demote` | Move entry to lower tier |
132
+ | `/memory export` | `memory_export` | Export to portable JSON format |
133
+ | `/memory import <file>` | `memory_import` | Import from export file |
134
+ | `/memory eval` | `eval_report` | Live performance metrics |
135
+ | `/memory eval --benchmark` | `eval_benchmark` | Run synthetic benchmark |
136
+ | `/memory config get <key>` | `config_get` | Read config value |
137
+ | `/memory config set <key> <value>` | `config_set` | Update config |
138
+ | `/memory history` | `memory_history` | Show recent tier movements |
139
+ | `/memory lineage <id>` | `memory_lineage` | Show compaction ancestry |
143
140
 
144
141
  ---
145
142
 
@@ -0,0 +1,70 @@
1
+ #!/usr/bin/env bash
2
+ # total-recall MCP server launcher
3
+ # Finds node in common locations even when not in PATH
4
+
5
+ find_node() {
6
+ # Check PATH first
7
+ if command -v node &>/dev/null; then
8
+ echo "node"
9
+ return 0
10
+ fi
11
+
12
+ # Check nvm
13
+ if [ -d "$HOME/.nvm/versions/node" ]; then
14
+ local latest=$(ls -1d "$HOME/.nvm/versions/node"/v* 2>/dev/null | sort -V | tail -1)
15
+ if [ -n "$latest" ] && [ -x "$latest/bin/node" ]; then
16
+ echo "$latest/bin/node"
17
+ return 0
18
+ fi
19
+ fi
20
+
21
+ # Check fnm
22
+ if [ -d "$HOME/.local/share/fnm/node-versions" ]; then
23
+ local latest=$(ls -1d "$HOME/.local/share/fnm/node-versions"/v*/installation 2>/dev/null | sort -V | tail -1)
24
+ if [ -n "$latest" ] && [ -x "$latest/bin/node" ]; then
25
+ echo "$latest/bin/node"
26
+ return 0
27
+ fi
28
+ fi
29
+
30
+ # Check Homebrew
31
+ if [ -x "/home/linuxbrew/.linuxbrew/bin/node" ]; then
32
+ echo "/home/linuxbrew/.linuxbrew/bin/node"
33
+ return 0
34
+ fi
35
+ if [ -x "/opt/homebrew/bin/node" ]; then
36
+ echo "/opt/homebrew/bin/node"
37
+ return 0
38
+ fi
39
+ if [ -x "/usr/local/bin/node" ]; then
40
+ echo "/usr/local/bin/node"
41
+ return 0
42
+ fi
43
+
44
+ # Check Volta
45
+ if [ -x "$HOME/.volta/bin/node" ]; then
46
+ echo "$HOME/.volta/bin/node"
47
+ return 0
48
+ fi
49
+
50
+ echo ""
51
+ return 1
52
+ }
53
+
54
+ NODE=$(find_node)
55
+ if [ -z "$NODE" ]; then
56
+ echo "total-recall: error: node.js not found. Install Node.js 20+ via nvm, fnm, Volta, or your package manager." >&2
57
+ exit 1
58
+ fi
59
+
60
+ # Find the package entry point relative to this script
61
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
62
+ PACKAGE_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
63
+ ENTRY="$PACKAGE_DIR/dist/index.js"
64
+
65
+ if [ ! -f "$ENTRY" ]; then
66
+ echo "total-recall: error: dist/index.js not found. Run 'npm run build' first." >&2
67
+ exit 1
68
+ fi
69
+
70
+ exec "$NODE" "$ENTRY" "$@"
@@ -0,0 +1,28 @@
1
+ # total-recall default configuration
2
+ # Copy to ~/.total-recall/config.toml to override
3
+
4
+ [tiers.hot]
5
+ max_entries = 50
6
+ token_budget = 4000
7
+ carry_forward_threshold = 0.7
8
+
9
+ [tiers.warm]
10
+ max_entries = 10000
11
+ retrieval_top_k = 5
12
+ similarity_threshold = 0.65
13
+ cold_decay_days = 30
14
+
15
+ [tiers.cold]
16
+ chunk_max_tokens = 512
17
+ chunk_overlap_tokens = 50
18
+ lazy_summary_threshold = 5
19
+
20
+ [compaction]
21
+ decay_half_life_hours = 168
22
+ warm_threshold = 0.3
23
+ promote_threshold = 0.7
24
+ warm_sweep_interval_days = 7
25
+
26
+ [embedding]
27
+ model = "all-MiniLM-L6-v2"
28
+ dimensions = 384