claude-flow 3.6.22 → 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.22",
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",
@@ -210,15 +210,18 @@ async function getRegistry(dbPath) {
210
210
  if (adbPkgJsonPath) {
211
211
  const adbDir = path.dirname(adbPkgJsonPath);
212
212
  const candidates = [
213
- // AttestationLog needs a db handle — too risky to wire
214
- // without a per-install audit, leave for follow-up ADR.
215
- // MutationGuard needs a write-policy config; skipped
216
- // here for the same reason.
217
- // GuardedVectorBackend needs key material; skipped.
218
213
  // GNNService and RVFOptimizer can construct with no args
219
- // in current agentdb — wire those.
214
+ // in current agentdb — safe to activate as-is.
220
215
  { name: 'gnnService', relPath: 'dist/src/services/GNNService.js', configurable: false },
221
216
  { name: 'rvfOptimizer', relPath: 'dist/src/optimizations/RVFOptimizer.js', configurable: false },
217
+ // ADR-095 G7 follow-up: MutationGuard constructs cleanly
218
+ // with no args and exposes WASM-backed proof generation.
219
+ // No external deps; safe-default activation.
220
+ { name: 'mutationGuard', relPath: 'dist/src/security/MutationGuard.js', configurable: false },
221
+ // AttestationLog needs a sqlite db handle — wired below
222
+ // separately because we have to construct a db too.
223
+ // GuardedVectorBackend needs key material — leave for
224
+ // follow-up ADR.
222
225
  ];
223
226
  for (const cand of candidates) {
224
227
  if (reg.get(cand.name))
@@ -244,6 +247,67 @@ async function getRegistry(dbPath) {
244
247
  }
245
248
  catch { /* skip controllers that fail to construct */ }
246
249
  }
250
+ // AttestationLog activation — needs a better-sqlite3
251
+ // database. We open a dedicated file at .swarm/attestation.db
252
+ // (separate from the main memory.db so the audit trail
253
+ // is isolated). Best-effort: if better-sqlite3 isn't
254
+ // resolvable in this env, skip cleanly.
255
+ let attestationInst = null;
256
+ if (!reg.get('attestationLog')) {
257
+ try {
258
+ const attestationFile = path.join(adbDir, 'dist/src/security/AttestationLog.js');
259
+ if (fs.existsSync(attestationFile)) {
260
+ const Database = cjsRequire('better-sqlite3');
261
+ const swarmDir = path.resolve(process.cwd(), '.swarm');
262
+ if (!fs.existsSync(swarmDir))
263
+ fs.mkdirSync(swarmDir, { recursive: true });
264
+ const dbPath = path.join(swarmDir, 'attestation.db');
265
+ const db = new Database(dbPath);
266
+ const url = pathToFileURL(attestationFile).href;
267
+ const mod = await import(url);
268
+ const Ctor = mod.AttestationLog;
269
+ if (typeof Ctor === 'function') {
270
+ const inst = new Ctor({ db });
271
+ attestationInst = inst;
272
+ if (typeof reg.set === 'function')
273
+ reg.set('attestationLog', inst);
274
+ else
275
+ reg._controllers = { ...(reg._controllers || {}), attestationLog: inst };
276
+ }
277
+ }
278
+ }
279
+ catch { /* better-sqlite3 missing or schema init failed — skip silently */ }
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
+ }
247
311
  }
248
312
  }
249
313
  catch { /* G7 wiring optional */ }
@@ -252,12 +316,7 @@ async function getRegistry(dbPath) {
252
316
  // path doesn't tear down the rest of the post-init wiring.
253
317
  await Promise.allSettled([intelligencePromise, agentdbPromise]);
254
318
  // Remaining disabled controllers tracked in ADR-095 G7 for
255
- // per-controller activation ADRs (each needs config / key
256
- // material / db handle that we don't pass blindly):
257
- // - mutationGuard (write protection — needs config schema)
258
- // - attestationLog (needs sqlite db handle the registry
259
- // does not currently expose to non-builtin controllers)
260
- // - guardedVectorBackend (secured backend — needs key material)
319
+ // per-controller activation ADRs:
261
320
  // - graphAdapter (graph DB adapter — needs graph DB connection)
262
321
  }
263
322
  catch {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claude-flow/cli",
3
- "version": "3.6.22",
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",