@claude-flow/cli 3.5.71 → 3.5.73
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/dist/src/commands/plugins.d.ts.map +1 -1
- package/dist/src/commands/plugins.js +6 -0
- package/dist/src/commands/plugins.js.map +1 -1
- package/dist/src/commands/security.d.ts.map +1 -1
- package/dist/src/commands/security.js +350 -34
- package/dist/src/commands/security.js.map +1 -1
- package/dist/src/commands/swarm.d.ts.map +1 -1
- package/dist/src/commands/swarm.js +100 -15
- package/dist/src/commands/swarm.js.map +1 -1
- package/dist/src/init/claudemd-generator.d.ts.map +1 -1
- package/dist/src/init/claudemd-generator.js +15 -17
- package/dist/src/init/claudemd-generator.js.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.js +58 -13
- package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
- package/dist/src/mcp-tools/neural-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/neural-tools.js +49 -2
- package/dist/src/mcp-tools/neural-tools.js.map +1 -1
- package/dist/src/mcp-tools/performance-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/performance-tools.js +7 -5
- package/dist/src/mcp-tools/performance-tools.js.map +1 -1
- package/dist/src/mcp-tools/system-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/system-tools.js +53 -18
- package/dist/src/mcp-tools/system-tools.js.map +1 -1
- package/dist/src/memory/sona-optimizer.d.ts +21 -3
- package/dist/src/memory/sona-optimizer.d.ts.map +1 -1
- package/dist/src/memory/sona-optimizer.js +74 -7
- package/dist/src/memory/sona-optimizer.js.map +1 -1
- package/dist/src/ruvector/vector-db.d.ts +4 -0
- package/dist/src/ruvector/vector-db.d.ts.map +1 -1
- package/dist/src/ruvector/vector-db.js +22 -1
- package/dist/src/ruvector/vector-db.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -291,6 +291,7 @@ async function getSemanticRouter() {
|
|
|
291
291
|
}
|
|
292
292
|
nativeVectorDb = db;
|
|
293
293
|
routerBackend = 'native';
|
|
294
|
+
console.log('[hooks] Semantic router initialized: native VectorDb (HNSW, 16k+ routes/s)');
|
|
294
295
|
return { router: null, backend: routerBackend, native: nativeVectorDb };
|
|
295
296
|
}
|
|
296
297
|
}
|
|
@@ -312,10 +313,12 @@ async function getSemanticRouter() {
|
|
|
312
313
|
});
|
|
313
314
|
}
|
|
314
315
|
routerBackend = 'pure-js';
|
|
316
|
+
console.log('[hooks] Semantic router initialized: pure JS (cosine, 47k routes/s)');
|
|
315
317
|
}
|
|
316
318
|
catch {
|
|
317
319
|
semanticRouter = null;
|
|
318
320
|
routerBackend = 'none';
|
|
321
|
+
console.log('[hooks] Semantic router initialized: none (no backend available)');
|
|
319
322
|
}
|
|
320
323
|
return { router: semanticRouter, backend: routerBackend, native: nativeVectorDb };
|
|
321
324
|
}
|
|
@@ -2801,18 +2804,59 @@ export const hooksIntelligenceAttention = {
|
|
|
2801
2804
|
return { success: false, error: v.error };
|
|
2802
2805
|
}
|
|
2803
2806
|
let implementation = 'placeholder';
|
|
2807
|
+
let embeddingSource = 'none';
|
|
2804
2808
|
const results = [];
|
|
2809
|
+
// Helper: generate query embedding, preferring real ONNX embeddings over hash fallback
|
|
2810
|
+
async function getQueryEmbedding(text, dims) {
|
|
2811
|
+
// Try ONNX via @claude-flow/embeddings
|
|
2812
|
+
try {
|
|
2813
|
+
const embeddingsModule = await import('@claude-flow/embeddings').catch(() => null);
|
|
2814
|
+
if (embeddingsModule?.createEmbeddingService) {
|
|
2815
|
+
const service = embeddingsModule.createEmbeddingService({ provider: 'onnx' });
|
|
2816
|
+
const result = await service.embed(text);
|
|
2817
|
+
const arr = new Float32Array(dims);
|
|
2818
|
+
for (let i = 0; i < Math.min(dims, result.embedding.length); i++) {
|
|
2819
|
+
arr[i] = result.embedding[i];
|
|
2820
|
+
}
|
|
2821
|
+
return { embedding: arr, source: 'onnx' };
|
|
2822
|
+
}
|
|
2823
|
+
}
|
|
2824
|
+
catch {
|
|
2825
|
+
// ONNX not available, try agentic-flow
|
|
2826
|
+
}
|
|
2827
|
+
// Try agentic-flow embeddings
|
|
2828
|
+
try {
|
|
2829
|
+
const embeddingsModule = await import('@claude-flow/embeddings').catch(() => null);
|
|
2830
|
+
if (embeddingsModule?.createEmbeddingService) {
|
|
2831
|
+
const service = embeddingsModule.createEmbeddingService({ provider: 'agentic-flow' });
|
|
2832
|
+
const result = await service.embed(text);
|
|
2833
|
+
const arr = new Float32Array(dims);
|
|
2834
|
+
for (let i = 0; i < Math.min(dims, result.embedding.length); i++) {
|
|
2835
|
+
arr[i] = result.embedding[i];
|
|
2836
|
+
}
|
|
2837
|
+
return { embedding: arr, source: 'onnx' };
|
|
2838
|
+
}
|
|
2839
|
+
}
|
|
2840
|
+
catch {
|
|
2841
|
+
// agentic-flow not available
|
|
2842
|
+
}
|
|
2843
|
+
// Hash-based fallback (deterministic but not semantic)
|
|
2844
|
+
const arr = new Float32Array(dims);
|
|
2845
|
+
let seed = text.split('').reduce((acc, char, i) => acc + char.charCodeAt(0) * (i + 1), 0);
|
|
2846
|
+
for (let i = 0; i < dims; i++) {
|
|
2847
|
+
seed = (seed * 1103515245 + 12345) & 0x7fffffff;
|
|
2848
|
+
arr[i] = (seed / 0x7fffffff) * 2 - 1;
|
|
2849
|
+
}
|
|
2850
|
+
return { embedding: arr, source: 'hash-fallback' };
|
|
2851
|
+
}
|
|
2805
2852
|
if (mode === 'moe') {
|
|
2806
2853
|
// Try MoE routing
|
|
2807
2854
|
const moe = await getMoERouter();
|
|
2808
2855
|
if (moe) {
|
|
2809
2856
|
try {
|
|
2810
|
-
|
|
2811
|
-
|
|
2812
|
-
|
|
2813
|
-
embedding[i] = Math.sin(query.charCodeAt(i % query.length) * (i + 1) * 0.01);
|
|
2814
|
-
}
|
|
2815
|
-
const routingResult = moe.route(embedding);
|
|
2857
|
+
const embResult = await getQueryEmbedding(query, 384);
|
|
2858
|
+
embeddingSource = embResult.source;
|
|
2859
|
+
const routingResult = moe.route(embResult.embedding);
|
|
2816
2860
|
for (let i = 0; i < Math.min(topK, routingResult.experts.length); i++) {
|
|
2817
2861
|
const expert = routingResult.experts[i];
|
|
2818
2862
|
results.push({
|
|
@@ -2834,13 +2878,11 @@ export const hooksIntelligenceAttention = {
|
|
|
2834
2878
|
const flash = await getFlashAttention();
|
|
2835
2879
|
if (flash) {
|
|
2836
2880
|
try {
|
|
2837
|
-
|
|
2838
|
-
|
|
2881
|
+
const embResult = await getQueryEmbedding(query, 384);
|
|
2882
|
+
embeddingSource = embResult.source;
|
|
2883
|
+
const q = embResult.embedding;
|
|
2839
2884
|
const keys = [];
|
|
2840
2885
|
const values = [];
|
|
2841
|
-
for (let i = 0; i < 384; i++) {
|
|
2842
|
-
q[i] = Math.sin(query.charCodeAt(i % query.length) * (i + 1) * 0.01);
|
|
2843
|
-
}
|
|
2844
2886
|
// Generate some keys/values
|
|
2845
2887
|
for (let k = 0; k < topK; k++) {
|
|
2846
2888
|
const key = new Float32Array(384);
|
|
@@ -2883,10 +2925,13 @@ export const hooksIntelligenceAttention = {
|
|
|
2883
2925
|
results,
|
|
2884
2926
|
stats: {
|
|
2885
2927
|
computeTimeMs,
|
|
2886
|
-
|
|
2887
|
-
|
|
2928
|
+
implementation,
|
|
2929
|
+
_embeddingSource: embeddingSource,
|
|
2888
2930
|
_stub: implementation === 'none',
|
|
2889
2931
|
_note: implementation === 'none' ? 'No attention backend available. Install @ruvector/attention for real computation.' : undefined,
|
|
2932
|
+
...(embeddingSource === 'hash-fallback' && implementation !== 'none'
|
|
2933
|
+
? { _embeddingNote: 'Query embeddings are hash-based (not semantic). Install @claude-flow/embeddings for real ONNX embeddings.' }
|
|
2934
|
+
: {}),
|
|
2890
2935
|
},
|
|
2891
2936
|
implementation,
|
|
2892
2937
|
};
|