claude-flow 3.6.23 → 3.6.24

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-flow",
3
- "version": "3.6.23",
3
+ "version": "3.6.24",
4
4
  "description": "Ruflo - Enterprise AI agent orchestration for Claude Code. Deploy 60+ specialized agents in coordinated swarms with self-learning, fault-tolerant consensus, vector memory, and MCP integration",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -252,6 +252,7 @@ async function getRegistry(dbPath) {
252
252
  // (separate from the main memory.db so the audit trail
253
253
  // is isolated). Best-effort: if better-sqlite3 isn't
254
254
  // resolvable in this env, skip cleanly.
255
+ let attestationInst = null;
255
256
  if (!reg.get('attestationLog')) {
256
257
  try {
257
258
  const attestationFile = path.join(adbDir, 'dist/src/security/AttestationLog.js');
@@ -267,6 +268,7 @@ async function getRegistry(dbPath) {
267
268
  const Ctor = mod.AttestationLog;
268
269
  if (typeof Ctor === 'function') {
269
270
  const inst = new Ctor({ db });
271
+ attestationInst = inst;
270
272
  if (typeof reg.set === 'function')
271
273
  reg.set('attestationLog', inst);
272
274
  else
@@ -276,6 +278,36 @@ async function getRegistry(dbPath) {
276
278
  }
277
279
  catch { /* better-sqlite3 missing or schema init failed — skip silently */ }
278
280
  }
281
+ // ADR-095 G7 follow-up: GuardedVectorBackend wraps the
282
+ // existing vectorBackend with mutationGuard + attestationLog
283
+ // for proof-gated state mutations (ADR-060). All three
284
+ // dependencies are reachable here — vectorBackend is in
285
+ // the baseline init, mutationGuard was just activated, and
286
+ // attestationLog is constructed above. Skip if any piece
287
+ // is missing rather than constructing with undefined.
288
+ if (!reg.get('guardedVectorBackend')) {
289
+ try {
290
+ const gvbFile = path.join(adbDir, 'dist/src/backends/ruvector/GuardedVectorBackend.js');
291
+ if (fs.existsSync(gvbFile)) {
292
+ const inner = reg.get('vectorBackend');
293
+ const guard = reg.get('mutationGuard');
294
+ const log = attestationInst ?? reg.get('attestationLog');
295
+ if (inner && guard) {
296
+ const url = pathToFileURL(gvbFile).href;
297
+ const mod = await import(url);
298
+ const Ctor = mod.GuardedVectorBackend;
299
+ if (typeof Ctor === 'function') {
300
+ const inst = new Ctor(inner, guard, log);
301
+ if (typeof reg.set === 'function')
302
+ reg.set('guardedVectorBackend', inst);
303
+ else
304
+ reg._controllers = { ...(reg._controllers || {}), guardedVectorBackend: inst };
305
+ }
306
+ }
307
+ }
308
+ }
309
+ catch { /* GuardedVectorBackend optional */ }
310
+ }
279
311
  }
280
312
  }
281
313
  catch { /* G7 wiring optional */ }
@@ -284,9 +316,7 @@ async function getRegistry(dbPath) {
284
316
  // path doesn't tear down the rest of the post-init wiring.
285
317
  await Promise.allSettled([intelligencePromise, agentdbPromise]);
286
318
  // Remaining disabled controllers tracked in ADR-095 G7 for
287
- // per-controller activation ADRs (each needs config / key
288
- // material that we don't pass blindly):
289
- // - guardedVectorBackend (secured backend — needs key material)
319
+ // per-controller activation ADRs:
290
320
  // - graphAdapter (graph DB adapter — needs graph DB connection)
291
321
  }
292
322
  catch {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claude-flow/cli",
3
- "version": "3.6.23",
3
+ "version": "3.6.24",
4
4
  "type": "module",
5
5
  "description": "Ruflo CLI - Enterprise AI agent orchestration with 60+ specialized agents, swarm coordination, MCP server, self-learning hooks, and vector memory for Claude Code",
6
6
  "main": "dist/src/index.js",