clawvault 3.1.0 → 3.2.1

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 (273) hide show
  1. package/README.md +422 -141
  2. package/bin/clawvault.js +10 -2
  3. package/bin/command-registration.test.js +3 -1
  4. package/bin/command-runtime.js +9 -1
  5. package/bin/register-core-commands.js +23 -28
  6. package/bin/register-maintenance-commands.js +39 -3
  7. package/bin/register-query-commands.js +58 -29
  8. package/bin/register-tailscale-commands.js +106 -0
  9. package/bin/register-task-commands.js +18 -1
  10. package/bin/register-task-commands.test.js +16 -0
  11. package/bin/register-vault-operations-commands.js +29 -1
  12. package/bin/register-workgraph-commands.js +451 -0
  13. package/dashboard/lib/graph-diff.js +104 -0
  14. package/dashboard/lib/graph-diff.test.js +75 -0
  15. package/dashboard/lib/vault-parser.js +556 -0
  16. package/dashboard/lib/vault-parser.test.js +254 -0
  17. package/dashboard/public/app.js +796 -0
  18. package/dashboard/public/index.html +52 -0
  19. package/dashboard/public/styles.css +221 -0
  20. package/dashboard/server.js +374 -0
  21. package/dist/{chunk-C7OK5WKP.js → chunk-2JQ3O2YL.js} +4 -4
  22. package/dist/{chunk-VR5NE7PZ.js → chunk-2RAZ4ZFE.js} +1 -1
  23. package/dist/{chunk-F2JEUD4J.js → chunk-4ITRXIVT.js} +5 -7
  24. package/dist/{chunk-GUKMRGM7.js → chunk-4OXMU5S2.js} +1 -1
  25. package/dist/chunk-5PJ4STIC.js +465 -0
  26. package/dist/{chunk-62YTUT6J.js → chunk-AZYOKJYC.js} +2 -2
  27. package/dist/chunk-BSJ6RIT7.js +447 -0
  28. package/dist/chunk-ECRZL5XR.js +50 -0
  29. package/dist/chunk-ERNE2FZ5.js +189 -0
  30. package/dist/{chunk-WAZ3NLWL.js → chunk-F55HGNU4.js} +0 -47
  31. package/dist/{chunk-VGLOTGAS.js → chunk-FAKNOB7Y.js} +2 -2
  32. package/dist/{chunk-QK3UCXWL.js → chunk-FHFUXL6G.js} +2 -2
  33. package/dist/chunk-GNJL4YGR.js +79 -0
  34. package/dist/chunk-HR4KN6S2.js +152 -0
  35. package/dist/{chunk-OZ7RIXTO.js → chunk-IIOU45CK.js} +1 -1
  36. package/dist/chunk-IJBFGPCS.js +33 -0
  37. package/dist/chunk-IVRIKYFE.js +520 -0
  38. package/dist/chunk-K7PNYS45.js +93 -0
  39. package/dist/chunk-MDIH26GC.js +183 -0
  40. package/dist/{chunk-LYHGEHXG.js → chunk-MFAWT5O5.js} +0 -1
  41. package/dist/{chunk-H34S76MB.js → chunk-MNPUYCHQ.js} +6 -6
  42. package/dist/chunk-NTOPJI7W.js +207 -0
  43. package/dist/{chunk-QBLMXKF2.js → chunk-OIWVQYQF.js} +1 -1
  44. package/dist/chunk-PG56HX5T.js +154 -0
  45. package/dist/{chunk-LNJA2UGL.js → chunk-PI4WMLMG.js} +7 -84
  46. package/dist/chunk-QMHPQYUV.js +363 -0
  47. package/dist/{chunk-H62BP7RI.js → chunk-QPDDIHXE.js} +209 -43
  48. package/dist/{chunk-N2AXRYLC.js → chunk-QWQ3TIKS.js} +1 -1
  49. package/dist/{chunk-3DHXQHYG.js → chunk-R2MIW5G7.js} +1 -1
  50. package/dist/{chunk-SJSFRIYS.js → chunk-S5OJEGFG.js} +2 -2
  51. package/dist/chunk-SS4B7P7V.js +99 -0
  52. package/dist/chunk-TIGW564L.js +628 -0
  53. package/dist/chunk-U67V476Y.js +35 -0
  54. package/dist/{chunk-JY6FYXIT.js → chunk-UCQAOZHW.js} +6 -11
  55. package/dist/{chunk-ITPEXLHA.js → chunk-URXDAUVH.js} +24 -5
  56. package/dist/chunk-WIOLLGAD.js +190 -0
  57. package/dist/{chunk-3WRJEKN4.js → chunk-WJVWINEM.js} +72 -8
  58. package/dist/chunk-WMGIIABP.js +15 -0
  59. package/dist/{chunk-33UGEQRT.js → chunk-X3SPPUFG.js} +151 -64
  60. package/dist/{chunk-3NSBOUT3.js → chunk-Y3TIJEBP.js} +314 -79
  61. package/dist/chunk-Y6VJKXGL.js +373 -0
  62. package/dist/{chunk-LI4O6NVK.js → chunk-YDWHS4LJ.js} +49 -9
  63. package/dist/{chunk-U55BGUAU.js → chunk-YNIPYN4F.js} +5 -5
  64. package/dist/chunk-YXQCA6B7.js +226 -0
  65. package/dist/cli/index.js +26 -22
  66. package/dist/commands/archive.js +3 -3
  67. package/dist/commands/backlog.js +3 -3
  68. package/dist/commands/blocked.js +3 -3
  69. package/dist/commands/canvas.d.ts +15 -0
  70. package/dist/commands/canvas.js +200 -0
  71. package/dist/commands/checkpoint.js +2 -2
  72. package/dist/commands/compat.js +2 -2
  73. package/dist/commands/context.js +7 -5
  74. package/dist/commands/doctor.d.ts +11 -7
  75. package/dist/commands/doctor.js +16 -14
  76. package/dist/commands/embed.js +5 -6
  77. package/dist/commands/entities.js +2 -2
  78. package/dist/commands/graph.js +3 -3
  79. package/dist/commands/inject.d.ts +1 -1
  80. package/dist/commands/inject.js +4 -5
  81. package/dist/commands/kanban.js +4 -4
  82. package/dist/commands/link.js +2 -2
  83. package/dist/commands/migrate-observations.js +4 -4
  84. package/dist/commands/observe.d.ts +0 -1
  85. package/dist/commands/observe.js +13 -12
  86. package/dist/commands/project.js +5 -5
  87. package/dist/commands/rebuild-embeddings.d.ts +21 -0
  88. package/dist/commands/rebuild-embeddings.js +91 -0
  89. package/dist/commands/rebuild.js +12 -11
  90. package/dist/commands/recover.js +3 -3
  91. package/dist/commands/reflect.js +6 -7
  92. package/dist/commands/repair-session.js +1 -1
  93. package/dist/commands/replay.js +14 -14
  94. package/dist/commands/session-recap.js +1 -1
  95. package/dist/commands/setup.d.ts +2 -89
  96. package/dist/commands/setup.js +3 -21
  97. package/dist/commands/shell-init.js +1 -1
  98. package/dist/commands/sleep.d.ts +1 -1
  99. package/dist/commands/sleep.js +18 -17
  100. package/dist/commands/status.d.ts +2 -0
  101. package/dist/commands/status.js +40 -30
  102. package/dist/commands/sync-bd.d.ts +10 -0
  103. package/dist/commands/sync-bd.js +10 -0
  104. package/dist/commands/tailscale.d.ts +52 -0
  105. package/dist/commands/tailscale.js +26 -0
  106. package/dist/commands/task.js +4 -4
  107. package/dist/commands/template.js +2 -2
  108. package/dist/commands/wake.d.ts +1 -1
  109. package/dist/commands/wake.js +11 -10
  110. package/dist/index.d.ts +334 -191
  111. package/dist/index.js +432 -108
  112. package/dist/{inject-Bzi5E-By.d.ts → inject-DYUrDqQO.d.ts} +3 -3
  113. package/dist/ledger-B7g7jhqG.d.ts +44 -0
  114. package/dist/lib/auto-linker.js +1 -1
  115. package/dist/lib/canvas-layout.d.ts +115 -0
  116. package/dist/lib/canvas-layout.js +35 -0
  117. package/dist/lib/config.d.ts +27 -3
  118. package/dist/lib/config.js +4 -2
  119. package/dist/lib/entity-index.js +1 -1
  120. package/dist/lib/project-utils.js +4 -4
  121. package/dist/lib/session-repair.js +1 -1
  122. package/dist/lib/session-utils.js +1 -1
  123. package/dist/lib/tailscale.d.ts +225 -0
  124. package/dist/lib/tailscale.js +50 -0
  125. package/dist/lib/task-utils.js +3 -3
  126. package/dist/lib/template-engine.js +1 -1
  127. package/dist/lib/webdav.d.ts +109 -0
  128. package/dist/lib/webdav.js +35 -0
  129. package/dist/plugin/index.d.ts +344 -28
  130. package/dist/plugin/index.js +3919 -227
  131. package/dist/registry-BR4326o0.d.ts +30 -0
  132. package/dist/store-CA-6sKCJ.d.ts +34 -0
  133. package/dist/thread-B9LhXNU0.d.ts +41 -0
  134. package/dist/{types-Y2_Um2Ls.d.ts → types-BbWJoC1c.d.ts} +1 -44
  135. package/dist/workgraph/index.d.ts +5 -0
  136. package/dist/workgraph/index.js +23 -0
  137. package/dist/workgraph/ledger.d.ts +2 -0
  138. package/dist/workgraph/ledger.js +25 -0
  139. package/dist/workgraph/registry.d.ts +2 -0
  140. package/dist/workgraph/registry.js +19 -0
  141. package/dist/workgraph/store.d.ts +2 -0
  142. package/dist/workgraph/store.js +25 -0
  143. package/dist/workgraph/thread.d.ts +2 -0
  144. package/dist/workgraph/thread.js +25 -0
  145. package/dist/workgraph/types.d.ts +54 -0
  146. package/dist/workgraph/types.js +7 -0
  147. package/hooks/clawvault/HOOK.md +113 -0
  148. package/hooks/clawvault/handler.js +1559 -0
  149. package/hooks/clawvault/handler.test.js +510 -0
  150. package/hooks/clawvault/openclaw.plugin.json +72 -0
  151. package/openclaw.plugin.json +235 -30
  152. package/package.json +20 -20
  153. package/dist/chunk-3RG5ZIWI.js +0 -10
  154. package/dist/chunk-3ZIH425O.js +0 -871
  155. package/dist/chunk-6U6MK36V.js +0 -205
  156. package/dist/chunk-CMB7UL7C.js +0 -327
  157. package/dist/chunk-D2H45LON.js +0 -1074
  158. package/dist/chunk-E7MFQB6D.js +0 -163
  159. package/dist/chunk-GQSLDZTS.js +0 -560
  160. package/dist/chunk-MFM6K7PU.js +0 -374
  161. package/dist/chunk-MXSSG3QU.js +0 -42
  162. package/dist/chunk-OCGVIN3L.js +0 -88
  163. package/dist/chunk-PAH27GSN.js +0 -108
  164. package/dist/chunk-YCUNCH2I.js +0 -78
  165. package/dist/cli/index.cjs +0 -8584
  166. package/dist/cli/index.d.cts +0 -5
  167. package/dist/commands/archive.cjs +0 -287
  168. package/dist/commands/archive.d.cts +0 -11
  169. package/dist/commands/backlog.cjs +0 -721
  170. package/dist/commands/backlog.d.cts +0 -53
  171. package/dist/commands/blocked.cjs +0 -204
  172. package/dist/commands/blocked.d.cts +0 -26
  173. package/dist/commands/checkpoint.cjs +0 -244
  174. package/dist/commands/checkpoint.d.cts +0 -41
  175. package/dist/commands/compat.cjs +0 -294
  176. package/dist/commands/compat.d.cts +0 -28
  177. package/dist/commands/context.cjs +0 -2990
  178. package/dist/commands/context.d.cts +0 -2
  179. package/dist/commands/doctor.cjs +0 -2986
  180. package/dist/commands/doctor.d.cts +0 -21
  181. package/dist/commands/embed.cjs +0 -232
  182. package/dist/commands/embed.d.cts +0 -17
  183. package/dist/commands/entities.cjs +0 -141
  184. package/dist/commands/entities.d.cts +0 -7
  185. package/dist/commands/graph.cjs +0 -501
  186. package/dist/commands/graph.d.cts +0 -21
  187. package/dist/commands/inject.cjs +0 -1636
  188. package/dist/commands/inject.d.cts +0 -2
  189. package/dist/commands/kanban.cjs +0 -884
  190. package/dist/commands/kanban.d.cts +0 -63
  191. package/dist/commands/link.cjs +0 -965
  192. package/dist/commands/link.d.cts +0 -11
  193. package/dist/commands/migrate-observations.cjs +0 -362
  194. package/dist/commands/migrate-observations.d.cts +0 -19
  195. package/dist/commands/observe.cjs +0 -4099
  196. package/dist/commands/observe.d.cts +0 -23
  197. package/dist/commands/project.cjs +0 -1341
  198. package/dist/commands/project.d.cts +0 -85
  199. package/dist/commands/rebuild.cjs +0 -3136
  200. package/dist/commands/rebuild.d.cts +0 -11
  201. package/dist/commands/recover.cjs +0 -361
  202. package/dist/commands/recover.d.cts +0 -38
  203. package/dist/commands/reflect.cjs +0 -1008
  204. package/dist/commands/reflect.d.cts +0 -11
  205. package/dist/commands/repair-session.cjs +0 -457
  206. package/dist/commands/repair-session.d.cts +0 -38
  207. package/dist/commands/replay.cjs +0 -4103
  208. package/dist/commands/replay.d.cts +0 -16
  209. package/dist/commands/session-recap.cjs +0 -353
  210. package/dist/commands/session-recap.d.cts +0 -27
  211. package/dist/commands/setup.cjs +0 -1278
  212. package/dist/commands/setup.d.cts +0 -99
  213. package/dist/commands/shell-init.cjs +0 -75
  214. package/dist/commands/shell-init.d.cts +0 -7
  215. package/dist/commands/sleep.cjs +0 -6029
  216. package/dist/commands/sleep.d.cts +0 -36
  217. package/dist/commands/status.cjs +0 -2737
  218. package/dist/commands/status.d.cts +0 -52
  219. package/dist/commands/task.cjs +0 -1236
  220. package/dist/commands/task.d.cts +0 -97
  221. package/dist/commands/template.cjs +0 -457
  222. package/dist/commands/template.d.cts +0 -36
  223. package/dist/commands/wake.cjs +0 -2627
  224. package/dist/commands/wake.d.cts +0 -22
  225. package/dist/context-BUGaWpyL.d.cts +0 -46
  226. package/dist/index.cjs +0 -12373
  227. package/dist/index.d.cts +0 -854
  228. package/dist/inject-Bzi5E-By.d.cts +0 -137
  229. package/dist/lib/auto-linker.cjs +0 -176
  230. package/dist/lib/auto-linker.d.cts +0 -26
  231. package/dist/lib/config.cjs +0 -78
  232. package/dist/lib/config.d.cts +0 -11
  233. package/dist/lib/entity-index.cjs +0 -84
  234. package/dist/lib/entity-index.d.cts +0 -26
  235. package/dist/lib/project-utils.cjs +0 -864
  236. package/dist/lib/project-utils.d.cts +0 -97
  237. package/dist/lib/session-repair.cjs +0 -239
  238. package/dist/lib/session-repair.d.cts +0 -110
  239. package/dist/lib/session-utils.cjs +0 -209
  240. package/dist/lib/session-utils.d.cts +0 -63
  241. package/dist/lib/task-utils.cjs +0 -1137
  242. package/dist/lib/task-utils.d.cts +0 -208
  243. package/dist/lib/template-engine.cjs +0 -47
  244. package/dist/lib/template-engine.d.cts +0 -11
  245. package/dist/plugin/index.cjs +0 -1907
  246. package/dist/plugin/index.d.cts +0 -36
  247. package/dist/plugin/inject.cjs +0 -356
  248. package/dist/plugin/inject.d.cts +0 -54
  249. package/dist/plugin/inject.d.ts +0 -54
  250. package/dist/plugin/inject.js +0 -17
  251. package/dist/plugin/observe.cjs +0 -631
  252. package/dist/plugin/observe.d.cts +0 -39
  253. package/dist/plugin/observe.d.ts +0 -39
  254. package/dist/plugin/observe.js +0 -18
  255. package/dist/plugin/templates.cjs +0 -593
  256. package/dist/plugin/templates.d.cts +0 -52
  257. package/dist/plugin/templates.d.ts +0 -52
  258. package/dist/plugin/templates.js +0 -25
  259. package/dist/plugin/types.cjs +0 -18
  260. package/dist/plugin/types.d.cts +0 -209
  261. package/dist/plugin/types.d.ts +0 -209
  262. package/dist/plugin/types.js +0 -0
  263. package/dist/plugin/vault.cjs +0 -927
  264. package/dist/plugin/vault.d.cts +0 -68
  265. package/dist/plugin/vault.d.ts +0 -68
  266. package/dist/plugin/vault.js +0 -22
  267. package/dist/types-Y2_Um2Ls.d.cts +0 -205
  268. package/templates/memory-event.md +0 -67
  269. package/templates/party.md +0 -63
  270. package/templates/primitive-registry.yaml +0 -551
  271. package/templates/run.md +0 -68
  272. package/templates/trigger.md +0 -68
  273. package/templates/workspace.md +0 -50
