clawvault 2.6.0 → 3.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.
Files changed (232) hide show
  1. package/bin/command-registration.test.js +1 -3
  2. package/bin/register-core-commands.js +10 -23
  3. package/bin/register-maintenance-commands.js +3 -20
  4. package/bin/register-query-commands.js +23 -0
  5. package/bin/register-task-commands.js +1 -18
  6. package/bin/register-task-commands.test.js +0 -16
  7. package/bin/register-vault-operations-commands.js +1 -29
  8. package/dist/{chunk-QVMXF7FY.js → chunk-3D6BCTP6.js} +39 -1
  9. package/dist/{chunk-R2MIW5G7.js → chunk-3DHXQHYG.js} +1 -1
  10. package/dist/{chunk-Q2J5YTUF.js → chunk-3NSBOUT3.js} +73 -36
  11. package/dist/chunk-3RG5ZIWI.js +10 -0
  12. package/dist/{chunk-AZYOKJYC.js → chunk-62YTUT6J.js} +2 -2
  13. package/dist/chunk-6U6MK36V.js +205 -0
  14. package/dist/{chunk-4QYGFWRM.js → chunk-7R7O6STJ.js} +4 -4
  15. package/dist/{chunk-VXEOHTSL.js → chunk-C7OK5WKP.js} +4 -4
  16. package/dist/chunk-CMB7UL7C.js +327 -0
  17. package/dist/chunk-DEFFDRVP.js +938 -0
  18. package/dist/{chunk-K3CDT7IH.js → chunk-E7MFQB6D.js} +61 -20
  19. package/dist/{chunk-ME37YNW3.js → chunk-F2JEUD4J.js} +6 -4
  20. package/dist/chunk-GAJV4IGR.js +82 -0
  21. package/dist/chunk-GQSLDZTS.js +560 -0
  22. package/dist/{chunk-4OXMU5S2.js → chunk-GUKMRGM7.js} +1 -1
  23. package/dist/{chunk-YOSEUUNB.js → chunk-H34S76MB.js} +6 -6
  24. package/dist/{chunk-4TE4JMLA.js → chunk-JY6FYXIT.js} +10 -5
  25. package/dist/chunk-K234IDRJ.js +1073 -0
  26. package/dist/{chunk-IEVLHNLU.js → chunk-LNJA2UGL.js} +86 -9
  27. package/dist/{chunk-MFAWT5O5.js → chunk-LYHGEHXG.js} +1 -0
  28. package/dist/chunk-MFM6K7PU.js +374 -0
  29. package/dist/{chunk-QWQ3TIKS.js → chunk-N2AXRYLC.js} +1 -1
  30. package/dist/chunk-PAH27GSN.js +108 -0
  31. package/dist/{chunk-OIWVQYQF.js → chunk-QBLMXKF2.js} +1 -1
  32. package/dist/{chunk-FHFUXL6G.js → chunk-QK3UCXWL.js} +2 -2
  33. package/dist/{chunk-2YDBJS7M.js → chunk-SJSFRIYS.js} +1 -1
  34. package/dist/{chunk-GSD4ALSI.js → chunk-U55BGUAU.js} +2 -2
  35. package/dist/{chunk-PBEE567J.js → chunk-VGLOTGAS.js} +1 -1
  36. package/dist/{chunk-F55HGNU4.js → chunk-WAZ3NLWL.js} +47 -0
  37. package/dist/{chunk-KL4NAOMO.js → chunk-WGRQ6HDV.js} +1 -1
  38. package/dist/{chunk-UEOUADMO.js → chunk-YKTA5JOJ.js} +13 -10
  39. package/dist/{chunk-XAVB4GB4.js → chunk-ZVVFWOLW.js} +4 -4
  40. package/dist/cli/index.cjs +10033 -0
  41. package/dist/cli/index.d.cts +5 -0
  42. package/dist/cli/index.js +20 -18
  43. package/dist/commands/archive.cjs +287 -0
  44. package/dist/commands/archive.d.cts +11 -0
  45. package/dist/commands/archive.js +1 -0
  46. package/dist/commands/backlog.cjs +721 -0
  47. package/dist/commands/backlog.d.cts +53 -0
  48. package/dist/commands/backlog.js +3 -2
  49. package/dist/commands/blocked.cjs +204 -0
  50. package/dist/commands/blocked.d.cts +26 -0
  51. package/dist/commands/blocked.js +3 -2
  52. package/dist/commands/checkpoint.cjs +244 -0
  53. package/dist/commands/checkpoint.d.cts +41 -0
  54. package/dist/commands/checkpoint.js +2 -1
  55. package/dist/commands/compat.cjs +369 -0
  56. package/dist/commands/compat.d.cts +28 -0
  57. package/dist/commands/compat.js +2 -1
  58. package/dist/commands/context.cjs +2989 -0
  59. package/dist/commands/context.d.cts +2 -0
  60. package/dist/commands/context.js +5 -4
  61. package/dist/commands/doctor.cjs +3062 -0
  62. package/dist/commands/doctor.d.cts +21 -0
  63. package/dist/commands/doctor.d.ts +6 -1
  64. package/dist/commands/doctor.js +13 -11
  65. package/dist/commands/embed.cjs +232 -0
  66. package/dist/commands/embed.d.cts +17 -0
  67. package/dist/commands/embed.js +5 -2
  68. package/dist/commands/entities.cjs +141 -0
  69. package/dist/commands/entities.d.cts +7 -0
  70. package/dist/commands/entities.js +1 -0
  71. package/dist/commands/graph.cjs +501 -0
  72. package/dist/commands/graph.d.cts +21 -0
  73. package/dist/commands/graph.js +1 -0
  74. package/dist/commands/inject.cjs +1636 -0
  75. package/dist/commands/inject.d.cts +2 -0
  76. package/dist/commands/inject.d.ts +1 -1
  77. package/dist/commands/inject.js +4 -2
  78. package/dist/commands/kanban.cjs +884 -0
  79. package/dist/commands/kanban.d.cts +63 -0
  80. package/dist/commands/kanban.js +4 -3
  81. package/dist/commands/link.cjs +965 -0
  82. package/dist/commands/link.d.cts +11 -0
  83. package/dist/commands/link.js +1 -0
  84. package/dist/commands/migrate-observations.cjs +362 -0
  85. package/dist/commands/migrate-observations.d.cts +19 -0
  86. package/dist/commands/migrate-observations.js +3 -2
  87. package/dist/commands/observe.cjs +4099 -0
  88. package/dist/commands/observe.d.cts +23 -0
  89. package/dist/commands/observe.d.ts +1 -0
  90. package/dist/commands/observe.js +11 -9
  91. package/dist/commands/project.cjs +1341 -0
  92. package/dist/commands/project.d.cts +85 -0
  93. package/dist/commands/project.js +5 -4
  94. package/dist/commands/rebuild.cjs +3136 -0
  95. package/dist/commands/rebuild.d.cts +11 -0
  96. package/dist/commands/rebuild.js +10 -8
  97. package/dist/commands/recover.cjs +361 -0
  98. package/dist/commands/recover.d.cts +38 -0
  99. package/dist/commands/recover.js +3 -2
  100. package/dist/commands/reflect.cjs +1008 -0
  101. package/dist/commands/reflect.d.cts +11 -0
  102. package/dist/commands/reflect.js +6 -4
  103. package/dist/commands/repair-session.cjs +457 -0
  104. package/dist/commands/repair-session.d.cts +38 -0
  105. package/dist/commands/repair-session.js +1 -0
  106. package/dist/commands/replay.cjs +4103 -0
  107. package/dist/commands/replay.d.cts +16 -0
  108. package/dist/commands/replay.js +12 -10
  109. package/dist/commands/session-recap.cjs +353 -0
  110. package/dist/commands/session-recap.d.cts +27 -0
  111. package/dist/commands/session-recap.js +1 -0
  112. package/dist/commands/setup.cjs +1345 -0
  113. package/dist/commands/setup.d.cts +100 -0
  114. package/dist/commands/setup.d.ts +90 -2
  115. package/dist/commands/setup.js +21 -2
  116. package/dist/commands/shell-init.cjs +75 -0
  117. package/dist/commands/shell-init.d.cts +7 -0
  118. package/dist/commands/shell-init.js +2 -0
  119. package/dist/commands/sleep.cjs +6028 -0
  120. package/dist/commands/sleep.d.cts +36 -0
  121. package/dist/commands/sleep.d.ts +1 -1
  122. package/dist/commands/sleep.js +17 -15
  123. package/dist/commands/status.cjs +2736 -0
  124. package/dist/commands/status.d.cts +52 -0
  125. package/dist/commands/status.js +12 -10
  126. package/dist/commands/tailscale.cjs +1532 -0
  127. package/dist/commands/tailscale.d.cts +52 -0
  128. package/dist/commands/tailscale.js +1 -0
  129. package/dist/commands/task.cjs +1236 -0
  130. package/dist/commands/task.d.cts +97 -0
  131. package/dist/commands/task.js +4 -3
  132. package/dist/commands/template.cjs +457 -0
  133. package/dist/commands/template.d.cts +36 -0
  134. package/dist/commands/template.js +2 -1
  135. package/dist/commands/wake.cjs +2626 -0
  136. package/dist/commands/wake.d.cts +22 -0
  137. package/dist/commands/wake.d.ts +1 -1
  138. package/dist/commands/wake.js +12 -11
  139. package/dist/context-BUGaWpyL.d.cts +46 -0
  140. package/dist/index.cjs +14526 -0
  141. package/dist/index.d.cts +858 -0
  142. package/dist/index.d.ts +192 -7
  143. package/dist/index.js +101 -75
  144. package/dist/{inject-x65KXWPk.d.ts → inject-Bzi5E-By.d.cts} +1 -1
  145. package/dist/inject-Bzi5E-By.d.ts +137 -0
  146. package/dist/lib/auto-linker.cjs +176 -0
  147. package/dist/lib/auto-linker.d.cts +26 -0
  148. package/dist/lib/auto-linker.js +1 -0
  149. package/dist/lib/canvas-layout.cjs +136 -0
  150. package/dist/lib/canvas-layout.d.cts +31 -0
  151. package/dist/lib/canvas-layout.d.ts +16 -100
  152. package/dist/lib/canvas-layout.js +78 -20
  153. package/dist/lib/config.cjs +78 -0
  154. package/dist/lib/config.d.cts +11 -0
  155. package/dist/lib/config.js +1 -0
  156. package/dist/lib/entity-index.cjs +84 -0
  157. package/dist/lib/entity-index.d.cts +26 -0
  158. package/dist/lib/entity-index.js +1 -0
  159. package/dist/lib/project-utils.cjs +864 -0
  160. package/dist/lib/project-utils.d.cts +97 -0
  161. package/dist/lib/project-utils.js +4 -3
  162. package/dist/lib/session-repair.cjs +239 -0
  163. package/dist/lib/session-repair.d.cts +110 -0
  164. package/dist/lib/session-repair.js +1 -0
  165. package/dist/lib/session-utils.cjs +209 -0
  166. package/dist/lib/session-utils.d.cts +63 -0
  167. package/dist/lib/session-utils.js +1 -0
  168. package/dist/lib/tailscale.cjs +1183 -0
  169. package/dist/lib/tailscale.d.cts +225 -0
  170. package/dist/lib/tailscale.js +1 -0
  171. package/dist/lib/task-utils.cjs +1137 -0
  172. package/dist/lib/task-utils.d.cts +208 -0
  173. package/dist/lib/task-utils.js +3 -2
  174. package/dist/lib/template-engine.cjs +47 -0
  175. package/dist/lib/template-engine.d.cts +11 -0
  176. package/dist/lib/template-engine.js +1 -0
  177. package/dist/lib/webdav.cjs +568 -0
  178. package/dist/lib/webdav.d.cts +109 -0
  179. package/dist/lib/webdav.js +1 -0
  180. package/dist/plugin/index.cjs +1907 -0
  181. package/dist/plugin/index.d.cts +36 -0
  182. package/dist/plugin/index.d.ts +36 -0
  183. package/dist/plugin/index.js +572 -0
  184. package/dist/plugin/inject.cjs +356 -0
  185. package/dist/plugin/inject.d.cts +54 -0
  186. package/dist/plugin/inject.d.ts +54 -0
  187. package/dist/plugin/inject.js +17 -0
  188. package/dist/plugin/observe.cjs +631 -0
  189. package/dist/plugin/observe.d.cts +39 -0
  190. package/dist/plugin/observe.d.ts +39 -0
  191. package/dist/plugin/observe.js +18 -0
  192. package/dist/plugin/templates.cjs +593 -0
  193. package/dist/plugin/templates.d.cts +52 -0
  194. package/dist/plugin/templates.d.ts +52 -0
  195. package/dist/plugin/templates.js +25 -0
  196. package/dist/plugin/types.cjs +18 -0
  197. package/dist/plugin/types.d.cts +209 -0
  198. package/dist/plugin/types.d.ts +209 -0
  199. package/dist/plugin/types.js +0 -0
  200. package/dist/plugin/vault.cjs +927 -0
  201. package/dist/plugin/vault.d.cts +68 -0
  202. package/dist/plugin/vault.d.ts +68 -0
  203. package/dist/plugin/vault.js +22 -0
  204. package/dist/{types-C74wgGL1.d.ts → types-Y2_Um2Ls.d.cts} +44 -1
  205. package/dist/types-Y2_Um2Ls.d.ts +205 -0
  206. package/hooks/clawvault/handler.js +70 -7
  207. package/hooks/clawvault/handler.test.js +91 -0
  208. package/openclaw.plugin.json +56 -0
  209. package/package.json +17 -7
  210. package/templates/memory-event.md +67 -0
  211. package/templates/party.md +63 -0
  212. package/templates/primitive-registry.yaml +551 -0
  213. package/templates/run.md +68 -0
  214. package/templates/trigger.md +68 -0
  215. package/templates/workspace.md +50 -0
  216. package/dashboard/lib/graph-diff.js +0 -104
  217. package/dashboard/lib/graph-diff.test.js +0 -75
  218. package/dashboard/lib/vault-parser.js +0 -556
  219. package/dashboard/lib/vault-parser.test.js +0 -254
  220. package/dashboard/public/app.js +0 -796
  221. package/dashboard/public/index.html +0 -52
  222. package/dashboard/public/styles.css +0 -221
  223. package/dashboard/server.js +0 -374
  224. package/dist/chunk-HA5M6KJB.js +0 -33
  225. package/dist/chunk-MAKNAHAW.js +0 -375
  226. package/dist/chunk-MDIH26GC.js +0 -183
  227. package/dist/chunk-MGDEINGP.js +0 -99
  228. package/dist/chunk-RVYA52PY.js +0 -363
  229. package/dist/commands/canvas.d.ts +0 -15
  230. package/dist/commands/canvas.js +0 -199
  231. package/dist/commands/sync-bd.d.ts +0 -10
  232. package/dist/commands/sync-bd.js +0 -9
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  requestLlmCompletion,
3
3
  resolveLlmProvider
