claude-mem-lite 3.98.0 → 4.0.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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/adopt-content.mjs +45 -29
- package/claudemd.mjs +16 -2
- package/lib/binding-probe.mjs +40 -1
- package/lib/citation-tracker.mjs +18 -0
- package/npm-shrinkwrap.json +16 -417
- package/package.json +3 -3
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"plugins": [
|
|
11
11
|
{
|
|
12
12
|
"name": "claude-mem-lite",
|
|
13
|
-
"version": "
|
|
13
|
+
"version": "4.0.0",
|
|
14
14
|
"source": "./",
|
|
15
15
|
"description": "Persistent long-term memory for Claude Code via MCP — captures coding decisions, bugfixes, and context across sessions. Hybrid FTS5 + TF-IDF search with episode batching. Single SQLite DB, no external services. A lighter, lower-cost alternative to claude-mem (episode batching + a smaller model; cost savings are an internal estimate, not a measured benchmark)."
|
|
16
16
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-mem-lite",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "Persistent long-term memory for Claude Code via MCP — captures coding decisions, bugfixes, and context across sessions. Hybrid FTS5 + TF-IDF search with episode batching. Single SQLite DB, no external services. A lighter, lower-cost alternative to claude-mem (episode batching + a smaller model; cost savings are an internal estimate, not a measured benchmark).",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "sdsrss"
|
package/adopt-content.mjs
CHANGED
|
@@ -17,11 +17,21 @@
|
|
|
17
17
|
// memory-dir MEMORY.md sentinel also carried `v1`, but it lives in a different file
|
|
18
18
|
// and is migrated away (claudemd.migrateLegacyMemoryDir), so there is no collision.
|
|
19
19
|
|
|
20
|
-
import { CLI_INVOKE } from './cli-path.mjs';
|
|
21
|
-
|
|
22
20
|
export const PLUGIN_SLUG = 'claude-mem-lite';
|
|
23
21
|
export const CURRENT_SENTINEL_VERSION = 'v1';
|
|
24
22
|
|
|
23
|
+
// The CLI name as written into the user's project tree — deliberately NOT `CLI_INVOKE`
|
|
24
|
+
// (audit R7 P2-1). CLI_INVOKE resolves to an absolute, VERSION-PINNED path
|
|
25
|
+
// (`node /home/<user>/.claude/plugins/cache/sdsrss/claude-mem-lite/<version>/cli.mjs`), and
|
|
26
|
+
// both generators below write files the user may commit: the managed block lands in
|
|
27
|
+
// <cwd>/CLAUDE.md and the detail doc in <cwd>/.claude/, which is the standard home for
|
|
28
|
+
// project-scoped settings/commands/agents and is commonly tracked. Embedding the resolved
|
|
29
|
+
// path there rewrote the file on every plugin release (needsRefresh sees doc drift) and gave
|
|
30
|
+
// teammates a $HOME path that exists on no other machine. This module's output must be
|
|
31
|
+
// byte-identical across installs; the resolved path belongs only on runtime-generated
|
|
32
|
+
// surfaces that never touch the repo (MCP `instructions`, hook recovery lines).
|
|
33
|
+
const CLI = 'claude-mem-lite';
|
|
34
|
+
|
|
25
35
|
/**
|
|
26
36
|
* The concise managed block injected into <cwd>/CLAUDE.md (between the
|
|
27
37
|
* slug-scoped sentinels — those are added by claudemd.renderBlock, NOT here).
|
|
@@ -32,8 +42,8 @@ export const CURRENT_SENTINEL_VERSION = 'v1';
|
|
|
32
42
|
export function buildClaudeMdBlock() {
|
|
33
43
|
// Intentionally machine-stable: MCP tool names only, NO CLI_INVOKE (that
|
|
34
44
|
// resolves to an absolute path that differs per install — it would make this
|
|
35
|
-
// committed/refreshed block churn across machines). The
|
|
36
|
-
//
|
|
45
|
+
// committed/refreshed block churn across machines). The detail doc holds the
|
|
46
|
+
// full CLI table and, since R7 P2-1, is held to the same standard — see CLI above.
|
|
37
47
|
return `## claude-mem-lite — persistent memory
|
|
38
48
|
|
|
39
49
|
PreToolUse hooks already run \`mem_recall\` for past lessons before Read/Edit/Write. The calls worth making proactively:
|
|
@@ -46,7 +56,7 @@ PreToolUse hooks already run \`mem_recall\` for past lessons before Read/Edit/Wr
|
|
|
46
56
|
| Deferring to a future session | \`mem_defer({title, priority:1|2|3, detail})\`; when fixed, add \`closes_deferred=[N]\` to \`mem_save\` |
|
|
47
57
|
| Looking up past work / history | \`mem_search "keywords"\` · \`mem_recent\` · \`mem_timeline\` |
|
|
48
58
|
|
|
49
|
-
Path cost is round-trips, not milliseconds: the PreToolUse hook above already recalls (0 calls) — prefer it. For an explicit query, if these \`mem_*\` tools are deferred behind ToolSearch this session, the Bash CLI
|
|
59
|
+
Path cost is round-trips, not milliseconds: the PreToolUse hook above already recalls (0 calls) — prefer it. For an explicit query, if these \`mem_*\` tools are deferred behind ToolSearch this session, the Bash CLI \`${CLI}\` is one call vs two (ToolSearch + call); the MCP server instructions carry the absolute path to use when it is not on PATH.
|
|
50
60
|
|
|
51
61
|
Full tool + CLI tables, citation/decay rules, and save discipline → \`.claude/plugin_claude_mem_lite.md\``;
|
|
52
62
|
}
|
|
@@ -60,10 +70,16 @@ Full tool + CLI tables, citation/decay rules, and save discipline → \`.claude/
|
|
|
60
70
|
export function getDetailDoc() {
|
|
61
71
|
return `# claude-mem-lite 插件契约(完整)
|
|
62
72
|
|
|
63
|
-
> 由 \`${
|
|
73
|
+
> 由 \`${CLI} adopt\` 生成、随版本自动刷新;卸载用 \`${CLI} unadopt\`。
|
|
64
74
|
> 精炼触发表在项目 \`CLAUDE.md\` 的 \`claude-mem-lite\` 托管块里;本文件是其展开。
|
|
65
75
|
> 设计背景见 docs/CLAUDE-MD-STEERING-PLAN.md。
|
|
66
76
|
|
|
77
|
+
> **本文下方所有命令写作 \`${CLI} <cmd>\`。** 该名字只在全局装过
|
|
78
|
+
> (\`npm i -g claude-mem-lite\`)时才在 PATH 上;否则用等价的
|
|
79
|
+
> \`node <插件根目录>/cli.mjs <cmd>\`,绝对路径见本会话 MCP server 的 instructions。
|
|
80
|
+
> 本文件**刻意不写死绝对路径**:它随安装位置与版本变化,而本文件可能被提交进仓库,
|
|
81
|
+
> 写死会导致每次升版都改动该文件、且队友拿到的是只在别人机器上存在的路径。
|
|
82
|
+
|
|
67
83
|
## 被动 recall(hook 已自动跑,你只需采纳)
|
|
68
84
|
|
|
69
85
|
PreToolUse hook 在你 Read / Edit / Write 文件前已自动 \`mem_recall\` 该文件:
|
|
@@ -108,7 +124,7 @@ PreToolUse hook 在你 Read / Edit / Write 文件前已自动 \`mem_recall\` 该
|
|
|
108
124
|
lesson_learned="<一行根因+一行修法>", importance=2)\`。判据:未来改同一文件的会话看到这条能否避坑?能→存。
|
|
109
125
|
- **非显然架构决策后**(≠ 改名/挪代码)调 \`mem_save(type="decision",
|
|
110
126
|
lesson_learned="<约束+为何这样选+牺牲了什么>")\`。\`decision\` 命中率显著高于 \`change\`(当前遥测约
|
|
111
|
-
3:1,会漂移——用 \`${
|
|
127
|
+
3:1,会漂移——用 \`${CLI} stats\` 实测,别套固定倍数);方向稳健:一条好 decision 抵数条 change。
|
|
112
128
|
别注水:decision 只留给真权衡,不是风格选择。
|
|
113
129
|
- **推迟到未来会话**(≠ 在途 todo、≠ 本 PR 跟进)调
|
|
114
130
|
\`mem_defer({title, priority:1|2|3, detail:"<约束+为何推迟>"})\`。
|
|
@@ -127,45 +143,45 @@ PreToolUse hook 在你 Read / Edit / Write 文件前已自动 \`mem_recall\` 该
|
|
|
127
143
|
|
|
128
144
|
| 场景 | CLI |
|
|
129
145
|
|------|-----|
|
|
130
|
-
| 清理过期记忆 | \`${
|
|
131
|
-
| 深度优化(Haiku) | \`${
|
|
132
|
-
| 压缩旧条目 | \`${
|
|
133
|
-
| FTS5 索引检查 / 重建 | \`${
|
|
134
|
-
| tier 分组浏览 | \`${
|
|
135
|
-
| 导出 JSON/JSONL | \`${
|
|
136
|
-
| 统计总量 / 健康 | \`${
|
|
137
|
-
| 删除 / 更新某条 | \`${
|
|
138
|
-
| skill-agent registry | \`${
|
|
146
|
+
| 清理过期记忆 | \`${CLI} maintain scan --ops purge_stale\` → \`maintain execute --ops purge_stale --confirm\`(删行必须 \`--confirm\`) |
|
|
147
|
+
| 深度优化(Haiku) | \`${CLI} optimize\`(默认 preview;\`--run\` 执行,\`--task re-enrich,normalize,cluster-merge,smart-compress\`) |
|
|
148
|
+
| 压缩旧条目 | \`${CLI} compress\`(默认 preview;\`--execute\` 执行,\`--age-days N\`) |
|
|
149
|
+
| FTS5 索引检查 / 重建 | \`${CLI} fts-check <check\\|rebuild>\` |
|
|
150
|
+
| tier 分组浏览 | \`${CLI} browse [--tier active]\` |
|
|
151
|
+
| 导出 JSON/JSONL | \`${CLI} export [--format jsonl]\` |
|
|
152
|
+
| 统计总量 / 健康 | \`${CLI} stats [--days 30]\` |
|
|
153
|
+
| 删除 / 更新某条 | \`${CLI} delete <id>[,<id>]\` · \`${CLI} update <id> [--title ...]\` |
|
|
154
|
+
| skill-agent registry | \`${CLI} registry <list\\|search\\|import>\` |
|
|
139
155
|
|
|
140
156
|
## CLI 速查(常用检索)
|
|
141
157
|
|
|
142
158
|
| 命令 | 用途 |
|
|
143
159
|
|------|------|
|
|
144
|
-
| \`${
|
|
145
|
-
| \`${
|
|
146
|
-
| \`${
|
|
147
|
-
| \`${
|
|
148
|
-
| \`${
|
|
149
|
-
| \`${
|
|
160
|
+
| \`${CLI} search "query"\` | FTS5 全文搜索(默认排除低信号 \`Modified X\` 等;加 \`--include-noise\` 找文件变更记录) |
|
|
161
|
+
| \`${CLI} search "err" --type bugfix\` | 按类型过滤 |
|
|
162
|
+
| \`${CLI} recall "file.mjs"\` | 文件相关记忆 |
|
|
163
|
+
| \`${CLI} recent 5\` | 最近 5 条 |
|
|
164
|
+
| \`${CLI} get 42,43\` | 按 ID 展开 |
|
|
165
|
+
| \`${CLI} timeline --anchor 42\` | 时间线上下文 |
|
|
150
166
|
|
|
151
167
|
## CLI 速查(写入 / 记录)
|
|
152
168
|
|
|
153
|
-
写入类工具多从 \`tools/list\` 隐藏 → 只能走 CLI。下表带**硬上限**(超限直接报错,别撞了才知道);完整 flag 见 \`${
|
|
169
|
+
写入类工具多从 \`tools/list\` 隐藏 → 只能走 CLI。下表带**硬上限**(超限直接报错,别撞了才知道);完整 flag 见 \`${CLI} help\`。
|
|
154
170
|
|
|
155
171
|
| 命令 | 签名(含硬约束) |
|
|
156
172
|
|------|------------------|
|
|
157
|
-
| 存观测 | \`${
|
|
158
|
-
| 推迟工作 | \`${
|
|
159
|
-
| 改某条 | \`${
|
|
160
|
-
| 事件日志 | \`${
|
|
173
|
+
| 存观测 | \`${CLI} save "<text>" --type bugfix\\|decision --lesson "<≤500 字符>" [--importance 1-3] [--closes-deferred N]\` — \`<text>\` **必填定位参数**;\`--lesson\` 超 500 直接 fail |
|
|
174
|
+
| 推迟工作 | \`${CLI} defer add "<title ≤200>" [--priority 1\\|2\\|3] [--detail "<约束+为何推迟>"]\` — 标题 >200 挪到 \`--detail\` |
|
|
175
|
+
| 改某条 | \`${CLI} update <id> [--lesson "<≤500>"] [--title T] [--type T] [--importance 1-3] [--narrative T] [--concepts "a b c"]\` |
|
|
176
|
+
| 事件日志 | \`${CLI} activity save --type <bugfix\\|lesson\\|bug\\|discovery\\|refactor\\|feature\\|observation\\|decision> "<title>" [--body T] [--files f1,f2]\` |
|
|
161
177
|
|
|
162
178
|
\`maintain\` / \`optimize\` / \`compress\` 见上方「维护 / 管理类工具」;\`maintain --ops\` 取值 \`cleanup,decay,boost,demote_pinned,dedup,purge_stale,rebuild_vectors,vacuum\`,省略时默认 \`cleanup,decay,boost,demote_pinned\`(顺序有意义:demote_pinned 必须在 boost 之后);\`--retain-days\` ∈ [7,365]。
|
|
163
179
|
|
|
164
180
|
## 卸载 / 关闭
|
|
165
181
|
|
|
166
|
-
- \`${
|
|
182
|
+
- \`${CLI} unadopt\`:移除 CLAUDE.md 托管块 + \`.claude/plugin_claude_mem_lite.md\`;
|
|
167
183
|
CLAUDE.md 里你自己的内容(sentinel 之外)不动。
|
|
168
|
-
- 本项目永久关闭自动 adopt:\`${
|
|
184
|
+
- 本项目永久关闭自动 adopt:\`${CLI} adopt --disable\`(\`--enable\` 重新武装)。
|
|
169
185
|
- 全局禁用自动 adopt:环境变量 \`MEM_NO_AUTO_ADOPT=1\`。
|
|
170
186
|
- 关闭版本漂移自动刷新(保留你对托管块的手改):\`CLAUDE_MEM_NO_TEMPLATE_REFRESH=1\`。
|
|
171
187
|
`;
|
package/claudemd.mjs
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
//
|
|
17
17
|
// See docs/CLAUDE-MD-STEERING-PLAN.md for rationale + migration.
|
|
18
18
|
|
|
19
|
-
import { readFileSync, existsSync, unlinkSync, mkdirSync, rmdirSync, readdirSync } from 'fs';
|
|
19
|
+
import { readFileSync, existsSync, unlinkSync, mkdirSync, rmdirSync, readdirSync, lstatSync } from 'fs';
|
|
20
20
|
import { atomicWriteFileSync as atomicWrite } from './lib/atomic-write.mjs';
|
|
21
21
|
import { join } from 'path';
|
|
22
22
|
import { createHash } from 'crypto';
|
|
@@ -259,7 +259,21 @@ export function removeManaged(cwd, slug) {
|
|
|
259
259
|
// Delete the now-empty file rather than writing a 0-byte CLAUDE.md, so
|
|
260
260
|
// unadopt fully restores the pre-adopt state — mirrors the emptied-.claude/
|
|
261
261
|
// cleanup below ("unadopt leaves no trace").
|
|
262
|
-
|
|
262
|
+
//
|
|
263
|
+
// UNLESS the path is a SYMLINK (audit R7 P2-2). writeManaged reaches this file
|
|
264
|
+
// through atomicWriteFileSync, which lstats and writes THROUGH a link on purpose —
|
|
265
|
+
// that is the audit 2026-09-02 P0-5 fix, for CLAUDE.md symlinked into a dotfiles
|
|
266
|
+
// repo (chezmoi/stow/yadm). Unlinking here would delete the LINK and orphan the
|
|
267
|
+
// target, i.e. undo that invariant on the removal side. Empty it through the link
|
|
268
|
+
// instead: a 0-byte file is the lesser evil against silently rearranging the
|
|
269
|
+
// user's dotfiles. Only a regular file we can prove is ours to remove gets removed.
|
|
270
|
+
let isLink = false;
|
|
271
|
+
try {
|
|
272
|
+
isLink = lstatSync(p).isSymbolicLink();
|
|
273
|
+
} catch {
|
|
274
|
+
/* raced away → fall through to the unlink attempt, which will no-op */
|
|
275
|
+
}
|
|
276
|
+
if (raw.trim() === '' && !isLink) {
|
|
263
277
|
try {
|
|
264
278
|
unlinkSync(p);
|
|
265
279
|
} catch {
|
package/lib/binding-probe.mjs
CHANGED
|
@@ -15,6 +15,20 @@ import { join } from 'node:path';
|
|
|
15
15
|
// command that actually works, so hints, docs and heal paths cannot drift apart.
|
|
16
16
|
export const NATIVE_BINDING_REBUILD_CMD = 'npm rebuild better-sqlite3 --dangerously-allow-all-scripts';
|
|
17
17
|
|
|
18
|
+
// Last-resort heal, added in v4.0.0 with better-sqlite3 13. THE npm-REBUILD PATH ABOVE
|
|
19
|
+
// CANNOT HEAL v13 AT ALL — measured, not inferred: 12 carried
|
|
20
|
+
// `"install": "prebuild-install || node-gyp rebuild --release"`, and 13 carries NO install
|
|
21
|
+
// script whatsoever (it ships `prebuilds/<platform>.node` instead). `npm rebuild` therefore
|
|
22
|
+
// has nothing to run and exits 0 printing "rebuilt dependencies successfully" while
|
|
23
|
+
// producing no `.node` — the same print-success-compile-nothing trap the constant above was
|
|
24
|
+
// written for, moved up one level and now immune to the --dangerously-allow-all-scripts
|
|
25
|
+
// flag. On the 8 platforms 13 prebuilds (linux/linuxmusl/darwin/win32 × x64/arm64) the heal
|
|
26
|
+
// never runs. On any other platform this is the only remaining recovery: the package still
|
|
27
|
+
// ships `src/`, `deps/` and `binding.gyp`, so its own build-release script compiles from
|
|
28
|
+
// source. Verified in a sandbox: prebuilds+build removed → `npm rebuild …` exits 0 and heals
|
|
29
|
+
// nothing → this command produces build/Release/better_sqlite3.node and the DB opens.
|
|
30
|
+
export const NATIVE_BINDING_SOURCE_BUILD_CMD = 'npm run --prefix node_modules/better-sqlite3 build-release';
|
|
31
|
+
|
|
18
32
|
// Set on a re-exec'd child so one failed heal cannot fork-bomb the CLI.
|
|
19
33
|
export const BINDING_HEAL_GUARD_ENV = 'CLAUDE_MEM_BINDING_HEALED';
|
|
20
34
|
|
|
@@ -218,7 +232,32 @@ export async function ensureBetterSqlite3Working(installDir, deps = {}) {
|
|
|
218
232
|
const second = await verify();
|
|
219
233
|
if (second.ok) return { ok: true, action: 'rebuilt' };
|
|
220
234
|
|
|
221
|
-
|
|
235
|
+
// Source-compile fallback (v4.0.0). Reached only when the npm path ran without throwing
|
|
236
|
+
// and STILL left an unusable binding — which is exactly what better-sqlite3 13 does on a
|
|
237
|
+
// platform it ships no prebuild for, because it has no install script for `npm rebuild`
|
|
238
|
+
// to run. Deliberately gated behind a failed verify rather than replacing the npm path:
|
|
239
|
+
// on 12, and on 13 wherever a prebuild matches, the npm path already worked and this
|
|
240
|
+
// never fires.
|
|
241
|
+
//
|
|
242
|
+
// It is part of OUR rebuild strategy, so a caller that injected its own `rebuild` does not
|
|
243
|
+
// get it appended — otherwise an injected strategy would silently grow a step its owner
|
|
244
|
+
// never asked for, and (as the stub tests caught) a test that stubs `rebuild` without
|
|
245
|
+
// stubbing `exec` would shell out for real.
|
|
246
|
+
const sourceBuild =
|
|
247
|
+
deps.sourceBuild ||
|
|
248
|
+
(deps.rebuild ? null : () => exec(NATIVE_BINDING_SOURCE_BUILD_CMD, { cwd: installDir, stdio: 'pipe' }));
|
|
249
|
+
if (!sourceBuild) return { ok: false, error: second.error || first.error };
|
|
250
|
+
|
|
251
|
+
try {
|
|
252
|
+
await sourceBuild();
|
|
253
|
+
} catch (e) {
|
|
254
|
+
return { ok: false, error: `source build failed: ${e.message}` };
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
const third = await verify();
|
|
258
|
+
if (third.ok) return { ok: true, action: 'compiled' };
|
|
259
|
+
|
|
260
|
+
return { ok: false, error: third.error || second.error || first.error };
|
|
222
261
|
}
|
|
223
262
|
|
|
224
263
|
/**
|
package/lib/citation-tracker.mjs
CHANGED
|
@@ -1065,12 +1065,30 @@ const SUBAGENT_INJECT_ID_RE = new RegExp(`^\\s{0,4}#(${OBS_ID_DIGITS})\\s+—`);
|
|
|
1065
1065
|
* Extract observation ids injected into a subagent's PROMPT by pre-agent-inject.js
|
|
1066
1066
|
* (formatSubagentContext). Only the `#NN — ` tag line counts; a body cross-reference is
|
|
1067
1067
|
* ignored. Returns numeric ids.
|
|
1068
|
+
*
|
|
1069
|
+
* TYPE-GATED (audit R7 P1-1). Without `entry.type === 'user'` this scanned assistant text
|
|
1070
|
+
* too, so a subagent that merely QUOTED the block — reviewing this code, summarizing what it
|
|
1071
|
+
* was handed — had those ids counted as injected; and since collectSubagentSurface takes a
|
|
1072
|
+
* per-file `seen ∩ said` intersection, the same quotation credited them as cited, reading
|
|
1073
|
+
* 100% on one self-reference. SURFACE_MATCHERS.task_imperative defends the identical shape by
|
|
1074
|
+
* also gating on the command, for the reason stated in its docblock; this face had nothing.
|
|
1075
|
+
* That mattered beyond metering: `sub.injected` is a citation-decay ENTRY gate (hook.mjs) and
|
|
1076
|
+
* an allow-list for bumpCitationAccess → access_count → the `boost` op → importance.
|
|
1077
|
+
*
|
|
1078
|
+
* The gate value is MEASURED, not assumed (2026-09-05, 11 real subagent transcripts): the
|
|
1079
|
+
* dispatched task prompt is the FIRST entry of each subagent file and carries `type='user'`,
|
|
1080
|
+
* `role='user'`, `isSidechain=true`; the corpus holds assistant ×1036 / attachment ×973 /
|
|
1081
|
+
* user ×668. `tool_result` blocks ride a user entry too, but carry `content` rather than
|
|
1082
|
+
* `text`, so the `x?.text` map below already contributes nothing for them — same reasoning
|
|
1083
|
+
* extractUserTypedIds states for its own scan.
|
|
1084
|
+
*
|
|
1068
1085
|
* @param {string|null|undefined} transcriptPath
|
|
1069
1086
|
* @returns {Set<number>}
|
|
1070
1087
|
*/
|
|
1071
1088
|
export function extractInjectedFromSubagentPrompt(transcriptPath) {
|
|
1072
1089
|
const ids = new Set();
|
|
1073
1090
|
for (const entry of readTranscriptEntries(transcriptPath)) {
|
|
1091
|
+
if (entry.type !== 'user') continue;
|
|
1074
1092
|
const c = entry.message?.content;
|
|
1075
1093
|
const text =
|
|
1076
1094
|
typeof c === 'string'
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-mem-lite",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "claude-mem-lite",
|
|
9
|
-
"version": "
|
|
9
|
+
"version": "4.0.0",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
12
|
-
"better-sqlite3": "^
|
|
12
|
+
"better-sqlite3": "^13.0.3",
|
|
13
13
|
"zod": "^4.5.4"
|
|
14
14
|
},
|
|
15
15
|
"bin": {
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"vitest": "^4.0.18"
|
|
28
28
|
},
|
|
29
29
|
"engines": {
|
|
30
|
-
"node": ">=
|
|
30
|
+
"node": ">=22"
|
|
31
31
|
}
|
|
32
32
|
},
|
|
33
33
|
"node_modules/@babel/helper-string-parser": {
|
|
@@ -1602,72 +1602,16 @@
|
|
|
1602
1602
|
"node": "18 || 20 || >=22"
|
|
1603
1603
|
}
|
|
1604
1604
|
},
|
|
1605
|
-
"node_modules/base64-js": {
|
|
1606
|
-
"version": "1.5.1",
|
|
1607
|
-
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
|
1608
|
-
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
|
|
1609
|
-
"funding": [
|
|
1610
|
-
{
|
|
1611
|
-
"type": "github",
|
|
1612
|
-
"url": "https://github.com/sponsors/feross"
|
|
1613
|
-
},
|
|
1614
|
-
{
|
|
1615
|
-
"type": "patreon",
|
|
1616
|
-
"url": "https://www.patreon.com/feross"
|
|
1617
|
-
},
|
|
1618
|
-
{
|
|
1619
|
-
"type": "consulting",
|
|
1620
|
-
"url": "https://feross.org/support"
|
|
1621
|
-
}
|
|
1622
|
-
],
|
|
1623
|
-
"license": "MIT"
|
|
1624
|
-
},
|
|
1625
1605
|
"node_modules/better-sqlite3": {
|
|
1626
|
-
"version": "
|
|
1627
|
-
"resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-
|
|
1628
|
-
"integrity": "sha512-
|
|
1629
|
-
"hasInstallScript": true,
|
|
1606
|
+
"version": "13.0.3",
|
|
1607
|
+
"resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-13.0.3.tgz",
|
|
1608
|
+
"integrity": "sha512-RbOBxmLBG8uvFUc15X9+9SFemKcQ0WBuISBVkpuiaUB2qblC8UWlHEjdWVoZ8AdhSwmoEgsiXKfopX0CQxaACQ==",
|
|
1630
1609
|
"license": "MIT",
|
|
1631
1610
|
"dependencies": {
|
|
1632
|
-
"
|
|
1633
|
-
"prebuild-install": "^7.1.1"
|
|
1611
|
+
"node-addon-api": "^8.0.0"
|
|
1634
1612
|
},
|
|
1635
1613
|
"engines": {
|
|
1636
|
-
"node": "
|
|
1637
|
-
}
|
|
1638
|
-
},
|
|
1639
|
-
"node_modules/bindings": {
|
|
1640
|
-
"version": "1.5.0",
|
|
1641
|
-
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
|
|
1642
|
-
"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
|
|
1643
|
-
"license": "MIT",
|
|
1644
|
-
"dependencies": {
|
|
1645
|
-
"file-uri-to-path": "1.0.0"
|
|
1646
|
-
}
|
|
1647
|
-
},
|
|
1648
|
-
"node_modules/bl": {
|
|
1649
|
-
"version": "4.1.0",
|
|
1650
|
-
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
|
|
1651
|
-
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
|
|
1652
|
-
"license": "MIT",
|
|
1653
|
-
"dependencies": {
|
|
1654
|
-
"buffer": "^5.5.0",
|
|
1655
|
-
"inherits": "^2.0.4",
|
|
1656
|
-
"readable-stream": "^3.4.0"
|
|
1657
|
-
}
|
|
1658
|
-
},
|
|
1659
|
-
"node_modules/bl/node_modules/readable-stream": {
|
|
1660
|
-
"version": "3.6.2",
|
|
1661
|
-
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
|
|
1662
|
-
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
|
|
1663
|
-
"license": "MIT",
|
|
1664
|
-
"dependencies": {
|
|
1665
|
-
"inherits": "^2.0.3",
|
|
1666
|
-
"string_decoder": "^1.1.1",
|
|
1667
|
-
"util-deprecate": "^1.0.1"
|
|
1668
|
-
},
|
|
1669
|
-
"engines": {
|
|
1670
|
-
"node": ">= 6"
|
|
1614
|
+
"node": ">=22"
|
|
1671
1615
|
}
|
|
1672
1616
|
},
|
|
1673
1617
|
"node_modules/body-parser": {
|
|
@@ -1720,30 +1664,6 @@
|
|
|
1720
1664
|
"node": "20 || >=22"
|
|
1721
1665
|
}
|
|
1722
1666
|
},
|
|
1723
|
-
"node_modules/buffer": {
|
|
1724
|
-
"version": "5.7.1",
|
|
1725
|
-
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
|
1726
|
-
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
|
1727
|
-
"funding": [
|
|
1728
|
-
{
|
|
1729
|
-
"type": "github",
|
|
1730
|
-
"url": "https://github.com/sponsors/feross"
|
|
1731
|
-
},
|
|
1732
|
-
{
|
|
1733
|
-
"type": "patreon",
|
|
1734
|
-
"url": "https://www.patreon.com/feross"
|
|
1735
|
-
},
|
|
1736
|
-
{
|
|
1737
|
-
"type": "consulting",
|
|
1738
|
-
"url": "https://feross.org/support"
|
|
1739
|
-
}
|
|
1740
|
-
],
|
|
1741
|
-
"license": "MIT",
|
|
1742
|
-
"dependencies": {
|
|
1743
|
-
"base64-js": "^1.3.1",
|
|
1744
|
-
"ieee754": "^1.1.13"
|
|
1745
|
-
}
|
|
1746
|
-
},
|
|
1747
1667
|
"node_modules/bytes": {
|
|
1748
1668
|
"version": "3.1.2",
|
|
1749
1669
|
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
|
|
@@ -1792,12 +1712,6 @@
|
|
|
1792
1712
|
"node": ">=18"
|
|
1793
1713
|
}
|
|
1794
1714
|
},
|
|
1795
|
-
"node_modules/chownr": {
|
|
1796
|
-
"version": "1.1.4",
|
|
1797
|
-
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
|
|
1798
|
-
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
|
|
1799
|
-
"license": "ISC"
|
|
1800
|
-
},
|
|
1801
1715
|
"node_modules/content-disposition": {
|
|
1802
1716
|
"version": "1.1.0",
|
|
1803
1717
|
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz",
|
|
@@ -1893,30 +1807,6 @@
|
|
|
1893
1807
|
}
|
|
1894
1808
|
}
|
|
1895
1809
|
},
|
|
1896
|
-
"node_modules/decompress-response": {
|
|
1897
|
-
"version": "6.0.0",
|
|
1898
|
-
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
|
|
1899
|
-
"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
|
|
1900
|
-
"license": "MIT",
|
|
1901
|
-
"dependencies": {
|
|
1902
|
-
"mimic-response": "^3.1.0"
|
|
1903
|
-
},
|
|
1904
|
-
"engines": {
|
|
1905
|
-
"node": ">=10"
|
|
1906
|
-
},
|
|
1907
|
-
"funding": {
|
|
1908
|
-
"url": "https://github.com/sponsors/sindresorhus"
|
|
1909
|
-
}
|
|
1910
|
-
},
|
|
1911
|
-
"node_modules/deep-extend": {
|
|
1912
|
-
"version": "0.6.0",
|
|
1913
|
-
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
|
|
1914
|
-
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
|
|
1915
|
-
"license": "MIT",
|
|
1916
|
-
"engines": {
|
|
1917
|
-
"node": ">=4.0.0"
|
|
1918
|
-
}
|
|
1919
|
-
},
|
|
1920
1810
|
"node_modules/deep-is": {
|
|
1921
1811
|
"version": "0.1.4",
|
|
1922
1812
|
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
|
|
@@ -1937,6 +1827,7 @@
|
|
|
1937
1827
|
"version": "2.1.2",
|
|
1938
1828
|
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
|
|
1939
1829
|
"integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
|
|
1830
|
+
"dev": true,
|
|
1940
1831
|
"license": "Apache-2.0",
|
|
1941
1832
|
"engines": {
|
|
1942
1833
|
"node": ">=8"
|
|
@@ -1971,15 +1862,6 @@
|
|
|
1971
1862
|
"node": ">= 0.8"
|
|
1972
1863
|
}
|
|
1973
1864
|
},
|
|
1974
|
-
"node_modules/end-of-stream": {
|
|
1975
|
-
"version": "1.4.5",
|
|
1976
|
-
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz",
|
|
1977
|
-
"integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==",
|
|
1978
|
-
"license": "MIT",
|
|
1979
|
-
"dependencies": {
|
|
1980
|
-
"once": "^1.4.0"
|
|
1981
|
-
}
|
|
1982
|
-
},
|
|
1983
1865
|
"node_modules/es-define-property": {
|
|
1984
1866
|
"version": "1.0.1",
|
|
1985
1867
|
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
|
|
@@ -2265,15 +2147,6 @@
|
|
|
2265
2147
|
"node": ">=18.0.0"
|
|
2266
2148
|
}
|
|
2267
2149
|
},
|
|
2268
|
-
"node_modules/expand-template": {
|
|
2269
|
-
"version": "2.0.3",
|
|
2270
|
-
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
|
|
2271
|
-
"integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
|
|
2272
|
-
"license": "(MIT OR WTFPL)",
|
|
2273
|
-
"engines": {
|
|
2274
|
-
"node": ">=6"
|
|
2275
|
-
}
|
|
2276
|
-
},
|
|
2277
2150
|
"node_modules/expect-type": {
|
|
2278
2151
|
"version": "1.3.0",
|
|
2279
2152
|
"resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz",
|
|
@@ -2445,12 +2318,6 @@
|
|
|
2445
2318
|
"node": ">=16.0.0"
|
|
2446
2319
|
}
|
|
2447
2320
|
},
|
|
2448
|
-
"node_modules/file-uri-to-path": {
|
|
2449
|
-
"version": "1.0.0",
|
|
2450
|
-
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
|
|
2451
|
-
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
|
|
2452
|
-
"license": "MIT"
|
|
2453
|
-
},
|
|
2454
2321
|
"node_modules/finalhandler": {
|
|
2455
2322
|
"version": "2.1.1",
|
|
2456
2323
|
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz",
|
|
@@ -2545,12 +2412,6 @@
|
|
|
2545
2412
|
"node": ">= 0.8"
|
|
2546
2413
|
}
|
|
2547
2414
|
},
|
|
2548
|
-
"node_modules/fs-constants": {
|
|
2549
|
-
"version": "1.0.0",
|
|
2550
|
-
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
|
|
2551
|
-
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
|
|
2552
|
-
"license": "MIT"
|
|
2553
|
-
},
|
|
2554
2415
|
"node_modules/fsevents": {
|
|
2555
2416
|
"version": "2.3.3",
|
|
2556
2417
|
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
|
@@ -2625,12 +2486,6 @@
|
|
|
2625
2486
|
"url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
|
|
2626
2487
|
}
|
|
2627
2488
|
},
|
|
2628
|
-
"node_modules/github-from-package": {
|
|
2629
|
-
"version": "0.0.0",
|
|
2630
|
-
"resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
|
|
2631
|
-
"integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
|
|
2632
|
-
"license": "MIT"
|
|
2633
|
-
},
|
|
2634
2489
|
"node_modules/glob-parent": {
|
|
2635
2490
|
"version": "6.0.2",
|
|
2636
2491
|
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
|
|
@@ -2742,26 +2597,6 @@
|
|
|
2742
2597
|
"url": "https://opencollective.com/express"
|
|
2743
2598
|
}
|
|
2744
2599
|
},
|
|
2745
|
-
"node_modules/ieee754": {
|
|
2746
|
-
"version": "1.2.1",
|
|
2747
|
-
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
|
|
2748
|
-
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
|
|
2749
|
-
"funding": [
|
|
2750
|
-
{
|
|
2751
|
-
"type": "github",
|
|
2752
|
-
"url": "https://github.com/sponsors/feross"
|
|
2753
|
-
},
|
|
2754
|
-
{
|
|
2755
|
-
"type": "patreon",
|
|
2756
|
-
"url": "https://www.patreon.com/feross"
|
|
2757
|
-
},
|
|
2758
|
-
{
|
|
2759
|
-
"type": "consulting",
|
|
2760
|
-
"url": "https://feross.org/support"
|
|
2761
|
-
}
|
|
2762
|
-
],
|
|
2763
|
-
"license": "BSD-3-Clause"
|
|
2764
|
-
},
|
|
2765
2600
|
"node_modules/ignore": {
|
|
2766
2601
|
"version": "5.3.2",
|
|
2767
2602
|
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
|
|
@@ -2788,12 +2623,6 @@
|
|
|
2788
2623
|
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
|
2789
2624
|
"license": "ISC"
|
|
2790
2625
|
},
|
|
2791
|
-
"node_modules/ini": {
|
|
2792
|
-
"version": "1.3.8",
|
|
2793
|
-
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
|
|
2794
|
-
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
|
|
2795
|
-
"license": "ISC"
|
|
2796
|
-
},
|
|
2797
2626
|
"node_modules/ip-address": {
|
|
2798
2627
|
"version": "10.5.0",
|
|
2799
2628
|
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.5.0.tgz",
|
|
@@ -3371,18 +3200,6 @@
|
|
|
3371
3200
|
"url": "https://opencollective.com/express"
|
|
3372
3201
|
}
|
|
3373
3202
|
},
|
|
3374
|
-
"node_modules/mimic-response": {
|
|
3375
|
-
"version": "3.1.0",
|
|
3376
|
-
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
|
|
3377
|
-
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
|
|
3378
|
-
"license": "MIT",
|
|
3379
|
-
"engines": {
|
|
3380
|
-
"node": ">=10"
|
|
3381
|
-
},
|
|
3382
|
-
"funding": {
|
|
3383
|
-
"url": "https://github.com/sponsors/sindresorhus"
|
|
3384
|
-
}
|
|
3385
|
-
},
|
|
3386
3203
|
"node_modules/minimatch": {
|
|
3387
3204
|
"version": "10.2.5",
|
|
3388
3205
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
|
|
@@ -3399,21 +3216,6 @@
|
|
|
3399
3216
|
"url": "https://github.com/sponsors/isaacs"
|
|
3400
3217
|
}
|
|
3401
3218
|
},
|
|
3402
|
-
"node_modules/minimist": {
|
|
3403
|
-
"version": "1.2.8",
|
|
3404
|
-
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
|
|
3405
|
-
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
|
|
3406
|
-
"license": "MIT",
|
|
3407
|
-
"funding": {
|
|
3408
|
-
"url": "https://github.com/sponsors/ljharb"
|
|
3409
|
-
}
|
|
3410
|
-
},
|
|
3411
|
-
"node_modules/mkdirp-classic": {
|
|
3412
|
-
"version": "0.5.3",
|
|
3413
|
-
"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
|
|
3414
|
-
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
|
|
3415
|
-
"license": "MIT"
|
|
3416
|
-
},
|
|
3417
3219
|
"node_modules/ms": {
|
|
3418
3220
|
"version": "2.1.3",
|
|
3419
3221
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
|
@@ -3439,12 +3241,6 @@
|
|
|
3439
3241
|
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
|
3440
3242
|
}
|
|
3441
3243
|
},
|
|
3442
|
-
"node_modules/napi-build-utils": {
|
|
3443
|
-
"version": "2.0.0",
|
|
3444
|
-
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz",
|
|
3445
|
-
"integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==",
|
|
3446
|
-
"license": "MIT"
|
|
3447
|
-
},
|
|
3448
3244
|
"node_modules/natural-compare": {
|
|
3449
3245
|
"version": "1.4.0",
|
|
3450
3246
|
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
|
|
@@ -3461,16 +3257,13 @@
|
|
|
3461
3257
|
"node": ">= 0.6"
|
|
3462
3258
|
}
|
|
3463
3259
|
},
|
|
3464
|
-
"node_modules/node-
|
|
3465
|
-
"version": "
|
|
3466
|
-
"resolved": "https://registry.npmjs.org/node-
|
|
3467
|
-
"integrity": "sha512-
|
|
3260
|
+
"node_modules/node-addon-api": {
|
|
3261
|
+
"version": "8.9.2",
|
|
3262
|
+
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.9.2.tgz",
|
|
3263
|
+
"integrity": "sha512-VijLXbi3UACN69I0JVXJsX4tjACjNoQDgv2gTF6sx2wWEi8tkSg2eX8p5gSIFi8z2+DL3oHmY6OyKce38SDolg==",
|
|
3468
3264
|
"license": "MIT",
|
|
3469
|
-
"dependencies": {
|
|
3470
|
-
"semver": "^7.3.5"
|
|
3471
|
-
},
|
|
3472
3265
|
"engines": {
|
|
3473
|
-
"node": ">=
|
|
3266
|
+
"node": "^18 || ^20 || >= 21"
|
|
3474
3267
|
}
|
|
3475
3268
|
},
|
|
3476
3269
|
"node_modules/object-assign": {
|
|
@@ -3754,45 +3547,6 @@
|
|
|
3754
3547
|
"node": "^10 || ^12 || >=14"
|
|
3755
3548
|
}
|
|
3756
3549
|
},
|
|
3757
|
-
"node_modules/prebuild-install": {
|
|
3758
|
-
"version": "7.1.3",
|
|
3759
|
-
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz",
|
|
3760
|
-
"integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==",
|
|
3761
|
-
"deprecated": "No longer maintained. Please contact the author of the relevant native addon; alternatives are available.",
|
|
3762
|
-
"license": "MIT",
|
|
3763
|
-
"dependencies": {
|
|
3764
|
-
"detect-libc": "^2.0.0",
|
|
3765
|
-
"expand-template": "^2.0.3",
|
|
3766
|
-
"github-from-package": "0.0.0",
|
|
3767
|
-
"minimist": "^1.2.3",
|
|
3768
|
-
"mkdirp-classic": "^0.5.3",
|
|
3769
|
-
"napi-build-utils": "^2.0.0",
|
|
3770
|
-
"node-abi": "^3.3.0",
|
|
3771
|
-
"pump": "^3.0.0",
|
|
3772
|
-
"rc": "^1.2.7",
|
|
3773
|
-
"simple-get": "^4.0.0",
|
|
3774
|
-
"tar-fs": "^2.0.0",
|
|
3775
|
-
"tunnel-agent": "^0.6.0"
|
|
3776
|
-
},
|
|
3777
|
-
"bin": {
|
|
3778
|
-
"prebuild-install": "bin.js"
|
|
3779
|
-
},
|
|
3780
|
-
"engines": {
|
|
3781
|
-
"node": ">=10"
|
|
3782
|
-
}
|
|
3783
|
-
},
|
|
3784
|
-
"node_modules/prebuild-install/node_modules/tar-fs": {
|
|
3785
|
-
"version": "2.1.4",
|
|
3786
|
-
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz",
|
|
3787
|
-
"integrity": "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==",
|
|
3788
|
-
"license": "MIT",
|
|
3789
|
-
"dependencies": {
|
|
3790
|
-
"chownr": "^1.1.1",
|
|
3791
|
-
"mkdirp-classic": "^0.5.2",
|
|
3792
|
-
"pump": "^3.0.0",
|
|
3793
|
-
"tar-stream": "^2.1.4"
|
|
3794
|
-
}
|
|
3795
|
-
},
|
|
3796
3550
|
"node_modules/prelude-ls": {
|
|
3797
3551
|
"version": "1.2.1",
|
|
3798
3552
|
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
|
|
@@ -3832,16 +3586,6 @@
|
|
|
3832
3586
|
"node": ">= 0.10"
|
|
3833
3587
|
}
|
|
3834
3588
|
},
|
|
3835
|
-
"node_modules/pump": {
|
|
3836
|
-
"version": "3.0.4",
|
|
3837
|
-
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz",
|
|
3838
|
-
"integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==",
|
|
3839
|
-
"license": "MIT",
|
|
3840
|
-
"dependencies": {
|
|
3841
|
-
"end-of-stream": "^1.1.0",
|
|
3842
|
-
"once": "^1.3.1"
|
|
3843
|
-
}
|
|
3844
|
-
},
|
|
3845
3589
|
"node_modules/punycode": {
|
|
3846
3590
|
"version": "2.3.1",
|
|
3847
3591
|
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
|
|
@@ -3909,30 +3653,6 @@
|
|
|
3909
3653
|
"node": ">= 0.10"
|
|
3910
3654
|
}
|
|
3911
3655
|
},
|
|
3912
|
-
"node_modules/rc": {
|
|
3913
|
-
"version": "1.2.8",
|
|
3914
|
-
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
|
|
3915
|
-
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
|
|
3916
|
-
"license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
|
|
3917
|
-
"dependencies": {
|
|
3918
|
-
"deep-extend": "^0.6.0",
|
|
3919
|
-
"ini": "~1.3.0",
|
|
3920
|
-
"minimist": "^1.2.0",
|
|
3921
|
-
"strip-json-comments": "~2.0.1"
|
|
3922
|
-
},
|
|
3923
|
-
"bin": {
|
|
3924
|
-
"rc": "cli.js"
|
|
3925
|
-
}
|
|
3926
|
-
},
|
|
3927
|
-
"node_modules/rc/node_modules/strip-json-comments": {
|
|
3928
|
-
"version": "2.0.1",
|
|
3929
|
-
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
|
|
3930
|
-
"integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
|
|
3931
|
-
"license": "MIT",
|
|
3932
|
-
"engines": {
|
|
3933
|
-
"node": ">=0.10.0"
|
|
3934
|
-
}
|
|
3935
|
-
},
|
|
3936
3656
|
"node_modules/require-from-string": {
|
|
3937
3657
|
"version": "2.0.2",
|
|
3938
3658
|
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
|
|
@@ -4002,26 +3722,6 @@
|
|
|
4002
3722
|
"node": ">= 18"
|
|
4003
3723
|
}
|
|
4004
3724
|
},
|
|
4005
|
-
"node_modules/safe-buffer": {
|
|
4006
|
-
"version": "5.2.1",
|
|
4007
|
-
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
|
4008
|
-
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
|
|
4009
|
-
"funding": [
|
|
4010
|
-
{
|
|
4011
|
-
"type": "github",
|
|
4012
|
-
"url": "https://github.com/sponsors/feross"
|
|
4013
|
-
},
|
|
4014
|
-
{
|
|
4015
|
-
"type": "patreon",
|
|
4016
|
-
"url": "https://www.patreon.com/feross"
|
|
4017
|
-
},
|
|
4018
|
-
{
|
|
4019
|
-
"type": "consulting",
|
|
4020
|
-
"url": "https://feross.org/support"
|
|
4021
|
-
}
|
|
4022
|
-
],
|
|
4023
|
-
"license": "MIT"
|
|
4024
|
-
},
|
|
4025
3725
|
"node_modules/safer-buffer": {
|
|
4026
3726
|
"version": "2.1.2",
|
|
4027
3727
|
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
|
@@ -4032,6 +3732,7 @@
|
|
|
4032
3732
|
"version": "7.8.0",
|
|
4033
3733
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz",
|
|
4034
3734
|
"integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==",
|
|
3735
|
+
"dev": true,
|
|
4035
3736
|
"license": "ISC",
|
|
4036
3737
|
"bin": {
|
|
4037
3738
|
"semver": "bin/semver.js"
|
|
@@ -4191,51 +3892,6 @@
|
|
|
4191
3892
|
"dev": true,
|
|
4192
3893
|
"license": "ISC"
|
|
4193
3894
|
},
|
|
4194
|
-
"node_modules/simple-concat": {
|
|
4195
|
-
"version": "1.0.1",
|
|
4196
|
-
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
|
|
4197
|
-
"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
|
|
4198
|
-
"funding": [
|
|
4199
|
-
{
|
|
4200
|
-
"type": "github",
|
|
4201
|
-
"url": "https://github.com/sponsors/feross"
|
|
4202
|
-
},
|
|
4203
|
-
{
|
|
4204
|
-
"type": "patreon",
|
|
4205
|
-
"url": "https://www.patreon.com/feross"
|
|
4206
|
-
},
|
|
4207
|
-
{
|
|
4208
|
-
"type": "consulting",
|
|
4209
|
-
"url": "https://feross.org/support"
|
|
4210
|
-
}
|
|
4211
|
-
],
|
|
4212
|
-
"license": "MIT"
|
|
4213
|
-
},
|
|
4214
|
-
"node_modules/simple-get": {
|
|
4215
|
-
"version": "4.0.1",
|
|
4216
|
-
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
|
|
4217
|
-
"integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
|
|
4218
|
-
"funding": [
|
|
4219
|
-
{
|
|
4220
|
-
"type": "github",
|
|
4221
|
-
"url": "https://github.com/sponsors/feross"
|
|
4222
|
-
},
|
|
4223
|
-
{
|
|
4224
|
-
"type": "patreon",
|
|
4225
|
-
"url": "https://www.patreon.com/feross"
|
|
4226
|
-
},
|
|
4227
|
-
{
|
|
4228
|
-
"type": "consulting",
|
|
4229
|
-
"url": "https://feross.org/support"
|
|
4230
|
-
}
|
|
4231
|
-
],
|
|
4232
|
-
"license": "MIT",
|
|
4233
|
-
"dependencies": {
|
|
4234
|
-
"decompress-response": "^6.0.0",
|
|
4235
|
-
"once": "^1.3.1",
|
|
4236
|
-
"simple-concat": "^1.0.0"
|
|
4237
|
-
}
|
|
4238
|
-
},
|
|
4239
3895
|
"node_modules/smol-toml": {
|
|
4240
3896
|
"version": "1.8.0",
|
|
4241
3897
|
"resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.8.0.tgz",
|
|
@@ -4282,15 +3938,6 @@
|
|
|
4282
3938
|
"dev": true,
|
|
4283
3939
|
"license": "MIT"
|
|
4284
3940
|
},
|
|
4285
|
-
"node_modules/string_decoder": {
|
|
4286
|
-
"version": "1.3.0",
|
|
4287
|
-
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
|
|
4288
|
-
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
|
|
4289
|
-
"license": "MIT",
|
|
4290
|
-
"dependencies": {
|
|
4291
|
-
"safe-buffer": "~5.2.0"
|
|
4292
|
-
}
|
|
4293
|
-
},
|
|
4294
3941
|
"node_modules/strip-json-comments": {
|
|
4295
3942
|
"version": "5.0.3",
|
|
4296
3943
|
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.3.tgz",
|
|
@@ -4317,36 +3964,6 @@
|
|
|
4317
3964
|
"node": ">=8"
|
|
4318
3965
|
}
|
|
4319
3966
|
},
|
|
4320
|
-
"node_modules/tar-stream": {
|
|
4321
|
-
"version": "2.2.0",
|
|
4322
|
-
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
|
|
4323
|
-
"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
|
|
4324
|
-
"license": "MIT",
|
|
4325
|
-
"dependencies": {
|
|
4326
|
-
"bl": "^4.0.3",
|
|
4327
|
-
"end-of-stream": "^1.4.1",
|
|
4328
|
-
"fs-constants": "^1.0.0",
|
|
4329
|
-
"inherits": "^2.0.3",
|
|
4330
|
-
"readable-stream": "^3.1.1"
|
|
4331
|
-
},
|
|
4332
|
-
"engines": {
|
|
4333
|
-
"node": ">=6"
|
|
4334
|
-
}
|
|
4335
|
-
},
|
|
4336
|
-
"node_modules/tar-stream/node_modules/readable-stream": {
|
|
4337
|
-
"version": "3.6.2",
|
|
4338
|
-
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
|
|
4339
|
-
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
|
|
4340
|
-
"license": "MIT",
|
|
4341
|
-
"dependencies": {
|
|
4342
|
-
"inherits": "^2.0.3",
|
|
4343
|
-
"string_decoder": "^1.1.1",
|
|
4344
|
-
"util-deprecate": "^1.0.1"
|
|
4345
|
-
},
|
|
4346
|
-
"engines": {
|
|
4347
|
-
"node": ">= 6"
|
|
4348
|
-
}
|
|
4349
|
-
},
|
|
4350
3967
|
"node_modules/tinybench": {
|
|
4351
3968
|
"version": "2.9.0",
|
|
4352
3969
|
"resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
|
|
@@ -4408,18 +4025,6 @@
|
|
|
4408
4025
|
"license": "0BSD",
|
|
4409
4026
|
"optional": true
|
|
4410
4027
|
},
|
|
4411
|
-
"node_modules/tunnel-agent": {
|
|
4412
|
-
"version": "0.6.0",
|
|
4413
|
-
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
|
4414
|
-
"integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
|
|
4415
|
-
"license": "Apache-2.0",
|
|
4416
|
-
"dependencies": {
|
|
4417
|
-
"safe-buffer": "^5.0.1"
|
|
4418
|
-
},
|
|
4419
|
-
"engines": {
|
|
4420
|
-
"node": "*"
|
|
4421
|
-
}
|
|
4422
|
-
},
|
|
4423
4028
|
"node_modules/type-check": {
|
|
4424
4029
|
"version": "0.4.0",
|
|
4425
4030
|
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
|
|
@@ -4483,12 +4088,6 @@
|
|
|
4483
4088
|
"node": ">= 0.8"
|
|
4484
4089
|
}
|
|
4485
4090
|
},
|
|
4486
|
-
"node_modules/util-deprecate": {
|
|
4487
|
-
"version": "1.0.2",
|
|
4488
|
-
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
|
4489
|
-
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
|
|
4490
|
-
"license": "MIT"
|
|
4491
|
-
},
|
|
4492
4091
|
"node_modules/vary": {
|
|
4493
4092
|
"version": "1.1.2",
|
|
4494
4093
|
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-mem-lite",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "Persistent long-term memory for Claude Code via MCP — captures coding decisions, bugfixes, and context across sessions. Hybrid FTS5 + TF-IDF search with episode batching. Single SQLite DB, no external services. A lighter, lower-cost alternative to claude-mem (episode batching + a smaller model; cost savings are an internal estimate, not a measured benchmark).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "npm@10.9.2",
|
|
7
7
|
"engines": {
|
|
8
|
-
"node": ">=
|
|
8
|
+
"node": ">=22"
|
|
9
9
|
},
|
|
10
10
|
"bin": {
|
|
11
11
|
"claude-mem-lite": "./cli.mjs"
|
|
@@ -204,7 +204,7 @@
|
|
|
204
204
|
],
|
|
205
205
|
"dependencies": {
|
|
206
206
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
207
|
-
"better-sqlite3": "^
|
|
207
|
+
"better-sqlite3": "^13.0.3",
|
|
208
208
|
"zod": "^4.5.4"
|
|
209
209
|
},
|
|
210
210
|
"overrides": {
|