@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.
Files changed (34) hide show
  1. package/dist/src/commands/plugins.d.ts.map +1 -1
  2. package/dist/src/commands/plugins.js +6 -0
  3. package/dist/src/commands/plugins.js.map +1 -1
  4. package/dist/src/commands/security.d.ts.map +1 -1
  5. package/dist/src/commands/security.js +350 -34
  6. package/dist/src/commands/security.js.map +1 -1
  7. package/dist/src/commands/swarm.d.ts.map +1 -1
  8. package/dist/src/commands/swarm.js +100 -15
  9. package/dist/src/commands/swarm.js.map +1 -1
  10. package/dist/src/init/claudemd-generator.d.ts.map +1 -1
  11. package/dist/src/init/claudemd-generator.js +15 -17
  12. package/dist/src/init/claudemd-generator.js.map +1 -1
  13. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
  14. package/dist/src/mcp-tools/hooks-tools.js +58 -13
  15. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  16. package/dist/src/mcp-tools/neural-tools.d.ts.map +1 -1
  17. package/dist/src/mcp-tools/neural-tools.js +49 -2
  18. package/dist/src/mcp-tools/neural-tools.js.map +1 -1
  19. package/dist/src/mcp-tools/performance-tools.d.ts.map +1 -1
  20. package/dist/src/mcp-tools/performance-tools.js +7 -5
  21. package/dist/src/mcp-tools/performance-tools.js.map +1 -1
  22. package/dist/src/mcp-tools/system-tools.d.ts.map +1 -1
  23. package/dist/src/mcp-tools/system-tools.js +53 -18
  24. package/dist/src/mcp-tools/system-tools.js.map +1 -1
  25. package/dist/src/memory/sona-optimizer.d.ts +21 -3
  26. package/dist/src/memory/sona-optimizer.d.ts.map +1 -1
  27. package/dist/src/memory/sona-optimizer.js +74 -7
  28. package/dist/src/memory/sona-optimizer.js.map +1 -1
  29. package/dist/src/ruvector/vector-db.d.ts +4 -0
  30. package/dist/src/ruvector/vector-db.d.ts.map +1 -1
  31. package/dist/src/ruvector/vector-db.js +22 -1
  32. package/dist/src/ruvector/vector-db.js.map +1 -1
  33. package/dist/tsconfig.tsbuildinfo +1 -1
  34. 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
- // Generate a simple embedding from query (hash-based for demo)
2811
- const embedding = new Float32Array(384);
2812
- for (let i = 0; i < 384; i++) {
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
- // Generate query/key/value embeddings
2838
- const q = new Float32Array(384);
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
- speedup: implementation.startsWith('real-') ? (mode === 'flash' ? '2.49x-7.47x' : '1.5x-3x') : null,
2887
- memoryReduction: implementation.startsWith('real-') ? (mode === 'flash' ? '50-75%' : '25-40%') : null,
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
  };