clawvault 3.5.0 → 3.5.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 (46) hide show
  1. package/README.md +26 -26
  2. package/bin/command-registration.test.js +179 -0
  3. package/bin/command-runtime.test.js +154 -0
  4. package/bin/help-contract.test.js +55 -0
  5. package/bin/register-config-route-commands.test.js +121 -0
  6. package/bin/register-core-commands.test.js +80 -0
  7. package/bin/register-kanban-commands.test.js +83 -0
  8. package/bin/register-project-commands.test.js +206 -0
  9. package/bin/register-query-commands.test.js +80 -0
  10. package/bin/register-resilience-commands.test.js +81 -0
  11. package/bin/register-task-commands.test.js +69 -0
  12. package/bin/register-template-commands.test.js +87 -0
  13. package/bin/test-helpers/cli-command-fixtures.js +120 -0
  14. package/dashboard/lib/graph-diff.test.js +75 -0
  15. package/dashboard/lib/vault-parser.test.js +254 -0
  16. package/dist/{chunk-DCF4KMFD.js → chunk-DPK6P6BO.js} +3 -3
  17. package/dist/{chunk-BLQXXX7Q.js → chunk-FNFP7N6A.js} +2 -2
  18. package/dist/{chunk-QFWERBDP.js → chunk-J6DW6HBX.js} +1 -1
  19. package/dist/{chunk-VXAGOLDP.js → chunk-LCBHM3D6.js} +1 -1
  20. package/dist/{chunk-HGDDW24U.js → chunk-NTQD55S3.js} +3 -3
  21. package/dist/{chunk-QUFQBAHP.js → chunk-P35SHNAU.js} +93 -147
  22. package/dist/{chunk-JI7VUQV7.js → chunk-X3SPPUFG.js} +132 -118
  23. package/dist/cli/index.js +8 -8
  24. package/dist/commands/compat.js +1 -1
  25. package/dist/commands/inject.js +2 -2
  26. package/dist/commands/maintain.js +2 -2
  27. package/dist/commands/observe.js +4 -4
  28. package/dist/commands/rebuild.js +3 -3
  29. package/dist/commands/replay.js +4 -4
  30. package/dist/commands/sleep.js +5 -5
  31. package/dist/commands/status.js +3 -3
  32. package/dist/index.d.ts +2 -2
  33. package/dist/index.js +17 -17
  34. package/dist/{openclaw-plugin--gqA2BZw.d.ts → openclaw-plugin-9M9qCZgl.d.ts} +2 -2
  35. package/dist/openclaw-plugin.d.ts +1 -1
  36. package/dist/openclaw-plugin.js +6 -1
  37. package/package.json +4 -26
  38. package/CHANGELOG.md +0 -543
  39. package/LICENSE +0 -21
  40. package/SKILL.md +0 -369
  41. package/docs/clawhub-security-release-playbook.md +0 -75
  42. package/docs/getting-started/installation.md +0 -99
  43. package/docs/openclaw-plugin-usage.md +0 -152
  44. package/dist/{chunk-7SWP5FKU.js → chunk-FSYISBTU.js} +4 -4
  45. package/dist/{chunk-D5U3Q4N5.js → chunk-IOKLQR4W.js} +4 -4
  46. package/dist/{chunk-OFOCU2V4.js → chunk-QL34TMGN.js} +3 -3
@@ -4,18 +4,8 @@ import * as path from "path";
4
4
  import matter from "gray-matter";
5
5
  import { spawnSync } from "child_process";
6
6
  import { fileURLToPath } from "url";
