squish-memory 0.7.0 → 0.7.3
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 +55 -5
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +5 -3
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +8 -26
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +385 -687
- package/dist/index.js.map +1 -1
- package/package.json +3 -1
- package/skills/squish-memory/SKILL.md +29 -54
package/README.md
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
# Squish - Two-Tier Memory System for Claude Code
|
|
2
2
|
|
|
3
|
-
A persistent, context-aware memory plugin for Claude Code (v0.7.
|
|
3
|
+
A persistent, context-aware memory plugin for Claude Code (v0.7.2) that provides intelligent memory management with a two-tier architecture: always-in-context core memory (2KB) plus context paging for selective memory loading.
|
|
4
4
|
|
|
5
|
-
**
|
|
6
|
-
- **
|
|
7
|
-
- **
|
|
8
|
-
|
|
5
|
+
**Dual-Mode Operation:**
|
|
6
|
+
- **MCP Server** for Claude Code (default, no args)
|
|
7
|
+
- **CLI Commands** for OpenClaw/bash execution
|
|
8
|
+
|
|
9
|
+
**What's New in v0.7.2:**
|
|
10
|
+
- **CLI Mode**: Execute `squish remember`, `search`, `recall` directly from terminal
|
|
11
|
+
- **Local Embeddings**: Zero-dependency TF-IDF embeddings (works offline, no Ollama needed)
|
|
12
|
+
- **OpenClaw Ready**: Install via npm, use via bash commands
|
|
9
13
|
|
|
10
14
|
## Features
|
|
11
15
|
|
|
@@ -175,6 +179,52 @@ SQUISH_DEFAULT_VISIBILITY=private # private|project|team|global
|
|
|
175
179
|
|
|
176
180
|
## Quick Start
|
|
177
181
|
|
|
182
|
+
### CLI Usage (OpenClaw/Bash)
|
|
183
|
+
|
|
184
|
+
Install and use directly from terminal:
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
npm install -g squish-memory
|
|
188
|
+
|
|
189
|
+
# Store memories
|
|
190
|
+
squish remember "User prefers TypeScript for all projects" --type preference
|
|
191
|
+
squish remember "API uses JWT authentication" --type fact
|
|
192
|
+
|
|
193
|
+
# Search memories
|
|
194
|
+
squish search "authentication" --limit 5
|
|
195
|
+
squish search "TypeScript" --type fact
|
|
196
|
+
|
|
197
|
+
# View core memory
|
|
198
|
+
squish core_memory view
|
|
199
|
+
|
|
200
|
+
# Retrieve by ID
|
|
201
|
+
squish recall <memory-id>
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
**Memory Types:** `fact`, `decision`, `preference`, `observation`, `context`
|
|
205
|
+
|
|
206
|
+
**Embedding Options:**
|
|
207
|
+
|
|
208
|
+
By default, Squish uses local TF-IDF embeddings (zero dependencies, works offline).
|
|
209
|
+
|
|
210
|
+
For better semantic search, configure an embedding provider:
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
# OpenAI embeddings (best quality)
|
|
214
|
+
export SQUISH_OPENAI_API_KEY=sk-...
|
|
215
|
+
export SQUISH_EMBEDDINGS_PROVIDER=openai
|
|
216
|
+
|
|
217
|
+
# Ollama local embeddings (good quality, runs locally)
|
|
218
|
+
export SQUISH_EMBEDDINGS_PROVIDER=ollama
|
|
219
|
+
export SQUISH_OLLAMA_URL=http://localhost:11434
|
|
220
|
+
|
|
221
|
+
# Or set in your shell profile (~/.bashrc or ~/.zshrc)
|
|
222
|
+
echo "export SQUISH_OPENAI_API_KEY=sk-..." >> ~/.bashrc
|
|
223
|
+
echo "export SQUISH_EMBEDDINGS_PROVIDER=openai" >> ~/.bashrc
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### MCP Server (Claude Code)
|
|
227
|
+
|
|
178
228
|
### 1. Initialize Core Memory
|
|
179
229
|
|
|
180
230
|
Store basic information that will always be available:
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"AAGA,wBAAgB,UAAU,IAAI,MAAM,CAMnC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"AAGA,wBAAgB,UAAU,IAAI,MAAM,CAMnC;AAiDD,eAAO,MAAM,MAAM;;;;wBAMD,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ;;;;;;;;;;;;4BAkBO,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ;;;;;;qBAYrF,UAAU,GAAG,aAAa,GAAG,QAAQ,GAAG,YAAY;;CAEzF,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -14,15 +14,17 @@ const openAiApiKey = process.env.SQUISH_OPENAI_API_KEY || process.env.OPENAI_API
|
|
|
14
14
|
// - Priority: QMD > Ollama (nomic-embed-text-v1.5) > OpenAI > Local TF-IDF
|
|
15
15
|
// - QMD provides hybrid BM25+vector+rerank search for best quality
|
|
16
16
|
// - Nomic provides excellent quality for memory systems with local inference
|
|
17
|
+
// - Local TF-IDF requires zero external dependencies (default for OpenClaw/VPS)
|
|
17
18
|
const embeddingsProvider = (() => {
|
|
18
19
|
const explicit = process.env.SQUISH_EMBEDDINGS_PROVIDER?.toLowerCase();
|
|
19
20
|
// If explicitly set, respect the user's choice
|
|
20
21
|
if (explicit && ['openai', 'ollama', 'local', 'none', 'qmd', 'hybrid'].includes(explicit)) {
|
|
21
22
|
return explicit;
|
|
22
23
|
}
|
|
23
|
-
// Default:
|
|
24
|
-
//
|
|
25
|
-
|
|
24
|
+
// Default: Local TF-IDF for zero-dependency operation
|
|
25
|
+
// Works offline, no API calls, fast on any hardware
|
|
26
|
+
// Override with SQUISH_EMBEDDINGS_PROVIDER=ollama for better quality
|
|
27
|
+
return 'local';
|
|
26
28
|
})();
|
|
27
29
|
// QMD Integration (v0.7.0)
|
|
28
30
|
const qmdEnabled = process.env.SQUISH_QMD_ENABLED === 'true';
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAE3C,MAAM,UAAU,UAAU;IACxB,yDAAyD;IACzD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1E,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACxE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;AACtE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;AAE3F,uBAAuB;AACvB,2EAA2E;AAC3E,mEAAmE;AACnE,6EAA6E;AAC7E,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE;IAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,WAAW,EAAE,CAAC;IAEvE,+CAA+C;IAC/C,IAAI,QAAQ,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1F,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,34 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* Squish v0.
|
|
3
|
+
* Squish v0.7.0 - Dual-Mode CLI + MCP Server
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
|
|
5
|
+
* Modes:
|
|
6
|
+
* - CLI Mode: For OpenClaw bash execution (e.g., `squish remember "text"`)
|
|
7
|
+
* - MCP Mode: For Claude Code (default, no args)
|
|
7
8
|
*
|
|
8
9
|
* Features:
|
|
9
|
-
* - 11 consolidated MCP tools
|
|
10
|
-
* - Local mode: SQLite with FTS5
|
|
11
|
-
* - Team mode: PostgreSQL + pgvector
|
|
12
|
-
* -
|
|
13
|
-
* - Privacy-first: Secret detection, <private> tag filtering, async worker pipeline
|
|
14
|
-
* - Pluggable embeddings: OpenAI, Ollama, or local TF-IDF
|
|
15
|
-
*
|
|
16
|
-
* Consolidated MCP Tools (v0.6.0):
|
|
17
|
-
* - core_memory: Unified tool for view/edit/append operations (was 3 tools)
|
|
18
|
-
* - context_paging: Unified tool for load/evict/view operations (was 3 tools)
|
|
19
|
-
* - merge: Unified tool for detect/list/preview/stats/approve/reject/reverse (was 2 tools)
|
|
20
|
-
* - context_status, remember, recall, search, observe, context, health (unchanged)
|
|
21
|
-
* - lifecycle, summarize_session, protect_memory (unchanged)
|
|
22
|
-
*
|
|
23
|
-
* Plugin hooks (registered in plugin.json):
|
|
24
|
-
* - onInstall: Initialize database, create config files
|
|
25
|
-
* - onSessionStart: Inject relevant context + generate folder context
|
|
26
|
-
* - onUserPromptSubmit: Auto-capture user prompts with privacy filtering
|
|
27
|
-
* - onPostToolUse: Auto-capture tool executions and observe patterns
|
|
28
|
-
* - onSessionStop: Finalize observations, summarize via async worker
|
|
29
|
-
*
|
|
30
|
-
* See src/plugin/plugin-wrapper.ts for hook implementations
|
|
31
|
-
* See docs/MIGRATION-v0.6.0.md for migration guide
|
|
10
|
+
* - 11 consolidated MCP tools
|
|
11
|
+
* - Local mode: SQLite with FTS5
|
|
12
|
+
* - Team mode: PostgreSQL + pgvector
|
|
13
|
+
* - OpenClaw CLI commands: remember, search, recall, core_memory
|
|
32
14
|
*/
|
|
33
15
|
import 'dotenv/config';
|
|
34
16
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,eAAe,CAAC"}
|