@@ -1,56 +1,261 @@
1
1
  {
2
2
  "id": "clawvault",
3
+ "name": "ClawVault",
4
+ "version": "4.0.0",
5
+ "description": "Structured memory system for AI agents with hybrid retrieval, cross-encoder reranking, adaptive capture, and multi-scope support",
3
6
  "kind": "memory",
4
- "uiHints": {
5
- "vaultPath": {
6
- "label": "Vault Path",
7
- "placeholder": "~/clawvault",
8
- "help": "Path to your ClawVault vault directory"
9
- },
10
- "collection": {
11
- "label": "QMD Collection",
12
- "placeholder": "clawvault",
13
- "help": "Name of the qmd search collection",
14
- "advanced": true
15
- },
16
- "autoRecall": {
17
- "label": "Auto-Recall",
18
- "help": "Automatically inject relevant memories before each agent turn"
19
- },
20
- "autoCapture": {
21
- "label": "Auto-Capture",
22
- "help": "Automatically observe and capture important information from conversations"
23
- },
24
- "recallLimit": {
25
- "label": "Recall Limit",
26
- "help": "Max memories to inject per turn (default: 5)",
27
- "advanced": true
28
- }
29
- },
30
7
  "configSchema": {
31
8
  "type": "object",
32
- "additionalProperties": false,
33
9
  "properties": {
34
10
  "vaultPath": {
35
- "type": "string"
11
+ "type": "string",
12
+ "description": "Path to the ClawVault vault directory. If not set, auto-discovered from CLAWVAULT_PATH or by walking up from cwd."
13
+ },
14
+ "agentVaults": {
15
+ "type": "object",
16
+ "description": "Mapping of agent names to vault paths. Falls back to vaultPath if agent not found.",
17
+ "additionalProperties": {
18
+ "type": "string"
19
+ }
36
20
  },
37
21
  "collection": {
38
- "type": "string"
22
+ "type": "string",
23
+ "description": "qmd collection name",
24
+ "default": "clawvault"
39
25
  },
40
26
  "autoRecall": {
41
27
  "type": "boolean",
28
+ "description": "Enable automatic memory recall on session start",
42
29
  "default": true
43
30
  },
44
31
  "autoCapture": {
45
32
  "type": "boolean",
33
+ "description": "Enable automatic observation capture from conversations",
46
34
  "default": true
47
35
  },
48
36
  "recallLimit": {
49
- "type": "number",
37
+ "type": "integer",
50
38
  "minimum": 1,
51
39
  "maximum": 20,
40
+ "description": "Maximum number of memories to recall per query",
52
41
  "default": 5
42
+ },
43
+ "templatesDir": {
44
+ "type": "string",
45
+ "description": "Custom path to template schema directory"
46
+ },
47
+ "autoCheckpoint": {
48
+ "type": "boolean",
49
+ "description": "Enable automatic checkpointing on session events",
50
+ "default": true
51
+ },
52
+ "contextProfile": {
53
+ "type": "string",
54
+ "enum": ["default", "planning", "incident", "handoff", "auto"],
55
+ "description": "Default context profile for session start injection",
56
+ "default": "auto"
57
+ },
58
+ "maxContextResults": {
59
+ "type": "integer",
60
+ "minimum": 1,
61
+ "maximum": 20,
62
+ "description": "Maximum number of context results to inject on session start",
63
+ "default": 4
64
+ },
65
+ "observeOnHeartbeat": {
66
+ "type": "boolean",
67
+ "description": "Enable observation threshold checks on gateway heartbeat",
68
+ "default": true
69
+ },
70
+ "weeklyReflection": {
71
+ "type": "boolean",
72
+ "description": "Enable weekly reflection on Sunday midnight UTC",
73
+ "default": true
74
+ },
75
+ "defaultScope": {
76
+ "type": "string",
77
+ "description": "Default memory scope. Use 'global' for shared, or 'agent:<id>', 'project:<name>', 'user:<id>' for scoped.",
78
+ "default": "global"
79
+ },
80
+ "retrieval": {
81
+ "type": "object",
82
+ "description": "Hybrid retrieval pipeline configuration",
83
+ "properties": {
84
+ "bm25Weight": {
85
+ "type": "number",
86
+ "minimum": 0,
87
+ "maximum": 1,
88
+ "description": "BM25 weight in RRF fusion",
89
+ "default": 0.5
90
+ },
91
+ "semanticWeight": {
92
+ "type": "number",
93
+ "minimum": 0,
94
+ "maximum": 1,
95
+ "description": "Semantic search weight in RRF fusion",
96
+ "default": 0.5
97
+ },
98
+ "rrfK": {
99
+ "type": "integer",
100
+ "minimum": 1,
101
+ "description": "RRF k parameter (higher = more weight to lower-ranked items)",
102
+ "default": 60
103
+ },
104
+ "topK": {
105
+ "type": "integer",
106
+ "minimum": 1,
107
+ "maximum": 100,
108
+ "description": "Maximum results to return",
109
+ "default": 10
110
+ },
111
+ "minScore": {
112
+ "type": "number",
113
+ "minimum": 0,
114
+ "maximum": 1,
115
+ "description": "Minimum score threshold for results",
116
+ "default": 0.01
117
+ },
118
+ "recencyHalfLifeDays": {
119
+ "type": "number",
120
+ "minimum": 0,
121
+ "description": "Recency boost half-life in days (0 = disabled)",
122
+ "default": 14
123
+ },
124
+ "recencyWeight": {
125
+ "type": "number",
126
+ "minimum": 0,
127
+ "maximum": 1,
128
+ "description": "Recency boost weight (additive)",
129
+ "default": 0.10
130
+ },
131
+ "decayHalfLifeDays": {
132
+ "type": "number",
133
+ "minimum": 0,
134
+ "description": "Time decay half-life in days (0 = disabled)",
135
+ "default": 60
136
+ },
137
+ "lengthNormAnchor": {
138
+ "type": "integer",
139
+ "minimum": 0,
140
+ "description": "Length normalization anchor in characters (0 = disabled)",
141
+ "default": 500
142
+ },
143
+ "mmrLambda": {
144
+ "type": "number",
145
+ "minimum": 0,
146
+ "maximum": 1,
147
+ "description": "MMR diversity lambda (1.0 = no diversity, lower = more diverse)",
148
+ "default": 0.7
149
+ },
150
+ "rerankProvider": {
151
+ "type": "string",
152
+ "enum": ["jina", "voyage", "siliconflow", "pinecone"],
153
+ "description": "Cross-encoder reranker API provider (optional)"
154
+ },
155
+ "rerankApiKey": {
156
+ "type": "string",
157
+ "description": "API key for the reranker service"
158
+ },
159
+ "rerankModel": {
160
+ "type": "string",
161
+ "description": "Reranker model name (auto-selected per provider if omitted)"
162
+ },
163
+ "rerankEndpoint": {
164
+ "type": "string",
165
+ "description": "Custom reranker endpoint URL"
166
+ },
167
+ "rerankWeight": {
168
+ "type": "number",
169
+ "minimum": 0,
170
+ "maximum": 1,
171
+ "description": "Weight of reranker score vs fused score (0.6 = 60% reranker)",
172
+ "default": 0.6
173
+ }
174
+ },
175
+ "additionalProperties": false
176
+ },
177
+ "noise": {
178
+ "type": "object",
179
+ "description": "Noise filtering configuration for write and read paths",
180
+ "properties": {
181
+ "enabled": {
182
+ "type": "boolean",
183
+ "description": "Enable noise filtering",
184
+ "default": true
185
+ },
186
+ "minLength": {
187
+ "type": "integer",
188
+ "minimum": 0,
189
+ "description": "Minimum text length to accept",
190
+ "default": 15
191
+ },
192
+ "maxLength": {
193
+ "type": "integer",
194
+ "minimum": 100,
195
+ "description": "Maximum text length to accept",
196
+ "default": 5000
197
+ }
198
+ },
199
+ "additionalProperties": false
200
+ },
201
+ "adaptive": {
202
+ "type": "object",
203
+ "description": "Adaptive retrieval configuration — skip retrieval for low-value queries",
204
+ "properties": {
205
+ "enabled": {
206
+ "type": "boolean",
207
+ "description": "Enable adaptive retrieval skipping",
208
+ "default": true
209
+ },
210
+ "skipPatterns": {
211
+ "type": "array",
212
+ "items": { "type": "string" },
213
+ "description": "Additional regex patterns that should skip retrieval",
214
+ "default": []
215
+ }
216
+ },
217
+ "additionalProperties": false
53
218
  }
219
+ },
220
+ "additionalProperties": false
221
+ },
222
+ "uiHints": {
223
+ "vaultPath": {
224
+ "label": "Vault Path",
225
+ "placeholder": "~/my-vault",
226
+ "description": "Path to your ClawVault memory vault"
227
+ },
228
+ "agentVaults": {
229
+ "label": "Agent Vaults",
230
+ "description": "Per-agent vault paths"
231
+ },
232
+ "autoRecall": {
233
+ "label": "Auto Recall",
234
+ "description": "Automatically recall relevant memories on session start"
235
+ },
236
+ "autoCapture": {
237
+ "label": "Auto Capture",
238
+ "description": "Automatically capture observations from conversations"
239
+ },
240
+ "recallLimit": {
241
+ "label": "Recall Limit",
242
+ "description": "Max memories to recall per query"
243
+ },
244
+ "defaultScope": {
245
+ "label": "Default Scope",
246
+ "description": "Default memory scope (global, agent:<id>, project:<name>, user:<id>)"
247
+ },
248
+ "retrieval": {
249
+ "label": "Retrieval Pipeline",
250
+ "description": "Configure hybrid search, reranking, recency, and diversity settings"
251
+ },
252
+ "noise": {
253
+ "label": "Noise Filter",
254
+ "description": "Filter low-quality content from capture and retrieval"
255
+ },
256
+ "adaptive": {
257
+ "label": "Adaptive Retrieval",
258
+ "description": "Skip memory retrieval for greetings, commands, and acknowledgments"
54
259
  }
55
260
  }
56
261
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "clawvault",
3
- "version": "3.1.0",
4
- "description": "Structured memory for AI agents. Typed markdown primitives, hybrid search, auto-capture, and Obsidian-native views. OpenClaw plugin + standalone CLI.",
3
+ "version": "3.2.1",
4
+ "description": "Structured memory system for AI agents typed storage, knowledge graph, context profiles, canvas dashboards, neural graph themes, and Obsidian-native task views. An elephant never forgets. 🐘",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
7
7
  "module": "dist/index.js",
@@ -11,11 +11,6 @@
11
11
  "types": "./dist/index.d.ts",
12
12
  "import": "./dist/index.js",
13
13
  "require": "./dist/index.cjs"
14
- },
15
- "./plugin": {
16
- "types": "./dist/plugin/index.d.ts",
17
- "import": "./dist/plugin/index.js",
18
- "require": "./dist/plugin/index.cjs"
19
14
  }
