@yun-zero/claw-memory 0.1.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 (131) hide show
  1. package/.claude/settings.local.json +68 -0
  2. package/README.md +323 -0
  3. package/dist/config/llm.d.ts +13 -0
  4. package/dist/config/llm.d.ts.map +1 -0
  5. package/dist/config/llm.js +96 -0
  6. package/dist/config/llm.js.map +1 -0
  7. package/dist/config/plugin.d.ts +15 -0
  8. package/dist/config/plugin.d.ts.map +1 -0
  9. package/dist/config/plugin.js +32 -0
  10. package/dist/config/plugin.js.map +1 -0
  11. package/dist/db/entityRepository.d.ts +21 -0
  12. package/dist/db/entityRepository.d.ts.map +1 -0
  13. package/dist/db/entityRepository.js +55 -0
  14. package/dist/db/entityRepository.js.map +1 -0
  15. package/dist/db/repository.d.ts +22 -0
  16. package/dist/db/repository.d.ts.map +1 -0
  17. package/dist/db/repository.js +77 -0
  18. package/dist/db/repository.js.map +1 -0
  19. package/dist/db/schema.d.ts +5 -0
  20. package/dist/db/schema.d.ts.map +1 -0
  21. package/dist/db/schema.js +112 -0
  22. package/dist/db/schema.js.map +1 -0
  23. package/dist/db/todoRepository.d.ts +26 -0
  24. package/dist/db/todoRepository.d.ts.map +1 -0
  25. package/dist/db/todoRepository.js +54 -0
  26. package/dist/db/todoRepository.js.map +1 -0
  27. package/dist/hooks/bootstrap.d.ts +3 -0
  28. package/dist/hooks/bootstrap.d.ts.map +1 -0
  29. package/dist/hooks/bootstrap.js +28 -0
  30. package/dist/hooks/bootstrap.js.map +1 -0
  31. package/dist/hooks/message.d.ts +18 -0
  32. package/dist/hooks/message.d.ts.map +1 -0
  33. package/dist/hooks/message.js +52 -0
  34. package/dist/hooks/message.js.map +1 -0
  35. package/dist/index.d.ts +3 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +46 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/mcp/tools.d.ts +26 -0
  40. package/dist/mcp/tools.d.ts.map +1 -0
  41. package/dist/mcp/tools.js +360 -0
  42. package/dist/mcp/tools.js.map +1 -0
  43. package/dist/plugin.d.ts +18 -0
  44. package/dist/plugin.d.ts.map +1 -0
  45. package/dist/plugin.js +62 -0
  46. package/dist/plugin.js.map +1 -0
  47. package/dist/services/entityGraphService.d.ts +87 -0
  48. package/dist/services/entityGraphService.d.ts.map +1 -0
  49. package/dist/services/entityGraphService.js +271 -0
  50. package/dist/services/entityGraphService.js.map +1 -0
  51. package/dist/services/memory.d.ts +26 -0
  52. package/dist/services/memory.d.ts.map +1 -0
  53. package/dist/services/memory.js +281 -0
  54. package/dist/services/memory.js.map +1 -0
  55. package/dist/services/memoryIndex.d.ts +34 -0
  56. package/dist/services/memoryIndex.d.ts.map +1 -0
  57. package/dist/services/memoryIndex.js +100 -0
  58. package/dist/services/memoryIndex.js.map +1 -0
  59. package/dist/services/metadataExtractor.d.ts +16 -0
  60. package/dist/services/metadataExtractor.d.ts.map +1 -0
  61. package/dist/services/metadataExtractor.js +75 -0
  62. package/dist/services/metadataExtractor.js.map +1 -0
  63. package/dist/services/retrieval.d.ts +24 -0
  64. package/dist/services/retrieval.d.ts.map +1 -0
  65. package/dist/services/retrieval.js +40 -0
  66. package/dist/services/retrieval.js.map +1 -0
  67. package/dist/services/scheduler.d.ts +122 -0
  68. package/dist/services/scheduler.d.ts.map +1 -0
  69. package/dist/services/scheduler.js +434 -0
  70. package/dist/services/scheduler.js.map +1 -0
  71. package/dist/services/summarizer.d.ts +43 -0
  72. package/dist/services/summarizer.d.ts.map +1 -0
  73. package/dist/services/summarizer.js +252 -0
  74. package/dist/services/summarizer.js.map +1 -0
  75. package/dist/services/tagService.d.ts +64 -0
  76. package/dist/services/tagService.d.ts.map +1 -0
  77. package/dist/services/tagService.js +281 -0
  78. package/dist/services/tagService.js.map +1 -0
  79. package/dist/tools/memory.d.ts +3 -0
  80. package/dist/tools/memory.d.ts.map +1 -0
  81. package/dist/tools/memory.js +114 -0
  82. package/dist/tools/memory.js.map +1 -0
  83. package/dist/types.d.ts +128 -0
  84. package/dist/types.d.ts.map +1 -0
  85. package/dist/types.js +6 -0
  86. package/dist/types.js.map +1 -0
  87. package/docs/plans/2026-03-02-claw-memory-design.md +445 -0
  88. package/docs/plans/2026-03-02-incremental-summary-design.md +157 -0
  89. package/docs/plans/2026-03-02-incremental-summary-implementation.md +468 -0
  90. package/docs/plans/2026-03-02-memory-index-design.md +163 -0
  91. package/docs/plans/2026-03-02-memory-index-implementation.md +836 -0
  92. package/docs/plans/2026-03-02-mvp-implementation.md +1703 -0
  93. package/docs/plans/2026-03-02-testing-implementation.md +395 -0
  94. package/docs/plans/2026-03-02-testing-plan.md +93 -0
  95. package/docs/plans/2026-03-03-claw-memory-openclaw-plugin-design.md +285 -0
  96. package/docs/plans/2026-03-03-claw-memory-plugin-implementation.md +642 -0
  97. package/docs/plans/2026-03-03-entity-graph-design.md +121 -0
  98. package/docs/plans/2026-03-03-entity-graph-implementation.md +687 -0
  99. package/docs/plans/2026-03-03-llm-generic-config-design.md +43 -0
  100. package/docs/plans/2026-03-03-llm-generic-config-implementation.md +186 -0
  101. package/docs/plans/2026-03-03-memory-e2e-stress-test-design.md +110 -0
  102. package/docs/plans/2026-03-03-memory-e2e-stress-test-implementation.md +464 -0
  103. package/docs/plans/2026-03-03-minimax-llm-fix.md +156 -0
  104. package/docs/plans/2026-03-03-scheduler-design.md +165 -0
  105. package/docs/plans/2026-03-03-scheduler-implementation.md +777 -0
  106. package/docs/plans/2026-03-03-tags-visualization-design.md +73 -0
  107. package/docs/plans/2026-03-03-tags-visualization-implementation.md +539 -0
  108. package/openclaw.plugin.json +11 -0
  109. package/package.json +41 -0
  110. package/src/config/llm.ts +129 -0
  111. package/src/config/plugin.ts +47 -0
  112. package/src/db/entityRepository.ts +80 -0
  113. package/src/db/repository.ts +106 -0
  114. package/src/db/schema.ts +121 -0
  115. package/src/db/todoRepository.ts +76 -0
  116. package/src/hooks/bootstrap.ts +36 -0
  117. package/src/hooks/message.ts +84 -0
  118. package/src/index.ts +50 -0
  119. package/src/plugin.ts +85 -0
  120. package/src/services/entityGraphService.ts +367 -0
  121. package/src/services/memory.ts +338 -0
  122. package/src/services/memoryIndex.ts +140 -0
  123. package/src/services/metadataExtractor.ts +89 -0
  124. package/src/services/retrieval.ts +71 -0
  125. package/src/services/scheduler.ts +529 -0
  126. package/src/services/summarizer.ts +318 -0
  127. package/src/services/tagService.ts +335 -0
  128. package/src/tools/memory.ts +137 -0
  129. package/src/types.ts +139 -0
  130. package/tsconfig.json +20 -0
  131. package/vitest.config.ts +16 -0
