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.
|
|
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 —
|
|
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
|
|
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.
|
|
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",
|