20
15
  },
21
16
  "bin": {
@@ -24,16 +19,19 @@
24
19
  "files": [
25
20
  "dist",
26
21
  "bin",
22
+ "dashboard",
27
23
  "templates",
24
+ "hooks",
28
25
  "openclaw.plugin.json"
29
26
  ],
30
27
  "openclaw": {
31
- "extensions": [
32
- "./dist/plugin/index.js"
28
+ "plugin": "./openclaw.plugin.json",
29
+ "hooks": [
30
+ "./hooks/clawvault"
33
31
  ]
34
32
  },
35
33
  "scripts": {
36
- "build": "tsup src/commands/archive.ts src/commands/backlog.ts src/commands/blocked.ts src/commands/checkpoint.ts src/commands/compat.ts src/commands/context.ts src/commands/doctor.ts src/commands/embed.ts src/commands/entities.ts src/commands/graph.ts src/commands/inject.ts src/commands/kanban.ts src/commands/link.ts src/commands/migrate-observations.ts src/commands/observe.ts src/commands/project.ts src/commands/rebuild.ts src/commands/recover.ts src/commands/reflect.ts src/commands/repair-session.ts src/commands/replay.ts src/commands/session-recap.ts src/commands/setup.ts src/commands/shell-init.ts src/commands/sleep.ts src/commands/status.ts src/commands/task.ts src/commands/template.ts src/commands/wake.ts src/cli/index.ts src/index.ts src/lib/auto-linker.ts src/lib/config.ts src/lib/entity-index.ts src/lib/project-utils.ts src/lib/session-repair.ts src/lib/session-utils.ts src/lib/task-utils.ts src/lib/template-engine.ts src/plugin/index.ts src/plugin/types.ts src/plugin/vault.ts src/plugin/observe.ts src/plugin/inject.ts src/plugin/templates.ts --format esm,cjs --dts --clean",
34
+ "build": "tsup src/commands/archive.ts src/commands/backlog.ts src/commands/blocked.ts src/commands/canvas.ts src/commands/checkpoint.ts src/commands/compat.ts src/commands/context.ts src/commands/doctor.ts src/commands/embed.ts src/commands/entities.ts src/commands/graph.ts src/commands/inject.ts src/commands/kanban.ts src/commands/link.ts src/commands/migrate-observations.ts src/commands/observe.ts src/commands/project.ts src/commands/rebuild.ts src/commands/rebuild-embeddings.ts src/commands/recover.ts src/commands/reflect.ts src/commands/repair-session.ts src/commands/replay.ts src/commands/session-recap.ts src/commands/setup.ts src/commands/shell-init.ts src/commands/sleep.ts src/commands/status.ts src/commands/sync-bd.ts src/commands/tailscale.ts src/commands/task.ts src/commands/template.ts src/commands/wake.ts src/cli/index.ts src/index.ts src/lib/auto-linker.ts src/lib/canvas-layout.ts src/lib/config.ts src/lib/entity-index.ts src/lib/project-utils.ts src/lib/session-repair.ts src/lib/session-utils.ts src/lib/tailscale.ts src/lib/task-utils.ts src/lib/template-engine.ts src/lib/webdav.ts src/workgraph/index.ts src/workgraph/types.ts src/workgraph/registry.ts src/workgraph/ledger.ts src/workgraph/store.ts src/workgraph/thread.ts src/plugin/index.ts --format esm --dts --clean",
37
35
  "dev": "tsup src/index.ts src/commands/*.ts src/lib/*.ts --format esm --dts --watch",
38
36
  "lint": "eslint src",
39
37
  "typecheck": "tsc --noEmit",
@@ -47,13 +45,13 @@
47
45
  "knowledge-graph",
48
46
  "obsidian",
49
47
  "markdown",
48
+ "task-management",
49
+ "context-death",
50
50
  "openclaw",
51
- "openclaw-plugin",
52
51
  "llm",
53
52
  "agent-memory",
54
- "semantic-search",
55
- "hybrid-search",
56
- "bm25"
53
+ "canvas-dashboard",
54
+ "semantic-search"
57
55
  ],
58
56
  "author": "Versatly",
59
57
  "license": "MIT",
@@ -69,13 +67,17 @@
69
67
  "node": ">=18"
70
68
  },
71
69
  "dependencies": {
72
- "@sinclair/typebox": "^0.34.48",
70
+ "@huggingface/transformers": "^3.8.1",
73
71
  "chalk": "^5.3.0",
74
72
  "chokidar": "^5.0.0",
75
73
  "commander": "^12.0.0",
74
+ "express": "^5.2.1",
75
+ "force-graph": "^1.51.1",
76
76
  "glob": "^10.3.10",
77
77
  "gray-matter": "^4.0.3",
78
- "natural": "^6.10.4"
78
+ "natural": "^6.10.4",
79
+ "ws": "^8.19.0",
80
+ "yaml": "^2.8.2"
79
81
  },
80
82
  "peerDependencies": {
81
83
  "qmd": "*"
@@ -88,11 +90,9 @@
88
90
  "devDependencies": {
89
91
  "@types/node": "^20.11.0",
90
92
  "ajv": "^8.17.1",
93
+ "puppeteer": "^24.37.2",
91
94
  "tsup": "^8.0.1",
92
95
  "typescript": "^5.3.3",
93
96
  "vitest": "^1.2.0"
94
- },
95
- "workspaces": [
96
- "packages/*"
97
- ]
97
+ }
98
98
  }
@@ -1,10 +0,0 @@
1
- var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
- get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
- }) : x)(function(x) {
4
- if (typeof require !== "undefined") return require.apply(this, arguments);
5
- throw Error('Dynamic require of "' + x + '" is not supported');
6
- });
7
-
8
- export {
9
- __require
10
- };