dsh-layered-memory 0.7.1 → 0.8.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.
Files changed (42) hide show
  1. package/README.en.md +115 -68
  2. package/README.md +128 -100
  3. package/assets/img/EmbeddingSource.png +0 -0
  4. package/assets/img/MemoryTools.png +0 -0
  5. package/assets/img/ToolTrajectory.png +0 -0
  6. package/dist/client.js +11 -2
  7. package/dist/config.d.ts +26 -1
  8. package/dist/config.js +9 -3
  9. package/dist/hooks/recall.d.ts +11 -8
  10. package/dist/hooks/recall.js +70 -51
  11. package/dist/index.d.ts +16 -0
  12. package/dist/index.js +5 -1
  13. package/dist/llm.d.ts +13 -0
  14. package/dist/llm.js +17 -0
  15. package/dist/pipeline/l1.js +5 -4
  16. package/dist/pipeline/l2.js +7 -2
  17. package/dist/pipeline/l3.js +7 -2
  18. package/dist/pipeline/runner.d.ts +36 -5
  19. package/dist/pipeline/runner.js +148 -35
  20. package/dist/pipeline/trigger.d.ts +38 -0
  21. package/dist/pipeline/trigger.js +64 -0
  22. package/dist/store/bm25.js +2 -1
  23. package/dist/store/embedding.d.ts +12 -6
  24. package/dist/store/embedding.js +10 -7
  25. package/dist/store/l0.d.ts +2 -0
  26. package/dist/store/l0.js +4 -0
  27. package/dist/store/l1.d.ts +2 -0
  28. package/dist/store/l1.js +2 -2
  29. package/dist/store/pending.d.ts +27 -6
  30. package/dist/store/pending.js +49 -9
  31. package/dist/store/search-utils.js +3 -2
  32. package/dist/store/session-modes.d.ts +4 -0
  33. package/dist/store/session-modes.js +16 -0
  34. package/dist/store/sqlite.d.ts +12 -0
  35. package/dist/store/sqlite.js +103 -5
  36. package/dist/util/recall-budget.d.ts +32 -0
  37. package/dist/util/recall-budget.js +85 -0
  38. package/dist/util/text.d.ts +8 -3
  39. package/dist/util/text.js +41 -15
  40. package/dist/util/tokenizer.d.ts +14 -0
  41. package/dist/util/tokenizer.js +53 -0
  42. package/package.json +2 -1
@@ -0,0 +1,53 @@
1
+ /**
2
+ * 分词器装配:jieba 词级分词(@node-rs/jieba,Rust napi 预编译二进制)优先,
3
+ * 加载失败(平台无预编译二进制等)永久回退 CJK 二元组。
4
+ *
5
+ * - 惰性单例:首次调用即定死本进程的分词模式,不会运行中漂移——
6
+ * FTS 读写两侧共用同一实例(util/text.ts 的 tokenize),索引/查询天然对齐;
7
+ * - require 走 createRequire(与 sqlite-vec 同款):失败只降级不抛出,
8
+ * 由 MemoryDb.init() 在启动时主动 ensure 并记录模式日志。
9
+ */
10
+ import { createRequire } from 'node:module';
11
+ const require = createRequire(import.meta.url);
12
+ let mode;
13
+ let cutFn;
14
+ /** 惰性初始化(永不抛出)。词典约 5MB,首次加载 ~100ms。 */
15
+ function ensure() {
16
+ if (mode !== undefined)
17
+ return mode;
18
+ try {
19
+ const { Jieba } = require('@node-rs/jieba');
20
+ const { dict } = require('@node-rs/jieba/dict');
21
+ const jieba = Jieba.withDict(dict);
22
+ cutFn = (text) => jieba.cut(text, true);
23
+ mode = 'jieba';
24
+ }
25
+ catch {
26
+ cutFn = undefined;
27
+ mode = 'bigram';
28
+ }
29
+ return mode;
30
+ }
31
+ /** 启动期主动初始化并返回模式(MemoryDb.init 记日志用)。 */
32
+ export function ensureTokenizer() {
33
+ return ensure();
34
+ }
35
+ /**
36
+ * FTS 分词器版本戳(存 embedding_meta 表,键 fts_tokenizer)。
37
+ * 戳 ≠ 当前生效分词器 → FTS 表 drop 后从源表全量回灌(与 family 列迁移同款语义)。
38
+ * 回退模式下戳为 bigram-v1:若历史索引是 jieba 分词建的,同样触发重建,
39
+ * 保证戳永远如实反映"构建当前 FTS 内容的分词器"。
40
+ */
41
+ export function tokenizerStamp() {
42
+ return ensure() === 'jieba' ? 'jieba-v1' : 'bigram-v1';
43
+ }
44
+ /** 模式描述(日志用)。 */
45
+ export function describeTokenizer() {
46
+ return ensure() === 'jieba'
47
+ ? 'jieba 词级分词(@node-rs/jieba)+ CJK 二元组并集'
48
+ : 'jieba 加载失败,回退 CJK 二元组分词(子词召回降级)';
49
+ }
50
+ /** jieba 切词(回退模式下返回 undefined,调用方走二元组路径)。 */
51
+ export function jiebaCut(text) {
52
+ return ensure() === 'jieba' ? cutFn(text) : undefined;
53
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-layered-memory",
3
- "version": "0.7.1",
3
+ "version": "0.8.0",
4
4
  "description": "L0~L3 分层蒸馏记忆插件 for DeepSeek Harness:自动捕获对话(L0)、抽取原子记忆(L1)、整合场景块(L2)、蒸馏核心画像/团队方法论(L3),并在模型步骤前自动召回注入。移植自 MemoryCore (TencentDB Agent Memory) 的管线设计。",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -51,6 +51,7 @@
51
51
  "license": "MIT",
52
52
  "dependencies": {
53
53
  "@deepseek-ai/schemastery": "3.18.1",
54
+ "@node-rs/jieba": "^2.0.2",
54
55
  "sqlite-vec": "^0.1.7-alpha.2"
55
56
  },
56
57
  "peerDependencies": {