4
- } from "./chunk-K3CDT7IH.js";
4
+ } from "./chunk-E7MFQB6D.js";
5
5
  import {
6
6
  listConfig
7
7
  } from "./chunk-ITPEXLHA.js";
@@ -563,7 +563,7 @@ async function runPromptInjection(vaultPathInput, message, options = {}) {
563
563
  const deterministicMs = Date.now() - startDeterministic;
564
564
  let llmProvider = null;
565
565
  if (useLlm) {
566
- llmProvider = resolveLlmProvider();
566
+ llmProvider = await resolveLlmProvider();
567
567
  if (llmProvider) {
568
568
  try {
569
569
  matches = await addLlmIntentMatches({
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Observer
3
- } from "./chunk-Q2J5YTUF.js";
3
+ } from "./chunk-3NSBOUT3.js";
4
4
  import {
5
5
  resolveVaultPath
6
6
  } from "./chunk-MXSSG3QU.js";
@@ -7,6 +7,8 @@ var CHECKPOINT_FILE = "last-checkpoint.json";
7
7
  var SESSION_STATE_FILE = "session-state.json";
8
8
  var DIRTY_DEATH_FLAG = "dirty-death.flag";
9
9
  var CHECKPOINT_HISTORY_DIR = "checkpoints";
10
+ var CHECKPOINT_RETENTION_MAX_COUNT = 50;
11
+ var CHECKPOINT_RETENTION_MAX_AGE_MS = 7 * 24 * 60 * 60 * 1e3;
10
12
  var pendingCheckpoint = null;
11
13
  var pendingData = null;
12
14
  function ensureClawvaultDir(vaultPath) {
@@ -16,6 +18,50 @@ function ensureClawvaultDir(vaultPath) {
16
18
  }
17
19
  return dir;
18
20
  }
21
+ function readCheckpointHistoryEntries(historyDir) {
22
+ const entries = [];
23
+ const files = fs.readdirSync(historyDir).filter((entry) => entry.endsWith(".json"));
24
+ for (const fileName of files) {
25
+ const filePath = path.join(historyDir, fileName);
26
+ try {
27
+ const parsed = JSON.parse(fs.readFileSync(filePath, "utf-8"));
28
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
29
+ continue;
30
+ }
31
+ const timestamp = typeof parsed.timestamp === "string" ? parsed.timestamp : "";
32
+ const timestampMs = Date.parse(timestamp);
33
+ if (Number.isNaN(timestampMs)) {
34
+ continue;
35
+ }
36
+ entries.push({ filePath, timestampMs });
37
+ } catch {
38
+ }
39
+ }
40
+ return entries.sort((left, right) => {
41
+ if (right.timestampMs !== left.timestampMs) {
42
+ return right.timestampMs - left.timestampMs;
43
+ }
44
+ return right.filePath.localeCompare(left.filePath);
45
+ });
46
+ }
47
+ function pruneCheckpointHistory(historyDir, nowMs) {
48
+ if (!fs.existsSync(historyDir)) {
49
+ return;
50
+ }
51
+ const entries = readCheckpointHistoryEntries(historyDir);
52
+ if (entries.length <= CHECKPOINT_RETENTION_MAX_COUNT) {
53
+ return;
54
+ }
55
+ for (let index = CHECKPOINT_RETENTION_MAX_COUNT; index < entries.length; index += 1) {
56
+ const ageMs = nowMs - entries[index].timestampMs;
57
+ if (ageMs > CHECKPOINT_RETENTION_MAX_AGE_MS) {
58
+ try {
59
+ fs.unlinkSync(entries[index].filePath);
60
+ } catch {
61
+ }
62
+ }
63
+ }
64
+ }
19
65
  function writeCheckpointToDisk(dir, data) {
20
66
  const checkpointPath = path.join(dir, CHECKPOINT_FILE);
21
67
  fs.writeFileSync(checkpointPath, JSON.stringify(data, null, 2));
@@ -24,6 +70,7 @@ function writeCheckpointToDisk(dir, data) {
24
70
  const historyFileName = `${data.timestamp.replace(/[:.]/g, "-")}.json`;
25
71
  const historyPath = path.join(historyDir, historyFileName);
26
72
  fs.writeFileSync(historyPath, JSON.stringify(data, null, 2));
73
+ pruneCheckpointHistory(historyDir, Date.now());
27
74
  const flagPath = path.join(dir, DIRTY_DEATH_FLAG);
28
75
  fs.writeFileSync(flagPath, data.timestamp);
29
76
  }
@@ -6,7 +6,7 @@ import {
6
6
  hasQmd,
7
7
  qmdEmbed,
8
8
  qmdUpdate
9
- } from "./chunk-MAKNAHAW.js";
9
+ } from "./chunk-K234IDRJ.js";
10
10
  import {
11
11
  DEFAULT_CATEGORIES,
12
12
  TYPE_TO_CATEGORY
@@ -6,20 +6,20 @@ import {
6
6
  } from "./chunk-4VQTUVH7.js";
7
7
  import {
8
8
  getObserverStaleness
9
- } from "./chunk-IEVLHNLU.js";
9
+ } from "./chunk-LNJA2UGL.js";
10
+ import {
11
+ checkOpenClawCompatibility
12
+ } from "./chunk-3D6BCTP6.js";
10
13
  import {
11
14
  ClawVault,
12
15
  findVault
13
- } from "./chunk-KL4NAOMO.js";
16
+ } from "./chunk-WGRQ6HDV.js";
14
17
  import {
15
18
  hasQmd
16
- } from "./chunk-MAKNAHAW.js";
19
+ } from "./chunk-K234IDRJ.js";
17
20
  import {
18
21
  loadMemoryGraphIndex
19
22
  } from "./chunk-ZZA73MFY.js";
20
- import {
21
- checkOpenClawCompatibility
22
- } from "./chunk-QVMXF7FY.js";
23
23
 
24
24
  // src/commands/doctor.ts
25
25
  import * as fs from "fs";
@@ -51,7 +51,7 @@ function getShellConfigPaths(shellPath) {
51
51
  const home = os.homedir();
52
52
  const shellName = shellPath ? path.basename(shellPath) : "bash";
53
53
  if (shellName === "zsh") {
54
- return [path.join(home, ".zshrc"), path.join(home, ".zprofile")];
54
+ return [path.join(home, ".zshenv"), path.join(home, ".zshrc"), path.join(home, ".zprofile")];
55
55
  }
56
56
  if (shellName === "fish") {
57
57
  return [path.join(home, ".config", "fish", "config.fish")];
@@ -89,7 +89,9 @@ async function resolveVault(vaultPath) {
89
89
  }
90
90
  return found;
91
91
  }
92
- async function doctor(vaultPath) {
92
+ async function doctor(options) {
93
+ const vaultPath = typeof options === "string" ? options : options?.vaultPath;
94
+ const _fix = typeof options === "object" ? options?.fix : false;
93
95
  const checks = [];
94
96
  let warnings = 0;
95
97
  let errors = 0;
@@ -157,11 +159,12 @@ async function doctor(vaultPath) {
157
159
  errors++;
158
160
  return { vaultPath, checks, warnings, errors };
159
161
  }
162
+ const qmdCollection = vault.getQmdCollection();
163
+ const qmdRoot = vault.getQmdRoot();
160
164
  const stats = await vault.stats();
161
165
  const documents = await vault.list();
162
166
  const handoffs = await vault.list("handoffs");
163
167
  const inbox = await vault.list("inbox");
164
- const qmdCollection = vault.getQmdCollection();
165
168
  if (qmdCollection) {
166
169
  checks.push({ label: "qmd collection configured", status: "ok", detail: qmdCollection });
167
170
  } else {
@@ -324,7 +327,7 @@ async function doctor(vaultPath) {
324
327
  });
325
328
  warnings++;
326
329
  }
327
- return { vaultPath: vault.getPath(), checks, warnings, errors };
330
+ return { vaultPath: vault.getPath(), qmdCollection, qmdRoot, checks, warnings, errors };
328
331
  }
329
332
 
330
333
  export {
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  ClawVault
3
- } from "./chunk-KL4NAOMO.js";
4
- import {
5
- parseObservationMarkdown
6
- } from "./chunk-FHFUXL6G.js";
3
+ } from "./chunk-WGRQ6HDV.js";
7
4
  import {
8
5
  getMemoryGraph
9
6
  } from "./chunk-ZZA73MFY.js";
7
+ import {
8
+ parseObservationMarkdown
9
+ } from "./chunk-QK3UCXWL.js";
10
10
  import {
11
11
  listObservationFiles
12
12
  } from "./chunk-Z2XBWN7A.js";