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
|
@@ -18,88 +18,41 @@
|
|
|
18
18
|
*
|
|
19
19
|
* @module model-router
|
|
20
20
|
*/
|
|
21
|
-
var __assign = (this && this.__assign) || function () {
|
|
22
|
-
__assign = Object.assign || function(t) {
|
|
23
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
24
|
-
s = arguments[i];
|
|
25
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
26
|
-
t[p] = s[p];
|
|
27
|
-
}
|
|
28
|
-
return t;
|
|
29
|
-
};
|
|
30
|
-
return __assign.apply(this, arguments);
|
|
31
|
-
};
|
|
32
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
33
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
34
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
35
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
36
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
37
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
38
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
39
|
-
});
|
|
40
|
-
};
|
|
41
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
42
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
43
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
44
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
45
|
-
function step(op) {
|
|
46
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
47
|
-
while (_) try {
|
|
48
|
-
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;
|
|
49
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
50
|
-
switch (op[0]) {
|
|
51
|
-
case 0: case 1: t = op; break;
|
|
52
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
53
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
54
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
55
|
-
default:
|
|
56
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
57
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
58
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
59
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
60
|
-
if (t[2]) _.ops.pop();
|
|
61
|
-
_.trys.pop(); continue;
|
|
62
|
-
}
|
|
63
|
-
op = body.call(thisArg, _);
|
|
64
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
65
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
21
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
69
22
|
import { dirname, join } from 'path';
|
|
70
23
|
/**
|
|
71
24
|
* Model capabilities and characteristics
|
|
72
25
|
*/
|
|
73
|
-
export
|
|
26
|
+
export const MODEL_CAPABILITIES = {
|
|
74
27
|
haiku: {
|
|
75
28
|
maxComplexity: 0.4,
|
|
76
|
-
costMultiplier: 0.04,
|
|
77
|
-
speedMultiplier: 3.0,
|
|
78
|
-
description: 'Fast, cost-effective for simple tasks'
|
|
29
|
+
costMultiplier: 0.04, // ~25x cheaper than Opus
|
|
30
|
+
speedMultiplier: 3.0, // ~3x faster than Sonnet
|
|
31
|
+
description: 'Fast, cost-effective for simple tasks',
|
|
79
32
|
},
|
|
80
33
|
sonnet: {
|
|
81
34
|
maxComplexity: 0.7,
|
|
82
|
-
costMultiplier: 0.2,
|
|
83
|
-
speedMultiplier: 1.5,
|
|
84
|
-
description: 'Balanced capability and cost'
|
|
35
|
+
costMultiplier: 0.2, // ~5x cheaper than Opus
|
|
36
|
+
speedMultiplier: 1.5, // ~1.5x faster than Opus
|
|
37
|
+
description: 'Balanced capability and cost',
|
|
85
38
|
},
|
|
86
39
|
opus: {
|
|
87
40
|
maxComplexity: 1.0,
|
|
88
|
-
costMultiplier: 1.0,
|
|
89
|
-
speedMultiplier: 1.0,
|
|
90
|
-
description: 'Most capable for complex reasoning'
|
|
41
|
+
costMultiplier: 1.0, // Baseline
|
|
42
|
+
speedMultiplier: 1.0, // Baseline
|
|
43
|
+
description: 'Most capable for complex reasoning',
|
|
91
44
|
},
|
|
92
45
|
inherit: {
|
|
93
46
|
maxComplexity: 1.0,
|
|
94
47
|
costMultiplier: 1.0,
|
|
95
48
|
speedMultiplier: 1.0,
|
|
96
|
-
description: 'Use parent model selection'
|
|
97
|
-
}
|
|
49
|
+
description: 'Use parent model selection',
|
|
50
|
+
},
|
|
98
51
|
};
|
|
99
52
|
/**
|
|
100
53
|
* Complexity indicators for task classification
|
|
101
54
|
*/
|
|
102
|
-
export
|
|
55
|
+
export const COMPLEXITY_INDICATORS = {
|
|
103
56
|
high: [
|
|
104
57
|
'architect', 'design', 'refactor', 'optimize', 'security', 'audit',
|
|
105
58
|
'complex', 'analyze', 'investigate', 'debug', 'performance', 'scale',
|
|
@@ -112,20 +65,20 @@ export var COMPLEXITY_INDICATORS = {
|
|
|
112
65
|
low: [
|
|
113
66
|
'simple', 'typo', 'comment', 'format', 'rename', 'move', 'copy',
|
|
114
67
|
'delete', 'documentation', 'readme', 'config', 'version', 'bump',
|
|
115
|
-
]
|
|
68
|
+
],
|
|
116
69
|
};
|
|
117
70
|
// ============================================================================
|
|
118
71
|
// Default Configuration
|
|
119
72
|
// ============================================================================
|
|
120
|
-
|
|
73
|
+
const DEFAULT_CONFIG = {
|
|
121
74
|
confidenceThreshold: 0.85,
|
|
122
75
|
maxUncertainty: 0.15,
|
|
123
76
|
enableCircuitBreaker: true,
|
|
124
77
|
circuitBreakerThreshold: 5,
|
|
125
78
|
statePath: '.swarm/model-router-state.json',
|
|
126
|
-
autoSaveInterval: 1,
|
|
79
|
+
autoSaveInterval: 1, // Save after every decision for CLI persistence
|
|
127
80
|
enableCostOptimization: true,
|
|
128
|
-
preferSpeed: true
|
|
81
|
+
preferSpeed: true,
|
|
129
82
|
};
|
|
130
83
|
// ============================================================================
|
|
131
84
|
// Model Router Implementation
|
|
@@ -133,177 +86,171 @@ var DEFAULT_CONFIG = {
|
|
|
133
86
|
/**
|
|
134
87
|
* Intelligent Model Router using complexity-based routing
|
|
135
88
|
*/
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
89
|
+
export class ModelRouter {
|
|
90
|
+
config;
|
|
91
|
+
state;
|
|
92
|
+
decisionCount = 0;
|
|
93
|
+
consecutiveFailures = {
|
|
94
|
+
haiku: 0,
|
|
95
|
+
sonnet: 0,
|
|
96
|
+
opus: 0,
|
|
97
|
+
inherit: 0,
|
|
98
|
+
};
|
|
99
|
+
constructor(config = {}) {
|
|
100
|
+
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
147
101
|
this.state = this.loadState();
|
|
148
102
|
}
|
|
149
103
|
/**
|
|
150
104
|
* Route a task to the optimal model
|
|
151
105
|
*/
|
|
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
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
// Track decision
|
|
182
|
-
this.trackDecision(task, result);
|
|
183
|
-
return [2 /*return*/, result];
|
|
184
|
-
});
|
|
185
|
-
});
|
|
186
|
-
};
|
|
106
|
+
async route(task, embedding) {
|
|
107
|
+
const startTime = performance.now();
|
|
108
|
+
// Analyze task complexity
|
|
109
|
+
const complexity = this.analyzeComplexity(task, embedding);
|
|
110
|
+
// Compute base model scores
|
|
111
|
+
const scores = this.computeModelScores(complexity);
|
|
112
|
+
// Apply circuit breaker adjustments
|
|
113
|
+
const adjustedScores = this.applyCircuitBreaker(scores);
|
|
114
|
+
// Select best model
|
|
115
|
+
const { model, confidence, uncertainty } = this.selectModel(adjustedScores, complexity.score);
|
|
116
|
+
const inferenceTimeUs = (performance.now() - startTime) * 1000;
|
|
117
|
+
// Build result
|
|
118
|
+
const result = {
|
|
119
|
+
model,
|
|
120
|
+
confidence,
|
|
121
|
+
uncertainty,
|
|
122
|
+
complexity: complexity.score,
|
|
123
|
+
reasoning: this.buildReasoning(model, complexity, confidence),
|
|
124
|
+
alternatives: Object.entries(adjustedScores)
|
|
125
|
+
.filter(([m]) => m !== model)
|
|
126
|
+
.map(([m, score]) => ({ model: m, score }))
|
|
127
|
+
.sort((a, b) => b.score - a.score),
|
|
128
|
+
inferenceTimeUs,
|
|
129
|
+
costMultiplier: MODEL_CAPABILITIES[model].costMultiplier,
|
|
130
|
+
};
|
|
131
|
+
// Track decision
|
|
132
|
+
this.trackDecision(task, result);
|
|
133
|
+
return result;
|
|
134
|
+
}
|
|
187
135
|
/**
|
|
188
136
|
* Analyze task complexity
|
|
189
137
|
*/
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
138
|
+
analyzeComplexity(task, embedding) {
|
|
139
|
+
const taskLower = task.toLowerCase();
|
|
140
|
+
const words = taskLower.split(/\s+/);
|
|
193
141
|
// Find complexity indicators
|
|
194
|
-
|
|
195
|
-
high: COMPLEXITY_INDICATORS.high.filter(
|
|
196
|
-
medium: COMPLEXITY_INDICATORS.medium.filter(
|
|
197
|
-
low: COMPLEXITY_INDICATORS.low.filter(
|
|
142
|
+
const indicators = {
|
|
143
|
+
high: COMPLEXITY_INDICATORS.high.filter(ind => taskLower.includes(ind)),
|
|
144
|
+
medium: COMPLEXITY_INDICATORS.medium.filter(ind => taskLower.includes(ind)),
|
|
145
|
+
low: COMPLEXITY_INDICATORS.low.filter(ind => taskLower.includes(ind)),
|
|
198
146
|
};
|
|
199
147
|
// Compute feature scores
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
148
|
+
const lexicalComplexity = this.computeLexicalComplexity(task);
|
|
149
|
+
const semanticDepth = this.computeSemanticDepth(indicators, embedding);
|
|
150
|
+
const taskScope = this.computeTaskScope(task, words);
|
|
151
|
+
const uncertaintyLevel = this.computeUncertaintyLevel(task);
|
|
204
152
|
// Weighted combination
|
|
205
|
-
|
|
153
|
+
const score = Math.min(1, Math.max(0, lexicalComplexity * 0.2 +
|
|
206
154
|
semanticDepth * 0.35 +
|
|
207
155
|
taskScope * 0.25 +
|
|
208
156
|
uncertaintyLevel * 0.2));
|
|
209
157
|
return {
|
|
210
|
-
score
|
|
211
|
-
indicators
|
|
158
|
+
score,
|
|
159
|
+
indicators,
|
|
212
160
|
features: {
|
|
213
|
-
lexicalComplexity
|
|
214
|
-
semanticDepth
|
|
215
|
-
taskScope
|
|
216
|
-
uncertaintyLevel
|
|
217
|
-
}
|
|
161
|
+
lexicalComplexity,
|
|
162
|
+
semanticDepth,
|
|
163
|
+
taskScope,
|
|
164
|
+
uncertaintyLevel,
|
|
165
|
+
},
|
|
218
166
|
};
|
|
219
|
-
}
|
|
167
|
+
}
|
|
220
168
|
/**
|
|
221
169
|
* Compute lexical complexity from text features
|
|
222
170
|
*/
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
171
|
+
computeLexicalComplexity(task) {
|
|
172
|
+
const words = task.split(/\s+/);
|
|
173
|
+
const avgWordLength = words.reduce((sum, w) => sum + w.length, 0) / Math.max(1, words.length);
|
|
174
|
+
const sentenceLength = words.length;
|
|
227
175
|
// Normalize: longer sentences with longer words = more complex
|
|
228
|
-
|
|
229
|
-
|
|
176
|
+
const lengthScore = Math.min(1, sentenceLength / 50);
|
|
177
|
+
const wordScore = Math.min(1, (avgWordLength - 3) / 7); // 3-10 char words
|
|
230
178
|
return lengthScore * 0.4 + wordScore * 0.6;
|
|
231
|
-
}
|
|
179
|
+
}
|
|
232
180
|
/**
|
|
233
181
|
* Compute semantic depth from indicators and embedding
|
|
234
182
|
*/
|
|
235
|
-
|
|
183
|
+
computeSemanticDepth(indicators, embedding) {
|
|
236
184
|
// Weight by indicator presence
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
185
|
+
const highWeight = indicators.high.length * 0.3;
|
|
186
|
+
const mediumWeight = indicators.medium.length * 0.15;
|
|
187
|
+
const lowWeight = indicators.low.length * -0.1;
|
|
188
|
+
let baseScore = Math.min(1, Math.max(0, 0.3 + highWeight + mediumWeight + lowWeight));
|
|
241
189
|
// Boost with embedding variance if available
|
|
242
190
|
if (embedding && embedding.length > 0) {
|
|
243
|
-
|
|
244
|
-
|
|
191
|
+
const mean = embedding.reduce((a, b) => a + b, 0) / embedding.length;
|
|
192
|
+
const variance = embedding.reduce((sum, v) => sum + Math.pow(v - mean, 2), 0) / embedding.length;
|
|
245
193
|
// Higher variance suggests more nuanced semantics
|
|
246
194
|
baseScore = baseScore * 0.7 + Math.min(1, variance * 10) * 0.3;
|
|
247
195
|
}
|
|
248
196
|
return baseScore;
|
|
249
|
-
}
|
|
197
|
+
}
|
|
250
198
|
/**
|
|
251
199
|
* Compute task scope from content analysis
|
|
252
200
|
*/
|
|
253
|
-
|
|
201
|
+
computeTaskScope(task, words) {
|
|
254
202
|
// Multi-file indicators
|
|
255
|
-
|
|
203
|
+
const multiFilePatterns = [
|
|
256
204
|
/multiple files?/i, /across.*modules?/i, /refactor.*codebase/i,
|
|
257
205
|
/all.*files/i, /entire.*project/i, /system.*wide/i,
|
|
258
206
|
];
|
|
259
|
-
|
|
207
|
+
const hasMultiFile = multiFilePatterns.some(p => p.test(task)) ? 0.4 : 0;
|
|
260
208
|
// Code generation indicators
|
|
261
|
-
|
|
209
|
+
const codeGenPatterns = [
|
|
262
210
|
/implement/i, /create.*feature/i, /build.*system/i,
|
|
263
211
|
/design.*api/i, /write.*tests/i, /add.*functionality/i,
|
|
264
212
|
];
|
|
265
|
-
|
|
213
|
+
const hasCodeGen = codeGenPatterns.some(p => p.test(task)) ? 0.3 : 0;
|
|
266
214
|
// Word count contribution
|
|
267
|
-
|
|
215
|
+
const wordCountScore = Math.min(0.3, words.length / 100);
|
|
268
216
|
return hasMultiFile + hasCodeGen + wordCountScore;
|
|
269
|
-
}
|
|
217
|
+
}
|
|
270
218
|
/**
|
|
271
219
|
* Compute uncertainty level from task phrasing
|
|
272
220
|
*/
|
|
273
|
-
|
|
274
|
-
|
|
221
|
+
computeUncertaintyLevel(task) {
|
|
222
|
+
const uncertainPatterns = [
|
|
275
223
|
/not sure/i, /might/i, /maybe/i, /possibly/i, /investigate/i,
|
|
276
224
|
/figure out/i, /unclear/i, /unknown/i, /debug/i, /strange/i,
|
|
277
225
|
/weird/i, /issue/i, /problem/i, /error/i, /bug/i,
|
|
278
226
|
];
|
|
279
|
-
|
|
227
|
+
const matchCount = uncertainPatterns.filter(p => p.test(task)).length;
|
|
280
228
|
return Math.min(1, matchCount * 0.2);
|
|
281
|
-
}
|
|
229
|
+
}
|
|
282
230
|
/**
|
|
283
231
|
* Compute scores for each model
|
|
284
232
|
*/
|
|
285
|
-
|
|
286
|
-
|
|
233
|
+
computeModelScores(complexity) {
|
|
234
|
+
const { score } = complexity;
|
|
287
235
|
// Base scoring: inverse relationship with complexity
|
|
288
236
|
// Low complexity → haiku scores high
|
|
289
237
|
// High complexity → opus scores high
|
|
290
238
|
return {
|
|
291
|
-
haiku: Math.max(0, 1 - score * 2),
|
|
292
|
-
sonnet: 1 - Math.abs(score - 0.5) * 2,
|
|
293
|
-
opus: Math.min(1, score * 1.5),
|
|
294
|
-
inherit: 0.1
|
|
239
|
+
haiku: Math.max(0, 1 - score * 2), // Drops off quickly as complexity rises
|
|
240
|
+
sonnet: 1 - Math.abs(score - 0.5) * 2, // Peaks at medium complexity
|
|
241
|
+
opus: Math.min(1, score * 1.5), // Rises with complexity
|
|
242
|
+
inherit: 0.1, // Low baseline unless explicitly needed
|
|
295
243
|
};
|
|
296
|
-
}
|
|
244
|
+
}
|
|
297
245
|
/**
|
|
298
246
|
* Apply circuit breaker adjustments
|
|
299
247
|
*/
|
|
300
|
-
|
|
248
|
+
applyCircuitBreaker(scores) {
|
|
301
249
|
if (!this.config.enableCircuitBreaker) {
|
|
302
250
|
return scores;
|
|
303
251
|
}
|
|
304
|
-
|
|
305
|
-
for (
|
|
306
|
-
var model = _a[_i];
|
|
252
|
+
const adjusted = { ...scores };
|
|
253
|
+
for (const model of Object.keys(adjusted)) {
|
|
307
254
|
if (this.consecutiveFailures[model] >= this.config.circuitBreakerThreshold) {
|
|
308
255
|
// Circuit is open - heavily penalize this model
|
|
309
256
|
adjusted[model] *= 0.1;
|
|
@@ -314,59 +261,56 @@ var ModelRouter = /** @class */ (function () {
|
|
|
314
261
|
}
|
|
315
262
|
}
|
|
316
263
|
return adjusted;
|
|
317
|
-
}
|
|
264
|
+
}
|
|
318
265
|
/**
|
|
319
266
|
* Select the best model from scores
|
|
320
267
|
*/
|
|
321
|
-
|
|
268
|
+
selectModel(scores, complexityScore) {
|
|
322
269
|
// Get sorted models by score
|
|
323
|
-
|
|
324
|
-
.filter(
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
.sort(function (a, b) { return b[1] - a[1]; });
|
|
329
|
-
var _a = sorted[0], bestModel = _a[0], bestScore = _a[1];
|
|
330
|
-
var _b = sorted[1] || ['sonnet', 0], secondModel = _b[0], secondScore = _b[1];
|
|
270
|
+
const sorted = Object.entries(scores)
|
|
271
|
+
.filter(([m]) => m !== 'inherit')
|
|
272
|
+
.sort((a, b) => b[1] - a[1]);
|
|
273
|
+
const [bestModel, bestScore] = sorted[0];
|
|
274
|
+
const [secondModel, secondScore] = sorted[1] || ['sonnet', 0];
|
|
331
275
|
// Confidence is how much better the best is vs second
|
|
332
|
-
|
|
276
|
+
const confidence = bestScore > 0 ? Math.min(1, bestScore / (bestScore + secondScore + 0.01)) : 0.5;
|
|
333
277
|
// Uncertainty based on score spread and complexity
|
|
334
|
-
|
|
335
|
-
|
|
278
|
+
const scoreSpread = bestScore - secondScore;
|
|
279
|
+
const uncertainty = Math.max(0, 1 - scoreSpread - confidence * 0.5);
|
|
336
280
|
// Escalate if uncertainty is too high
|
|
337
|
-
|
|
281
|
+
let model = bestModel;
|
|
338
282
|
if (uncertainty > this.config.maxUncertainty && bestModel !== 'opus') {
|
|
339
283
|
// Escalate to more capable model
|
|
340
284
|
model = bestModel === 'haiku' ? 'sonnet' : 'opus';
|
|
341
285
|
}
|
|
342
|
-
return { model
|
|
343
|
-
}
|
|
286
|
+
return { model, confidence, uncertainty };
|
|
287
|
+
}
|
|
344
288
|
/**
|
|
345
289
|
* Build human-readable reasoning
|
|
346
290
|
*/
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
parts.push(
|
|
291
|
+
buildReasoning(model, complexity, confidence) {
|
|
292
|
+
const parts = [];
|
|
293
|
+
parts.push(`Complexity: ${(complexity.score * 100).toFixed(0)}%`);
|
|
350
294
|
if (complexity.indicators.high.length > 0) {
|
|
351
|
-
parts.push(
|
|
295
|
+
parts.push(`High-complexity indicators: ${complexity.indicators.high.join(', ')}`);
|
|
352
296
|
}
|
|
353
|
-
parts.push(
|
|
354
|
-
parts.push(
|
|
297
|
+
parts.push(`Confidence: ${(confidence * 100).toFixed(0)}%`);
|
|
298
|
+
parts.push(`Model: ${model} - ${MODEL_CAPABILITIES[model].description}`);
|
|
355
299
|
if (this.config.enableCostOptimization) {
|
|
356
|
-
parts.push(
|
|
300
|
+
parts.push(`Cost: ${MODEL_CAPABILITIES[model].costMultiplier}x baseline`);
|
|
357
301
|
}
|
|
358
302
|
return parts.join(' | ');
|
|
359
|
-
}
|
|
303
|
+
}
|
|
360
304
|
/**
|
|
361
305
|
* Track routing decision for learning
|
|
362
306
|
*/
|
|
363
|
-
|
|
307
|
+
trackDecision(task, result) {
|
|
364
308
|
this.decisionCount++;
|
|
365
309
|
this.state.totalDecisions++;
|
|
366
310
|
this.state.modelDistribution[result.model] =
|
|
367
311
|
(this.state.modelDistribution[result.model] || 0) + 1;
|
|
368
312
|
// Update running averages
|
|
369
|
-
|
|
313
|
+
const n = this.state.totalDecisions;
|
|
370
314
|
this.state.avgComplexity =
|
|
371
315
|
(this.state.avgComplexity * (n - 1) + result.complexity) / n;
|
|
372
316
|
this.state.avgConfidence =
|
|
@@ -375,11 +319,11 @@ var ModelRouter = /** @class */ (function () {
|
|
|
375
319
|
if (this.decisionCount % this.config.autoSaveInterval === 0) {
|
|
376
320
|
this.saveState();
|
|
377
321
|
}
|
|
378
|
-
}
|
|
322
|
+
}
|
|
379
323
|
/**
|
|
380
324
|
* Record outcome for learning
|
|
381
325
|
*/
|
|
382
|
-
|
|
326
|
+
recordOutcome(task, model, outcome) {
|
|
383
327
|
// Update circuit breaker state
|
|
384
328
|
if (outcome === 'failure') {
|
|
385
329
|
this.consecutiveFailures[model]++;
|
|
@@ -390,10 +334,10 @@ var ModelRouter = /** @class */ (function () {
|
|
|
390
334
|
// Track in history
|
|
391
335
|
this.state.learningHistory.push({
|
|
392
336
|
task: task.slice(0, 100),
|
|
393
|
-
model
|
|
337
|
+
model,
|
|
394
338
|
complexity: this.state.avgComplexity,
|
|
395
|
-
outcome
|
|
396
|
-
timestamp: new Date().toISOString()
|
|
339
|
+
outcome,
|
|
340
|
+
timestamp: new Date().toISOString(),
|
|
397
341
|
});
|
|
398
342
|
// Keep history bounded
|
|
399
343
|
if (this.state.learningHistory.length > 100) {
|
|
@@ -403,66 +347,66 @@ var ModelRouter = /** @class */ (function () {
|
|
|
403
347
|
this.state.circuitBreakerTrips++;
|
|
404
348
|
}
|
|
405
349
|
this.saveState();
|
|
406
|
-
}
|
|
350
|
+
}
|
|
407
351
|
/**
|
|
408
352
|
* Get router statistics
|
|
409
353
|
*/
|
|
410
|
-
|
|
354
|
+
getStats() {
|
|
411
355
|
return {
|
|
412
356
|
totalDecisions: this.state.totalDecisions,
|
|
413
|
-
modelDistribution:
|
|
357
|
+
modelDistribution: { ...this.state.modelDistribution },
|
|
414
358
|
avgComplexity: this.state.avgComplexity,
|
|
415
359
|
avgConfidence: this.state.avgConfidence,
|
|
416
360
|
circuitBreakerTrips: this.state.circuitBreakerTrips,
|
|
417
|
-
consecutiveFailures:
|
|
361
|
+
consecutiveFailures: { ...this.consecutiveFailures },
|
|
418
362
|
};
|
|
419
|
-
}
|
|
363
|
+
}
|
|
420
364
|
/**
|
|
421
365
|
* Load state from disk
|
|
422
366
|
*/
|
|
423
|
-
|
|
424
|
-
|
|
367
|
+
loadState() {
|
|
368
|
+
const defaultState = {
|
|
425
369
|
totalDecisions: 0,
|
|
426
370
|
modelDistribution: { haiku: 0, sonnet: 0, opus: 0, inherit: 0 },
|
|
427
371
|
avgComplexity: 0.5,
|
|
428
372
|
avgConfidence: 0.8,
|
|
429
373
|
circuitBreakerTrips: 0,
|
|
430
374
|
lastUpdated: new Date().toISOString(),
|
|
431
|
-
learningHistory: []
|
|
375
|
+
learningHistory: [],
|
|
432
376
|
};
|
|
433
377
|
try {
|
|
434
|
-
|
|
378
|
+
const fullPath = join(process.cwd(), this.config.statePath);
|
|
435
379
|
if (existsSync(fullPath)) {
|
|
436
|
-
|
|
437
|
-
return
|
|
380
|
+
const data = readFileSync(fullPath, 'utf-8');
|
|
381
|
+
return { ...defaultState, ...JSON.parse(data) };
|
|
438
382
|
}
|
|
439
383
|
}
|
|
440
|
-
catch
|
|
384
|
+
catch {
|
|
441
385
|
// Ignore load errors
|
|
442
386
|
}
|
|
443
387
|
return defaultState;
|
|
444
|
-
}
|
|
388
|
+
}
|
|
445
389
|
/**
|
|
446
390
|
* Save state to disk
|
|
447
391
|
*/
|
|
448
|
-
|
|
392
|
+
saveState() {
|
|
449
393
|
try {
|
|
450
|
-
|
|
451
|
-
|
|
394
|
+
const fullPath = join(process.cwd(), this.config.statePath);
|
|
395
|
+
const dir = dirname(fullPath);
|
|
452
396
|
if (!existsSync(dir)) {
|
|
453
397
|
mkdirSync(dir, { recursive: true });
|
|
454
398
|
}
|
|
455
399
|
this.state.lastUpdated = new Date().toISOString();
|
|
456
400
|
writeFileSync(fullPath, JSON.stringify(this.state, null, 2));
|
|
457
401
|
}
|
|
458
|
-
catch
|
|
402
|
+
catch {
|
|
459
403
|
// Ignore save errors in non-critical scenarios
|
|
460
404
|
}
|
|
461
|
-
}
|
|
405
|
+
}
|
|
462
406
|
/**
|
|
463
407
|
* Reset router state
|
|
464
408
|
*/
|
|
465
|
-
|
|
409
|
+
reset() {
|
|
466
410
|
this.state = {
|
|
467
411
|
totalDecisions: 0,
|
|
468
412
|
modelDistribution: { haiku: 0, sonnet: 0, opus: 0, inherit: 0 },
|
|
@@ -470,19 +414,17 @@ var ModelRouter = /** @class */ (function () {
|
|
|
470
414
|
avgConfidence: 0.8,
|
|
471
415
|
circuitBreakerTrips: 0,
|
|
472
416
|
lastUpdated: new Date().toISOString(),
|
|
473
|
-
learningHistory: []
|
|
417
|
+
learningHistory: [],
|
|
474
418
|
};
|
|
475
419
|
this.consecutiveFailures = { haiku: 0, sonnet: 0, opus: 0, inherit: 0 };
|
|
476
420
|
this.decisionCount = 0;
|
|
477
421
|
this.saveState();
|
|
478
|
-
}
|
|
479
|
-
|
|
480
|
-
}());
|
|
481
|
-
export { ModelRouter };
|
|
422
|
+
}
|
|
423
|
+
}
|
|
482
424
|
// ============================================================================
|
|
483
425
|
// Singleton & Factory Functions
|
|
484
426
|
// ============================================================================
|
|
485
|
-
|
|
427
|
+
let modelRouterInstance = null;
|
|
486
428
|
/**
|
|
487
429
|
* Get or create the singleton ModelRouter instance
|
|
488
430
|
*/
|
|
@@ -510,52 +452,37 @@ export function createModelRouter(config) {
|
|
|
510
452
|
/**
|
|
511
453
|
* Quick route function for common use case
|
|
512
454
|
*/
|
|
513
|
-
export function routeToModel(task) {
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
switch (_a.label) {
|
|
518
|
-
case 0:
|
|
519
|
-
router = getModelRouter();
|
|
520
|
-
return [4 /*yield*/, router.route(task)];
|
|
521
|
-
case 1:
|
|
522
|
-
result = _a.sent();
|
|
523
|
-
return [2 /*return*/, result.model];
|
|
524
|
-
}
|
|
525
|
-
});
|
|
526
|
-
});
|
|
455
|
+
export async function routeToModel(task) {
|
|
456
|
+
const router = getModelRouter();
|
|
457
|
+
const result = await router.route(task);
|
|
458
|
+
return result.model;
|
|
527
459
|
}
|
|
528
460
|
/**
|
|
529
461
|
* Route with full result
|
|
530
462
|
*/
|
|
531
|
-
export function routeToModelFull(task, embedding) {
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
return __generator(this, function (_a) {
|
|
535
|
-
router = getModelRouter();
|
|
536
|
-
return [2 /*return*/, router.route(task, embedding)];
|
|
537
|
-
});
|
|
538
|
-
});
|
|
463
|
+
export async function routeToModelFull(task, embedding) {
|
|
464
|
+
const router = getModelRouter();
|
|
465
|
+
return router.route(task, embedding);
|
|
539
466
|
}
|
|
540
467
|
/**
|
|
541
468
|
* Analyze task complexity without routing
|
|
542
469
|
*/
|
|
543
470
|
export function analyzeTaskComplexity(task) {
|
|
544
|
-
|
|
471
|
+
const router = getModelRouter();
|
|
545
472
|
return router.analyzeComplexity(task, undefined);
|
|
546
473
|
}
|
|
547
474
|
/**
|
|
548
475
|
* Get model router statistics
|
|
549
476
|
*/
|
|
550
477
|
export function getModelRouterStats() {
|
|
551
|
-
|
|
478
|
+
const router = getModelRouter();
|
|
552
479
|
return router.getStats();
|
|
553
480
|
}
|
|
554
481
|
/**
|
|
555
482
|
* Record routing outcome for learning
|
|
556
483
|
*/
|
|
557
484
|
export function recordModelOutcome(task, model, outcome) {
|
|
558
|
-
|
|
485
|
+
const router = getModelRouter();
|
|
559
486
|
router.recordOutcome(task, model, outcome);
|
|
560
487
|
}
|
|
561
488
|
//# sourceMappingURL=model-router.js.map
|