@@ -0,0 +1,121 @@
1
+ # 实体关系图查询设计
2
+
3
+ ## 概述
4
+
5
+ 为 Claw-Memory 实现实体关系图查询功能,包括 MCP 工具和静态 HTML 可视化。
6
+
7
+ ## 需求
8
+
9
+ 1. MCP 工具查询实体的直接关联
10
+ 2. MCP 工具进行多跳查询(默认2跳,最大5跳),返回网络图 JSON
11
+ 3. MCP 工具获取关系统计
12
+ 4. CLI 命令生成静态 HTML 可视化关系图
13
+
14
+ ## MCP 工具设计
15
+
16
+ ### 1. get_entity_relations
17
+
18
+ 查询实体的直接关联实体
19
+
20
+ **输入:**
21
+ ```typescript
22
+ {
23
+ entity_name: string // 实体名称
24
+ }
25
+ ```
26
+
27
+ **输出:**
28
+ ```typescript
29
+ {
30
+ entity: string,
31
+ relations: Array<{
32
+ target: string,
33
+ type: "related" | "parent" | "similar" | "co_occur",
34
+ weight: number
35
+ }>
36
+ }
37
+ ```
38
+
39
+ ### 2. query_entity_graph
40
+
41
+ 多跳查询,返回网络图 JSON
42
+
43
+ **输入:**
44
+ ```typescript
45
+ {
46
+ start_entity: string,
47
+ end_entity?: string, // 可选,不填则返回从起点可达的所有节点
48
+ max_hops: number // 默认2,最大5
49
+ }
50
+ ```
51
+
52
+ **输出:**
53
+ ```typescript
54
+ {
55
+ nodes: Array<{
56
+ id: string,
57
+ name: string,
58
+ type: string
59
+ }>,
60
+ edges: Array<{
61
+ source: string,
62
+ target: string,
63
+ type: string,
64
+ weight: number
65
+ }>
66
+ }
67
+ ```
68
+
69
+ ### 3. get_relation_stats
70
+
71
+ 获取关系统计信息
72
+
73
+ **输出:**
74
+ ```typescript
75
+ {
76
+ most_connected: Array<{ entity: string, count: number }>,
77
+ relation_types: Record<string, number>,
78
+ total_relations: number
79
+ }
80
+ ```
81
+
82
+ ## CLI 命令设计
83
+
84
+ ```bash
85
+ # 生成实体关系图 HTML 报告
86
+ claw-memory relations graph [--entity <name>] [--hops <n>] [--output <file>]
87
+
88
+ # 生成关系统计 HTML 报告
89
+ claw-memory relations stats [--output <file>]
90
+ ```
91
+
92
+ ## HTML 可视化设计
93
+
94
+ ### 交互功能
95
+
96
+ - **拖拽布局** - 节点可拖拽重新排列
97
+ - **点击详情** - 点击节点显示关联信息
98
+ - **缩放/平移** - 支持鼠标滚轮缩放和拖拽平移
99
+
100
+ ### 视觉设计
101
+
102
+ - **节点** - 圆形,不同颜色代表不同实体类型
103
+ - **边** - 不同线型代表不同关系类型
104
+ - **权重** - 边的粗细表示权重
105
+
106
+ ### 技术实现
107
+
108
+ - 使用 D3.js 力导向图
109
+ - 单文件 HTML,内联所有依赖
110
+
111
+ ## 数据来源
112
+
113
+ - `entities` 表 - 实体信息
114
+ - `entity_relations` 表 - 关系数据
115
+ - `memory_entities` 表 - 记忆-实体关联
116
+
117
+ ## 实现方式
118
+
119
+ - 复用现有 `entity_relations` 表结构
120
+ - BFS 算法进行多跳查询
121
+ - D3.js 进行可视化渲染