kynjal-cli 4.0.0 → 4.0.1
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/appliance/gguf-engine.d.ts +91 -0
- package/dist/src/appliance/gguf-engine.d.ts.map +1 -0
- package/dist/src/appliance/gguf-engine.js +286 -525
- package/dist/src/appliance/gguf-engine.js.map +1 -1
- package/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
- package/dist/src/appliance/ruvllm-bridge.d.ts.map +1 -0
- package/dist/src/appliance/ruvllm-bridge.js +203 -403
- package/dist/src/appliance/ruvllm-bridge.js.map +1 -1
- package/dist/src/appliance/rvfa-builder.d.ts +44 -0
- package/dist/src/appliance/rvfa-builder.d.ts.map +1 -0
- package/dist/src/appliance/rvfa-builder.js +154 -208
- package/dist/src/appliance/rvfa-builder.js.map +1 -1
- package/dist/src/appliance/rvfa-distribution.d.ts +97 -0
- package/dist/src/appliance/rvfa-distribution.d.ts.map +1 -0
- package/dist/src/appliance/rvfa-distribution.js +260 -423
- package/dist/src/appliance/rvfa-distribution.js.map +1 -1
- package/dist/src/appliance/rvfa-format.d.ts +111 -0
- package/dist/src/appliance/rvfa-format.d.ts.map +1 -0
- package/dist/src/appliance/rvfa-format.js +128 -200
- package/dist/src/appliance/rvfa-format.js.map +1 -1
- package/dist/src/appliance/rvfa-runner.d.ts +69 -0
- package/dist/src/appliance/rvfa-runner.d.ts.map +1 -0
- package/dist/src/appliance/rvfa-runner.js +168 -304
- package/dist/src/appliance/rvfa-runner.js.map +1 -1
- package/dist/src/appliance/rvfa-signing.d.ts +123 -0
- package/dist/src/appliance/rvfa-signing.d.ts.map +1 -0
- package/dist/src/appliance/rvfa-signing.js +173 -295
- package/dist/src/appliance/rvfa-signing.js.map +1 -1
- package/dist/src/benchmarks/pretrain/index.d.ts +58 -0
- package/dist/src/benchmarks/pretrain/index.d.ts.map +1 -0
- package/dist/src/benchmarks/pretrain/index.js +331 -542
- package/dist/src/benchmarks/pretrain/index.js.map +1 -1
- package/dist/src/commands/agent.js +574 -697
- package/dist/src/commands/agent.js.map +1 -1
- package/dist/src/commands/analyze.js +1218 -1548
- package/dist/src/commands/analyze.js.map +1 -1
- package/dist/src/commands/appliance-advanced.js +158 -267
- package/dist/src/commands/appliance-advanced.js.map +1 -1
- package/dist/src/commands/appliance.js +318 -493
- package/dist/src/commands/appliance.js.map +1 -1
- package/dist/src/commands/benchmark.js +372 -523
- package/dist/src/commands/benchmark.js.map +1 -1
- package/dist/src/commands/claims.js +274 -364
- package/dist/src/commands/claims.js.map +1 -1
- package/dist/src/commands/cleanup.js +113 -157
- package/dist/src/commands/cleanup.js.map +1 -1
- package/dist/src/commands/completions.js +477 -118
- package/dist/src/commands/completions.js.map +1 -1
- package/dist/src/commands/config.js +237 -303
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/daemon.js +487 -596
- package/dist/src/commands/daemon.js.map +1 -1
- package/dist/src/commands/deployment.js +194 -275
- package/dist/src/commands/deployment.js.map +1 -1
- package/dist/src/commands/doctor.js +504 -686
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/embeddings.js +1293 -1543
- package/dist/src/commands/embeddings.js.map +1 -1
- package/dist/src/commands/guidance.js +449 -596
- package/dist/src/commands/guidance.js.map +1 -1
- package/dist/src/commands/hive-mind.js +854 -938
- package/dist/src/commands/hive-mind.js.map +1 -1
- package/dist/src/commands/hooks.js +3112 -3519
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/index.d.ts +115 -0
- package/dist/src/commands/index.d.ts.map +1 -0
- package/dist/src/commands/index.js +126 -308
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/init.js +788 -940
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/issues.js +383 -558
- package/dist/src/commands/issues.js.map +1 -1
- package/dist/src/commands/mcp.js +493 -605
- package/dist/src/commands/mcp.js.map +1 -1
- package/dist/src/commands/memory.js +833 -1026
- package/dist/src/commands/memory.js.map +1 -1
- package/dist/src/commands/migrate.js +282 -347
- package/dist/src/commands/migrate.js.map +1 -1
- package/dist/src/commands/neural.js +1289 -1563
- package/dist/src/commands/neural.js.map +1 -1
- package/dist/src/commands/performance.js +497 -643
- package/dist/src/commands/performance.js.map +1 -1
- package/dist/src/commands/plugins.js +668 -841
- package/dist/src/commands/plugins.js.map +1 -1
- package/dist/src/commands/process.js +392 -447
- package/dist/src/commands/process.js.map +1 -1
- package/dist/src/commands/progress.js +162 -256
- package/dist/src/commands/progress.js.map +1 -1
- package/dist/src/commands/providers.js +150 -220
- package/dist/src/commands/providers.js.map +1 -1
- package/dist/src/commands/route.js +520 -665
- package/dist/src/commands/route.js.map +1 -1
- package/dist/src/commands/ruvector/backup.js +505 -651
- package/dist/src/commands/ruvector/backup.js.map +1 -1
- package/dist/src/commands/ruvector/benchmark.js +349 -401
- package/dist/src/commands/ruvector/benchmark.js.map +1 -1
- package/dist/src/commands/ruvector/import.js +224 -266
- package/dist/src/commands/ruvector/import.js.map +1 -1
- package/dist/src/commands/ruvector/index.js +37 -75
- package/dist/src/commands/ruvector/index.js.map +1 -1
- package/dist/src/commands/ruvector/init.js +336 -359
- package/dist/src/commands/ruvector/init.js.map +1 -1
- package/dist/src/commands/ruvector/migrate.js +335 -322
- package/dist/src/commands/ruvector/migrate.js.map +1 -1
- package/dist/src/commands/ruvector/optimize.js +375 -431
- package/dist/src/commands/ruvector/optimize.js.map +1 -1
- package/dist/src/commands/ruvector/setup.js +703 -117
- package/dist/src/commands/ruvector/setup.js.map +1 -1
- package/dist/src/commands/ruvector/status.js +364 -419
- package/dist/src/commands/ruvector/status.js.map +1 -1
- package/dist/src/commands/security.js +485 -608
- package/dist/src/commands/security.js.map +1 -1
- package/dist/src/commands/session.js +504 -626
- package/dist/src/commands/session.js.map +1 -1
- package/dist/src/commands/start.js +267 -364
- package/dist/src/commands/start.js.map +1 -1
- package/dist/src/commands/status.js +380 -486
- package/dist/src/commands/status.js.map +1 -1
- package/dist/src/commands/swarm.js +408 -488
- package/dist/src/commands/swarm.js.map +1 -1
- package/dist/src/commands/task.js +423 -538
- package/dist/src/commands/task.js.map +1 -1
- package/dist/src/commands/transfer-store.js +322 -412
- package/dist/src/commands/transfer-store.js.map +1 -1
- package/dist/src/commands/update.js +196 -291
- package/dist/src/commands/update.js.map +1 -1
- package/dist/src/commands/workflow.js +386 -486
- package/dist/src/commands/workflow.js.map +1 -1
- package/dist/src/config-adapter.d.ts +15 -0
- package/dist/src/config-adapter.d.ts.map +1 -0
- package/dist/src/config-adapter.js +38 -39
- package/dist/src/config-adapter.js.map +1 -1
- package/dist/src/index.d.ts +77 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +309 -411
- package/dist/src/index.js.map +1 -1
- package/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
- package/dist/src/infrastructure/in-memory-repositories.d.ts.map +1 -0
- package/dist/src/infrastructure/in-memory-repositories.js +246 -507
- package/dist/src/infrastructure/in-memory-repositories.js.map +1 -1
- package/dist/src/init/claudemd-generator.d.ts +25 -0
- package/dist/src/init/claudemd-generator.d.ts.map +1 -0
- package/dist/src/init/claudemd-generator.js +368 -78
- package/dist/src/init/claudemd-generator.js.map +1 -1
- package/dist/src/init/executor.d.ts +41 -0
- package/dist/src/init/executor.d.ts.map +1 -0
- package/dist/src/init/executor.js +1307 -996
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/helpers-generator.d.ts +60 -0
- package/dist/src/init/helpers-generator.d.ts.map +1 -0
- package/dist/src/init/helpers-generator.js +657 -12
- package/dist/src/init/helpers-generator.js.map +1 -1
- package/dist/src/init/index.d.ts +1 -1
- package/dist/src/init/index.d.ts.map +1 -1
- package/dist/src/init/index.js +1 -1
- package/dist/src/init/index.js.map +1 -1
- package/dist/src/init/mcp-generator.js +33 -37
- package/dist/src/init/mcp-generator.js.map +1 -1
- package/dist/src/init/settings-generator.js +76 -77
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/statusline-generator.js +801 -3
- package/dist/src/init/statusline-generator.js.map +1 -1
- package/dist/src/init/types.d.ts +1 -1
- package/dist/src/init/types.d.ts.map +1 -1
- package/dist/src/init/types.js +76 -59
- package/dist/src/init/types.js.map +1 -1
- package/dist/src/mcp-client.d.ts +92 -0
- package/dist/src/mcp-client.d.ts.map +1 -0
- package/dist/src/mcp-client.js +81 -125
- package/dist/src/mcp-client.js.map +1 -1
- package/dist/src/mcp-server.d.ts +161 -0
- package/dist/src/mcp-server.d.ts.map +1 -0
- package/dist/src/mcp-server.js +470 -757
- package/dist/src/mcp-server.js.map +1 -1
- package/dist/src/mcp-tools/agent-tools.js +391 -492
- package/dist/src/mcp-tools/agent-tools.js.map +1 -1
- package/dist/src/mcp-tools/agentdb-tools.js +332 -533
- package/dist/src/mcp-tools/agentdb-tools.js.map +1 -1
- package/dist/src/mcp-tools/analyze-tools.js +172 -236
- package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
- package/dist/src/mcp-tools/auto-install.d.ts +83 -0
- package/dist/src/mcp-tools/auto-install.d.ts.map +1 -0
- package/dist/src/mcp-tools/auto-install.js +80 -142
- package/dist/src/mcp-tools/auto-install.js.map +1 -1
- package/dist/src/mcp-tools/browser-tools.js +252 -375
- package/dist/src/mcp-tools/browser-tools.js.map +1 -1
- package/dist/src/mcp-tools/claims-tools.js +473 -565
- package/dist/src/mcp-tools/claims-tools.js.map +1 -1
- package/dist/src/mcp-tools/config-tools.js +197 -272
- package/dist/src/mcp-tools/config-tools.js.map +1 -1
- package/dist/src/mcp-tools/coordination-tools.js +500 -572
- package/dist/src/mcp-tools/coordination-tools.js.map +1 -1
- package/dist/src/mcp-tools/daa-tools.js +286 -364
- package/dist/src/mcp-tools/daa-tools.js.map +1 -1
- package/dist/src/mcp-tools/embeddings-tools.js +582 -693
- package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
- package/dist/src/mcp-tools/github-tools.js +260 -311
- package/dist/src/mcp-tools/github-tools.js.map +1 -1
- package/dist/src/mcp-tools/hive-mind-tools.js +573 -640
- package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.js +2215 -2648
- package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
- package/dist/src/mcp-tools/memory-tools.js +350 -505
- package/dist/src/mcp-tools/memory-tools.js.map +1 -1
- package/dist/src/mcp-tools/neural-tools.js +315 -412
- package/dist/src/mcp-tools/neural-tools.js.map +1 -1
- package/dist/src/mcp-tools/performance-tools.js +420 -480
- package/dist/src/mcp-tools/performance-tools.js.map +1 -1
- package/dist/src/mcp-tools/progress-tools.js +204 -278
- package/dist/src/mcp-tools/progress-tools.js.map +1 -1
- package/dist/src/mcp-tools/ruvllm-tools.js +163 -279
- package/dist/src/mcp-tools/ruvllm-tools.js.map +1 -1
- package/dist/src/mcp-tools/security-tools.js +297 -429
- package/dist/src/mcp-tools/security-tools.js.map +1 -1
- package/dist/src/mcp-tools/session-tools.js +185 -234
- package/dist/src/mcp-tools/session-tools.js.map +1 -1
- package/dist/src/mcp-tools/swarm-tools.js +207 -260
- package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
- package/dist/src/mcp-tools/system-tools.js +276 -325
- package/dist/src/mcp-tools/system-tools.js.map +1 -1
- package/dist/src/mcp-tools/task-tools.js +270 -336
- package/dist/src/mcp-tools/task-tools.js.map +1 -1
- package/dist/src/mcp-tools/terminal-tools.js +148 -196
- package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
- package/dist/src/mcp-tools/transfer-tools.js +186 -333
- package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
- package/dist/src/mcp-tools/types.d.ts +31 -0
- package/dist/src/mcp-tools/types.d.ts.map +1 -0
- package/dist/src/mcp-tools/wasm-agent-tools.js +133 -280
- package/dist/src/mcp-tools/wasm-agent-tools.js.map +1 -1
- package/dist/src/mcp-tools/workflow-tools.js +405 -450
- package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
- package/dist/src/memory/ewc-consolidation.d.ts +295 -0
- package/dist/src/memory/ewc-consolidation.d.ts.map +1 -0
- package/dist/src/memory/ewc-consolidation.js +190 -303
- package/dist/src/memory/ewc-consolidation.js.map +1 -1
- package/dist/src/memory/intelligence.d.ts +338 -0
- package/dist/src/memory/intelligence.d.ts.map +1 -0
- package/dist/src/memory/intelligence.js +569 -794
- package/dist/src/memory/intelligence.js.map +1 -1
- package/dist/src/memory/memory-bridge.d.ts +407 -0
- package/dist/src/memory/memory-bridge.d.ts.map +1 -0
- package/dist/src/memory/memory-bridge.js +1170 -1640
- package/dist/src/memory/memory-bridge.js.map +1 -1
- package/dist/src/memory/memory-initializer.d.ts +412 -0
- package/dist/src/memory/memory-initializer.d.ts.map +1 -0
- package/dist/src/memory/memory-initializer.js +1836 -1851
- package/dist/src/memory/memory-initializer.js.map +1 -1
- package/dist/src/memory/sona-optimizer.d.ts +227 -0
- package/dist/src/memory/sona-optimizer.d.ts.map +1 -0
- package/dist/src/memory/sona-optimizer.js +199 -329
- package/dist/src/memory/sona-optimizer.js.map +1 -1
- package/dist/src/output.d.ts +2 -2
- package/dist/src/output.d.ts.map +1 -1
- package/dist/src/output.js +242 -272
- package/dist/src/output.js.map +1 -1
- package/dist/src/parser.d.ts +51 -0
- package/dist/src/parser.d.ts.map +1 -0
- package/dist/src/parser.js +140 -187
- package/dist/src/parser.js.map +1 -1
- package/dist/src/plugins/manager.d.ts +133 -0
- package/dist/src/plugins/manager.d.ts.map +1 -0
- package/dist/src/plugins/manager.js +285 -521
- package/dist/src/plugins/manager.js.map +1 -1
- package/dist/src/plugins/store/discovery.d.ts +88 -0
- package/dist/src/plugins/store/discovery.d.ts.map +1 -0
- package/dist/src/plugins/store/discovery.js +271 -358
- package/dist/src/plugins/store/discovery.js.map +1 -1
- package/dist/src/plugins/store/index.d.ts +76 -0
- package/dist/src/plugins/store/index.d.ts.map +1 -0
- package/dist/src/plugins/store/index.js +48 -105
- package/dist/src/plugins/store/index.js.map +1 -1
- package/dist/src/plugins/store/search.d.ts +46 -0
- package/dist/src/plugins/store/search.d.ts.map +1 -0
- package/dist/src/plugins/store/search.js +69 -107
- package/dist/src/plugins/store/search.js.map +1 -1
- package/dist/src/plugins/store/types.d.ts +274 -0
- package/dist/src/plugins/store/types.d.ts.map +1 -0
- package/dist/src/plugins/tests/demo-plugin-store.js +113 -160
- package/dist/src/plugins/tests/demo-plugin-store.js.map +1 -1
- package/dist/src/plugins/tests/standalone-test.js +172 -223
- package/dist/src/plugins/tests/standalone-test.js.map +1 -1
- package/dist/src/plugins/tests/test-plugin-store.js +190 -228
- package/dist/src/plugins/tests/test-plugin-store.js.map +1 -1
- package/dist/src/production/circuit-breaker.d.ts +101 -0
- package/dist/src/production/circuit-breaker.d.ts.map +1 -0
- package/dist/src/production/circuit-breaker.js +62 -126
- package/dist/src/production/circuit-breaker.js.map +1 -1
- package/dist/src/production/error-handler.d.ts +92 -0
- package/dist/src/production/error-handler.d.ts.map +1 -0
- package/dist/src/production/error-handler.js +86 -156
- package/dist/src/production/error-handler.js.map +1 -1
- package/dist/src/production/monitoring.d.ts +161 -0
- package/dist/src/production/monitoring.d.ts.map +1 -0
- package/dist/src/production/monitoring.js +139 -220
- package/dist/src/production/monitoring.js.map +1 -1
- package/dist/src/production/rate-limiter.d.ts +80 -0
- package/dist/src/production/rate-limiter.d.ts.map +1 -0
- package/dist/src/production/rate-limiter.js +74 -93
- package/dist/src/production/rate-limiter.js.map +1 -1
- package/dist/src/production/retry.d.ts +48 -0
- package/dist/src/production/retry.d.ts.map +1 -0
- package/dist/src/production/retry.js +75 -167
- package/dist/src/production/retry.js.map +1 -1
- package/dist/src/prompt.d.ts +44 -0
- package/dist/src/prompt.d.ts.map +1 -0
- package/dist/src/prompt.js +436 -560
- package/dist/src/prompt.js.map +1 -1
- package/dist/src/runtime/headless.d.ts +60 -0
- package/dist/src/runtime/headless.d.ts.map +1 -0
- package/dist/src/runtime/headless.js +197 -286
- package/dist/src/runtime/headless.js.map +1 -1
- package/dist/src/ruvector/agent-wasm.d.ts +182 -0
- package/dist/src/ruvector/agent-wasm.d.ts.map +1 -0
- package/dist/src/ruvector/agent-wasm.js +156 -351
- package/dist/src/ruvector/agent-wasm.js.map +1 -1
- package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
- package/dist/src/ruvector/ast-analyzer.d.ts.map +1 -0
- package/dist/src/ruvector/ast-analyzer.js +145 -232
- package/dist/src/ruvector/ast-analyzer.js.map +1 -1
- package/dist/src/ruvector/coverage-router.d.ts +160 -0
- package/dist/src/ruvector/coverage-router.d.ts.map +1 -0
- package/dist/src/ruvector/coverage-router.js +287 -419
- package/dist/src/ruvector/coverage-router.js.map +1 -1
- package/dist/src/ruvector/coverage-tools.js +56 -101
- package/dist/src/ruvector/coverage-tools.js.map +1 -1
- package/dist/src/ruvector/diff-classifier.d.ts +175 -0
- package/dist/src/ruvector/diff-classifier.d.ts.map +1 -0
- package/dist/src/ruvector/diff-classifier.js +324 -451
- package/dist/src/ruvector/diff-classifier.js.map +1 -1
- package/dist/src/ruvector/enhanced-model-router.d.ts +146 -0
- package/dist/src/ruvector/enhanced-model-router.d.ts.map +1 -0
- package/dist/src/ruvector/enhanced-model-router.js +260 -336
- package/dist/src/ruvector/enhanced-model-router.js.map +1 -1
- package/dist/src/ruvector/flash-attention.d.ts +195 -0
- package/dist/src/ruvector/flash-attention.d.ts.map +1 -0
- package/dist/src/ruvector/flash-attention.js +223 -254
- package/dist/src/ruvector/flash-attention.js.map +1 -1
- package/dist/src/ruvector/graph-analyzer.d.ts +187 -0
- package/dist/src/ruvector/graph-analyzer.d.ts.map +1 -0
- package/dist/src/ruvector/graph-analyzer.js +486 -680
- package/dist/src/ruvector/graph-analyzer.js.map +1 -1
- package/dist/src/ruvector/index.d.ts +40 -0
- package/dist/src/ruvector/index.d.ts.map +1 -0
- package/dist/src/ruvector/index.js +36 -106
- package/dist/src/ruvector/index.js.map +1 -1
- package/dist/src/ruvector/lora-adapter.d.ts +218 -0
- package/dist/src/ruvector/lora-adapter.d.ts.map +1 -0
- package/dist/src/ruvector/lora-adapter.js +155 -248
- package/dist/src/ruvector/lora-adapter.js.map +1 -1
- package/dist/src/ruvector/model-router.d.ts +220 -0
- package/dist/src/ruvector/model-router.d.ts.map +1 -0
- package/dist/src/ruvector/model-router.js +175 -248
- package/dist/src/ruvector/model-router.js.map +1 -1
- package/dist/src/ruvector/moe-router.d.ts +206 -0
- package/dist/src/ruvector/moe-router.d.ts.map +1 -0
- package/dist/src/ruvector/moe-router.js +228 -286
- package/dist/src/ruvector/moe-router.js.map +1 -1
- package/dist/src/ruvector/q-learning-router.d.ts +211 -0
- package/dist/src/ruvector/q-learning-router.d.ts.map +1 -0
- package/dist/src/ruvector/q-learning-router.js +257 -338
- package/dist/src/ruvector/q-learning-router.js.map +1 -1
- package/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
- package/dist/src/ruvector/ruvllm-wasm.d.ts.map +1 -0
- package/dist/src/ruvector/ruvllm-wasm.js +270 -434
- package/dist/src/ruvector/ruvllm-wasm.js.map +1 -1
- package/dist/src/ruvector/semantic-router.d.ts +77 -0
- package/dist/src/ruvector/semantic-router.d.ts.map +1 -0
- package/dist/src/ruvector/semantic-router.js +60 -67
- package/dist/src/ruvector/semantic-router.js.map +1 -1
- package/dist/src/ruvector/vector-db.d.ts +69 -0
- package/dist/src/ruvector/vector-db.d.ts.map +1 -0
- package/dist/src/ruvector/vector-db.js +119 -205
- package/dist/src/ruvector/vector-db.js.map +1 -1
- package/dist/src/services/agentic-flow-bridge.d.ts +50 -0
- package/dist/src/services/agentic-flow-bridge.d.ts.map +1 -0
- package/dist/src/services/agentic-flow-bridge.js +32 -105
- package/dist/src/services/agentic-flow-bridge.js.map +1 -1
- package/dist/src/services/claim-service.d.ts +204 -0
- package/dist/src/services/claim-service.d.ts.map +1 -0
- package/dist/src/services/claim-service.js +615 -940
- package/dist/src/services/claim-service.js.map +1 -1
- package/dist/src/services/container-worker-pool.d.ts +197 -0
- package/dist/src/services/container-worker-pool.d.ts.map +1 -0
- package/dist/src/services/container-worker-pool.js +398 -666
- package/dist/src/services/container-worker-pool.js.map +1 -1
- package/dist/src/services/headless-worker-executor.d.ts +304 -0
- package/dist/src/services/headless-worker-executor.d.ts.map +1 -0
- package/dist/src/services/headless-worker-executor.js +441 -467
- package/dist/src/services/headless-worker-executor.js.map +1 -1
- package/dist/src/services/index.d.ts +4 -4
- package/dist/src/services/index.d.ts.map +1 -1
- package/dist/src/services/index.js +4 -4
- package/dist/src/services/index.js.map +1 -1
- package/dist/src/services/registry-api.d.ts +58 -0
- package/dist/src/services/registry-api.d.ts.map +1 -0
- package/dist/src/services/registry-api.js +92 -200
- package/dist/src/services/registry-api.js.map +1 -1
- package/dist/src/services/ruvector-training.d.ts +222 -0
- package/dist/src/services/ruvector-training.d.ts.map +1 -0
- package/dist/src/services/ruvector-training.js +257 -337
- package/dist/src/services/ruvector-training.js.map +1 -1
- package/dist/src/services/worker-daemon.d.ts +228 -0
- package/dist/src/services/worker-daemon.d.ts.map +1 -0
- package/dist/src/services/worker-daemon.js +591 -849
- package/dist/src/services/worker-daemon.js.map +1 -1
- package/dist/src/services/worker-queue.d.ts +194 -0
- package/dist/src/services/worker-queue.d.ts.map +1 -0
- package/dist/src/services/worker-queue.js +331 -548
- package/dist/src/services/worker-queue.js.map +1 -1
- package/dist/src/suggest.d.ts +53 -0
- package/dist/src/suggest.d.ts.map +1 -0
- package/dist/src/suggest.js +45 -55
- package/dist/src/suggest.js.map +1 -1
- package/dist/src/transfer/anonymization/index.js +29 -37
- package/dist/src/transfer/anonymization/index.js.map +1 -1
- package/dist/src/transfer/deploy-seraphine.js +128 -155
- package/dist/src/transfer/deploy-seraphine.js.map +1 -1
- package/dist/src/transfer/export.d.ts +25 -0
- package/dist/src/transfer/export.d.ts.map +1 -0
- package/dist/src/transfer/export.js +84 -142
- package/dist/src/transfer/export.js.map +1 -1
- package/dist/src/transfer/index.d.ts +1 -1
- package/dist/src/transfer/index.d.ts.map +1 -1
- package/dist/src/transfer/index.js +0 -2
- package/dist/src/transfer/index.js.map +1 -1
- package/dist/src/transfer/ipfs/client.d.ts +109 -0
- package/dist/src/transfer/ipfs/client.d.ts.map +1 -0
- package/dist/src/transfer/ipfs/client.js +187 -337
- package/dist/src/transfer/ipfs/client.js.map +1 -1
- package/dist/src/transfer/ipfs/upload.d.ts +95 -0
- package/dist/src/transfer/ipfs/upload.d.ts.map +1 -0
- package/dist/src/transfer/ipfs/upload.js +288 -434
- package/dist/src/transfer/ipfs/upload.js.map +1 -1
- package/dist/src/transfer/models/seraphine.d.ts +72 -0
- package/dist/src/transfer/models/seraphine.d.ts.map +1 -0
- package/dist/src/transfer/models/seraphine.js +55 -55
- package/dist/src/transfer/models/seraphine.js.map +1 -1
- package/dist/src/transfer/serialization/cfp.d.ts +49 -0
- package/dist/src/transfer/serialization/cfp.d.ts.map +1 -0
- package/dist/src/transfer/serialization/cfp.js +30 -31
- package/dist/src/transfer/serialization/cfp.js.map +1 -1
- package/dist/src/transfer/storage/gcs.d.ts +82 -0
- package/dist/src/transfer/storage/gcs.d.ts.map +1 -0
- package/dist/src/transfer/storage/gcs.js +165 -232
- package/dist/src/transfer/storage/gcs.js.map +1 -1
- package/dist/src/transfer/store/discovery.d.ts +84 -0
- package/dist/src/transfer/store/discovery.d.ts.map +1 -0
- package/dist/src/transfer/store/discovery.js +239 -349
- package/dist/src/transfer/store/discovery.js.map +1 -1
- package/dist/src/transfer/store/download.d.ts +70 -0
- package/dist/src/transfer/store/download.d.ts.map +1 -0
- package/dist/src/transfer/store/download.js +243 -365
- package/dist/src/transfer/store/download.js.map +1 -1
- package/dist/src/transfer/store/index.d.ts +84 -0
- package/dist/src/transfer/store/index.d.ts.map +1 -0
- package/dist/src/transfer/store/index.js +63 -130
- package/dist/src/transfer/store/index.js.map +1 -1
- package/dist/src/transfer/store/publish.d.ts +76 -0
- package/dist/src/transfer/store/publish.d.ts.map +1 -0
- package/dist/src/transfer/store/publish.js +184 -258
- package/dist/src/transfer/store/publish.js.map +1 -1
- package/dist/src/transfer/store/registry.js +50 -72
- package/dist/src/transfer/store/registry.js.map +1 -1
- package/dist/src/transfer/store/search.d.ts +54 -0
- package/dist/src/transfer/store/search.d.ts.map +1 -0
- package/dist/src/transfer/store/search.js +64 -96
- package/dist/src/transfer/store/search.js.map +1 -1
- package/dist/src/transfer/store/tests/standalone-test.js +174 -231
- package/dist/src/transfer/store/tests/standalone-test.js.map +1 -1
- package/dist/src/transfer/test-seraphine.js +95 -130
- package/dist/src/transfer/test-seraphine.js.map +1 -1
- package/dist/src/transfer/tests/test-store.js +194 -239
- package/dist/src/transfer/tests/test-store.js.map +1 -1
- package/dist/src/transfer/types.d.ts +245 -0
- package/dist/src/transfer/types.d.ts.map +1 -0
- package/dist/src/types.d.ts +198 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +26 -55
- package/dist/src/types.js.map +1 -1
- package/dist/src/update/checker.d.ts +34 -0
- package/dist/src/update/checker.d.ts.map +1 -0
- package/dist/src/update/checker.js +106 -183
- package/dist/src/update/checker.js.map +1 -1
- package/dist/src/update/executor.d.ts +32 -0
- package/dist/src/update/executor.d.ts.map +1 -0
- package/dist/src/update/executor.js +135 -198
- package/dist/src/update/executor.js.map +1 -1
- package/dist/src/update/index.d.ts +33 -0
- package/dist/src/update/index.d.ts.map +1 -0
- package/dist/src/update/index.js +38 -85
- package/dist/src/update/index.js.map +1 -1
- package/dist/src/update/rate-limiter.d.ts +20 -0
- package/dist/src/update/rate-limiter.d.ts.map +1 -0
- package/dist/src/update/rate-limiter.js +19 -31
- package/dist/src/update/rate-limiter.js.map +1 -1
- package/dist/src/update/validator.d.ts +17 -0
- package/dist/src/update/validator.d.ts.map +1 -0
- package/dist/src/update/validator.js +38 -64
- package/dist/src/update/validator.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -4,574 +4,425 @@
|
|
|
4
4
|
*
|
|
5
5
|
* @module v3/cli/commands/benchmark
|
|
6
6
|
*/
|
|
7
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
11
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
12
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
13
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
17
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
18
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
19
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
20
|
-
function step(op) {
|
|
21
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
22
|
-
while (_) try {
|
|
23
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
24
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
25
|
-
switch (op[0]) {
|
|
26
|
-
case 0: case 1: t = op; break;
|
|
27
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
28
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
29
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
30
|
-
default:
|
|
31
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
32
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
33
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
34
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
35
|
-
if (t[2]) _.ops.pop();
|
|
36
|
-
_.trys.pop(); continue;
|
|
37
|
-
}
|
|
38
|
-
op = body.call(thisArg, _);
|
|
39
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
40
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
44
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
45
|
-
if (ar || !(i in from)) {
|
|
46
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
47
|
-
ar[i] = from[i];
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
51
|
-
};
|
|
52
7
|
import { output } from '../output.js';
|
|
53
8
|
import { writeFileSync, existsSync, mkdirSync } from 'node:fs';
|
|
54
9
|
import { join } from 'node:path';
|
|
55
10
|
// ============================================================================
|
|
56
11
|
// Pretrain Benchmark Subcommand
|
|
57
12
|
// ============================================================================
|
|
58
|
-
|
|
13
|
+
const pretrainCommand = {
|
|
59
14
|
name: 'pretrain',
|
|
60
15
|
description: 'Benchmark self-learning pre-training system (SONA, EWC++, MoE)',
|
|
61
16
|
options: [
|
|
62
|
-
{ name: 'iterations', short: 'i', type: 'number', description: 'Benchmark iterations',
|
|
63
|
-
{ name: 'warmup', short: 'w', type: 'number', description: 'Warmup iterations',
|
|
64
|
-
{ name: 'output', short: 'o', type: 'string', description: 'Output format: text, json',
|
|
17
|
+
{ name: 'iterations', short: 'i', type: 'number', description: 'Benchmark iterations', default: '100' },
|
|
18
|
+
{ name: 'warmup', short: 'w', type: 'number', description: 'Warmup iterations', default: '10' },
|
|
19
|
+
{ name: 'output', short: 'o', type: 'string', description: 'Output format: text, json', default: 'text' },
|
|
65
20
|
{ name: 'save', short: 's', type: 'string', description: 'Save results to file' },
|
|
66
|
-
{ name: 'verbose', short: 'v', type: 'boolean', description: 'Verbose output',
|
|
21
|
+
{ name: 'verbose', short: 'v', type: 'boolean', description: 'Verbose output', default: 'false' },
|
|
67
22
|
],
|
|
68
23
|
examples: [
|
|
69
24
|
{ command: 'claude-flow benchmark pretrain', description: 'Run pre-training benchmarks' },
|
|
70
25
|
{ command: 'claude-flow benchmark pretrain -i 500 --save results.json', description: 'Extended benchmark with results saved' },
|
|
71
26
|
{ command: 'claude-flow benchmark pretrain -o json', description: 'Output results as JSON' },
|
|
72
27
|
],
|
|
73
|
-
action:
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
// Save to file if requested
|
|
101
|
-
if (saveFile) {
|
|
102
|
-
resultsDir = join(process.cwd(), '.claude-flow', 'benchmarks');
|
|
103
|
-
if (!existsSync(resultsDir)) {
|
|
104
|
-
mkdirSync(resultsDir, { recursive: true });
|
|
105
|
-
}
|
|
106
|
-
savePath = saveFile.startsWith('/') ? saveFile : join(resultsDir, saveFile);
|
|
107
|
-
writeFileSync(savePath, JSON.stringify(results, null, 2));
|
|
108
|
-
output.writeln(output.success("Results saved to " + savePath));
|
|
109
|
-
}
|
|
110
|
-
allPassed = results.results.every(function (r) { return r.targetMet; });
|
|
111
|
-
return [2 /*return*/, {
|
|
112
|
-
success: true,
|
|
113
|
-
message: allPassed
|
|
114
|
-
? 'All benchmark targets met!'
|
|
115
|
-
: results.results.filter(function (r) { return r.targetMet; }).length + "/" + results.results.length + " targets met"
|
|
116
|
-
}];
|
|
117
|
-
case 4:
|
|
118
|
-
err_1 = _a.sent();
|
|
119
|
-
errorMsg = err_1 instanceof Error ? err_1.message : String(err_1);
|
|
120
|
-
output.writeln(output.error("Benchmark failed: " + errorMsg));
|
|
121
|
-
return [2 /*return*/, {
|
|
122
|
-
success: false,
|
|
123
|
-
message: "Benchmark failed: " + errorMsg
|
|
124
|
-
}];
|
|
125
|
-
case 5: return [2 /*return*/];
|
|
28
|
+
action: async (ctx) => {
|
|
29
|
+
const iterations = parseInt(ctx.flags.iterations || '100', 10);
|
|
30
|
+
const warmup = parseInt(ctx.flags.warmup || '10', 10);
|
|
31
|
+
const outputFormat = ctx.flags.output || 'text';
|
|
32
|
+
const saveFile = ctx.flags.save;
|
|
33
|
+
const verbose = ctx.flags.verbose === true;
|
|
34
|
+
try {
|
|
35
|
+
// Dynamically import benchmark suite
|
|
36
|
+
const { runPretrainBenchmarkSuite } = await import('../benchmarks/pretrain/index.js');
|
|
37
|
+
const results = await runPretrainBenchmarkSuite({
|
|
38
|
+
iterations,
|
|
39
|
+
warmupIterations: warmup,
|
|
40
|
+
verbose,
|
|
41
|
+
});
|
|
42
|
+
// Output as JSON if requested
|
|
43
|
+
if (outputFormat === 'json') {
|
|
44
|
+
output.writeln(JSON.stringify(results, null, 2));
|
|
45
|
+
}
|
|
46
|
+
// Save to file if requested
|
|
47
|
+
if (saveFile) {
|
|
48
|
+
const resultsDir = join(process.cwd(), '.claude-flow', 'benchmarks');
|
|
49
|
+
if (!existsSync(resultsDir)) {
|
|
50
|
+
mkdirSync(resultsDir, { recursive: true });
|
|
51
|
+
}
|
|
52
|
+
const savePath = saveFile.startsWith('/') ? saveFile : join(resultsDir, saveFile);
|
|
53
|
+
writeFileSync(savePath, JSON.stringify(results, null, 2));
|
|
54
|
+
output.writeln(output.success(`Results saved to ${savePath}`));
|
|
126
55
|
}
|
|
127
|
-
|
|
128
|
-
|
|
56
|
+
const allPassed = results.results.every(r => r.targetMet);
|
|
57
|
+
return {
|
|
58
|
+
success: true,
|
|
59
|
+
message: allPassed
|
|
60
|
+
? 'All benchmark targets met!'
|
|
61
|
+
: `${results.results.filter(r => r.targetMet).length}/${results.results.length} targets met`,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
const errorMsg = err instanceof Error ? err.message : String(err);
|
|
66
|
+
output.writeln(output.error(`Benchmark failed: ${errorMsg}`));
|
|
67
|
+
return {
|
|
68
|
+
success: false,
|
|
69
|
+
message: `Benchmark failed: ${errorMsg}`,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
},
|
|
129
73
|
};
|
|
130
74
|
// ============================================================================
|
|
131
75
|
// Neural Benchmark Subcommand
|
|
132
76
|
// ============================================================================
|
|
133
|
-
|
|
77
|
+
const neuralCommand = {
|
|
134
78
|
name: 'neural',
|
|
135
79
|
description: 'Benchmark neural operations (embeddings, WASM, Flash Attention)',
|
|
136
80
|
options: [
|
|
137
|
-
{ name: 'iterations', short: 'i', type: 'number', description: 'Benchmark iterations',
|
|
138
|
-
{ name: 'dimension', short: 'd', type: 'number', description: 'Embedding dimension',
|
|
139
|
-
{ name: 'vectors', short: 'n', type: 'number', description: 'Number of test vectors',
|
|
140
|
-
{ name: 'output', short: 'o', type: 'string', description: 'Output format: text, json',
|
|
81
|
+
{ name: 'iterations', short: 'i', type: 'number', description: 'Benchmark iterations', default: '100' },
|
|
82
|
+
{ name: 'dimension', short: 'd', type: 'number', description: 'Embedding dimension', default: '384' },
|
|
83
|
+
{ name: 'vectors', short: 'n', type: 'number', description: 'Number of test vectors', default: '1000' },
|
|
84
|
+
{ name: 'output', short: 'o', type: 'string', description: 'Output format: text, json', default: 'text' },
|
|
141
85
|
],
|
|
142
86
|
examples: [
|
|
143
87
|
{ command: 'claude-flow benchmark neural', description: 'Run neural benchmarks' },
|
|
144
88
|
{ command: 'claude-flow benchmark neural -d 768 -n 5000', description: 'Higher dimension, more vectors' },
|
|
145
89
|
],
|
|
146
|
-
action:
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
_d.trys.push([3, 5, , 6]);
|
|
179
|
-
return [4 /*yield*/, import('../memory/memory-initializer.js')];
|
|
180
|
-
case 4:
|
|
181
|
-
memory = _d.sent();
|
|
182
|
-
generateEmbedding = memory.generateEmbedding;
|
|
183
|
-
return [3 /*break*/, 6];
|
|
184
|
-
case 5:
|
|
185
|
-
_a = _d.sent();
|
|
186
|
-
generateEmbedding = function (text) { return __awaiter(void 0, void 0, void 0, function () {
|
|
187
|
-
var emb, i;
|
|
188
|
-
return __generator(this, function (_a) {
|
|
189
|
-
emb = [];
|
|
190
|
-
for (i = 0; i < dimension; i++) {
|
|
191
|
-
emb.push(Math.sin(text.charCodeAt(i % text.length) * (i + 1)));
|
|
192
|
-
}
|
|
193
|
-
return [2 /*return*/, { embedding: emb, dimensions: dimension, model: 'fallback' }];
|
|
194
|
-
});
|
|
195
|
-
}); };
|
|
196
|
-
return [3 /*break*/, 6];
|
|
197
|
-
case 6:
|
|
198
|
-
embedTimes = [];
|
|
199
|
-
i = 0;
|
|
200
|
-
_d.label = 7;
|
|
201
|
-
case 7:
|
|
202
|
-
if (!(i < iterations)) return [3 /*break*/, 10];
|
|
203
|
-
start = performance.now();
|
|
204
|
-
return [4 /*yield*/, generateEmbedding("benchmark text " + i)];
|
|
205
|
-
case 8:
|
|
206
|
-
_d.sent();
|
|
207
|
-
embedTimes.push(performance.now() - start);
|
|
208
|
-
_d.label = 9;
|
|
209
|
-
case 9:
|
|
210
|
-
i++;
|
|
211
|
-
return [3 /*break*/, 7];
|
|
212
|
-
case 10:
|
|
213
|
-
embedMean = embedTimes.reduce(function (a, b) { return a + b; }, 0) / embedTimes.length;
|
|
214
|
-
embedSorted = __spreadArray([], embedTimes, true).sort(function (a, b) { return a - b; });
|
|
215
|
-
results.push({
|
|
216
|
-
name: 'Embedding Generation',
|
|
217
|
-
mean: embedMean,
|
|
218
|
-
p95: percentile(embedSorted, 95),
|
|
219
|
-
p99: percentile(embedSorted, 99),
|
|
220
|
-
target: 5.0,
|
|
221
|
-
met: embedMean <= 5.0
|
|
222
|
-
});
|
|
223
|
-
// 2. Batch Cosine Similarity
|
|
224
|
-
spinner.setText('Benchmarking batch cosine similarity...');
|
|
225
|
-
batchCosineSim = void 0;
|
|
226
|
-
_d.label = 11;
|
|
227
|
-
case 11:
|
|
228
|
-
_d.trys.push([11, 13, , 14]);
|
|
229
|
-
return [4 /*yield*/, import('../memory/memory-initializer.js')];
|
|
230
|
-
case 12:
|
|
231
|
-
memory = _d.sent();
|
|
232
|
-
batchCosineSim = memory.batchCosineSim;
|
|
233
|
-
return [3 /*break*/, 14];
|
|
234
|
-
case 13:
|
|
235
|
-
_b = _d.sent();
|
|
236
|
-
batchCosineSim = function (query, vectors) {
|
|
237
|
-
var res = new Float32Array(vectors.length);
|
|
238
|
-
for (var i = 0; i < vectors.length; i++) {
|
|
239
|
-
var dot = 0, nQ = 0, nV = 0;
|
|
240
|
-
for (var j = 0; j < query.length; j++) {
|
|
241
|
-
dot += query[j] * vectors[i][j];
|
|
242
|
-
nQ += query[j] * query[j];
|
|
243
|
-
nV += vectors[i][j] * vectors[i][j];
|
|
244
|
-
}
|
|
245
|
-
res[i] = dot / (Math.sqrt(nQ) * Math.sqrt(nV));
|
|
246
|
-
}
|
|
247
|
-
return res;
|
|
248
|
-
};
|
|
249
|
-
return [3 /*break*/, 14];
|
|
250
|
-
case 14:
|
|
251
|
-
query = new Float32Array(dimension).map(function () { return Math.random(); });
|
|
252
|
-
vectors = Array.from({ length: numVectors }, function () {
|
|
253
|
-
return new Float32Array(dimension).map(function () { return Math.random(); });
|
|
254
|
-
});
|
|
255
|
-
cosineTimes = [];
|
|
256
|
-
for (i = 0; i < Math.min(iterations, 50); i++) {
|
|
257
|
-
start = performance.now();
|
|
258
|
-
batchCosineSim(query, vectors);
|
|
259
|
-
cosineTimes.push(performance.now() - start);
|
|
90
|
+
action: async (ctx) => {
|
|
91
|
+
const iterations = parseInt(ctx.flags.iterations || '100', 10);
|
|
92
|
+
const dimension = parseInt(ctx.flags.dimension || '384', 10);
|
|
93
|
+
const numVectors = parseInt(ctx.flags.vectors || '1000', 10);
|
|
94
|
+
const outputFormat = ctx.flags.output || 'text';
|
|
95
|
+
output.writeln();
|
|
96
|
+
output.writeln(output.bold('Neural Operations Benchmark'));
|
|
97
|
+
output.writeln(output.dim('─'.repeat(60)));
|
|
98
|
+
output.writeln(`Iterations: ${iterations} | Dimension: ${dimension} | Vectors: ${numVectors}`);
|
|
99
|
+
output.writeln();
|
|
100
|
+
const spinner = output.createSpinner({ text: 'Running neural benchmarks...', spinner: 'dots' });
|
|
101
|
+
spinner.start();
|
|
102
|
+
try {
|
|
103
|
+
const { performance } = await import('node:perf_hooks');
|
|
104
|
+
// Helper functions
|
|
105
|
+
const percentile = (sorted, p) => {
|
|
106
|
+
const idx = Math.ceil((p / 100) * sorted.length) - 1;
|
|
107
|
+
return sorted[Math.max(0, idx)];
|
|
108
|
+
};
|
|
109
|
+
const results = [];
|
|
110
|
+
// 1. Embedding Generation
|
|
111
|
+
spinner.setText('Benchmarking embedding generation...');
|
|
112
|
+
let generateEmbedding;
|
|
113
|
+
try {
|
|
114
|
+
const memory = await import('../memory/memory-initializer.js');
|
|
115
|
+
generateEmbedding = memory.generateEmbedding;
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
generateEmbedding = async (text) => {
|
|
119
|
+
const emb = [];
|
|
120
|
+
for (let i = 0; i < dimension; i++) {
|
|
121
|
+
emb.push(Math.sin(text.charCodeAt(i % text.length) * (i + 1)));
|
|
260
122
|
}
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
123
|
+
return { embedding: emb, dimensions: dimension, model: 'fallback' };
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
const embedTimes = [];
|
|
127
|
+
for (let i = 0; i < iterations; i++) {
|
|
128
|
+
const start = performance.now();
|
|
129
|
+
await generateEmbedding(`benchmark text ${i}`);
|
|
130
|
+
embedTimes.push(performance.now() - start);
|
|
131
|
+
}
|
|
132
|
+
const embedMean = embedTimes.reduce((a, b) => a + b, 0) / embedTimes.length;
|
|
133
|
+
const embedSorted = [...embedTimes].sort((a, b) => a - b);
|
|
134
|
+
results.push({
|
|
135
|
+
name: 'Embedding Generation',
|
|
136
|
+
mean: embedMean,
|
|
137
|
+
p95: percentile(embedSorted, 95),
|
|
138
|
+
p99: percentile(embedSorted, 99),
|
|
139
|
+
target: 5.0,
|
|
140
|
+
met: embedMean <= 5.0,
|
|
141
|
+
});
|
|
142
|
+
// 2. Batch Cosine Similarity
|
|
143
|
+
spinner.setText('Benchmarking batch cosine similarity...');
|
|
144
|
+
let batchCosineSim;
|
|
145
|
+
try {
|
|
146
|
+
const memory = await import('../memory/memory-initializer.js');
|
|
147
|
+
batchCosineSim = memory.batchCosineSim;
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
batchCosineSim = (query, vectors) => {
|
|
151
|
+
const res = new Float32Array(vectors.length);
|
|
152
|
+
for (let i = 0; i < vectors.length; i++) {
|
|
153
|
+
let dot = 0, nQ = 0, nV = 0;
|
|
154
|
+
for (let j = 0; j < query.length; j++) {
|
|
155
|
+
dot += query[j] * vectors[i][j];
|
|
156
|
+
nQ += query[j] * query[j];
|
|
157
|
+
nV += vectors[i][j] * vectors[i][j];
|
|
285
158
|
}
|
|
159
|
+
res[i] = dot / (Math.sqrt(nQ) * Math.sqrt(nV));
|
|
286
160
|
}
|
|
287
|
-
return
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
output.writeln(JSON.stringify(results, null, 2));
|
|
161
|
+
return res;
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
const query = new Float32Array(dimension).map(() => Math.random());
|
|
165
|
+
const vectors = Array.from({ length: numVectors }, () => new Float32Array(dimension).map(() => Math.random()));
|
|
166
|
+
const cosineTimes = [];
|
|
167
|
+
for (let i = 0; i < Math.min(iterations, 50); i++) {
|
|
168
|
+
const start = performance.now();
|
|
169
|
+
batchCosineSim(query, vectors);
|
|
170
|
+
cosineTimes.push(performance.now() - start);
|
|
171
|
+
}
|
|
172
|
+
const cosineMean = cosineTimes.reduce((a, b) => a + b, 0) / cosineTimes.length;
|
|
173
|
+
const cosineSorted = [...cosineTimes].sort((a, b) => a - b);
|
|
174
|
+
results.push({
|
|
175
|
+
name: `Batch Cosine (${numVectors} vectors)`,
|
|
176
|
+
mean: cosineMean,
|
|
177
|
+
p95: percentile(cosineSorted, 95),
|
|
178
|
+
p99: percentile(cosineSorted, 99),
|
|
179
|
+
target: 5.0,
|
|
180
|
+
met: cosineMean <= 5.0,
|
|
181
|
+
});
|
|
182
|
+
// 3. Flash Attention Search (if available)
|
|
183
|
+
spinner.setText('Benchmarking flash attention search...');
|
|
184
|
+
const flashTimes = [];
|
|
185
|
+
try {
|
|
186
|
+
const memory = await import('../memory/memory-initializer.js');
|
|
187
|
+
if (memory.flashAttentionSearch) {
|
|
188
|
+
for (let i = 0; i < Math.min(iterations, 50); i++) {
|
|
189
|
+
const start = performance.now();
|
|
190
|
+
memory.flashAttentionSearch(query, vectors, { k: 10 });
|
|
191
|
+
flashTimes.push(performance.now() - start);
|
|
319
192
|
}
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
catch {
|
|
196
|
+
// Flash attention not available
|
|
197
|
+
}
|
|
198
|
+
if (flashTimes.length > 0) {
|
|
199
|
+
const flashMean = flashTimes.reduce((a, b) => a + b, 0) / flashTimes.length;
|
|
200
|
+
const flashSorted = [...flashTimes].sort((a, b) => a - b);
|
|
201
|
+
results.push({
|
|
202
|
+
name: 'Flash Attention Search',
|
|
203
|
+
mean: flashMean,
|
|
204
|
+
p95: percentile(flashSorted, 95),
|
|
205
|
+
p99: percentile(flashSorted, 99),
|
|
206
|
+
target: 2.0,
|
|
207
|
+
met: flashMean <= 2.0,
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
spinner.stop();
|
|
211
|
+
// Display results
|
|
212
|
+
output.writeln();
|
|
213
|
+
output.writeln(output.bold('Results'));
|
|
214
|
+
output.writeln(output.dim('─'.repeat(60)));
|
|
215
|
+
for (const r of results) {
|
|
216
|
+
const status = r.met ? output.success('✓') : output.error('✗');
|
|
217
|
+
output.writeln(`${status} ${r.name}`);
|
|
218
|
+
output.writeln(` Mean: ${r.mean.toFixed(3)}ms | p95: ${r.p95.toFixed(3)}ms | p99: ${r.p99.toFixed(3)}ms`);
|
|
219
|
+
output.writeln(` Target: ${r.target}ms | Status: ${r.met ? 'Met' : 'Not met'}`);
|
|
220
|
+
output.writeln();
|
|
335
221
|
}
|
|
336
|
-
|
|
337
|
-
|
|
222
|
+
if (outputFormat === 'json') {
|
|
223
|
+
output.writeln(JSON.stringify(results, null, 2));
|
|
224
|
+
}
|
|
225
|
+
const allPassed = results.every(r => r.met);
|
|
226
|
+
return {
|
|
227
|
+
success: true,
|
|
228
|
+
message: allPassed ? 'All neural benchmarks passed!' : 'Some benchmarks below target',
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
catch (err) {
|
|
232
|
+
spinner.stop();
|
|
233
|
+
const errorMsg = err instanceof Error ? err.message : String(err);
|
|
234
|
+
output.writeln(output.error(`Neural benchmark failed: ${errorMsg}`));
|
|
235
|
+
return {
|
|
236
|
+
success: false,
|
|
237
|
+
message: `Neural benchmark failed: ${errorMsg}`,
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
},
|
|
338
241
|
};
|
|
339
242
|
// ============================================================================
|
|
340
243
|
// Memory Benchmark Subcommand
|
|
341
244
|
// ============================================================================
|
|
342
|
-
|
|
245
|
+
const memoryCommand = {
|
|
343
246
|
name: 'memory',
|
|
344
247
|
description: 'Benchmark memory operations (HNSW search, store, retrieve)',
|
|
345
248
|
options: [
|
|
346
|
-
{ name: 'iterations', short: 'i', type: 'number', description: 'Benchmark iterations',
|
|
347
|
-
{ name: 'output', short: 'o', type: 'string', description: 'Output format: text, json',
|
|
249
|
+
{ name: 'iterations', short: 'i', type: 'number', description: 'Benchmark iterations', default: '100' },
|
|
250
|
+
{ name: 'output', short: 'o', type: 'string', description: 'Output format: text, json', default: 'text' },
|
|
348
251
|
],
|
|
349
252
|
examples: [
|
|
350
253
|
{ command: 'claude-flow benchmark memory', description: 'Run memory benchmarks' },
|
|
351
254
|
],
|
|
352
|
-
action:
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
case 3:
|
|
379
|
-
_b.trys.push([3, 5, , 6]);
|
|
380
|
-
return [4 /*yield*/, import('../memory/memory-initializer.js')];
|
|
381
|
-
case 4:
|
|
382
|
-
memory = _b.sent();
|
|
383
|
-
storeEntry = memory.storeEntry;
|
|
384
|
-
searchEntries = memory.searchEntries;
|
|
385
|
-
return [3 /*break*/, 6];
|
|
386
|
-
case 5:
|
|
387
|
-
_a = _b.sent();
|
|
388
|
-
storeEntry = function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
389
|
-
return [2 /*return*/, ({ success: true })];
|
|
390
|
-
}); }); };
|
|
391
|
-
searchEntries = function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
392
|
-
return [2 /*return*/, ({ results: [], searchTime: 0.5 })];
|
|
393
|
-
}); }); };
|
|
394
|
-
return [3 /*break*/, 6];
|
|
395
|
-
case 6:
|
|
396
|
-
// 1. Store benchmark
|
|
397
|
-
spinner.setText('Benchmarking memory store...');
|
|
398
|
-
storeTimes = [];
|
|
399
|
-
i = 0;
|
|
400
|
-
_b.label = 7;
|
|
401
|
-
case 7:
|
|
402
|
-
if (!(i < iterations)) return [3 /*break*/, 10];
|
|
403
|
-
start = performance.now();
|
|
404
|
-
return [4 /*yield*/, storeEntry({
|
|
405
|
-
key: "bench-key-" + i,
|
|
406
|
-
value: "Benchmark value " + i + " with some additional content",
|
|
407
|
-
namespace: 'benchmark'
|
|
408
|
-
})];
|
|
409
|
-
case 8:
|
|
410
|
-
_b.sent();
|
|
411
|
-
storeTimes.push(performance.now() - start);
|
|
412
|
-
_b.label = 9;
|
|
413
|
-
case 9:
|
|
414
|
-
i++;
|
|
415
|
-
return [3 /*break*/, 7];
|
|
416
|
-
case 10:
|
|
417
|
-
storeMean = storeTimes.reduce(function (a, b) { return a + b; }, 0) / storeTimes.length;
|
|
418
|
-
results.push({
|
|
419
|
-
name: 'Memory Store',
|
|
420
|
-
mean: storeMean,
|
|
421
|
-
p95: percentile(__spreadArray([], storeTimes, true).sort(function (a, b) { return a - b; }), 95),
|
|
422
|
-
target: 10.0,
|
|
423
|
-
met: storeMean <= 10.0
|
|
424
|
-
});
|
|
425
|
-
// 2. Search benchmark
|
|
426
|
-
spinner.setText('Benchmarking memory search...');
|
|
427
|
-
queries = [
|
|
428
|
-
'authentication patterns',
|
|
429
|
-
'error handling best practices',
|
|
430
|
-
'performance optimization',
|
|
431
|
-
'testing strategies',
|
|
432
|
-
'security vulnerabilities',
|
|
433
|
-
];
|
|
434
|
-
searchTimes = [];
|
|
435
|
-
i = 0;
|
|
436
|
-
_b.label = 11;
|
|
437
|
-
case 11:
|
|
438
|
-
if (!(i < iterations)) return [3 /*break*/, 14];
|
|
439
|
-
start = performance.now();
|
|
440
|
-
return [4 /*yield*/, searchEntries({
|
|
441
|
-
query: queries[i % queries.length],
|
|
442
|
-
namespace: 'benchmark',
|
|
443
|
-
limit: 10
|
|
444
|
-
})];
|
|
445
|
-
case 12:
|
|
446
|
-
_b.sent();
|
|
447
|
-
searchTimes.push(performance.now() - start);
|
|
448
|
-
_b.label = 13;
|
|
449
|
-
case 13:
|
|
450
|
-
i++;
|
|
451
|
-
return [3 /*break*/, 11];
|
|
452
|
-
case 14:
|
|
453
|
-
searchMean = searchTimes.reduce(function (a, b) { return a + b; }, 0) / searchTimes.length;
|
|
454
|
-
results.push({
|
|
455
|
-
name: 'Memory Search (HNSW)',
|
|
456
|
-
mean: searchMean,
|
|
457
|
-
p95: percentile(__spreadArray([], searchTimes, true).sort(function (a, b) { return a - b; }), 95),
|
|
458
|
-
target: 10.0,
|
|
459
|
-
met: searchMean <= 10.0
|
|
460
|
-
});
|
|
461
|
-
spinner.stop();
|
|
462
|
-
// Display results
|
|
463
|
-
output.writeln();
|
|
464
|
-
output.writeln(output.bold('Results'));
|
|
465
|
-
output.writeln(output.dim('─'.repeat(60)));
|
|
466
|
-
for (_i = 0, results_2 = results; _i < results_2.length; _i++) {
|
|
467
|
-
r = results_2[_i];
|
|
468
|
-
status = r.met ? output.success('✓') : output.error('✗');
|
|
469
|
-
output.writeln(status + " " + r.name);
|
|
470
|
-
output.writeln(" Mean: " + r.mean.toFixed(3) + "ms | p95: " + r.p95.toFixed(3) + "ms | Target: " + r.target + "ms");
|
|
471
|
-
output.writeln();
|
|
472
|
-
}
|
|
473
|
-
if (outputFormat === 'json') {
|
|
474
|
-
output.writeln(JSON.stringify(results, null, 2));
|
|
475
|
-
}
|
|
476
|
-
return [2 /*return*/, { success: true, message: 'Memory benchmarks complete' }];
|
|
477
|
-
case 15:
|
|
478
|
-
err_3 = _b.sent();
|
|
479
|
-
spinner.stop();
|
|
480
|
-
errorMsg = err_3 instanceof Error ? err_3.message : String(err_3);
|
|
481
|
-
output.writeln(output.error("Memory benchmark failed: " + errorMsg));
|
|
482
|
-
return [2 /*return*/, {
|
|
483
|
-
success: false,
|
|
484
|
-
message: "Memory benchmark failed: " + errorMsg
|
|
485
|
-
}];
|
|
486
|
-
case 16: return [2 /*return*/];
|
|
255
|
+
action: async (ctx) => {
|
|
256
|
+
const iterations = parseInt(ctx.flags.iterations || '100', 10);
|
|
257
|
+
const outputFormat = ctx.flags.output || 'text';
|
|
258
|
+
output.writeln();
|
|
259
|
+
output.writeln(output.bold('Memory Operations Benchmark'));
|
|
260
|
+
output.writeln(output.dim('─'.repeat(60)));
|
|
261
|
+
const spinner = output.createSpinner({ text: 'Running memory benchmarks...', spinner: 'dots' });
|
|
262
|
+
spinner.start();
|
|
263
|
+
try {
|
|
264
|
+
const { performance } = await import('node:perf_hooks');
|
|
265
|
+
const percentile = (sorted, p) => {
|
|
266
|
+
const idx = Math.ceil((p / 100) * sorted.length) - 1;
|
|
267
|
+
return sorted[Math.max(0, idx)];
|
|
268
|
+
};
|
|
269
|
+
const results = [];
|
|
270
|
+
// Import memory functions
|
|
271
|
+
let storeEntry;
|
|
272
|
+
let searchEntries;
|
|
273
|
+
try {
|
|
274
|
+
const memory = await import('../memory/memory-initializer.js');
|
|
275
|
+
storeEntry = memory.storeEntry;
|
|
276
|
+
searchEntries = memory.searchEntries;
|
|
277
|
+
}
|
|
278
|
+
catch {
|
|
279
|
+
storeEntry = async () => ({ success: true });
|
|
280
|
+
searchEntries = async () => ({ results: [], searchTime: 0.5 });
|
|
487
281
|
}
|
|
488
|
-
|
|
489
|
-
|
|
282
|
+
// 1. Store benchmark
|
|
283
|
+
spinner.setText('Benchmarking memory store...');
|
|
284
|
+
const storeTimes = [];
|
|
285
|
+
for (let i = 0; i < iterations; i++) {
|
|
286
|
+
const start = performance.now();
|
|
287
|
+
await storeEntry({
|
|
288
|
+
key: `bench-key-${i}`,
|
|
289
|
+
value: `Benchmark value ${i} with some additional content`,
|
|
290
|
+
namespace: 'benchmark',
|
|
291
|
+
});
|
|
292
|
+
storeTimes.push(performance.now() - start);
|
|
293
|
+
}
|
|
294
|
+
const storeMean = storeTimes.reduce((a, b) => a + b, 0) / storeTimes.length;
|
|
295
|
+
results.push({
|
|
296
|
+
name: 'Memory Store',
|
|
297
|
+
mean: storeMean,
|
|
298
|
+
p95: percentile([...storeTimes].sort((a, b) => a - b), 95),
|
|
299
|
+
target: 10.0,
|
|
300
|
+
met: storeMean <= 10.0,
|
|
301
|
+
});
|
|
302
|
+
// 2. Search benchmark
|
|
303
|
+
spinner.setText('Benchmarking memory search...');
|
|
304
|
+
const queries = [
|
|
305
|
+
'authentication patterns',
|
|
306
|
+
'error handling best practices',
|
|
307
|
+
'performance optimization',
|
|
308
|
+
'testing strategies',
|
|
309
|
+
'security vulnerabilities',
|
|
310
|
+
];
|
|
311
|
+
const searchTimes = [];
|
|
312
|
+
for (let i = 0; i < iterations; i++) {
|
|
313
|
+
const start = performance.now();
|
|
314
|
+
await searchEntries({
|
|
315
|
+
query: queries[i % queries.length],
|
|
316
|
+
namespace: 'benchmark',
|
|
317
|
+
limit: 10,
|
|
318
|
+
});
|
|
319
|
+
searchTimes.push(performance.now() - start);
|
|
320
|
+
}
|
|
321
|
+
const searchMean = searchTimes.reduce((a, b) => a + b, 0) / searchTimes.length;
|
|
322
|
+
results.push({
|
|
323
|
+
name: 'Memory Search (HNSW)',
|
|
324
|
+
mean: searchMean,
|
|
325
|
+
p95: percentile([...searchTimes].sort((a, b) => a - b), 95),
|
|
326
|
+
target: 10.0,
|
|
327
|
+
met: searchMean <= 10.0,
|
|
328
|
+
});
|
|
329
|
+
spinner.stop();
|
|
330
|
+
// Display results
|
|
331
|
+
output.writeln();
|
|
332
|
+
output.writeln(output.bold('Results'));
|
|
333
|
+
output.writeln(output.dim('─'.repeat(60)));
|
|
334
|
+
for (const r of results) {
|
|
335
|
+
const status = r.met ? output.success('✓') : output.error('✗');
|
|
336
|
+
output.writeln(`${status} ${r.name}`);
|
|
337
|
+
output.writeln(` Mean: ${r.mean.toFixed(3)}ms | p95: ${r.p95.toFixed(3)}ms | Target: ${r.target}ms`);
|
|
338
|
+
output.writeln();
|
|
339
|
+
}
|
|
340
|
+
if (outputFormat === 'json') {
|
|
341
|
+
output.writeln(JSON.stringify(results, null, 2));
|
|
342
|
+
}
|
|
343
|
+
return { success: true, message: 'Memory benchmarks complete' };
|
|
344
|
+
}
|
|
345
|
+
catch (err) {
|
|
346
|
+
spinner.stop();
|
|
347
|
+
const errorMsg = err instanceof Error ? err.message : String(err);
|
|
348
|
+
output.writeln(output.error(`Memory benchmark failed: ${errorMsg}`));
|
|
349
|
+
return {
|
|
350
|
+
success: false,
|
|
351
|
+
message: `Memory benchmark failed: ${errorMsg}`,
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
},
|
|
490
355
|
};
|
|
491
356
|
// ============================================================================
|
|
492
357
|
// Full Suite Benchmark Subcommand
|
|
493
358
|
// ============================================================================
|
|
494
|
-
|
|
359
|
+
const allCommand = {
|
|
495
360
|
name: 'all',
|
|
496
361
|
description: 'Run all benchmark suites',
|
|
497
362
|
options: [
|
|
498
|
-
{ name: 'iterations', short: 'i', type: 'number', description: 'Benchmark iterations',
|
|
499
|
-
{ name: 'output', short: 'o', type: 'string', description: 'Output format: text, json',
|
|
363
|
+
{ name: 'iterations', short: 'i', type: 'number', description: 'Benchmark iterations', default: '50' },
|
|
364
|
+
{ name: 'output', short: 'o', type: 'string', description: 'Output format: text, json', default: 'text' },
|
|
500
365
|
{ name: 'save', short: 's', type: 'string', description: 'Save results to file' },
|
|
501
366
|
],
|
|
502
367
|
examples: [
|
|
503
368
|
{ command: 'claude-flow benchmark all', description: 'Run all benchmarks' },
|
|
504
369
|
{ command: 'claude-flow benchmark all --save full-results.json', description: 'Run all and save results' },
|
|
505
370
|
],
|
|
506
|
-
action:
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
_a.label = 6;
|
|
546
|
-
case 6:
|
|
547
|
-
totalDuration = Date.now() - startTime;
|
|
548
|
-
output.writeln();
|
|
549
|
-
output.writeln(output.bold(output.highlight('═'.repeat(65))));
|
|
550
|
-
output.writeln(" Total Duration: " + (totalDuration / 1000).toFixed(2) + "s");
|
|
551
|
-
output.writeln(output.bold(output.highlight('═'.repeat(65))));
|
|
552
|
-
saveFile = ctx.flags.save;
|
|
553
|
-
if (saveFile) {
|
|
554
|
-
resultsDir = join(process.cwd(), '.claude-flow', 'benchmarks');
|
|
555
|
-
if (!existsSync(resultsDir)) {
|
|
556
|
-
mkdirSync(resultsDir, { recursive: true });
|
|
557
|
-
}
|
|
558
|
-
savePath = saveFile.startsWith('/') ? saveFile : join(resultsDir, saveFile);
|
|
559
|
-
writeFileSync(savePath, JSON.stringify({
|
|
560
|
-
timestamp: new Date().toISOString(),
|
|
561
|
-
duration: totalDuration,
|
|
562
|
-
results: allResults
|
|
563
|
-
}, null, 2));
|
|
564
|
-
output.writeln(output.success("Results saved to " + savePath));
|
|
565
|
-
}
|
|
566
|
-
return [2 /*return*/, { success: true, message: 'All benchmarks complete' }];
|
|
371
|
+
action: async (ctx) => {
|
|
372
|
+
output.writeln();
|
|
373
|
+
output.writeln(output.bold(output.highlight('═'.repeat(65))));
|
|
374
|
+
output.writeln(output.bold(' RuFlo V3 - Full Benchmark Suite'));
|
|
375
|
+
output.writeln(output.bold(output.highlight('═'.repeat(65))));
|
|
376
|
+
const startTime = Date.now();
|
|
377
|
+
const allResults = {};
|
|
378
|
+
// Run pretrain benchmarks
|
|
379
|
+
output.writeln();
|
|
380
|
+
output.writeln(output.bold('▸ Pre-Training Benchmarks'));
|
|
381
|
+
if (pretrainCommand.action) {
|
|
382
|
+
const pretrainResult = await pretrainCommand.action(ctx);
|
|
383
|
+
allResults.pretrain = pretrainResult;
|
|
384
|
+
}
|
|
385
|
+
// Run neural benchmarks
|
|
386
|
+
output.writeln();
|
|
387
|
+
output.writeln(output.bold('▸ Neural Benchmarks'));
|
|
388
|
+
if (neuralCommand.action) {
|
|
389
|
+
const neuralResult = await neuralCommand.action(ctx);
|
|
390
|
+
allResults.neural = neuralResult;
|
|
391
|
+
}
|
|
392
|
+
// Run memory benchmarks
|
|
393
|
+
output.writeln();
|
|
394
|
+
output.writeln(output.bold('▸ Memory Benchmarks'));
|
|
395
|
+
if (memoryCommand.action) {
|
|
396
|
+
const memoryResult = await memoryCommand.action(ctx);
|
|
397
|
+
allResults.memory = memoryResult;
|
|
398
|
+
}
|
|
399
|
+
const totalDuration = Date.now() - startTime;
|
|
400
|
+
output.writeln();
|
|
401
|
+
output.writeln(output.bold(output.highlight('═'.repeat(65))));
|
|
402
|
+
output.writeln(` Total Duration: ${(totalDuration / 1000).toFixed(2)}s`);
|
|
403
|
+
output.writeln(output.bold(output.highlight('═'.repeat(65))));
|
|
404
|
+
// Save if requested
|
|
405
|
+
const saveFile = ctx.flags.save;
|
|
406
|
+
if (saveFile) {
|
|
407
|
+
const resultsDir = join(process.cwd(), '.claude-flow', 'benchmarks');
|
|
408
|
+
if (!existsSync(resultsDir)) {
|
|
409
|
+
mkdirSync(resultsDir, { recursive: true });
|
|
567
410
|
}
|
|
568
|
-
|
|
569
|
-
|
|
411
|
+
const savePath = saveFile.startsWith('/') ? saveFile : join(resultsDir, saveFile);
|
|
412
|
+
writeFileSync(savePath, JSON.stringify({
|
|
413
|
+
timestamp: new Date().toISOString(),
|
|
414
|
+
duration: totalDuration,
|
|
415
|
+
results: allResults,
|
|
416
|
+
}, null, 2));
|
|
417
|
+
output.writeln(output.success(`Results saved to ${savePath}`));
|
|
418
|
+
}
|
|
419
|
+
return { success: true, message: 'All benchmarks complete' };
|
|
420
|
+
},
|
|
570
421
|
};
|
|
571
422
|
// ============================================================================
|
|
572
423
|
// Main Benchmark Command
|
|
573
424
|
// ============================================================================
|
|
574
|
-
export
|
|
425
|
+
export const benchmarkCommand = {
|
|
575
426
|
name: 'benchmark',
|
|
576
427
|
description: 'Performance benchmarking for self-learning and neural systems',
|
|
577
428
|
subcommands: [
|
|
@@ -586,25 +437,23 @@ export var benchmarkCommand = {
|
|
|
586
437
|
{ command: 'claude-flow benchmark memory', description: 'Benchmark memory operations' },
|
|
587
438
|
{ command: 'claude-flow benchmark all', description: 'Run all benchmarks' },
|
|
588
439
|
],
|
|
589
|
-
action:
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
});
|
|
607
|
-
}); }
|
|
440
|
+
action: async (_ctx) => {
|
|
441
|
+
output.writeln();
|
|
442
|
+
output.writeln(output.bold('RuFlo V3 Benchmark Suite'));
|
|
443
|
+
output.writeln(output.dim('─'.repeat(50)));
|
|
444
|
+
output.writeln();
|
|
445
|
+
output.writeln('Available subcommands:');
|
|
446
|
+
output.writeln(` ${output.highlight('pretrain')} - Benchmark self-learning pre-training (SONA, EWC++, MoE)`);
|
|
447
|
+
output.writeln(` ${output.highlight('neural')} - Benchmark neural operations (embeddings, WASM)`);
|
|
448
|
+
output.writeln(` ${output.highlight('memory')} - Benchmark memory operations (HNSW, store, search)`);
|
|
449
|
+
output.writeln(` ${output.highlight('all')} - Run all benchmark suites`);
|
|
450
|
+
output.writeln();
|
|
451
|
+
output.writeln('Examples:');
|
|
452
|
+
output.writeln(' claude-flow benchmark pretrain -i 200');
|
|
453
|
+
output.writeln(' claude-flow benchmark all --save results.json');
|
|
454
|
+
output.writeln();
|
|
455
|
+
return { success: true, message: 'Use a subcommand to run benchmarks' };
|
|
456
|
+
},
|
|
608
457
|
};
|
|
609
458
|
export default benchmarkCommand;
|
|
610
459
|
//# sourceMappingURL=benchmark.js.map
|