agentic-flow 2.0.1-alpha.14 → 2.0.1-alpha.15
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/CHANGELOG.md +35 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/intelligence/EmbeddingService.d.ts +89 -16
- package/dist/intelligence/EmbeddingService.d.ts.map +1 -1
- package/dist/intelligence/EmbeddingService.js +311 -82
- package/dist/intelligence/EmbeddingService.js.map +1 -1
- package/dist/intelligence/embedding-benchmark.js +6 -2
- package/dist/intelligence/embedding-benchmark.js.map +1 -1
- package/package.json +3 -3
- package/wasm/reasoningbank/reasoningbank_wasm_bg.js +2 -2
- package/wasm/reasoningbank/reasoningbank_wasm_bg.wasm +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding-benchmark.js","sourceRoot":"","sources":["../../src/intelligence/embedding-benchmark.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Embedding Benchmark - Compare simple vs ONNX embeddings\n *\n * Run with: npx ts-node src/intelligence/embedding-benchmark.ts\n */\n\nimport { getEmbeddingService, EmbeddingService } from './EmbeddingService.js';\n\nconst TEST_TEXTS = [\n 'Fix a bug in the authentication system',\n 'Implement user login functionality',\n 'Write unit tests for the API',\n 'Refactor the database layer',\n 'Optimize memory usage',\n 'Add dark mode to the UI',\n 'Deploy to production',\n 'Review pull request',\n 'Document the API endpoints',\n 'Set up CI/CD pipeline',\n];\n\nconst SEMANTIC_PAIRS = [\n { a: 'I love dogs', b: 'I adore puppies', expected: 'high' },\n { a: 'Fix authentication bug', b: 'Repair login issue', expected: 'high' },\n { a: 'Write unit tests', b: 'Create test cases', expected: 'high' },\n { a: 'Deploy to production', b: 'The weather is nice', expected: 'low' },\n { a: 'Fix bug', b: 'Add feature', expected: 'medium' },\n { a: 'Machine learning', b: 'Artificial intelligence', expected: 'high' },\n { a: 'Pizza recipe', b: 'Quantum physics', expected: 'low' },\n];\n\nasync function runBenchmark() {\n console.log('='.repeat(60));\n console.log('Embedding Benchmark: Simple vs ONNX');\n console.log('='.repeat(60));\n\n // Benchmark Simple Embeddings\n console.log('\\n--- Simple Embeddings ---');\n process.env.AGENTIC_FLOW_EMBEDDINGS = 'simple';\n EmbeddingService.reset();\n\n const simpleService = getEmbeddingService();\n const simpleResults = await benchmarkService(simpleService, 'simple');\n\n // Benchmark ONNX Embeddings\n console.log('\\n--- ONNX Embeddings ---');\n process.env.AGENTIC_FLOW_EMBEDDINGS = 'onnx';\n EmbeddingService.reset();\n\n const onnxService = getEmbeddingService();\n const onnxResults = await benchmarkService(onnxService, 'onnx');\n\n // Summary\n console.log('\\n' + '='.repeat(60));\n console.log('SUMMARY');\n console.log('='.repeat(60));\n\n console.log(`\n| Metric | Simple | ONNX |\n|-----------------------|-------------|-------------|\n| Avg Latency (cold) | ${simpleResults.avgColdLatency.toFixed(2)}ms | ${onnxResults.avgColdLatency.toFixed(2)}ms |\n| Avg Latency (warm) | ${simpleResults.avgWarmLatency.toFixed(2)}ms | ${onnxResults.avgWarmLatency.toFixed(2)}ms |\n| Batch 10 texts | ${simpleResults.batchLatency.toFixed(2)}ms | ${onnxResults.batchLatency.toFixed(2)}ms |\n| Dimension | ${simpleResults.dimension} | ${onnxResults.dimension} |\n| Semantic Accuracy | ${simpleResults.semanticAccuracy}% | ${onnxResults.semanticAccuracy}% |\n`);\n\n console.log('\\nSemantic Similarity Comparison:');\n console.log('-'.repeat(60));\n for (let i = 0; i < SEMANTIC_PAIRS.length; i++) {\n const pair = SEMANTIC_PAIRS[i];\n console.log(`\"${pair.a}\" vs \"${pair.b}\"`);\n console.log(` Expected: ${pair.expected}`);\n console.log(` Simple: ${simpleResults.similarities[i].toFixed(3)}`);\n console.log(` ONNX: ${onnxResults.similarities[i].toFixed(3)}`);\n console.log();\n }\n\n // Recommendation\n console.log('='.repeat(60));\n console.log('RECOMMENDATION');\n console.log('='.repeat(60));\n\n if (onnxResults.semanticAccuracy > simpleResults.semanticAccuracy + 20) {\n console.log(`\nONNX embeddings provide significantly better semantic accuracy\n(${onnxResults.semanticAccuracy}% vs ${simpleResults.semanticAccuracy}%).\n\nFor tasks requiring semantic understanding (routing, pattern matching),\nuse ONNX embeddings:\n\n export AGENTIC_FLOW_EMBEDDINGS=onnx\n\nNote: First embedding takes ~${(onnxResults.avgColdLatency / 1000).toFixed(1)}s (model loading).\nSubsequent embeddings: ~${onnxResults.avgWarmLatency.toFixed(1)}ms.\n`);\n } else {\n console.log(`\nSimple embeddings are sufficient for your use case.\nSemantic accuracy difference is minimal.\n\nKeep using simple embeddings for maximum speed:\n\n export AGENTIC_FLOW_EMBEDDINGS=simple\n`);\n }\n}\n\nasync function benchmarkService(\n service: EmbeddingService,\n name: string\n): Promise<{\n avgColdLatency: number;\n avgWarmLatency: number;\n batchLatency: number;\n dimension: number;\n semanticAccuracy: number;\n similarities: number[];\n}> {\n // Cold start (first embedding, includes model loading for ONNX)\n console.log(`\\n[${name}] Cold start embedding...`);\n const coldStart = performance.now();\n await service.embed(TEST_TEXTS[0]);\n const coldLatency = performance.now() - coldStart;\n console.log(` Cold latency: ${coldLatency.toFixed(2)}ms`);\n\n // Warm embeddings\n console.log(`[${name}] Warm embeddings (${TEST_TEXTS.length} texts)...`);\n service.clearCache();\n const warmStart = performance.now();\n for (const text of TEST_TEXTS) {\n await service.embed(text);\n }\n const warmTotalLatency = performance.now() - warmStart;\n const avgWarmLatency = warmTotalLatency / TEST_TEXTS.length;\n console.log(` Total: ${warmTotalLatency.toFixed(2)}ms, Avg: ${avgWarmLatency.toFixed(2)}ms`);\n\n // Batch embedding\n console.log(`[${name}] Batch embedding...`);\n service.clearCache();\n const batchStart = performance.now();\n await service.embedBatch(TEST_TEXTS);\n const batchLatency = performance.now() - batchStart;\n console.log(` Batch latency: ${batchLatency.toFixed(2)}ms`);\n\n // Semantic similarity tests\n console.log(`[${name}] Semantic similarity tests...`);\n const similarities: number[] = [];\n let correctCount = 0;\n\n for (const pair of SEMANTIC_PAIRS) {\n const sim = await service.similarity(pair.a, pair.b);\n similarities.push(sim);\n\n // For ONNX (semantic), use proper thresholds\n // For simple (hash-based), it will score incorrectly on unrelated pairs\n const isCorrect =\n (pair.expected === 'high' && sim > 0.5) ||\n (pair.expected === 'medium' && sim >= 0.2 && sim <= 0.6) ||\n (pair.expected === 'low' && sim < 0.3);\n\n if (isCorrect) correctCount++;\n\n console.log(` \"${pair.a.substring(0, 20)}...\" vs \"${pair.b.substring(0, 20)}...\": ${sim.toFixed(3)} (expected: ${pair.expected})`);\n }\n\n const semanticAccuracy = Math.round((correctCount / SEMANTIC_PAIRS.length) * 100);\n console.log(` Semantic accuracy: ${semanticAccuracy}%`);\n\n const stats = service.getStats();\n console.log(` Model: ${stats.modelName || 'N/A'}, SIMD: ${stats.simdAvailable ?? 'N/A'}`);\n\n return {\n avgColdLatency: coldLatency,\n avgWarmLatency,\n batchLatency,\n dimension: stats.dimension,\n semanticAccuracy,\n similarities,\n };\n}\n\n// Run if executed directly\nrunBenchmark().catch(console.error);\n"]}
|
|
1
|
+
{"version":3,"file":"embedding-benchmark.js","sourceRoot":"","sources":["../../src/intelligence/embedding-benchmark.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Embedding Benchmark - Compare simple vs ONNX embeddings\n *\n * Run with: npx ts-node src/intelligence/embedding-benchmark.ts\n */\n\nimport { getEmbeddingService, EmbeddingService } from './EmbeddingService.js';\n\nconst TEST_TEXTS = [\n 'Fix a bug in the authentication system',\n 'Implement user login functionality',\n 'Write unit tests for the API',\n 'Refactor the database layer',\n 'Optimize memory usage',\n 'Add dark mode to the UI',\n 'Deploy to production',\n 'Review pull request',\n 'Document the API endpoints',\n 'Set up CI/CD pipeline',\n];\n\nconst SEMANTIC_PAIRS = [\n { a: 'I love dogs', b: 'I adore puppies', expected: 'high' },\n { a: 'Fix authentication bug', b: 'Repair login issue', expected: 'high' },\n { a: 'Write unit tests', b: 'Create test cases', expected: 'high' },\n { a: 'Deploy to production', b: 'The weather is nice', expected: 'low' },\n { a: 'Fix bug', b: 'Add feature', expected: 'medium' },\n { a: 'Machine learning', b: 'Artificial intelligence', expected: 'high' },\n { a: 'Pizza recipe', b: 'Quantum physics', expected: 'low' },\n];\n\nasync function runBenchmark() {\n console.log('='.repeat(60));\n console.log('Embedding Benchmark: Simple vs ONNX');\n console.log('='.repeat(60));\n\n // Benchmark Simple Embeddings\n console.log('\\n--- Simple Embeddings ---');\n process.env.AGENTIC_FLOW_EMBEDDINGS = 'simple';\n EmbeddingService.reset();\n\n const simpleService = getEmbeddingService();\n const simpleResults = await benchmarkService(simpleService, 'simple');\n\n // Benchmark ONNX Embeddings\n console.log('\\n--- ONNX Embeddings ---');\n process.env.AGENTIC_FLOW_EMBEDDINGS = 'onnx';\n EmbeddingService.reset();\n\n const onnxService = getEmbeddingService();\n const onnxResults = await benchmarkService(onnxService, 'onnx');\n\n // Summary\n console.log('\\n' + '='.repeat(60));\n console.log('SUMMARY');\n console.log('='.repeat(60));\n\n console.log(`\n| Metric | Simple | ONNX |\n|-----------------------|-------------|-------------|\n| Avg Latency (cold) | ${simpleResults.avgColdLatency.toFixed(2)}ms | ${onnxResults.avgColdLatency.toFixed(2)}ms |\n| Avg Latency (warm) | ${simpleResults.avgWarmLatency.toFixed(2)}ms | ${onnxResults.avgWarmLatency.toFixed(2)}ms |\n| Batch 10 texts | ${simpleResults.batchLatency.toFixed(2)}ms | ${onnxResults.batchLatency.toFixed(2)}ms |\n| Dimension | ${simpleResults.dimension} | ${onnxResults.dimension} |\n| Semantic Accuracy | ${simpleResults.semanticAccuracy}% | ${onnxResults.semanticAccuracy}% |\n`);\n\n console.log('\\nSemantic Similarity Comparison:');\n console.log('-'.repeat(60));\n for (let i = 0; i < SEMANTIC_PAIRS.length; i++) {\n const pair = SEMANTIC_PAIRS[i];\n console.log(`\"${pair.a}\" vs \"${pair.b}\"`);\n console.log(` Expected: ${pair.expected}`);\n console.log(` Simple: ${simpleResults.similarities[i].toFixed(3)}`);\n console.log(` ONNX: ${onnxResults.similarities[i].toFixed(3)}`);\n console.log();\n }\n\n // Recommendation\n console.log('='.repeat(60));\n console.log('RECOMMENDATION');\n console.log('='.repeat(60));\n\n if (onnxResults.semanticAccuracy > simpleResults.semanticAccuracy + 20) {\n console.log(`\nONNX embeddings provide significantly better semantic accuracy\n(${onnxResults.semanticAccuracy}% vs ${simpleResults.semanticAccuracy}%).\n\nFor tasks requiring semantic understanding (routing, pattern matching),\nuse ONNX embeddings:\n\n export AGENTIC_FLOW_EMBEDDINGS=onnx\n\nNote: First embedding takes ~${(onnxResults.avgColdLatency / 1000).toFixed(1)}s (model loading).\nSubsequent embeddings: ~${onnxResults.avgWarmLatency.toFixed(1)}ms.\n`);\n } else {\n console.log(`\nSimple embeddings are sufficient for your use case.\nSemantic accuracy difference is minimal.\n\nKeep using simple embeddings for maximum speed:\n\n export AGENTIC_FLOW_EMBEDDINGS=simple\n`);\n }\n}\n\nasync function benchmarkService(\n service: EmbeddingService,\n name: string\n): Promise<{\n avgColdLatency: number;\n avgWarmLatency: number;\n batchLatency: number;\n dimension: number;\n semanticAccuracy: number;\n similarities: number[];\n}> {\n // Cold start (first embedding, includes model loading for ONNX)\n console.log(`\\n[${name}] Cold start embedding...`);\n const coldStart = performance.now();\n await service.embed(TEST_TEXTS[0]);\n const coldLatency = performance.now() - coldStart;\n console.log(` Cold latency: ${coldLatency.toFixed(2)}ms`);\n\n // Warm embeddings\n console.log(`[${name}] Warm embeddings (${TEST_TEXTS.length} texts)...`);\n service.clearCache();\n const warmStart = performance.now();\n for (const text of TEST_TEXTS) {\n await service.embed(text);\n }\n const warmTotalLatency = performance.now() - warmStart;\n const avgWarmLatency = warmTotalLatency / TEST_TEXTS.length;\n console.log(` Total: ${warmTotalLatency.toFixed(2)}ms, Avg: ${avgWarmLatency.toFixed(2)}ms`);\n\n // Batch embedding\n console.log(`[${name}] Batch embedding (10 texts)...`);\n service.clearCache();\n const batchStart = performance.now();\n await service.embedBatch(TEST_TEXTS);\n const batchLatency = performance.now() - batchStart;\n const batchPerText = batchLatency / TEST_TEXTS.length;\n console.log(` Batch latency: ${batchLatency.toFixed(2)}ms (${batchPerText.toFixed(2)}ms per text)`);\n\n // Compare batch vs sequential\n const speedup = avgWarmLatency > 0 ? avgWarmLatency / batchPerText : 0;\n console.log(` Batch speedup: ${speedup.toFixed(1)}x vs sequential`);\n\n // Semantic similarity tests\n console.log(`[${name}] Semantic similarity tests...`);\n const similarities: number[] = [];\n let correctCount = 0;\n\n for (const pair of SEMANTIC_PAIRS) {\n const sim = await service.similarity(pair.a, pair.b);\n similarities.push(sim);\n\n // For ONNX (semantic), use proper thresholds\n // For simple (hash-based), it will score incorrectly on unrelated pairs\n const isCorrect =\n (pair.expected === 'high' && sim > 0.5) ||\n (pair.expected === 'medium' && sim >= 0.2 && sim <= 0.6) ||\n (pair.expected === 'low' && sim < 0.3);\n\n if (isCorrect) correctCount++;\n\n console.log(` \"${pair.a.substring(0, 20)}...\" vs \"${pair.b.substring(0, 20)}...\": ${sim.toFixed(3)} (expected: ${pair.expected})`);\n }\n\n const semanticAccuracy = Math.round((correctCount / SEMANTIC_PAIRS.length) * 100);\n console.log(` Semantic accuracy: ${semanticAccuracy}%`);\n\n const stats = service.getStats();\n console.log(` Model: ${stats.modelName || 'N/A'}, SIMD: ${stats.simdAvailable ?? 'N/A'}`);\n\n return {\n avgColdLatency: coldLatency,\n avgWarmLatency,\n batchLatency,\n dimension: stats.dimension,\n semanticAccuracy,\n similarities,\n };\n}\n\n// Run if executed directly\nrunBenchmark().catch(console.error);\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentic-flow",
|
|
3
|
-
"version": "2.0.1-alpha.
|
|
3
|
+
"version": "2.0.1-alpha.15",
|
|
4
4
|
"description": "Production-ready AI agent orchestration platform with 66 specialized agents, 213 MCP tools, ReasoningBank learning memory, and autonomous multi-agent swarms. Built by @ruvnet with Claude Agent SDK, neural networks, memory persistence, GitHub integration, and distributed consensus protocols.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -158,8 +158,8 @@
|
|
|
158
158
|
"fastmcp": "^3.19.0",
|
|
159
159
|
"http-proxy-middleware": "^3.0.5",
|
|
160
160
|
"onnxruntime-node": "^1.23.2",
|
|
161
|
-
"ruvector": "^0.1.
|
|
162
|
-
"ruvector-onnx-embeddings-wasm": "^0.1.
|
|
161
|
+
"ruvector": "^0.1.61",
|
|
162
|
+
"ruvector-onnx-embeddings-wasm": "^0.1.2",
|
|
163
163
|
"tiktoken": "^1.0.22",
|
|
164
164
|
"ulid": "^3.0.1",
|
|
165
165
|
"ws": "^8.18.3",
|
|
@@ -258,7 +258,7 @@ export function log(message) {
|
|
|
258
258
|
wasm.log(ptr0, len0);
|
|
259
259
|
}
|
|
260
260
|
|
|
261
|
-
function
|
|
261
|
+
function __wbg_adapter_4(arg0, arg1, arg2) {
|
|
262
262
|
wasm.__wbindgen_export_5(arg0, arg1, addHeapObject(arg2));
|
|
263
263
|
}
|
|
264
264
|
|
|
@@ -540,7 +540,7 @@ export function __wbindgen_cast_2241b6af4c4b2941(arg0, arg1) {
|
|
|
540
540
|
|
|
541
541
|
export function __wbindgen_cast_8eb6fd44e7238d11(arg0, arg1) {
|
|
542
542
|
// Cast intrinsic for `Closure(Closure { dtor_idx: 62, function: Function { arguments: [Externref], shim_idx: 63, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
|
|
543
|
-
const ret = makeMutClosure(arg0, arg1, 62,
|
|
543
|
+
const ret = makeMutClosure(arg0, arg1, 62, __wbg_adapter_4);
|
|
544
544
|
return addHeapObject(ret);
|
|
545
545
|
};
|
|
546
546
|
|
|
Binary file
|