@claude-flow/cli 3.32.35 → 3.32.36
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/.claude/helpers/helpers.manifest.json +5 -5
- package/.claude/helpers/hook-handler.cjs +30 -0
- package/.claude/helpers/intelligence.cjs +47 -4
- package/.claude/helpers/statusline.cjs +169 -6
- package/bin/cli.js +25 -1
- package/catalog-manifest.json +2 -2
- package/dist/src/commands/agent.js +1 -1
- package/dist/src/commands/doctor.js +159 -11
- package/dist/src/commands/hooks.js +39 -4
- package/dist/src/commands/mcp.js +1 -1
- package/dist/src/commands/memory-distill.js +1 -0
- package/dist/src/commands/swarm.js +28 -0
- package/dist/src/init/executor.js +16 -10
- package/dist/src/init/helpers-generator.js +15 -4
- package/dist/src/init/statusline-generator.js +18 -5
- package/dist/src/mcp-server.d.ts +25 -0
- package/dist/src/mcp-server.js +57 -2
- package/dist/src/mcp-tools/embeddings-tools.js +51 -10
- package/dist/src/mcp-tools/hooks-tools.js +34 -8
- package/dist/src/memory/memory-bridge.d.ts +2 -0
- package/dist/src/memory/memory-bridge.js +5 -1
- package/dist/src/services/memory-distillation.d.ts +1 -0
- package/dist/src/services/memory-distillation.js +81 -5
- package/dist/src/services/worker-daemon.js +1 -0
- package/node_modules/@claude-flow/codex/.agents/skills/github-automation/SKILL.md +32 -0
- package/node_modules/@claude-flow/codex/.agents/skills/performance-analysis/SKILL.md +32 -0
- package/node_modules/@claude-flow/codex/dist/dual-mode/cli.d.ts +4 -0
- package/node_modules/@claude-flow/codex/dist/dual-mode/cli.d.ts.map +1 -1
- package/node_modules/@claude-flow/codex/dist/dual-mode/cli.js +20 -1
- package/node_modules/@claude-flow/codex/dist/dual-mode/cli.js.map +1 -1
- package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.d.ts +4 -0
- package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.d.ts.map +1 -1
- package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.js +18 -2
- package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.js.map +1 -1
- package/node_modules/@claude-flow/codex/dist/generators/skill-md.d.ts +11 -5
- package/node_modules/@claude-flow/codex/dist/generators/skill-md.d.ts.map +1 -1
- package/node_modules/@claude-flow/codex/dist/generators/skill-md.js +84 -849
- package/node_modules/@claude-flow/codex/dist/generators/skill-md.js.map +1 -1
- package/node_modules/@claude-flow/codex/dist/initializer.d.ts.map +1 -1
- package/node_modules/@claude-flow/codex/dist/initializer.js +9 -13
- package/node_modules/@claude-flow/codex/dist/initializer.js.map +1 -1
- package/package.json +1 -1
- package/plugins/ruflo-metaharness/scripts/_harness.mjs +5 -1
- package/plugins/ruflo-metaharness/scripts/_invoke.mjs +12 -13
- package/plugins/ruflo-metaharness/scripts/mcp-scan.mjs +7 -8
- package/plugins/ruflo-metaharness/scripts/smoke.sh +58 -2
- package/plugins/ruflo-metaharness/scripts/test-similarity.mjs +38 -0
- package/plugins/ruflo-metaharness/scripts/threat-model.mjs +4 -1
|
@@ -50,13 +50,16 @@ async function getRealEmbeddingFunction() {
|
|
|
50
50
|
}
|
|
51
51
|
return realEmbeddingFn;
|
|
52
52
|
}
|
|
53
|
-
// Generate real ONNX embedding (falls back to deterministic hash if ONNX unavailable)
|
|
54
53
|
async function generateRealEmbedding(text, dimension) {
|
|
55
54
|
const realFn = await getRealEmbeddingFunction();
|
|
56
55
|
if (realFn) {
|
|
57
56
|
try {
|
|
58
57
|
const result = await realFn(text);
|
|
59
|
-
return
|
|
58
|
+
return {
|
|
59
|
+
embedding: result.embedding,
|
|
60
|
+
backend: result.backend ?? 'onnx',
|
|
61
|
+
model: result.model,
|
|
62
|
+
};
|
|
60
63
|
}
|
|
61
64
|
catch {
|
|
62
65
|
// Fall through to fallback
|
|
@@ -75,7 +78,11 @@ async function generateRealEmbedding(text, dimension) {
|
|
|
75
78
|
}
|
|
76
79
|
// L2 normalize
|
|
77
80
|
const norm = Math.sqrt(embedding.reduce((sum, x) => sum + x * x, 0));
|
|
78
|
-
return
|
|
81
|
+
return {
|
|
82
|
+
embedding: embedding.map(x => x / norm),
|
|
83
|
+
backend: 'mock',
|
|
84
|
+
model: 'hash-fallback',
|
|
85
|
+
};
|
|
79
86
|
}
|
|
80
87
|
// Convert Euclidean embedding to Poincaré ball
|
|
81
88
|
function toPoincare(euclidean, curvature) {
|
|
@@ -238,7 +245,8 @@ export const embeddingsTools = [
|
|
|
238
245
|
}
|
|
239
246
|
const useHyperbolic = input.hyperbolic === true && config.hyperbolic.enabled;
|
|
240
247
|
// Generate real ONNX embedding
|
|
241
|
-
const
|
|
248
|
+
const generated = await generateRealEmbedding(text, config.dimension);
|
|
249
|
+
const embedding = generated.embedding;
|
|
242
250
|
let result;
|
|
243
251
|
let geometry;
|
|
244
252
|
if (useHyperbolic) {
|
|
@@ -254,6 +262,8 @@ export const embeddingsTools = [
|
|
|
254
262
|
embedding: result,
|
|
255
263
|
metadata: {
|
|
256
264
|
model: config.model,
|
|
265
|
+
embeddingBackend: generated.backend,
|
|
266
|
+
semanticGrounded: generated.backend === 'onnx',
|
|
257
267
|
dimension: config.dimension,
|
|
258
268
|
geometry,
|
|
259
269
|
curvature: useHyperbolic ? config.hyperbolic.curvature : null,
|
|
@@ -309,10 +319,13 @@ export const embeddingsTools = [
|
|
|
309
319
|
return { success: false, error: v.error };
|
|
310
320
|
}
|
|
311
321
|
// Generate real ONNX embeddings for both texts
|
|
312
|
-
const [
|
|
322
|
+
const [generated1, generated2] = await Promise.all([
|
|
313
323
|
generateRealEmbedding(text1, config.dimension),
|
|
314
324
|
generateRealEmbedding(text2, config.dimension)
|
|
315
325
|
]);
|
|
326
|
+
const emb1 = generated1.embedding;
|
|
327
|
+
const emb2 = generated2.embedding;
|
|
328
|
+
const embeddingBackend = generated1.backend === 'onnx' && generated2.backend === 'onnx' ? 'onnx' : 'mock';
|
|
316
329
|
let similarity;
|
|
317
330
|
let distance;
|
|
318
331
|
switch (metric) {
|
|
@@ -341,14 +354,21 @@ export const embeddingsTools = [
|
|
|
341
354
|
similarity,
|
|
342
355
|
distance,
|
|
343
356
|
metric,
|
|
357
|
+
embeddingBackend,
|
|
358
|
+
semanticGrounded: embeddingBackend === 'onnx',
|
|
344
359
|
texts: {
|
|
345
360
|
text1: { length: text1.length, preview: text1.slice(0, 50) },
|
|
346
361
|
text2: { length: text2.length, preview: text2.slice(0, 50) },
|
|
347
362
|
},
|
|
348
|
-
interpretation:
|
|
349
|
-
similarity > 0.
|
|
350
|
-
similarity > 0.
|
|
351
|
-
similarity > 0.
|
|
363
|
+
interpretation: embeddingBackend === 'onnx'
|
|
364
|
+
? similarity > 0.8 ? 'very similar'
|
|
365
|
+
: similarity > 0.6 ? 'similar'
|
|
366
|
+
: similarity > 0.4 ? 'somewhat similar'
|
|
367
|
+
: similarity > 0.2 ? 'different' : 'very different'
|
|
368
|
+
: null,
|
|
369
|
+
warning: embeddingBackend === 'mock'
|
|
370
|
+
? 'Hash fallback scores are deterministic but not semantically meaningful.'
|
|
371
|
+
: undefined,
|
|
352
372
|
};
|
|
353
373
|
},
|
|
354
374
|
},
|
|
@@ -426,6 +446,8 @@ export const embeddingsTools = [
|
|
|
426
446
|
})),
|
|
427
447
|
metadata: {
|
|
428
448
|
model: config.model,
|
|
449
|
+
embeddingBackend: queryEmbedding.backend,
|
|
450
|
+
semanticGrounded: queryEmbedding.backend === 'onnx',
|
|
429
451
|
topK,
|
|
430
452
|
threshold,
|
|
431
453
|
namespace: namespace || 'all',
|
|
@@ -433,6 +455,9 @@ export const embeddingsTools = [
|
|
|
433
455
|
indexType: config.hyperbolic.enabled ? 'HNSW (hyperbolic)' : 'HNSW (euclidean)',
|
|
434
456
|
resultCount: searchResult.results.length
|
|
435
457
|
},
|
|
458
|
+
warning: queryEmbedding.backend === 'mock'
|
|
459
|
+
? 'Results use a hash fallback and are not semantically ranked.'
|
|
460
|
+
: undefined,
|
|
436
461
|
};
|
|
437
462
|
}
|
|
438
463
|
catch {
|
|
@@ -444,12 +469,17 @@ export const embeddingsTools = [
|
|
|
444
469
|
results: [],
|
|
445
470
|
metadata: {
|
|
446
471
|
model: config.model,
|
|
472
|
+
embeddingBackend: queryEmbedding.backend,
|
|
473
|
+
semanticGrounded: queryEmbedding.backend === 'onnx',
|
|
447
474
|
topK,
|
|
448
475
|
threshold,
|
|
449
476
|
namespace: namespace || 'all',
|
|
450
477
|
searchTime: `${searchTime}ms`,
|
|
451
478
|
indexType: config.hyperbolic.enabled ? 'HNSW (hyperbolic)' : 'HNSW (euclidean)',
|
|
452
479
|
},
|
|
480
|
+
warning: queryEmbedding.backend === 'mock'
|
|
481
|
+
? 'Hash fallback is active; semantic search is unavailable.'
|
|
482
|
+
: undefined,
|
|
453
483
|
message: 'No embeddings indexed yet. Use memory store to add documents.',
|
|
454
484
|
};
|
|
455
485
|
}
|
|
@@ -795,6 +825,8 @@ export const embeddingsTools = [
|
|
|
795
825
|
}
|
|
796
826
|
catch { /* not installed */ }
|
|
797
827
|
const ruvectorEnabled = config.neural.ruvector?.enabled ?? false;
|
|
828
|
+
const backendProbe = await generateRealEmbedding('ruflo embedding backend probe', config.dimension);
|
|
829
|
+
const semanticGrounded = backendProbe.backend === 'onnx';
|
|
798
830
|
return {
|
|
799
831
|
success: true,
|
|
800
832
|
initialized: true,
|
|
@@ -822,11 +854,20 @@ export const embeddingsTools = [
|
|
|
822
854
|
models: config.modelPath,
|
|
823
855
|
},
|
|
824
856
|
initializedAt: config.initialized,
|
|
857
|
+
embeddingBackend: backendProbe.backend,
|
|
858
|
+
semanticGrounded,
|
|
859
|
+
warning: semanticGrounded
|
|
860
|
+
? undefined
|
|
861
|
+
: 'Hash fallback is active. Similarity scores are deterministic but not semantically meaningful.',
|
|
825
862
|
capabilities: {
|
|
826
863
|
onnxModels: ['Xenova/all-MiniLM-L6-v2', 'Xenova/all-mpnet-base-v2'],
|
|
827
864
|
geometries: ['euclidean', 'poincare'],
|
|
828
865
|
normalizations: ['L2', 'L1', 'minmax', 'zscore'],
|
|
829
|
-
features: [
|
|
866
|
+
features: [
|
|
867
|
+
...(semanticGrounded ? ['semantic search'] : []),
|
|
868
|
+
'hyperbolic projection',
|
|
869
|
+
'neural substrate',
|
|
870
|
+
],
|
|
830
871
|
},
|
|
831
872
|
};
|
|
832
873
|
},
|
|
@@ -439,6 +439,20 @@ function getIntelligenceStatsFromMemory() {
|
|
|
439
439
|
const category = e.metadata?.category || 'general';
|
|
440
440
|
categories[category] = (categories[category] || 0) + 1;
|
|
441
441
|
});
|
|
442
|
+
const successfulPatterns = patternEntries.filter(e => e.metadata?.success === true).length;
|
|
443
|
+
const failedPatterns = patternEntries.filter(e => e.metadata?.success === false).length;
|
|
444
|
+
const describedPatterns = patternEntries.filter(e => {
|
|
445
|
+
if (typeof e.metadata?.task === 'string' && e.metadata.task.trim())
|
|
446
|
+
return true;
|
|
447
|
+
try {
|
|
448
|
+
const value = typeof e.value === 'string' ? JSON.parse(e.value) : e.value;
|
|
449
|
+
return typeof value?.task === 'string' &&
|
|
450
|
+
Boolean(String(value.task).trim());
|
|
451
|
+
}
|
|
452
|
+
catch {
|
|
453
|
+
return false;
|
|
454
|
+
}
|
|
455
|
+
}).length;
|
|
442
456
|
// Count routing decisions
|
|
443
457
|
const routingEntries = entries.filter(e => e.key.includes('routing') ||
|
|
444
458
|
e.metadata?.type === 'routing-decision');
|
|
@@ -472,6 +486,10 @@ function getIntelligenceStatsFromMemory() {
|
|
|
472
486
|
},
|
|
473
487
|
patterns: {
|
|
474
488
|
learned: patternEntries.length,
|
|
489
|
+
successful: successfulPatterns,
|
|
490
|
+
failed: failedPatterns,
|
|
491
|
+
unknown: Math.max(0, patternEntries.length - successfulPatterns - failedPatterns),
|
|
492
|
+
described: describedPatterns,
|
|
475
493
|
categories,
|
|
476
494
|
},
|
|
477
495
|
memory: {
|
|
@@ -1074,21 +1092,28 @@ export const hooksMetrics = {
|
|
|
1074
1092
|
agentCounts[o.agent] = (agentCounts[o.agent] || 0) + 1;
|
|
1075
1093
|
}
|
|
1076
1094
|
const topAgent = Object.entries(agentCounts).sort((a, b) => b[1] - a[1])[0]?.[0] ?? null;
|
|
1077
|
-
const successful = stats.trajectories.successful;
|
|
1078
|
-
const total = stats.trajectories.total;
|
|
1079
|
-
const failed = Math.max(0, total - successful);
|
|
1080
1095
|
return {
|
|
1081
1096
|
_real: true,
|
|
1082
1097
|
_dataSource: 'intelligence-stats + routing-outcomes',
|
|
1083
1098
|
period,
|
|
1084
1099
|
patterns: {
|
|
1085
1100
|
total: stats.patterns.learned,
|
|
1086
|
-
successful,
|
|
1087
|
-
failed,
|
|
1101
|
+
successful: stats.patterns.successful,
|
|
1102
|
+
failed: stats.patterns.failed,
|
|
1103
|
+
unknown: stats.patterns.unknown,
|
|
1104
|
+
described: stats.patterns.described,
|
|
1105
|
+
descriptionCoverage: stats.patterns.learned > 0
|
|
1106
|
+
? stats.patterns.described / stats.patterns.learned
|
|
1107
|
+
: null,
|
|
1088
1108
|
avgConfidence: stats.routing.avgConfidence || null,
|
|
1089
1109
|
},
|
|
1090
1110
|
agents: {
|
|
1091
|
-
|
|
1111
|
+
// Confidence is a model self-score, not observed routing accuracy
|
|
1112
|
+
// (#2809). Keep the old key as an explicit null for compatibility
|
|
1113
|
+
// while exposing the truthful additive field.
|
|
1114
|
+
routingAccuracy: null,
|
|
1115
|
+
averageConfidence: stats.routing.avgConfidence || null,
|
|
1116
|
+
outcomeSuccessRate: successRate,
|
|
1092
1117
|
totalRoutes: stats.routing.decisions,
|
|
1093
1118
|
topAgent,
|
|
1094
1119
|
},
|
|
@@ -1097,7 +1122,7 @@ export const hooksMetrics = {
|
|
|
1097
1122
|
successRate,
|
|
1098
1123
|
avgRiskScore: null,
|
|
1099
1124
|
},
|
|
1100
|
-
_note:
|
|
1125
|
+
_note: stats.patterns.learned === 0 && totalCommands === 0
|
|
1101
1126
|
? 'No metrics data collected yet. Run hooks_post-task / hooks_intelligence_trajectory-end / hooks_route to populate.'
|
|
1102
1127
|
: undefined,
|
|
1103
1128
|
lastUpdated: new Date().toISOString(),
|
|
@@ -1311,6 +1336,7 @@ export const hooksPostTask = {
|
|
|
1311
1336
|
const bridge = await import('../memory/memory-bridge.js');
|
|
1312
1337
|
feedbackResult = await bridge.bridgeRecordFeedback({
|
|
1313
1338
|
taskId,
|
|
1339
|
+
task: params.task || undefined,
|
|
1314
1340
|
success,
|
|
1315
1341
|
quality,
|
|
1316
1342
|
agent,
|
|
@@ -3136,7 +3162,7 @@ export const hooksIntelligenceStats = {
|
|
|
3136
3162
|
catch {
|
|
3137
3163
|
memoryStats = {
|
|
3138
3164
|
trajectories: { total: 0, successful: 0 },
|
|
3139
|
-
patterns: { learned: 0, categories: {} },
|
|
3165
|
+
patterns: { learned: 0, successful: 0, failed: 0, unknown: 0, described: 0, categories: {} },
|
|
3140
3166
|
memory: { indexSize: 0, totalAccessCount: 0, memorySizeBytes: 0 },
|
|
3141
3167
|
routing: { decisions: 0, avgConfidence: 0 },
|
|
3142
3168
|
};
|
|
@@ -322,6 +322,8 @@ export declare function bridgeSearchPatterns(options: {
|
|
|
322
322
|
*/
|
|
323
323
|
export declare function bridgeRecordFeedback(options: {
|
|
324
324
|
taskId: string;
|
|
325
|
+
/** Human-readable task text used as the semantic learning signal. */
|
|
326
|
+
task?: string;
|
|
325
327
|
success: boolean;
|
|
326
328
|
quality: number;
|
|
327
329
|
agent?: string;
|
|
@@ -1840,11 +1840,15 @@ export async function bridgeRecordFeedback(options) {
|
|
|
1840
1840
|
try {
|
|
1841
1841
|
const intelligence = await import('./intelligence.js');
|
|
1842
1842
|
const verdict = options.success ? 'success' : 'failure';
|
|
1843
|
+
const taskContext = options.task?.trim();
|
|
1843
1844
|
const recorded = await intelligence.recordTrajectory([{
|
|
1844
1845
|
type: 'action',
|
|
1845
|
-
|
|
1846
|
+
// Put the task description first so the embedding represents the
|
|
1847
|
+
// work, not just the bookkeeping suffix (#2812).
|
|
1848
|
+
content: `${taskContext ? `${taskContext} — ` : ''}Task ${options.taskId} completed by ${options.agent || 'unknown'} — success=${options.success}, quality=${options.quality.toFixed(3)}`,
|
|
1846
1849
|
metadata: {
|
|
1847
1850
|
taskId: options.taskId,
|
|
1851
|
+
task: taskContext,
|
|
1848
1852
|
agent: options.agent,
|
|
1849
1853
|
quality: options.quality,
|
|
1850
1854
|
duration: options.duration,
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Turns raw `memory_entries` (what ruflo has been RECORDING for thousands of
|
|
5
5
|
* commits) into the structured intelligence substrate it has never populated:
|
|
6
|
-
* `episodes`
|
|
6
|
+
* `episodes` (+ `episode_embeddings`) → `reasoning_patterns`
|
|
7
|
+
* (+ `pattern_embeddings`) → `causal_edges`.
|
|
7
8
|
* This is the DISTILL/CONSOLIDATE half of the RETRIEVE→JUDGE→DISTILL→CONSOLIDATE
|
|
8
9
|
* pipeline; RETRIEVE (embeddings) was already populated, the rest was empty
|
|
9
10
|
* because the daemon's `consolidate` worker was a stub (see ADR-174 root cause).
|
|
@@ -28,7 +29,8 @@ import * as path from 'path';
|
|
|
28
29
|
import { distillTrajectoryContent, serialiseDistilled } from '../memory/structured-distill.js';
|
|
29
30
|
function emptyReport(dryRun, extra = {}) {
|
|
30
31
|
return {
|
|
31
|
-
processed: 0, episodes: 0,
|
|
32
|
+
processed: 0, episodes: 0, episodeEmbeddings: 0,
|
|
33
|
+
patterns: 0, patternEmbeddings: 0, causalEdges: 0,
|
|
32
34
|
promoted: 0, byProvenance: {}, namespaces: [], dryRun, spendUsd: 0, ...extra,
|
|
33
35
|
};
|
|
34
36
|
}
|
|
@@ -74,6 +76,20 @@ function judgeFeedback(content) {
|
|
|
74
76
|
catch { /* not JSON — treat as neutral */ }
|
|
75
77
|
return { success: true, reward: 0.5 };
|
|
76
78
|
}
|
|
79
|
+
/** Preserve an execution-observed lesson for Reflexion without presenting
|
|
80
|
+
* proxy/structural summaries as genuine self-critique. */
|
|
81
|
+
function feedbackCritique(content) {
|
|
82
|
+
try {
|
|
83
|
+
const value = JSON.parse(content);
|
|
84
|
+
for (const key of ['critique', 'error', 'message', 'summary', 'stderr']) {
|
|
85
|
+
if (typeof value[key] === 'string' && value[key].trim()) {
|
|
86
|
+
return value[key].trim().slice(0, 2000);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch { /* retain the original execution feedback below */ }
|
|
91
|
+
return `Observed execution feedback: ${content}`.slice(0, 2000);
|
|
92
|
+
}
|
|
77
93
|
/**
|
|
78
94
|
* Distill accumulated memory into the structured intelligence tables.
|
|
79
95
|
* Incremental, $0, transactional, provenance-tagged.
|
|
@@ -115,6 +131,17 @@ export async function runDistillation(options) {
|
|
|
115
131
|
db.close();
|
|
116
132
|
return { ...report, corrupt: true, skipped: 'memory DB reports corruption — run recoverMemoryDatabase first' };
|
|
117
133
|
}
|
|
134
|
+
// #2677 — older AgentDB stores may have episodes but no embedding table.
|
|
135
|
+
// Create the stable AgentDB v1 table only after the corruption gate, and
|
|
136
|
+
// never create it during a dry-run.
|
|
137
|
+
if (!dryRun && !tableExists('episode_embeddings')) {
|
|
138
|
+
db.exec(`CREATE TABLE episode_embeddings (
|
|
139
|
+
episode_id INTEGER PRIMARY KEY,
|
|
140
|
+
embedding BLOB NOT NULL,
|
|
141
|
+
embedding_model TEXT DEFAULT 'all-MiniLM-L6-v2',
|
|
142
|
+
FOREIGN KEY(episode_id) REFERENCES episodes(id) ON DELETE CASCADE
|
|
143
|
+
)`);
|
|
144
|
+
}
|
|
118
145
|
// M0: incremental cursor table (per namespace, by monotonic rowid).
|
|
119
146
|
db.exec(`CREATE TABLE IF NOT EXISTS distill_state (
|
|
120
147
|
namespace TEXT PRIMARY KEY,
|
|
@@ -128,10 +155,54 @@ export async function runDistillation(options) {
|
|
|
128
155
|
const getCursor = db.prepare('SELECT last_rowid FROM distill_state WHERE namespace = ?');
|
|
129
156
|
const setCursor = db.prepare('INSERT INTO distill_state (namespace, last_rowid, last_run_at) VALUES (?, ?, ?) ' +
|
|
130
157
|
'ON CONFLICT(namespace) DO UPDATE SET last_rowid = excluded.last_rowid, last_run_at = excluded.last_run_at');
|
|
131
|
-
const insEpisode = db.prepare('INSERT INTO episodes (session_id, task, input, output, reward, success, tags, metadata) VALUES (
|
|
158
|
+
const insEpisode = db.prepare('INSERT INTO episodes (session_id, task, input, output, critique, reward, success, tags, metadata) VALUES (?,?,?,?,?,?,?,?,?)');
|
|
159
|
+
const insEpisodeEmbedding = dryRun ? null : db.prepare('INSERT OR REPLACE INTO episode_embeddings (episode_id, embedding) VALUES (?, ?)');
|
|
132
160
|
const insPattern = db.prepare('INSERT INTO reasoning_patterns (task_type, approach, success_rate, uses, avg_reward, tags, metadata) VALUES (?,?,?,?,?,?,?)');
|
|
133
161
|
const insPatEmb = db.prepare('INSERT OR REPLACE INTO pattern_embeddings (pattern_id, embedding) VALUES (?, ?)');
|
|
134
162
|
const insEdge = db.prepare('INSERT INTO causal_edges (from_memory_id, from_memory_type, to_memory_id, to_memory_type, similarity, confidence, mechanism, metadata) VALUES (?,?,?,?,?,?,?,?)');
|
|
163
|
+
// Repair episodes produced by older distillation releases. Their metadata
|
|
164
|
+
// records sourceIds; if that provenance is absent, exact input matching is
|
|
165
|
+
// a conservative fallback. Never invent a vector or call a model.
|
|
166
|
+
if (!dryRun) {
|
|
167
|
+
const missingEpisodes = db.prepare(`
|
|
168
|
+
SELECT e.id, e.input, e.metadata
|
|
169
|
+
FROM episodes e
|
|
170
|
+
LEFT JOIN episode_embeddings ee ON ee.episode_id = e.id
|
|
171
|
+
WHERE ee.episode_id IS NULL AND e.session_id LIKE 'distill:%'
|
|
172
|
+
`).all();
|
|
173
|
+
const embeddingById = db.prepare('SELECT embedding FROM memory_entries WHERE id = ? AND embedding IS NOT NULL');
|
|
174
|
+
const embeddingByContent = db.prepare('SELECT embedding FROM memory_entries WHERE content = ? AND embedding IS NOT NULL LIMIT 1');
|
|
175
|
+
const missingCritiques = db.prepare(`
|
|
176
|
+
SELECT id, input FROM episodes
|
|
177
|
+
WHERE session_id LIKE 'distill:feedback%'
|
|
178
|
+
AND length(trim(coalesce(critique,''))) = 0
|
|
179
|
+
`).all();
|
|
180
|
+
const updateCritique = db.prepare('UPDATE episodes SET critique = ? WHERE id = ?');
|
|
181
|
+
const backfill = db.transaction(() => {
|
|
182
|
+
for (const episode of missingEpisodes) {
|
|
183
|
+
let sourceId;
|
|
184
|
+
try {
|
|
185
|
+
const metadata = JSON.parse(episode.metadata ?? '{}');
|
|
186
|
+
if (Array.isArray(metadata.sourceIds) && typeof metadata.sourceIds[0] === 'string') {
|
|
187
|
+
sourceId = metadata.sourceIds[0];
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
catch { /* use exact-content fallback */ }
|
|
191
|
+
let raw = sourceId ? embeddingById.get(sourceId)?.embedding : undefined;
|
|
192
|
+
if (!raw)
|
|
193
|
+
raw = embeddingByContent.get(episode.input ?? '')?.embedding;
|
|
194
|
+
const vector = parseEmbedding(raw);
|
|
195
|
+
if (!vector)
|
|
196
|
+
continue;
|
|
197
|
+
insEpisodeEmbedding.run(episode.id, Buffer.from(Float32Array.from(vector).buffer));
|
|
198
|
+
report.episodeEmbeddings++;
|
|
199
|
+
}
|
|
200
|
+
for (const episode of missingCritiques) {
|
|
201
|
+
updateCritique.run(feedbackCritique(episode.input ?? ''), episode.id);
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
backfill();
|
|
205
|
+
}
|
|
135
206
|
let remaining = typeof maxEntries === 'number' ? maxEntries : Infinity;
|
|
136
207
|
for (const ns of nsList) {
|
|
137
208
|
if (remaining <= 0)
|
|
@@ -200,8 +271,14 @@ export async function runDistillation(options) {
|
|
|
200
271
|
sourceIds: cl.members.map(m => m.id).slice(0, 25),
|
|
201
272
|
paths: distilled.paths.slice(0, 10), namespace: ns, distilledBy: 'structural',
|
|
202
273
|
};
|
|
203
|
-
const epInfo = insEpisode.run(`distill:${ns}`, approach, cl.rep.content.slice(0, 2000), '', avgReward, promoted && cl.successCount > 0 ? 1 : 0, JSON.stringify(distilled.labels), JSON.stringify(provMeta));
|
|
274
|
+
const epInfo = insEpisode.run(`distill:${ns}`, approach, cl.rep.content.slice(0, 2000), '', cl.provenance === 'oracle:test-exec' ? feedbackCritique(cl.rep.content) : null, avgReward, promoted && cl.successCount > 0 ? 1 : 0, JSON.stringify(distilled.labels), JSON.stringify(provMeta));
|
|
204
275
|
report.episodes++;
|
|
276
|
+
const epId = Number(epInfo.lastInsertRowid);
|
|
277
|
+
// ReflexionMemory.retrieveRelevant() INNER JOINs this table.
|
|
278
|
+
// Reuse the source embedding so every distilled episode is
|
|
279
|
+
// immediately retrievable without an embedding-model call.
|
|
280
|
+
insEpisodeEmbedding.run(epId, Buffer.from(Float32Array.from(embVec).buffer));
|
|
281
|
+
report.episodeEmbeddings++;
|
|
205
282
|
const patInfo = insPattern.run(taskType, approach, successRate, uses, avgReward, JSON.stringify(distilled.labels), JSON.stringify(provMeta));
|
|
206
283
|
const patternId = Number(patInfo.lastInsertRowid);
|
|
207
284
|
report.patterns++;
|
|
@@ -217,7 +294,6 @@ export async function runDistillation(options) {
|
|
|
217
294
|
// rowids). Explicitly typed co-occurrence / proxy-tier / non-
|
|
218
295
|
// promoted: may rank retrieval, must NOT justify autonomous action
|
|
219
296
|
// (ADR-174 edge contract).
|
|
220
|
-
const epId = Number(epInfo.lastInsertRowid);
|
|
221
297
|
if (prevEpId !== null) {
|
|
222
298
|
insEdge.run(prevEpId, 'episode', epId, 'episode', 0, 0.3, 'co-occurrence', JSON.stringify({
|
|
223
299
|
edge_type: 'cooccurrence',
|
|
@@ -1545,6 +1545,7 @@ export class WorkerDaemon extends EventEmitter {
|
|
|
1545
1545
|
// instead of becoming their own distinct pattern.
|
|
1546
1546
|
duplicatesRemoved: Math.max(0, report.processed - report.patterns),
|
|
1547
1547
|
episodes: report.episodes,
|
|
1548
|
+
episodeEmbeddings: report.episodeEmbeddings,
|
|
1548
1549
|
patternEmbeddings: report.patternEmbeddings,
|
|
1549
1550
|
causalEdges: report.causalEdges,
|
|
1550
1551
|
promoted: report.promoted,
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: github-automation
|
|
3
|
+
description: >
|
|
4
|
+
GitHub workflow automation for issues, pull requests, CI, and releases.
|
|
5
|
+
Use when: repository hosting actions are explicitly requested.
|
|
6
|
+
Skip when: local git operations are sufficient or publishing is unauthorized.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# GitHub Automation Skill
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
Automate GitHub workflows while keeping external writes explicit and scoped.
|
|
13
|
+
|
|
14
|
+
## Commands
|
|
15
|
+
|
|
16
|
+
### Create Pull Request
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
gh pr create --draft
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Inspect Checks
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
gh pr checks
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Best Practices
|
|
29
|
+
1. Confirm repository and branch before external writes
|
|
30
|
+
2. Inspect CI evidence before changing workflows
|
|
31
|
+
3. Never publish, merge, or close without authorization
|
|
32
|
+
4. Report the exact resulting URL or identifier
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: performance-analysis
|
|
3
|
+
description: >
|
|
4
|
+
Performance profiling, benchmarking, and optimization.
|
|
5
|
+
Use when: slow operations, regressions, memory pressure, release validation.
|
|
6
|
+
Skip when: early prototyping, documentation, configuration-only changes.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Performance Analysis Skill
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
Measure before optimizing and preserve reproducible benchmark evidence.
|
|
13
|
+
|
|
14
|
+
## Commands
|
|
15
|
+
|
|
16
|
+
### Run Benchmark Suite
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npx @claude-flow/cli performance benchmark --suite all
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Profile Code
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npx @claude-flow/cli performance profile --target ./src
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Best Practices
|
|
29
|
+
1. Capture a baseline before changing code
|
|
30
|
+
2. Use identical inputs and environments
|
|
31
|
+
3. Report variance, not only the fastest result
|
|
32
|
+
4. Re-run correctness tests after optimization
|
|
@@ -8,6 +8,10 @@ import { WorkerConfig } from './orchestrator.js';
|
|
|
8
8
|
* Create the dual-mode command
|
|
9
9
|
*/
|
|
10
10
|
export declare function createDualModeCommand(): Command;
|
|
11
|
+
export declare function loadWorkerConfig(configPath: string, cwd?: string): Promise<{
|
|
12
|
+
workers: WorkerConfig[];
|
|
13
|
+
taskContext?: string;
|
|
14
|
+
}>;
|
|
11
15
|
/**
|
|
12
16
|
* Parse `--worker "<platform>:<role>:<prompt>"` specs into WorkerConfig[].
|
|
13
17
|
* Splits on the first two `:` so the prompt may itself contain colons.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/dual-mode/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/dual-mode/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,EAGL,YAAY,EAIb,MAAM,mBAAmB,CAAC;AAG3B;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAQ/C;AAuJD,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,GAAG,SAAgB,GAClB,OAAO,CAAC;IAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAe5D;AAyDD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAG,YAAY,EAAE,CAqCnF"}
|
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { Command } from 'commander';
|
|
6
6
|
import chalk from 'chalk';
|
|
7
|
+
import { readFile } from 'node:fs/promises';
|
|
8
|
+
import path from 'node:path';
|
|
9
|
+
import { pathToFileURL } from 'node:url';
|
|
7
10
|
import { DualModeOrchestrator, CollaborationTemplates, loadSwarmAutomationConfig, } from './orchestrator.js';
|
|
8
11
|
import { CodexWorktreeCoordinator } from '../worktrees/coordinator.js';
|
|
9
12
|
/**
|
|
@@ -88,7 +91,7 @@ function createRunCommand() {
|
|
|
88
91
|
taskContext = `Template: ${templateName}, Task: ${task}`;
|
|
89
92
|
}
|
|
90
93
|
else if (options.config) {
|
|
91
|
-
const configData = await
|
|
94
|
+
const configData = await loadWorkerConfig(options.config, process.cwd());
|
|
92
95
|
workers = configData.workers;
|
|
93
96
|
taskContext = configData.taskContext || options.task || 'Collaborative task';
|
|
94
97
|
}
|
|
@@ -144,6 +147,22 @@ function createRunCommand() {
|
|
|
144
147
|
printResults(result);
|
|
145
148
|
});
|
|
146
149
|
}
|
|
150
|
+
export async function loadWorkerConfig(configPath, cwd = process.cwd()) {
|
|
151
|
+
const absolute = path.resolve(cwd, configPath);
|
|
152
|
+
const loaded = path.extname(absolute).toLowerCase() === '.json'
|
|
153
|
+
? JSON.parse(await readFile(absolute, 'utf8'))
|
|
154
|
+
: await import(pathToFileURL(absolute).href);
|
|
155
|
+
const config = loaded.default && typeof loaded.default === 'object'
|
|
156
|
+
? loaded.default
|
|
157
|
+
: loaded;
|
|
158
|
+
if (!Array.isArray(config.workers)) {
|
|
159
|
+
throw new Error(`Dual-mode config must export a workers array: ${absolute}`);
|
|
160
|
+
}
|
|
161
|
+
return {
|
|
162
|
+
workers: config.workers,
|
|
163
|
+
...(typeof config.taskContext === 'string' ? { taskContext: config.taskContext } : {}),
|
|
164
|
+
};
|
|
165
|
+
}
|
|
147
166
|
/**
|
|
148
167
|
* List available templates
|
|
149
168
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/dual-mode/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/dual-mode/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,8 @@ export interface WorkerResult {
|
|
|
40
40
|
}
|
|
41
41
|
export interface DualModeConfig {
|
|
42
42
|
projectPath: string;
|
|
43
|
+
/** One database shared by bootstrap, collection, policy, and worker CLIs. */
|
|
44
|
+
memoryDbPath?: string;
|
|
43
45
|
maxConcurrent?: number;
|
|
44
46
|
sharedNamespace?: string;
|
|
45
47
|
timeout?: number;
|
|
@@ -108,6 +110,8 @@ export declare class DualModeOrchestrator extends EventEmitter {
|
|
|
108
110
|
private defaultWorkerEnvelope;
|
|
109
111
|
private resolveWorkerEnvelope;
|
|
110
112
|
private workerEnvironment;
|
|
113
|
+
/** Keep every Ruflo subprocess on the same collaboration database. */
|
|
114
|
+
private sharedEnvironment;
|
|
111
115
|
/**
|
|
112
116
|
* Stop all running workers
|
|
113
117
|
*/
|