7
- var REQUIRED_OPENCLAW_PLUGIN_PATH = "./openclaw.plugin.json";
8
- var REQUIRED_OPENCLAW_EXTENSION = "./dist/openclaw-plugin.js";
9
- var LEGACY_HOOK_DIR = "hooks/clawvault";
10
- var FORBIDDEN_PACKAGE_FILE_ENTRIES = [
11
- "hooks",
12
- "src",
13
- "tests",
14
- "testdata",
15
- "benchmarks",
16
- "eval",
17
- "autoresearch"
18
- ];
7
+ var REQUIRED_HOOK_EVENTS = ["gateway:startup", "command:new", "session:start"];
8
+ var REQUIRED_HOOK_BIN = "clawvault";
19
9
  function readOptionalFile(filePath) {
20
10
  try {
21
11
  if (!fs.existsSync(filePath)) return null;
@@ -44,17 +34,6 @@ function resolveProjectFile(relativePath, baseDir) {
44
34
  }
45
35
  return path.resolve(findPackageRoot(), relativePath);
46
36
  }
47
- function loadPackageJson(options) {
48
- const packageRaw = readOptionalFile(resolveProjectFile("package.json", options.baseDir));
49
- if (!packageRaw) {
50
- return { parsed: null, error: "package.json not found" };
51
- }
52
- try {
53
- return { parsed: JSON.parse(packageRaw) };
54
- } catch (err) {
55
- return { parsed: null, error: err?.message || "Unable to parse package.json" };
56
- }
57
- }
58
37
  function checkOpenClawCli() {
59
38
  const result = spawnSync("openclaw", ["--version"], { stdio: "ignore" });
60
39
  if (result.error) {
@@ -62,7 +41,7 @@ function checkOpenClawCli() {
62
41
  label: "openclaw CLI available",
63
42
  status: "warn",
64
43
  detail: "openclaw binary not found",
65
- hint: "Install OpenClaw CLI to enable runtime validation."
44
+ hint: "Install OpenClaw CLI to enable hook runtime validation."
66
45
  };
67
46
  }
68
47
  if (typeof result.status === "number" && result.status !== 0) {
@@ -83,69 +62,152 @@ function checkOpenClawCli() {
83
62
  }
84
63
  return { label: "openclaw CLI available", status: "ok" };
85
64
  }
86
- function checkPackagePluginRegistration(options) {
87
- const packageJson = loadPackageJson(options);
88
- if (!packageJson.parsed) {
65
+ function checkPackageHookRegistration(options) {
66
+ const packageRaw = readOptionalFile(resolveProjectFile("package.json", options.baseDir));
67
+ if (!packageRaw) {
89
68
  return {
90
- label: "package plugin registration",
69
+ label: "package hook registration",
91
70
  status: "error",
92
- detail: packageJson.error
71
+ detail: "package.json not found"
93
72
  };
94
73
  }
95
- const openclaw = packageJson.parsed.openclaw;
96
- const pluginPath = typeof openclaw?.plugin === "string" ? openclaw.plugin : "";
97
- if (pluginPath === REQUIRED_OPENCLAW_PLUGIN_PATH) {
74
+ try {
75
+ const parsed = JSON.parse(packageRaw);
76
+ const registeredHooks = parsed.openclaw?.hooks ?? [];
77
+ if (registeredHooks.includes("./hooks/clawvault")) {
78
+ return {
79
+ label: "package hook registration",
80
+ status: "ok",
81
+ detail: "./hooks/clawvault"
82
+ };
83
+ }
98
84
  return {
99
- label: "package plugin registration",
100
- status: "ok",
101
- detail: pluginPath
85
+ label: "package hook registration",
86
+ status: "error",
87
+ detail: "Missing ./hooks/clawvault in package openclaw.hooks"
88
+ };
89
+ } catch (err) {
90
+ return {
91
+ label: "package hook registration",
92
+ status: "error",
93
+ detail: err?.message || "Unable to parse package.json"
102
94
  };
103
95
  }
104
- return {
105
- label: "package plugin registration",
106
- status: "error",
107
- detail: `Missing openclaw.plugin=${REQUIRED_OPENCLAW_PLUGIN_PATH}`,
108
- hint: `Set package.json openclaw.plugin to "${REQUIRED_OPENCLAW_PLUGIN_PATH}".`
109
- };
110
96
  }
111
- function checkPackageExtensionRegistration(options) {
112
- const packageJson = loadPackageJson(options);
113
- if (!packageJson.parsed) {
97
+ function checkHookManifest(options) {
98
+ const hookRaw = readOptionalFile(resolveProjectFile("hooks/clawvault/HOOK.md", options.baseDir));
99
+ if (!hookRaw) {
114
100
  return {
115
- label: "package extension registration",
101
+ label: "hook manifest",
116
102
  status: "error",
117
- detail: packageJson.error
103
+ detail: "HOOK.md not found"
118
104
  };
119
105
  }
120
- const openclaw = packageJson.parsed.openclaw;
121
- const extensions = Array.isArray(openclaw?.extensions) ? openclaw.extensions : [];
122
- if (extensions.includes(REQUIRED_OPENCLAW_EXTENSION)) {
106
+ try {
107
+ const parsed = matter(hookRaw);
108
+ const openclaw = parsed.data?.metadata?.openclaw;
109
+ const events = Array.isArray(openclaw?.events) ? openclaw?.events ?? [] : [];
110
+ const missingEvents = REQUIRED_HOOK_EVENTS.filter((event) => !events.includes(event));
111
+ if (missingEvents.length === 0) {
112
+ return {
113
+ label: "hook manifest events",
114
+ status: "ok",
115
+ detail: events.join(", ")
116
+ };
117
+ }
123
118
  return {
124
- label: "package extension registration",
125
- status: "ok",
126
- detail: REQUIRED_OPENCLAW_EXTENSION
119
+ label: "hook manifest events",
120
+ status: "error",
121
+ detail: `Missing events: ${missingEvents.join(", ")}`
122
+ };
123
+ } catch (err) {
124
+ return {
125
+ label: "hook manifest events",
126
+ status: "error",
127
+ detail: err?.message || "Unable to parse HOOK.md frontmatter"
128
+ };
129
+ }
130
+ }
131
+ function checkHookManifestRequirements(options) {
132
+ const hookRaw = readOptionalFile(resolveProjectFile("hooks/clawvault/HOOK.md", options.baseDir));
133
+ if (!hookRaw) {
134
+ return {
135
+ label: "hook manifest requirements",
136
+ status: "error",
137
+ detail: "HOOK.md not found"
138
+ };
139
+ }
140
+ try {
141
+ const parsed = matter(hookRaw);
142
+ const requiresBins = parsed.data?.metadata?.openclaw?.requires?.bins;
143
+ const bins = Array.isArray(requiresBins) ? requiresBins : [];
144
+ if (bins.includes(REQUIRED_HOOK_BIN)) {
145
+ return {
146
+ label: "hook manifest requirements",
147
+ status: "ok",
148
+ detail: `bins: ${bins.join(", ")}`
149
+ };
150
+ }
151
+ return {
152
+ label: "hook manifest requirements",
153
+ status: "warn",
154
+ detail: `Missing required hook bin "${REQUIRED_HOOK_BIN}"`,
155
+ hint: 'Add metadata.openclaw.requires.bins: ["clawvault"] to hooks/clawvault/HOOK.md.'
156
+ };
157
+ } catch (err) {
158
+ return {
159
+ label: "hook manifest requirements",
160
+ status: "error",
161
+ detail: err?.message || "Unable to parse HOOK.md frontmatter"
127
162
  };
128
163
  }
129
- return {
130
- label: "package extension registration",
131
- status: "error",
132
- detail: `Missing ${REQUIRED_OPENCLAW_EXTENSION} in package openclaw.extensions`,
133
- hint: `Add "${REQUIRED_OPENCLAW_EXTENSION}" to package.json openclaw.extensions.`
134
- };
164
+ }
165
+ function checkHookHandlerSafety(options) {
166
+ const handlerRaw = readOptionalFile(resolveProjectFile("hooks/clawvault/handler.js", options.baseDir));
167
+ if (!handlerRaw) {
168
+ return {
169
+ label: "hook handler script",
170
+ status: "error",
171
+ detail: "handler.js not found"
172
+ };
173
+ }
174
+ const usesExecFileSync = handlerRaw.includes("execFileSync");
175
+ const usesExecSync = /\bexecSync\b/.test(handlerRaw);
176
+ const enablesShell = /\bshell\s*:\s*true\b/.test(handlerRaw);
177
+ const delegatesAutoProfile = /['"]--profile['"]\s*,\s*['"]auto['"]/.test(handlerRaw);
178
+ const violations = [];
179
+ if (!usesExecFileSync || usesExecSync) {
180
+ violations.push("execFileSync-only execution path");
181
+ }
182
+ if (enablesShell) {
183
+ violations.push("shell:false execution option");
184
+ }
185
+ if (!delegatesAutoProfile) {
186
+ violations.push("shared context profile delegation (--profile auto)");
187
+ }
188
+ if (violations.length > 0) {
189
+ return {
190
+ label: "hook handler safety",
191
+ status: "warn",
192
+ detail: `Missing conventions: ${violations.join(", ")}`,
193
+ hint: "Use execFileSync (no shell), avoid execSync, and delegate profile inference via --profile auto."
194
+ };
195
+ }
196
+ return { label: "hook handler safety", status: "ok" };
135
197
  }
136
198
  function checkPluginManifest(options) {
137
- const manifestRaw = readOptionalFile(resolveProjectFile("openclaw.plugin.json", options.baseDir));
199
+ const manifestRaw = readOptionalFile(resolveProjectFile("hooks/clawvault/openclaw.plugin.json", options.baseDir));
138
200
  if (!manifestRaw) {
139
201
  return {
140
202
  label: "plugin manifest",
141
203
  status: "error",
142
- detail: "openclaw.plugin.json not found",
143
- hint: "Add root openclaw.plugin.json for OpenClaw plugin config schema."
204
+ detail: "hooks/clawvault/openclaw.plugin.json not found",
205
+ hint: "Add openclaw.plugin.json to hooks/clawvault/ for config schema registration."
144
206
  };
145
207
  }
146
208
  try {
147
209
  const parsed = JSON.parse(manifestRaw);
148
- if (parsed.id !== "clawvault") {
210
+ if (!parsed.id || parsed.id !== "clawvault") {
149
211
  return {
150
212
  label: "plugin manifest",
151
213
  status: "error",
@@ -156,10 +218,12 @@ function checkPluginManifest(options) {
156
218
  return {
157
219
  label: "plugin manifest",
158
220
  status: "error",
159
- detail: "Missing configSchema in plugin manifest"
221
+ detail: "Missing configSchema in plugin manifest",
222
+ hint: "Add configSchema to openclaw.plugin.json for config validation."
160
223
  };
161
224
  }
162
- if (!parsed.configSchema.properties?.vaultPath) {
225
+ const hasVaultPath = Boolean(parsed.configSchema.properties?.vaultPath);
226
+ if (!hasVaultPath) {
163
227
  return {
164
228
  label: "plugin manifest",
165
229
  status: "warn",
@@ -180,56 +244,6 @@ function checkPluginManifest(options) {
180
244
  };
181
245
  }
182
246
  }
183
- function checkPackageFilesHygiene(options) {
184
- const packageJson = loadPackageJson(options);
185
- if (!packageJson.parsed) {
186
- return {
187
- label: "package files hygiene",
188
- status: "error",
189
- detail: packageJson.error
190
- };
191
- }
192
- const files = Array.isArray(packageJson.parsed.files) ? packageJson.parsed.files : [];
193
- if (files.length === 0) {
194
- return {
195
- label: "package files hygiene",
196
- status: "warn",
197
- detail: "package.json files allowlist is missing",
198
- hint: "Define package.json files to avoid publishing non-runtime directories."
199
- };
200
- }
201
- const normalized = files.map((entry) => String(entry).replace(/\\/g, "/").replace(/\/+$/, ""));
202
- const forbidden = normalized.filter(
203
- (entry) => FORBIDDEN_PACKAGE_FILE_ENTRIES.some((name) => entry === name || entry.startsWith(`${name}/`))
204
- );
205
- if (forbidden.length > 0) {
206
- return {
207
- label: "package files hygiene",
208
- status: "warn",
209
- detail: `Forbidden publish entries: ${forbidden.join(", ")}`,
210
- hint: "Remove legacy/test/research directories from package.json files."
211
- };
212
- }
213
- return {
214
- label: "package files hygiene",
215
- status: "ok"
216
- };
217
- }
218
- function checkLegacyHooksRemoved(options) {
219
- const hooksPath = resolveProjectFile(LEGACY_HOOK_DIR, options.baseDir);
220
- if (fs.existsSync(hooksPath)) {
221
- return {
222
- label: "legacy hooks removed",
223
- status: "warn",
224
- detail: `${LEGACY_HOOK_DIR} still exists`,
225
- hint: "Remove hooks/clawvault legacy handler artifacts in plugin-first architecture."
226
- };
227
- }
228
- return {
229
- label: "legacy hooks removed",
230
- status: "ok"
231
- };
232
- }
233
247
  function checkSkillMetadata(options) {
234
248
  const skillRaw = readOptionalFile(resolveProjectFile("SKILL.md", options.baseDir));
235
249
  if (!skillRaw) {
@@ -270,11 +284,11 @@ function checkSkillMetadata(options) {
270
284
  function checkOpenClawCompatibility(options = {}) {
271
285
  const checks = [
272
286
  checkOpenClawCli(),
273
- checkPackagePluginRegistration(options),
274
- checkPackageExtensionRegistration(options),
287
+ checkPackageHookRegistration(options),
275
288
  checkPluginManifest(options),
276
- checkPackageFilesHygiene(options),
277
- checkLegacyHooksRemoved(options),
289
+ checkHookManifest(options),
290
+ checkHookManifestRequirements(options),
291
+ checkHookHandlerSafety(options),
278
292
  checkSkillMetadata(options)
279
293
  ];
280
294
  const warnings = checks.filter((check) => check.status === "warn").length;
package/dist/cli/index.js CHANGED
@@ -1,25 +1,25 @@
1
1
  import {
2
2
  registerCliCommands
3
- } from "../chunk-DCF4KMFD.js";
3
+ } from "../chunk-DPK6P6BO.js";
4
4
  import "../chunk-KCYWJDDW.js";
5
5
  import "../chunk-TIGW564L.js";
6
6
  import "../chunk-IVRIKYFE.js";
7
7
  import "../chunk-DOIUYIXV.js";
8
- import "../chunk-TWMI3SNN.js";
9
- import "../chunk-OFOCU2V4.js";
10
- import "../chunk-D5U3Q4N5.js";
11
- import "../chunk-BLQXXX7Q.js";
12
- import "../chunk-VXAGOLDP.js";
13
- import "../chunk-7SWP5FKU.js";
14
- import "../chunk-DVOUSOR3.js";
8
+ import "../chunk-QL34TMGN.js";
9
+ import "../chunk-IOKLQR4W.js";
10
+ import "../chunk-FNFP7N6A.js";
11
+ import "../chunk-LCBHM3D6.js";
12
+ import "../chunk-FSYISBTU.js";
15
13
  import "../chunk-4PY655YM.js";
16
14
  import "../chunk-AXSJIFOJ.js";
17
15
  import "../chunk-GFCHWMGD.js";
18
16
  import "../chunk-T7E764W3.js";
19
17
  import "../chunk-HEHO7SMV.js";
20
18
  import "../chunk-2PKBIKDH.js";
19
+ import "../chunk-TWMI3SNN.js";
21
20
  import "../chunk-35JCYSRR.js";
22
21
  import "../chunk-HRLWZGMA.js";
22
+ import "../chunk-DVOUSOR3.js";
23
23
  import "../chunk-BSJ6RIT7.js";
24
24
  import "../chunk-ECGJYWNA.js";
25
25
  import "../chunk-2CDEETQN.js";
@@ -2,7 +2,7 @@ import {
2
2
  checkOpenClawCompatibility,
3
3
  compatCommand,
4
4
  compatibilityExitCode
5
- } from "../chunk-JI7VUQV7.js";
5
+ } from "../chunk-X3SPPUFG.js";
6
6
  import "../chunk-2ZDO52B4.js";
7
7
  export {
8
8
  checkOpenClawCompatibility,
@@ -2,9 +2,9 @@ import {
2
2
  buildInjectionResult,
3
3
  injectCommand,
4
4
  registerInjectCommand
5
- } from "../chunk-OFOCU2V4.js";
6
- import "../chunk-DVOUSOR3.js";
5
+ } from "../chunk-QL34TMGN.js";
7
6
  import "../chunk-AXSJIFOJ.js";
7
+ import "../chunk-DVOUSOR3.js";
8
8
  import "../chunk-2CDEETQN.js";
9
9
  import "../chunk-33DOSHTA.js";
10
10
  import "../chunk-2ZDO52B4.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  maintainCommand,
3
3
  registerMaintainCommand
4
- } from "../chunk-D5U3Q4N5.js";
5
- import "../chunk-DVOUSOR3.js";
4
+ } from "../chunk-IOKLQR4W.js";
6
5
  import "../chunk-2PKBIKDH.js";
7
6
  import "../chunk-35JCYSRR.js";
7
+ import "../chunk-DVOUSOR3.js";
8
8
  import "../chunk-GJO3CFUN.js";
9
9
  import "../chunk-2ZDO52B4.js";
10
10
  export {
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  observeCommand,
3
3
  registerObserveCommand
4
- } from "../chunk-BLQXXX7Q.js";
5
- import "../chunk-VXAGOLDP.js";
6
- import "../chunk-7SWP5FKU.js";
7
- import "../chunk-DVOUSOR3.js";
4
+ } from "../chunk-FNFP7N6A.js";
5
+ import "../chunk-LCBHM3D6.js";
6
+ import "../chunk-FSYISBTU.js";
8
7
  import "../chunk-4PY655YM.js";
9
8
  import "../chunk-AXSJIFOJ.js";
10
9
  import "../chunk-HRLWZGMA.js";
10
+ import "../chunk-DVOUSOR3.js";
11
11
  import "../chunk-BSJ6RIT7.js";
12
12
  import "../chunk-2CDEETQN.js";
13
13
  import "../chunk-GJO3CFUN.js";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  rebuildCommand,
3
3
  registerRebuildCommand
4
- } from "../chunk-QFWERBDP.js";
5
- import "../chunk-7SWP5FKU.js";
6
- import "../chunk-DVOUSOR3.js";
4
+ } from "../chunk-J6DW6HBX.js";
5
+ import "../chunk-FSYISBTU.js";
7
6
  import "../chunk-4PY655YM.js";
8
7
  import "../chunk-AXSJIFOJ.js";
8
+ import "../chunk-DVOUSOR3.js";
9
9
  import "../chunk-BSJ6RIT7.js";
10
10
  import "../chunk-2CDEETQN.js";
11
11
  import "../chunk-GJO3CFUN.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  registerReplayCommand,
3
3
  replayCommand
4
- } from "../chunk-HGDDW24U.js";
5
- import "../chunk-TWMI3SNN.js";
6
- import "../chunk-7SWP5FKU.js";
7
- import "../chunk-DVOUSOR3.js";
4
+ } from "../chunk-NTQD55S3.js";
5
+ import "../chunk-FSYISBTU.js";
8
6
  import "../chunk-4PY655YM.js";
9
7
  import "../chunk-AXSJIFOJ.js";
8
+ import "../chunk-TWMI3SNN.js";
9
+ import "../chunk-DVOUSOR3.js";
10
10
  import "../chunk-BSJ6RIT7.js";
11
11
  import "../chunk-2CDEETQN.js";
12
12
  import "../chunk-MQUJNOHK.js";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  clearDirtyFlag
3
3
  } from "../chunk-F55HGNU4.js";
4
- import {
5
- runReflection
6
- } from "../chunk-TWMI3SNN.js";
7
4
  import {
8
5
  Observer
9
- } from "../chunk-7SWP5FKU.js";
10
- import "../chunk-DVOUSOR3.js";
6
+ } from "../chunk-FSYISBTU.js";
11
7
  import "../chunk-4PY655YM.js";
12
8
  import "../chunk-AXSJIFOJ.js";
9
+ import {
10
+ runReflection
11
+ } from "../chunk-TWMI3SNN.js";
12
+ import "../chunk-DVOUSOR3.js";
13
13
  import "../chunk-BSJ6RIT7.js";
14
14
  import {
15
15
  ClawVault
@@ -7,12 +7,12 @@ import {
7
7
  } from "../chunk-7ZRP733D.js";
8
8
  import {
9
9
  getObserverStaleness
10
- } from "../chunk-VXAGOLDP.js";
11
- import "../chunk-7SWP5FKU.js";
12
- import "../chunk-DVOUSOR3.js";
10
+ } from "../chunk-LCBHM3D6.js";
11
+ import "../chunk-FSYISBTU.js";
13
12
  import "../chunk-4PY655YM.js";
14
13
  import "../chunk-AXSJIFOJ.js";
15
14
  import "../chunk-HRLWZGMA.js";
15
+ import "../chunk-DVOUSOR3.js";
16
16
  import "../chunk-BSJ6RIT7.js";
17
17
  import {
18
18
  ClawVault
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { Command } from 'commander';
2
2
  import { V as VaultConfig, S as StoreOptions, D as Document, P as PatchOptions, a as SearchOptions, b as SearchResult, c as SyncOptions, d as SyncResult, C as Category, M as MemoryType, H as HandoffDocument, e as SessionRecap, f as VaultSearchConfig } from './types-DslKvCaj.js';
3
3
  export { g as DEFAULT_CATEGORIES, h as DEFAULT_CONFIG, E as EmbeddingProvider, i as MEMORY_TYPES, j as PatchMode, R as RerankProvider, k as SearchBackend, T as TYPE_TO_CATEGORY, l as VaultMeta } from './types-DslKvCaj.js';
4
- import { C as CaptureOptions, a as CaptureStoreResult, b as CaptureCandidate } from './openclaw-plugin--gqA2BZw.js';
5
- export { c as CaptureMessage, d as CaptureRejection, e as CapturedMemoryType, M as MemorySlot, f as MemorySlotInitOptions, g as MemorySlotRecallOptions, h as MemorySlotSearchOptions, i as MemorySlotStoreOptions, j as MemoryStoreMetadata, k as createMemorySlot, l as createMemorySlotPlugin, m as openclawHookPlugin, r as registerMemorySlot } from './openclaw-plugin--gqA2BZw.js';
4
+ import { C as CaptureOptions, a as CaptureStoreResult, b as CaptureCandidate } from './openclaw-plugin-9M9qCZgl.js';
5
+ export { c as CaptureMessage, d as CaptureRejection, e as CapturedMemoryType, M as MemorySlot, f as MemorySlotInitOptions, g as MemorySlotRecallOptions, h as MemorySlotSearchOptions, i as MemorySlotStoreOptions, j as MemoryStoreMetadata, k as createMemorySlot, l as createMemorySlotPlugin, m as openclawHookPlugin, r as registerMemorySlot } from './openclaw-plugin-9M9qCZgl.js';
6
6
  export { setupCommand } from './commands/setup.js';
7
7
  export { CompatCheck, CompatCommandOptions, CompatReport, CompatStatus, checkOpenClawCompatibility, compatCommand, compatibilityExitCode } from './commands/compat.js';
8
8
  export { GraphSummary, graphCommand, graphSummary } from './commands/graph.js';
package/dist/index.js CHANGED
@@ -5,14 +5,14 @@ import {
5
5
  import {
6
6
  rebuildCommand,
7
7
  registerRebuildCommand
8
- } from "./chunk-QFWERBDP.js";
8
+ } from "./chunk-J6DW6HBX.js";
9
9
  import {
10
10
  recallCommand
11
11
  } from "./chunk-YTRZNA64.js";
12
12
  import {
13
13
  registerReplayCommand,
14
14
  replayCommand
15
- } from "./chunk-HGDDW24U.js";
15
+ } from "./chunk-NTQD55S3.js";
16
16
  import {
17
17
  setupCommand
18
18
  } from "./chunk-EL6UBSX5.js";
@@ -35,7 +35,7 @@ import {
35
35
  checkOpenClawCompatibility,
36
36
  compatCommand,
37
37
  compatibilityExitCode
38
- } from "./chunk-JI7VUQV7.js";
38
+ } from "./chunk-X3SPPUFG.js";
39
39
  import {
40
40
  doctor
41
41
  } from "./chunk-CSHO3PJB.js";
@@ -55,7 +55,7 @@ import {
55
55
  openclaw_plugin_default,
56
56
  plausibilityScore,
57
57
  registerMemorySlot
58
- } from "./chunk-QUFQBAHP.js";
58
+ } from "./chunk-P35SHNAU.js";
59
59
  import {
60
60
  buildRecallResult,
61
61
  classifyRecallQuery
@@ -76,7 +76,7 @@ import {
76
76
  } from "./chunk-NSXYM6EZ.js";
77
77
  import {
78
78
  registerCliCommands
79
- } from "./chunk-DCF4KMFD.js";
79
+ } from "./chunk-DPK6P6BO.js";
80
80
  import {
81
81
  registerTailscaleCommands,
82
82
  registerTailscaleDiscoverCommand,
@@ -114,9 +114,6 @@ import {
114
114
  reflectCommand,
115
115
  registerReflectCommand
116
116
  } from "./chunk-DOIUYIXV.js";
117
- import {
118
- runReflection
119
- } from "./chunk-TWMI3SNN.js";
120
117
  import {
121
118
  buildInjectionResult,
122
119
  deterministicInjectMatches,
@@ -124,22 +121,22 @@ import {
124
121
  injectCommand,
125
122
  registerInjectCommand,
126
123
  runPromptInjection
127
- } from "./chunk-OFOCU2V4.js";
124
+ } from "./chunk-QL34TMGN.js";
128
125
  import {
129
126
  maintainCommand,
130
127
  registerMaintainCommand
131
- } from "./chunk-D5U3Q4N5.js";
128
+ } from "./chunk-IOKLQR4W.js";
132
129
  import {
133
130
  SessionWatcher,
134
131
  observeCommand,
135
132
  registerObserveCommand
136
- } from "./chunk-BLQXXX7Q.js";
133
+ } from "./chunk-FNFP7N6A.js";
137
134
  import {
138
135
  getObserverStaleness,
139
136
  getScaledObservationThresholdBytes,
140
137
  observeActiveSessions,
141
138
  parseSessionSourceLabel
142
- } from "./chunk-VXAGOLDP.js";
139
+ } from "./chunk-LCBHM3D6.js";
143
140
  import {
144
141
  Observer,
145
142
  Reflector,
@@ -148,11 +145,7 @@ import {
148
145
  createGeminiFlashAdapter,
149
146
  createLlmFunction,
150
147
  resolveFactExtractionMode
151
- } from "./chunk-7SWP5FKU.js";
152
- import {
153
- requestLlmCompletion,
154
- resolveLlmProvider
155
- } from "./chunk-DVOUSOR3.js";
148
+ } from "./chunk-FSYISBTU.js";
156
149
  import {
157
150
  archiveProject,
158
151
  createProject,
@@ -193,8 +186,15 @@ import {
193
186
  registerInboxCommand
194
187
  } from "./chunk-HEHO7SMV.js";
195
188
  import "./chunk-2PKBIKDH.js";
189
+ import {
190
+ runReflection
191
+ } from "./chunk-TWMI3SNN.js";
196
192
  import "./chunk-35JCYSRR.js";
197
193
  import "./chunk-HRLWZGMA.js";
194
+ import {
195
+ requestLlmCompletion,
196
+ resolveLlmProvider
197
+ } from "./chunk-DVOUSOR3.js";
198
198
  import {
199
199
  FactStore,
200
200
  extractFactsLlm,
@@ -249,7 +249,7 @@ declare const clawvaultPlugin: {
249
249
  name: string;
250
250
  kind: "memory";
251
251
  description: string;
252
- register(apiOrRuntime?: unknown): Promise<{
252
+ register(apiOrRuntime?: unknown): {
253
253
  plugins: {
254
254
  slots: {
255
255
  memory: MemorySlot;
@@ -261,7 +261,7 @@ declare const clawvaultPlugin: {
261
261
  memory: ClawVaultMemoryManager;
262
262
  };
263
263
  };
264
- }>;
264
+ };
265
265
  };
266
266
 
267
267
  export { type CaptureOptions as C, type MemorySlot as M, type CaptureStoreResult as a, type CaptureCandidate as b, type CaptureMessage as c, type CaptureRejection as d, type CapturedMemoryType as e, type MemorySlotInitOptions as f, type MemorySlotRecallOptions as g, type MemorySlotSearchOptions as h, type MemorySlotStoreOptions as i, type MemoryStoreMetadata as j, createMemorySlot as k, createMemorySlotPlugin as l, clawvaultPlugin as m, registerMemorySlot as r };
@@ -1,4 +1,4 @@
1
- export { l as createMemorySlotPlugin, m as default } from './openclaw-plugin--gqA2BZw.js';
1
+ export { l as createMemorySlotPlugin, m as default } from './openclaw-plugin-9M9qCZgl.js';
2
2
  import './types-DslKvCaj.js';
3
3
  import './lib/config.js';
4
4
  import './types-CbL-wIKi.js';
@@ -1,23 +1,28 @@
1
1
  import {
2
2
  createMemorySlotPlugin,
3
3
  openclaw_plugin_default
4
- } from "./chunk-QUFQBAHP.js";
4
+ } from "./chunk-P35SHNAU.js";
5
5
  import "./chunk-RL2L6I6K.js";
6
6
  import "./chunk-OIWVQYQF.js";
7
7
  import "./chunk-7ZRP733D.js";
8
8
  import "./chunk-ZKGY7WTT.js";
9
9
  import "./chunk-F55HGNU4.js";
10
10
  import "./chunk-NSXYM6EZ.js";
11
+ import "./chunk-TWMI3SNN.js";
11
12
  import "./chunk-35JCYSRR.js";
12
13
  import "./chunk-HRLWZGMA.js";
14
+ import "./chunk-DVOUSOR3.js";
13
15
  import "./chunk-BSJ6RIT7.js";
14
16
  import "./chunk-ECGJYWNA.js";
15
17
  import "./chunk-2CDEETQN.js";
16
18
  import "./chunk-FZ5I2NF7.js";
17
19
  import "./chunk-PTWPPVC7.js";
18
20
  import "./chunk-H3JZIB5O.js";
21
+ import "./chunk-MQUJNOHK.js";
19
22
  import "./chunk-GJO3CFUN.js";
23
+ import "./chunk-FHFUXL6G.js";
20
24
  import "./chunk-33DOSHTA.js";
25
+ import "./chunk-Z2XBWN7A.js";
21
26
  import "./chunk-2ZDO52B4.js";
22
27
  export {
23
28
  createMemorySlotPlugin,