kynjal-cli 3.1.3 → 4.0.0
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/.claude/agents/core/coder.md +1 -1
- package/.claude/agents/core/planner.md +2 -2
- package/.claude/agents/core/researcher.md +1 -1
- package/.claude/agents/core/reviewer.md +1 -1
- package/.claude/agents/core/tester.md +1 -1
- package/.claude/agents/data/data-ml-model.md +4 -4
- package/.claude/agents/development/dev-backend-api.md +4 -4
- package/.claude/agents/documentation/docs-api-openapi.md +4 -4
- package/.claude/agents/github/code-review-swarm.md +2 -2
- package/.claude/agents/github/issue-tracker.md +2 -2
- package/.claude/agents/github/pr-manager.md +2 -2
- package/.claude/agents/github/release-manager.md +2 -2
- package/.claude/agents/github/workflow-automation.md +2 -2
- package/.claude/agents/sparc/architecture.md +3 -3
- package/.claude/agents/sparc/pseudocode.md +2 -2
- package/.claude/agents/sparc/refinement.md +3 -3
- package/.claude/agents/sparc/specification.md +2 -2
- package/.claude/agents/swarm/adaptive-coordinator.md +1 -1
- package/.claude/agents/swarm/hierarchical-coordinator.md +1 -1
- package/.claude/agents/swarm/mesh-coordinator.md +1 -1
- package/.claude/agents/templates/base-template-generator.md +25 -4
- package/.claude/agents/templates/sparc-coordinator.md +3 -3
- package/.claude/helpers/auto-commit.sh +1 -1
- package/.claude/helpers/auto-memory-hook.mjs +27 -9
- package/.claude/helpers/hook-handler.cjs +58 -18
- package/.claude/helpers/statusline.cjs +14 -33
- package/.claude/helpers/statusline.js +3 -3
- package/.claude/settings.json +9 -9
- package/.claude/skills/reasoningbank-intelligence/SKILL.md +2 -2
- package/.claude/skills/swarm-orchestration/SKILL.md +1 -1
- package/README.md +383 -170
- package/bin/cli.js +6 -6
- package/bin/mcp-server.js +1 -1
- package/bin/preinstall.cjs +2 -0
- package/dist/src/appliance/gguf-engine.js +664 -0
- package/dist/src/appliance/gguf-engine.js.map +1 -0
- package/dist/src/appliance/ruvllm-bridge.js +492 -0
- package/dist/src/appliance/ruvllm-bridge.js.map +1 -0
- package/dist/src/appliance/rvfa-builder.js +383 -0
- package/dist/src/appliance/rvfa-builder.js.map +1 -0
- package/dist/src/appliance/rvfa-distribution.js +533 -0
- package/dist/src/appliance/rvfa-distribution.js.map +1 -0
- package/dist/src/appliance/rvfa-format.js +465 -0
- package/dist/src/appliance/rvfa-format.js.map +1 -0
- package/dist/src/appliance/rvfa-runner.js +373 -0
- package/dist/src/appliance/rvfa-runner.js.map +1 -0
- package/dist/src/appliance/rvfa-signing.js +469 -0
- package/dist/src/appliance/rvfa-signing.js.map +1 -0
- package/dist/src/benchmarks/pretrain/index.js +542 -331
- package/dist/src/benchmarks/pretrain/index.js.map +1 -1
- package/dist/src/commands/agent.d.ts.map +1 -1
- package/dist/src/commands/agent.js +725 -502
- package/dist/src/commands/agent.js.map +1 -1
- package/dist/src/commands/analyze.js +1548 -1218
- package/dist/src/commands/analyze.js.map +1 -1
- package/dist/src/commands/appliance-advanced.d.ts +9 -0
- package/dist/src/commands/appliance-advanced.d.ts.map +1 -0
- package/dist/src/commands/appliance-advanced.js +324 -0
- package/dist/src/commands/appliance-advanced.js.map +1 -0
- package/dist/src/commands/appliance.d.ts +8 -0
- package/dist/src/commands/appliance.d.ts.map +1 -0
- package/dist/src/commands/appliance.js +581 -0
- package/dist/src/commands/appliance.js.map +1 -0
- package/dist/src/commands/benchmark.js +523 -372
- package/dist/src/commands/benchmark.js.map +1 -1
- package/dist/src/commands/claims.js +364 -274
- package/dist/src/commands/claims.js.map +1 -1
- package/dist/src/commands/cleanup.d.ts +13 -0
- package/dist/src/commands/cleanup.d.ts.map +1 -0
- package/dist/src/commands/cleanup.js +262 -0
- package/dist/src/commands/cleanup.js.map +1 -0
- package/dist/src/commands/completions.js +118 -477
- package/dist/src/commands/completions.js.map +1 -1
- package/dist/src/commands/config.js +303 -237
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/daemon.d.ts.map +1 -1
- package/dist/src/commands/daemon.js +597 -425
- package/dist/src/commands/daemon.js.map +1 -1
- package/dist/src/commands/deployment.js +275 -194
- package/dist/src/commands/deployment.js.map +1 -1
- package/dist/src/commands/doctor.d.ts.map +1 -1
- package/dist/src/commands/doctor.js +690 -460
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/embeddings.js +1543 -1293
- package/dist/src/commands/embeddings.js.map +1 -1
- package/dist/src/commands/guidance.js +596 -449
- package/dist/src/commands/guidance.js.map +1 -1
- package/dist/src/commands/hive-mind.js +938 -854
- package/dist/src/commands/hive-mind.js.map +1 -1
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +3677 -2570
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/index.js +322 -122
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/init.d.ts +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +943 -787
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/issues.js +558 -383
- package/dist/src/commands/issues.js.map +1 -1
- package/dist/src/commands/mcp.d.ts.map +1 -1
- package/dist/src/commands/mcp.js +605 -475
- package/dist/src/commands/mcp.js.map +1 -1
- package/dist/src/commands/memory.d.ts.map +1 -1
- package/dist/src/commands/memory.js +1031 -814
- package/dist/src/commands/memory.js.map +1 -1
- package/dist/src/commands/migrate.js +347 -282
- package/dist/src/commands/migrate.js.map +1 -1
- package/dist/src/commands/neural.d.ts.map +1 -1
- package/dist/src/commands/neural.js +1563 -1283
- package/dist/src/commands/neural.js.map +1 -1
- package/dist/src/commands/performance.js +643 -497
- package/dist/src/commands/performance.js.map +1 -1
- package/dist/src/commands/plugins.js +841 -668
- package/dist/src/commands/plugins.js.map +1 -1
- package/dist/src/commands/process.js +447 -392
- package/dist/src/commands/process.js.map +1 -1
- package/dist/src/commands/progress.js +256 -162
- package/dist/src/commands/progress.js.map +1 -1
- package/dist/src/commands/providers.js +220 -150
- package/dist/src/commands/providers.js.map +1 -1
- package/dist/src/commands/route.js +665 -520
- package/dist/src/commands/route.js.map +1 -1
- package/dist/src/commands/ruvector/backup.js +651 -505
- package/dist/src/commands/ruvector/backup.js.map +1 -1
- package/dist/src/commands/ruvector/benchmark.js +401 -349
- package/dist/src/commands/ruvector/benchmark.js.map +1 -1
- package/dist/src/commands/ruvector/import.js +267 -225
- package/dist/src/commands/ruvector/import.js.map +1 -1
- package/dist/src/commands/ruvector/index.js +75 -37
- package/dist/src/commands/ruvector/index.js.map +1 -1
- package/dist/src/commands/ruvector/init.js +359 -336
- package/dist/src/commands/ruvector/init.js.map +1 -1
- package/dist/src/commands/ruvector/migrate.js +322 -335
- package/dist/src/commands/ruvector/migrate.js.map +1 -1
- package/dist/src/commands/ruvector/optimize.js +431 -375
- package/dist/src/commands/ruvector/optimize.js.map +1 -1
- package/dist/src/commands/ruvector/setup.js +117 -703
- package/dist/src/commands/ruvector/setup.js.map +1 -1
- package/dist/src/commands/ruvector/status.js +419 -364
- package/dist/src/commands/ruvector/status.js.map +1 -1
- package/dist/src/commands/security.d.ts.map +1 -1
- package/dist/src/commands/security.js +610 -456
- package/dist/src/commands/security.js.map +1 -1
- package/dist/src/commands/session.d.ts +1 -1
- package/dist/src/commands/session.js +627 -505
- package/dist/src/commands/session.js.map +1 -1
- package/dist/src/commands/start.d.ts +1 -1
- package/dist/src/commands/start.js +368 -271
- package/dist/src/commands/start.js.map +1 -1
- package/dist/src/commands/status.d.ts +1 -1
- package/dist/src/commands/status.d.ts.map +1 -1
- package/dist/src/commands/status.js +492 -379
- package/dist/src/commands/status.js.map +1 -1
- package/dist/src/commands/swarm.js +488 -408
- package/dist/src/commands/swarm.js.map +1 -1
- package/dist/src/commands/task.d.ts +1 -1
- package/dist/src/commands/task.js +539 -424
- package/dist/src/commands/task.js.map +1 -1
- package/dist/src/commands/transfer-store.js +412 -322
- package/dist/src/commands/transfer-store.js.map +1 -1
- package/dist/src/commands/update.js +291 -196
- package/dist/src/commands/update.js.map +1 -1
- package/dist/src/commands/workflow.js +486 -386
- package/dist/src/commands/workflow.js.map +1 -1
- package/dist/src/config-adapter.js +40 -39
- package/dist/src/config-adapter.js.map +1 -1
- package/dist/src/index.js +416 -312
- package/dist/src/index.js.map +1 -1
- package/dist/src/infrastructure/in-memory-repositories.js +507 -246
- package/dist/src/infrastructure/in-memory-repositories.js.map +1 -1
- package/dist/src/init/claudemd-generator.js +78 -368
- package/dist/src/init/claudemd-generator.js.map +1 -1
- package/dist/src/init/executor.js +1019 -1345
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/helpers-generator.js +60 -635
- 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.d.ts +0 -1
- package/dist/src/init/mcp-generator.d.ts.map +1 -1
- package/dist/src/init/mcp-generator.js +62 -42
- package/dist/src/init/mcp-generator.js.map +1 -1
- package/dist/src/init/settings-generator.d.ts.map +1 -1
- package/dist/src/init/settings-generator.js +167 -100
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/statusline-generator.d.ts +16 -8
- package/dist/src/init/statusline-generator.d.ts.map +1 -1
- package/dist/src/init/statusline-generator.js +20 -1300
- package/dist/src/init/statusline-generator.js.map +1 -1
- package/dist/src/init/types.d.ts +15 -5
- package/dist/src/init/types.d.ts.map +1 -1
- package/dist/src/init/types.js +66 -76
- package/dist/src/init/types.js.map +1 -1
- package/dist/src/mcp-client.js +130 -76
- package/dist/src/mcp-client.js.map +1 -1
- package/dist/src/mcp-server.js +758 -445
- package/dist/src/mcp-server.js.map +1 -1
- package/dist/src/mcp-tools/agent-tools.js +492 -391
- package/dist/src/mcp-tools/agent-tools.js.map +1 -1
- package/dist/src/mcp-tools/agentdb-tools.d.ts +30 -0
- package/dist/src/mcp-tools/agentdb-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/agentdb-tools.js +758 -0
- package/dist/src/mcp-tools/agentdb-tools.js.map +1 -0
- package/dist/src/mcp-tools/analyze-tools.js +236 -172
- package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
- package/dist/src/mcp-tools/auto-install.js +142 -80
- package/dist/src/mcp-tools/auto-install.js.map +1 -1
- package/dist/src/mcp-tools/browser-tools.js +375 -252
- package/dist/src/mcp-tools/browser-tools.js.map +1 -1
- package/dist/src/mcp-tools/claims-tools.js +565 -473
- package/dist/src/mcp-tools/claims-tools.js.map +1 -1
- package/dist/src/mcp-tools/config-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/config-tools.js +284 -190
- package/dist/src/mcp-tools/config-tools.js.map +1 -1
- package/dist/src/mcp-tools/coordination-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/coordination-tools.js +600 -349
- package/dist/src/mcp-tools/coordination-tools.js.map +1 -1
- package/dist/src/mcp-tools/daa-tools.js +367 -289
- package/dist/src/mcp-tools/daa-tools.js.map +1 -1
- package/dist/src/mcp-tools/embeddings-tools.js +693 -582
- package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
- package/dist/src/mcp-tools/github-tools.js +312 -261
- package/dist/src/mcp-tools/github-tools.js.map +1 -1
- package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/hive-mind-tools.js +718 -423
- package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.js +2726 -1978
- package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
- package/dist/src/mcp-tools/index.d.ts +2 -0
- package/dist/src/mcp-tools/index.d.ts.map +1 -1
- package/dist/src/mcp-tools/index.js +2 -0
- package/dist/src/mcp-tools/index.js.map +1 -1
- package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/memory-tools.js +514 -329
- package/dist/src/mcp-tools/memory-tools.js.map +1 -1
- package/dist/src/mcp-tools/neural-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/neural-tools.js +428 -326
- package/dist/src/mcp-tools/neural-tools.js.map +1 -1
- package/dist/src/mcp-tools/performance-tools.js +480 -420
- package/dist/src/mcp-tools/performance-tools.js.map +1 -1
- package/dist/src/mcp-tools/progress-tools.js +278 -204
- package/dist/src/mcp-tools/progress-tools.js.map +1 -1
- package/dist/src/mcp-tools/ruvllm-tools.d.ts +9 -0
- package/dist/src/mcp-tools/ruvllm-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/ruvllm-tools.js +399 -0
- package/dist/src/mcp-tools/ruvllm-tools.js.map +1 -0
- package/dist/src/mcp-tools/security-tools.js +429 -297
- package/dist/src/mcp-tools/security-tools.js.map +1 -1
- package/dist/src/mcp-tools/session-tools.js +234 -185
- package/dist/src/mcp-tools/session-tools.js.map +1 -1
- package/dist/src/mcp-tools/swarm-tools.d.ts +2 -1
- package/dist/src/mcp-tools/swarm-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/swarm-tools.js +303 -64
- package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
- package/dist/src/mcp-tools/system-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/system-tools.js +352 -200
- package/dist/src/mcp-tools/system-tools.js.map +1 -1
- package/dist/src/mcp-tools/task-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/task-tools.js +357 -189
- package/dist/src/mcp-tools/task-tools.js.map +1 -1
- package/dist/src/mcp-tools/terminal-tools.js +196 -148
- package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
- package/dist/src/mcp-tools/transfer-tools.js +333 -186
- package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
- package/dist/src/mcp-tools/wasm-agent-tools.d.ts +9 -0
- package/dist/src/mcp-tools/wasm-agent-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/wasm-agent-tools.js +377 -0
- package/dist/src/mcp-tools/wasm-agent-tools.js.map +1 -0
- package/dist/src/mcp-tools/workflow-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/workflow-tools.js +471 -335
- package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
- package/dist/src/memory/ewc-consolidation.js +345 -173
- package/dist/src/memory/ewc-consolidation.js.map +1 -1
- package/dist/src/memory/intelligence.js +841 -359
- package/dist/src/memory/intelligence.js.map +1 -1
- package/dist/src/memory/memory-bridge.js +1964 -0
- package/dist/src/memory/memory-bridge.js.map +1 -0
- package/dist/src/memory/memory-initializer.js +1895 -1602
- package/dist/src/memory/memory-initializer.js.map +1 -1
- package/dist/src/memory/sona-optimizer.js +329 -199
- 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 +273 -242
- package/dist/src/output.js.map +1 -1
- package/dist/src/parser.js +217 -124
- package/dist/src/parser.js.map +1 -1
- package/dist/src/plugins/manager.js +531 -278
- package/dist/src/plugins/manager.js.map +1 -1
- package/dist/src/plugins/store/discovery.js +362 -275
- package/dist/src/plugins/store/discovery.js.map +1 -1
- package/dist/src/plugins/store/index.js +105 -48
- package/dist/src/plugins/store/index.js.map +1 -1
- package/dist/src/plugins/store/search.js +107 -69
- package/dist/src/plugins/store/search.js.map +1 -1
- package/dist/src/plugins/tests/demo-plugin-store.js +160 -113
- package/dist/src/plugins/tests/demo-plugin-store.js.map +1 -1
- package/dist/src/plugins/tests/standalone-test.js +223 -172
- package/dist/src/plugins/tests/standalone-test.js.map +1 -1
- package/dist/src/plugins/tests/test-plugin-store.js +228 -190
- package/dist/src/plugins/tests/test-plugin-store.js.map +1 -1
- package/dist/src/production/circuit-breaker.js +126 -62
- package/dist/src/production/circuit-breaker.js.map +1 -1
- package/dist/src/production/error-handler.js +156 -86
- package/dist/src/production/error-handler.js.map +1 -1
- package/dist/src/production/monitoring.js +220 -139
- package/dist/src/production/monitoring.js.map +1 -1
- package/dist/src/production/rate-limiter.js +93 -74
- package/dist/src/production/rate-limiter.js.map +1 -1
- package/dist/src/production/retry.js +167 -75
- package/dist/src/production/retry.js.map +1 -1
- package/dist/src/prompt.js +560 -436
- package/dist/src/prompt.js.map +1 -1
- package/dist/src/runtime/headless.js +289 -200
- package/dist/src/runtime/headless.js.map +1 -1
- package/dist/src/ruvector/agent-wasm.js +511 -0
- package/dist/src/ruvector/agent-wasm.js.map +1 -0
- package/dist/src/ruvector/ast-analyzer.js +232 -145
- package/dist/src/ruvector/ast-analyzer.js.map +1 -1
- package/dist/src/ruvector/coverage-router.js +419 -287
- package/dist/src/ruvector/coverage-router.js.map +1 -1
- package/dist/src/ruvector/coverage-tools.js +101 -56
- package/dist/src/ruvector/coverage-tools.js.map +1 -1
- package/dist/src/ruvector/diff-classifier.js +451 -324
- package/dist/src/ruvector/diff-classifier.js.map +1 -1
- package/dist/src/ruvector/enhanced-model-router.js +337 -251
- package/dist/src/ruvector/enhanced-model-router.js.map +1 -1
- package/dist/src/ruvector/flash-attention.js +254 -223
- package/dist/src/ruvector/flash-attention.js.map +1 -1
- package/dist/src/ruvector/graph-analyzer.js +680 -486
- package/dist/src/ruvector/graph-analyzer.js.map +1 -1
- package/dist/src/ruvector/index.js +113 -27
- package/dist/src/ruvector/index.js.map +1 -1
- package/dist/src/ruvector/lora-adapter.js +248 -155
- package/dist/src/ruvector/lora-adapter.js.map +1 -1
- package/dist/src/ruvector/model-router.js +248 -175
- package/dist/src/ruvector/model-router.js.map +1 -1
- package/dist/src/ruvector/moe-router.js +286 -228
- package/dist/src/ruvector/moe-router.js.map +1 -1
- package/dist/src/ruvector/q-learning-router.js +338 -257
- package/dist/src/ruvector/q-learning-router.js.map +1 -1
- package/dist/src/ruvector/ruvllm-wasm.js +527 -0
- package/dist/src/ruvector/ruvllm-wasm.js.map +1 -0
- package/dist/src/ruvector/semantic-router.js +67 -60
- package/dist/src/ruvector/semantic-router.js.map +1 -1
- package/dist/src/ruvector/vector-db.js +205 -119
- package/dist/src/ruvector/vector-db.js.map +1 -1
- package/dist/src/services/agentic-flow-bridge.js +168 -0
- package/dist/src/services/agentic-flow-bridge.js.map +1 -0
- package/dist/src/services/claim-service.js +940 -615
- package/dist/src/services/claim-service.js.map +1 -1
- package/dist/src/services/container-worker-pool.js +669 -399
- package/dist/src/services/container-worker-pool.js.map +1 -1
- package/dist/src/services/headless-worker-executor.js +467 -441
- package/dist/src/services/headless-worker-executor.js.map +1 -1
- package/dist/src/services/index.d.ts +5 -5
- 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.js +201 -93
- package/dist/src/services/registry-api.js.map +1 -1
- package/dist/src/services/ruvector-training.js +414 -144
- package/dist/src/services/ruvector-training.js.map +1 -1
- package/dist/src/services/worker-daemon.js +928 -531
- package/dist/src/services/worker-daemon.js.map +1 -1
- package/dist/src/services/worker-queue.js +550 -331
- package/dist/src/services/worker-queue.js.map +1 -1
- package/dist/src/suggest.js +55 -45
- package/dist/src/suggest.js.map +1 -1
- package/dist/src/transfer/anonymization/index.js +37 -29
- package/dist/src/transfer/anonymization/index.js.map +1 -1
- package/dist/src/transfer/deploy-seraphine.d.ts +1 -1
- package/dist/src/transfer/deploy-seraphine.js +156 -129
- package/dist/src/transfer/deploy-seraphine.js.map +1 -1
- package/dist/src/transfer/export.js +142 -84
- 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 +2 -0
- package/dist/src/transfer/index.js.map +1 -1
- package/dist/src/transfer/ipfs/client.js +337 -179
- package/dist/src/transfer/ipfs/client.js.map +1 -1
- package/dist/src/transfer/ipfs/upload.js +434 -290
- package/dist/src/transfer/ipfs/upload.js.map +1 -1
- package/dist/src/transfer/models/seraphine.js +58 -58
- package/dist/src/transfer/models/seraphine.js.map +1 -1
- package/dist/src/transfer/serialization/cfp.js +37 -33
- package/dist/src/transfer/serialization/cfp.js.map +1 -1
- package/dist/src/transfer/storage/gcs.js +248 -139
- package/dist/src/transfer/storage/gcs.js.map +1 -1
- package/dist/src/transfer/store/discovery.js +353 -243
- package/dist/src/transfer/store/discovery.js.map +1 -1
- package/dist/src/transfer/store/download.js +365 -243
- package/dist/src/transfer/store/download.js.map +1 -1
- package/dist/src/transfer/store/index.js +130 -63
- package/dist/src/transfer/store/index.js.map +1 -1
- package/dist/src/transfer/store/publish.js +258 -184
- package/dist/src/transfer/store/publish.js.map +1 -1
- package/dist/src/transfer/store/registry.js +73 -51
- package/dist/src/transfer/store/registry.js.map +1 -1
- package/dist/src/transfer/store/search.js +96 -64
- package/dist/src/transfer/store/search.js.map +1 -1
- package/dist/src/transfer/store/tests/standalone-test.js +231 -174
- package/dist/src/transfer/store/tests/standalone-test.js.map +1 -1
- package/dist/src/transfer/test-seraphine.js +130 -95
- package/dist/src/transfer/test-seraphine.js.map +1 -1
- package/dist/src/transfer/tests/test-store.js +239 -194
- package/dist/src/transfer/tests/test-store.js.map +1 -1
- package/dist/src/types.js +56 -27
- package/dist/src/types.js.map +1 -1
- package/dist/src/update/checker.js +183 -106
- package/dist/src/update/checker.js.map +1 -1
- package/dist/src/update/executor.js +198 -135
- package/dist/src/update/executor.js.map +1 -1
- package/dist/src/update/index.js +85 -38
- package/dist/src/update/index.js.map +1 -1
- package/dist/src/update/rate-limiter.js +31 -19
- package/dist/src/update/rate-limiter.js.map +1 -1
- package/dist/src/update/validator.js +64 -38
- package/dist/src/update/validator.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -10
- package/.claude/agents/custom/accessibility-auditor.yaml +0 -56
- package/.claude/agents/custom/design-architect.yaml +0 -48
- package/.claude/agents/custom/ui-developer.yaml +0 -46
- package/.claude/agents/custom/ux-researcher.yaml +0 -60
- package/dist/src/benchmarks/pretrain/index.d.ts +0 -58
- package/dist/src/benchmarks/pretrain/index.d.ts.map +0 -1
- package/dist/src/commands/index.d.ts +0 -108
- package/dist/src/commands/index.d.ts.map +0 -1
- package/dist/src/config-adapter.d.ts +0 -15
- package/dist/src/config-adapter.d.ts.map +0 -1
- package/dist/src/index.d.ts +0 -76
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/infrastructure/in-memory-repositories.d.ts +0 -68
- package/dist/src/infrastructure/in-memory-repositories.d.ts.map +0 -1
- package/dist/src/init/claudemd-generator.d.ts +0 -25
- package/dist/src/init/claudemd-generator.d.ts.map +0 -1
- package/dist/src/init/executor.d.ts +0 -41
- package/dist/src/init/executor.d.ts.map +0 -1
- package/dist/src/init/helpers-generator.d.ts +0 -60
- package/dist/src/init/helpers-generator.d.ts.map +0 -1
- package/dist/src/mcp-client.d.ts +0 -92
- package/dist/src/mcp-client.d.ts.map +0 -1
- package/dist/src/mcp-server.d.ts +0 -161
- package/dist/src/mcp-server.d.ts.map +0 -1
- package/dist/src/mcp-tools/auto-install.d.ts +0 -83
- package/dist/src/mcp-tools/auto-install.d.ts.map +0 -1
- package/dist/src/mcp-tools/types.d.ts +0 -31
- package/dist/src/mcp-tools/types.d.ts.map +0 -1
- package/dist/src/memory/ewc-consolidation.d.ts +0 -271
- package/dist/src/memory/ewc-consolidation.d.ts.map +0 -1
- package/dist/src/memory/intelligence.d.ts +0 -285
- package/dist/src/memory/intelligence.d.ts.map +0 -1
- package/dist/src/memory/memory-initializer.d.ts +0 -396
- package/dist/src/memory/memory-initializer.d.ts.map +0 -1
- package/dist/src/memory/sona-optimizer.d.ts +0 -227
- package/dist/src/memory/sona-optimizer.d.ts.map +0 -1
- package/dist/src/parser.d.ts +0 -41
- package/dist/src/parser.d.ts.map +0 -1
- package/dist/src/plugins/manager.d.ts +0 -133
- package/dist/src/plugins/manager.d.ts.map +0 -1
- package/dist/src/plugins/store/discovery.d.ts +0 -88
- package/dist/src/plugins/store/discovery.d.ts.map +0 -1
- package/dist/src/plugins/store/index.d.ts +0 -76
- package/dist/src/plugins/store/index.d.ts.map +0 -1
- package/dist/src/plugins/store/search.d.ts +0 -46
- package/dist/src/plugins/store/search.d.ts.map +0 -1
- package/dist/src/plugins/store/types.d.ts +0 -274
- package/dist/src/plugins/store/types.d.ts.map +0 -1
- package/dist/src/production/circuit-breaker.d.ts +0 -101
- package/dist/src/production/circuit-breaker.d.ts.map +0 -1
- package/dist/src/production/error-handler.d.ts +0 -92
- package/dist/src/production/error-handler.d.ts.map +0 -1
- package/dist/src/production/monitoring.d.ts +0 -161
- package/dist/src/production/monitoring.d.ts.map +0 -1
- package/dist/src/production/rate-limiter.d.ts +0 -80
- package/dist/src/production/rate-limiter.d.ts.map +0 -1
- package/dist/src/production/retry.d.ts +0 -48
- package/dist/src/production/retry.d.ts.map +0 -1
- package/dist/src/prompt.d.ts +0 -44
- package/dist/src/prompt.d.ts.map +0 -1
- package/dist/src/runtime/headless.d.ts +0 -60
- package/dist/src/runtime/headless.d.ts.map +0 -1
- package/dist/src/ruvector/ast-analyzer.d.ts +0 -67
- package/dist/src/ruvector/ast-analyzer.d.ts.map +0 -1
- package/dist/src/ruvector/coverage-router.d.ts +0 -160
- package/dist/src/ruvector/coverage-router.d.ts.map +0 -1
- package/dist/src/ruvector/diff-classifier.d.ts +0 -175
- package/dist/src/ruvector/diff-classifier.d.ts.map +0 -1
- package/dist/src/ruvector/enhanced-model-router.d.ts +0 -146
- package/dist/src/ruvector/enhanced-model-router.d.ts.map +0 -1
- package/dist/src/ruvector/flash-attention.d.ts +0 -195
- package/dist/src/ruvector/flash-attention.d.ts.map +0 -1
- package/dist/src/ruvector/graph-analyzer.d.ts +0 -187
- package/dist/src/ruvector/graph-analyzer.d.ts.map +0 -1
- package/dist/src/ruvector/index.d.ts +0 -34
- package/dist/src/ruvector/index.d.ts.map +0 -1
- package/dist/src/ruvector/lora-adapter.d.ts +0 -218
- package/dist/src/ruvector/lora-adapter.d.ts.map +0 -1
- package/dist/src/ruvector/model-router.d.ts +0 -220
- package/dist/src/ruvector/model-router.d.ts.map +0 -1
- package/dist/src/ruvector/moe-router.d.ts +0 -206
- package/dist/src/ruvector/moe-router.d.ts.map +0 -1
- package/dist/src/ruvector/q-learning-router.d.ts +0 -211
- package/dist/src/ruvector/q-learning-router.d.ts.map +0 -1
- package/dist/src/ruvector/semantic-router.d.ts +0 -77
- package/dist/src/ruvector/semantic-router.d.ts.map +0 -1
- package/dist/src/ruvector/vector-db.d.ts +0 -69
- package/dist/src/ruvector/vector-db.d.ts.map +0 -1
- package/dist/src/services/claim-service.d.ts +0 -204
- package/dist/src/services/claim-service.d.ts.map +0 -1
- package/dist/src/services/container-worker-pool.d.ts +0 -197
- package/dist/src/services/container-worker-pool.d.ts.map +0 -1
- package/dist/src/services/headless-worker-executor.d.ts +0 -304
- package/dist/src/services/headless-worker-executor.d.ts.map +0 -1
- package/dist/src/services/registry-api.d.ts +0 -58
- package/dist/src/services/registry-api.d.ts.map +0 -1
- package/dist/src/services/ruvector-training.d.ts +0 -213
- package/dist/src/services/ruvector-training.d.ts.map +0 -1
- package/dist/src/services/worker-daemon.d.ts +0 -203
- package/dist/src/services/worker-daemon.d.ts.map +0 -1
- package/dist/src/services/worker-queue.d.ts +0 -194
- package/dist/src/services/worker-queue.d.ts.map +0 -1
- package/dist/src/suggest.d.ts +0 -53
- package/dist/src/suggest.d.ts.map +0 -1
- package/dist/src/transfer/export.d.ts +0 -25
- package/dist/src/transfer/export.d.ts.map +0 -1
- package/dist/src/transfer/ipfs/client.d.ts +0 -109
- package/dist/src/transfer/ipfs/client.d.ts.map +0 -1
- package/dist/src/transfer/ipfs/upload.d.ts +0 -95
- package/dist/src/transfer/ipfs/upload.d.ts.map +0 -1
- package/dist/src/transfer/models/seraphine.d.ts +0 -72
- package/dist/src/transfer/models/seraphine.d.ts.map +0 -1
- package/dist/src/transfer/serialization/cfp.d.ts +0 -49
- package/dist/src/transfer/serialization/cfp.d.ts.map +0 -1
- package/dist/src/transfer/storage/gcs.d.ts +0 -82
- package/dist/src/transfer/storage/gcs.d.ts.map +0 -1
- package/dist/src/transfer/store/discovery.d.ts +0 -84
- package/dist/src/transfer/store/discovery.d.ts.map +0 -1
- package/dist/src/transfer/store/download.d.ts +0 -70
- package/dist/src/transfer/store/download.d.ts.map +0 -1
- package/dist/src/transfer/store/index.d.ts +0 -84
- package/dist/src/transfer/store/index.d.ts.map +0 -1
- package/dist/src/transfer/store/publish.d.ts +0 -76
- package/dist/src/transfer/store/publish.d.ts.map +0 -1
- package/dist/src/transfer/store/search.d.ts +0 -54
- package/dist/src/transfer/store/search.d.ts.map +0 -1
- package/dist/src/transfer/types.d.ts +0 -245
- package/dist/src/transfer/types.d.ts.map +0 -1
- package/dist/src/types.d.ts +0 -198
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/update/checker.d.ts +0 -34
- package/dist/src/update/checker.d.ts.map +0 -1
- package/dist/src/update/executor.d.ts +0 -32
- package/dist/src/update/executor.d.ts.map +0 -1
- package/dist/src/update/index.d.ts +0 -33
- package/dist/src/update/index.d.ts.map +0 -1
- package/dist/src/update/rate-limiter.d.ts +0 -20
- package/dist/src/update/rate-limiter.d.ts.map +0 -1
- package/dist/src/update/validator.d.ts +0 -17
- package/dist/src/update/validator.d.ts.map +0 -1
|
@@ -18,41 +18,88 @@
|
|
|
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
|
+
};
|
|
21
68
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
22
69
|
import { dirname, join } from 'path';
|
|
23
70
|
/**
|
|
24
71
|
* Model capabilities and characteristics
|
|
25
72
|
*/
|
|
26
|
-
export
|
|
73
|
+
export var MODEL_CAPABILITIES = {
|
|
27
74
|
haiku: {
|
|
28
75
|
maxComplexity: 0.4,
|
|
29
|
-
costMultiplier: 0.04,
|
|
30
|
-
speedMultiplier: 3.0,
|
|
31
|
-
description: 'Fast, cost-effective for simple tasks'
|
|
76
|
+
costMultiplier: 0.04,
|
|
77
|
+
speedMultiplier: 3.0,
|
|
78
|
+
description: 'Fast, cost-effective for simple tasks'
|
|
32
79
|
},
|
|
33
80
|
sonnet: {
|
|
34
81
|
maxComplexity: 0.7,
|
|
35
|
-
costMultiplier: 0.2,
|
|
36
|
-
speedMultiplier: 1.5,
|
|
37
|
-
description: 'Balanced capability and cost'
|
|
82
|
+
costMultiplier: 0.2,
|
|
83
|
+
speedMultiplier: 1.5,
|
|
84
|
+
description: 'Balanced capability and cost'
|
|
38
85
|
},
|
|
39
86
|
opus: {
|
|
40
87
|
maxComplexity: 1.0,
|
|
41
|
-
costMultiplier: 1.0,
|
|
42
|
-
speedMultiplier: 1.0,
|
|
43
|
-
description: 'Most capable for complex reasoning'
|
|
88
|
+
costMultiplier: 1.0,
|
|
89
|
+
speedMultiplier: 1.0,
|
|
90
|
+
description: 'Most capable for complex reasoning'
|
|
44
91
|
},
|
|
45
92
|
inherit: {
|
|
46
93
|
maxComplexity: 1.0,
|
|
47
94
|
costMultiplier: 1.0,
|
|
48
95
|
speedMultiplier: 1.0,
|
|
49
|
-
description: 'Use parent model selection'
|
|
50
|
-
}
|
|
96
|
+
description: 'Use parent model selection'
|
|
97
|
+
}
|
|
51
98
|
};
|
|
52
99
|
/**
|
|
53
100
|
* Complexity indicators for task classification
|
|
54
101
|
*/
|
|
55
|
-
export
|
|
102
|
+
export var COMPLEXITY_INDICATORS = {
|
|
56
103
|
high: [
|
|
57
104
|
'architect', 'design', 'refactor', 'optimize', 'security', 'audit',
|
|
58
105
|
'complex', 'analyze', 'investigate', 'debug', 'performance', 'scale',
|
|
@@ -65,20 +112,20 @@ export const COMPLEXITY_INDICATORS = {
|
|
|
65
112
|
low: [
|
|
66
113
|
'simple', 'typo', 'comment', 'format', 'rename', 'move', 'copy',
|
|
67
114
|
'delete', 'documentation', 'readme', 'config', 'version', 'bump',
|
|
68
|
-
]
|
|
115
|
+
]
|
|
69
116
|
};
|
|
70
117
|
// ============================================================================
|
|
71
118
|
// Default Configuration
|
|
72
119
|
// ============================================================================
|
|
73
|
-
|
|
120
|
+
var DEFAULT_CONFIG = {
|
|
74
121
|
confidenceThreshold: 0.85,
|
|
75
122
|
maxUncertainty: 0.15,
|
|
76
123
|
enableCircuitBreaker: true,
|
|
77
124
|
circuitBreakerThreshold: 5,
|
|
78
125
|
statePath: '.swarm/model-router-state.json',
|
|
79
|
-
autoSaveInterval: 1,
|
|
126
|
+
autoSaveInterval: 1,
|
|
80
127
|
enableCostOptimization: true,
|
|
81
|
-
preferSpeed: true
|
|
128
|
+
preferSpeed: true
|
|
82
129
|
};
|
|
83
130
|
// ============================================================================
|
|
84
131
|
// Model Router Implementation
|
|
@@ -86,171 +133,177 @@ const DEFAULT_CONFIG = {
|
|
|
86
133
|
/**
|
|
87
134
|
* Intelligent Model Router using complexity-based routing
|
|
88
135
|
*/
|
|
89
|
-
|
|
90
|
-
config
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
136
|
+
var ModelRouter = /** @class */ (function () {
|
|
137
|
+
function ModelRouter(config) {
|
|
138
|
+
if (config === void 0) { config = {}; }
|
|
139
|
+
this.decisionCount = 0;
|
|
140
|
+
this.consecutiveFailures = {
|
|
141
|
+
haiku: 0,
|
|
142
|
+
sonnet: 0,
|
|
143
|
+
opus: 0,
|
|
144
|
+
inherit: 0
|
|
145
|
+
};
|
|
146
|
+
this.config = __assign(__assign({}, DEFAULT_CONFIG), config);
|
|
101
147
|
this.state = this.loadState();
|
|
102
148
|
}
|
|
103
149
|
/**
|
|
104
150
|
* Route a task to the optimal model
|
|
105
151
|
*/
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
152
|
+
ModelRouter.prototype.route = function (task, embedding) {
|
|
153
|
+
return __awaiter(this, void 0, Promise, function () {
|
|
154
|
+
var startTime, complexity, scores, adjustedScores, _a, model, confidence, uncertainty, inferenceTimeUs, result;
|
|
155
|
+
return __generator(this, function (_b) {
|
|
156
|
+
startTime = performance.now();
|
|
157
|
+
complexity = this.analyzeComplexity(task, embedding);
|
|
158
|
+
scores = this.computeModelScores(complexity);
|
|
159
|
+
adjustedScores = this.applyCircuitBreaker(scores);
|
|
160
|
+
_a = this.selectModel(adjustedScores, complexity.score), model = _a.model, confidence = _a.confidence, uncertainty = _a.uncertainty;
|
|
161
|
+
inferenceTimeUs = (performance.now() - startTime) * 1000;
|
|
162
|
+
result = {
|
|
163
|
+
model: model,
|
|
164
|
+
confidence: confidence,
|
|
165
|
+
uncertainty: uncertainty,
|
|
166
|
+
complexity: complexity.score,
|
|
167
|
+
reasoning: this.buildReasoning(model, complexity, confidence),
|
|
168
|
+
alternatives: Object.entries(adjustedScores)
|
|
169
|
+
.filter(function (_a) {
|
|
170
|
+
var m = _a[0];
|
|
171
|
+
return m !== model;
|
|
172
|
+
})
|
|
173
|
+
.map(function (_a) {
|
|
174
|
+
var m = _a[0], score = _a[1];
|
|
175
|
+
return ({ model: m, score: score });
|
|
176
|
+
})
|
|
177
|
+
.sort(function (a, b) { return b.score - a.score; }),
|
|
178
|
+
inferenceTimeUs: inferenceTimeUs,
|
|
179
|
+
costMultiplier: MODEL_CAPABILITIES[model].costMultiplier
|
|
180
|
+
};
|
|
181
|
+
// Track decision
|
|
182
|
+
this.trackDecision(task, result);
|
|
183
|
+
return [2 /*return*/, result];
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
};
|
|
135
187
|
/**
|
|
136
188
|
* Analyze task complexity
|
|
137
189
|
*/
|
|
138
|
-
analyzeComplexity(task, embedding) {
|
|
139
|
-
|
|
140
|
-
|
|
190
|
+
ModelRouter.prototype.analyzeComplexity = function (task, embedding) {
|
|
191
|
+
var taskLower = task.toLowerCase();
|
|
192
|
+
var words = taskLower.split(/\s+/);
|
|
141
193
|
// Find complexity indicators
|
|
142
|
-
|
|
143
|
-
high: COMPLEXITY_INDICATORS.high.filter(ind
|
|
144
|
-
medium: COMPLEXITY_INDICATORS.medium.filter(ind
|
|
145
|
-
low: COMPLEXITY_INDICATORS.low.filter(ind
|
|
194
|
+
var indicators = {
|
|
195
|
+
high: COMPLEXITY_INDICATORS.high.filter(function (ind) { return taskLower.includes(ind); }),
|
|
196
|
+
medium: COMPLEXITY_INDICATORS.medium.filter(function (ind) { return taskLower.includes(ind); }),
|
|
197
|
+
low: COMPLEXITY_INDICATORS.low.filter(function (ind) { return taskLower.includes(ind); })
|
|
146
198
|
};
|
|
147
199
|
// Compute feature scores
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
200
|
+
var lexicalComplexity = this.computeLexicalComplexity(task);
|
|
201
|
+
var semanticDepth = this.computeSemanticDepth(indicators, embedding);
|
|
202
|
+
var taskScope = this.computeTaskScope(task, words);
|
|
203
|
+
var uncertaintyLevel = this.computeUncertaintyLevel(task);
|
|
152
204
|
// Weighted combination
|
|
153
|
-
|
|
205
|
+
var score = Math.min(1, Math.max(0, lexicalComplexity * 0.2 +
|
|
154
206
|
semanticDepth * 0.35 +
|
|
155
207
|
taskScope * 0.25 +
|
|
156
208
|
uncertaintyLevel * 0.2));
|
|
157
209
|
return {
|
|
158
|
-
score,
|
|
159
|
-
indicators,
|
|
210
|
+
score: score,
|
|
211
|
+
indicators: indicators,
|
|
160
212
|
features: {
|
|
161
|
-
lexicalComplexity,
|
|
162
|
-
semanticDepth,
|
|
163
|
-
taskScope,
|
|
164
|
-
uncertaintyLevel
|
|
165
|
-
}
|
|
213
|
+
lexicalComplexity: lexicalComplexity,
|
|
214
|
+
semanticDepth: semanticDepth,
|
|
215
|
+
taskScope: taskScope,
|
|
216
|
+
uncertaintyLevel: uncertaintyLevel
|
|
217
|
+
}
|
|
166
218
|
};
|
|
167
|
-
}
|
|
219
|
+
};
|
|
168
220
|
/**
|
|
169
221
|
* Compute lexical complexity from text features
|
|
170
222
|
*/
|
|
171
|
-
computeLexicalComplexity(task) {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
223
|
+
ModelRouter.prototype.computeLexicalComplexity = function (task) {
|
|
224
|
+
var words = task.split(/\s+/);
|
|
225
|
+
var avgWordLength = words.reduce(function (sum, w) { return sum + w.length; }, 0) / Math.max(1, words.length);
|
|
226
|
+
var sentenceLength = words.length;
|
|
175
227
|
// Normalize: longer sentences with longer words = more complex
|
|
176
|
-
|
|
177
|
-
|
|
228
|
+
var lengthScore = Math.min(1, sentenceLength / 50);
|
|
229
|
+
var wordScore = Math.min(1, (avgWordLength - 3) / 7); // 3-10 char words
|
|
178
230
|
return lengthScore * 0.4 + wordScore * 0.6;
|
|
179
|
-
}
|
|
231
|
+
};
|
|
180
232
|
/**
|
|
181
233
|
* Compute semantic depth from indicators and embedding
|
|
182
234
|
*/
|
|
183
|
-
computeSemanticDepth(indicators, embedding) {
|
|
235
|
+
ModelRouter.prototype.computeSemanticDepth = function (indicators, embedding) {
|
|
184
236
|
// Weight by indicator presence
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
237
|
+
var highWeight = indicators.high.length * 0.3;
|
|
238
|
+
var mediumWeight = indicators.medium.length * 0.15;
|
|
239
|
+
var lowWeight = indicators.low.length * -0.1;
|
|
240
|
+
var baseScore = Math.min(1, Math.max(0, 0.3 + highWeight + mediumWeight + lowWeight));
|
|
189
241
|
// Boost with embedding variance if available
|
|
190
242
|
if (embedding && embedding.length > 0) {
|
|
191
|
-
|
|
192
|
-
|
|
243
|
+
var mean_1 = embedding.reduce(function (a, b) { return a + b; }, 0) / embedding.length;
|
|
244
|
+
var variance = embedding.reduce(function (sum, v) { return sum + Math.pow(v - mean_1, 2); }, 0) / embedding.length;
|
|
193
245
|
// Higher variance suggests more nuanced semantics
|
|
194
246
|
baseScore = baseScore * 0.7 + Math.min(1, variance * 10) * 0.3;
|
|
195
247
|
}
|
|
196
248
|
return baseScore;
|
|
197
|
-
}
|
|
249
|
+
};
|
|
198
250
|
/**
|
|
199
251
|
* Compute task scope from content analysis
|
|
200
252
|
*/
|
|
201
|
-
computeTaskScope(task, words) {
|
|
253
|
+
ModelRouter.prototype.computeTaskScope = function (task, words) {
|
|
202
254
|
// Multi-file indicators
|
|
203
|
-
|
|
255
|
+
var multiFilePatterns = [
|
|
204
256
|
/multiple files?/i, /across.*modules?/i, /refactor.*codebase/i,
|
|
205
257
|
/all.*files/i, /entire.*project/i, /system.*wide/i,
|
|
206
258
|
];
|
|
207
|
-
|
|
259
|
+
var hasMultiFile = multiFilePatterns.some(function (p) { return p.test(task); }) ? 0.4 : 0;
|
|
208
260
|
// Code generation indicators
|
|
209
|
-
|
|
261
|
+
var codeGenPatterns = [
|
|
210
262
|
/implement/i, /create.*feature/i, /build.*system/i,
|
|
211
263
|
/design.*api/i, /write.*tests/i, /add.*functionality/i,
|
|
212
264
|
];
|
|
213
|
-
|
|
265
|
+
var hasCodeGen = codeGenPatterns.some(function (p) { return p.test(task); }) ? 0.3 : 0;
|
|
214
266
|
// Word count contribution
|
|
215
|
-
|
|
267
|
+
var wordCountScore = Math.min(0.3, words.length / 100);
|
|
216
268
|
return hasMultiFile + hasCodeGen + wordCountScore;
|
|
217
|
-
}
|
|
269
|
+
};
|
|
218
270
|
/**
|
|
219
271
|
* Compute uncertainty level from task phrasing
|
|
220
272
|
*/
|
|
221
|
-
computeUncertaintyLevel(task) {
|
|
222
|
-
|
|
273
|
+
ModelRouter.prototype.computeUncertaintyLevel = function (task) {
|
|
274
|
+
var uncertainPatterns = [
|
|
223
275
|
/not sure/i, /might/i, /maybe/i, /possibly/i, /investigate/i,
|
|
224
276
|
/figure out/i, /unclear/i, /unknown/i, /debug/i, /strange/i,
|
|
225
277
|
/weird/i, /issue/i, /problem/i, /error/i, /bug/i,
|
|
226
278
|
];
|
|
227
|
-
|
|
279
|
+
var matchCount = uncertainPatterns.filter(function (p) { return p.test(task); }).length;
|
|
228
280
|
return Math.min(1, matchCount * 0.2);
|
|
229
|
-
}
|
|
281
|
+
};
|
|
230
282
|
/**
|
|
231
283
|
* Compute scores for each model
|
|
232
284
|
*/
|
|
233
|
-
computeModelScores(complexity) {
|
|
234
|
-
|
|
285
|
+
ModelRouter.prototype.computeModelScores = function (complexity) {
|
|
286
|
+
var score = complexity.score;
|
|
235
287
|
// Base scoring: inverse relationship with complexity
|
|
236
288
|
// Low complexity → haiku scores high
|
|
237
289
|
// High complexity → opus scores high
|
|
238
290
|
return {
|
|
239
|
-
haiku: Math.max(0, 1 - score * 2),
|
|
240
|
-
sonnet: 1 - Math.abs(score - 0.5) * 2,
|
|
241
|
-
opus: Math.min(1, score * 1.5),
|
|
242
|
-
inherit: 0.1
|
|
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
|
|
243
295
|
};
|
|
244
|
-
}
|
|
296
|
+
};
|
|
245
297
|
/**
|
|
246
298
|
* Apply circuit breaker adjustments
|
|
247
299
|
*/
|
|
248
|
-
applyCircuitBreaker(scores) {
|
|
300
|
+
ModelRouter.prototype.applyCircuitBreaker = function (scores) {
|
|
249
301
|
if (!this.config.enableCircuitBreaker) {
|
|
250
302
|
return scores;
|
|
251
303
|
}
|
|
252
|
-
|
|
253
|
-
for (
|
|
304
|
+
var adjusted = __assign({}, scores);
|
|
305
|
+
for (var _i = 0, _a = Object.keys(adjusted); _i < _a.length; _i++) {
|
|
306
|
+
var model = _a[_i];
|
|
254
307
|
if (this.consecutiveFailures[model] >= this.config.circuitBreakerThreshold) {
|
|
255
308
|
// Circuit is open - heavily penalize this model
|
|
256
309
|
adjusted[model] *= 0.1;
|
|
@@ -261,56 +314,59 @@ export class ModelRouter {
|
|
|
261
314
|
}
|
|
262
315
|
}
|
|
263
316
|
return adjusted;
|
|
264
|
-
}
|
|
317
|
+
};
|
|
265
318
|
/**
|
|
266
319
|
* Select the best model from scores
|
|
267
320
|
*/
|
|
268
|
-
selectModel(scores, complexityScore) {
|
|
321
|
+
ModelRouter.prototype.selectModel = function (scores, complexityScore) {
|
|
269
322
|
// Get sorted models by score
|
|
270
|
-
|
|
271
|
-
.filter((
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
323
|
+
var sorted = Object.entries(scores)
|
|
324
|
+
.filter(function (_a) {
|
|
325
|
+
var m = _a[0];
|
|
326
|
+
return m !== 'inherit';
|
|
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];
|
|
275
331
|
// Confidence is how much better the best is vs second
|
|
276
|
-
|
|
332
|
+
var confidence = bestScore > 0 ? Math.min(1, bestScore / (bestScore + secondScore + 0.01)) : 0.5;
|
|
277
333
|
// Uncertainty based on score spread and complexity
|
|
278
|
-
|
|
279
|
-
|
|
334
|
+
var scoreSpread = bestScore - secondScore;
|
|
335
|
+
var uncertainty = Math.max(0, 1 - scoreSpread - confidence * 0.5);
|
|
280
336
|
// Escalate if uncertainty is too high
|
|
281
|
-
|
|
337
|
+
var model = bestModel;
|
|
282
338
|
if (uncertainty > this.config.maxUncertainty && bestModel !== 'opus') {
|
|
283
339
|
// Escalate to more capable model
|
|
284
340
|
model = bestModel === 'haiku' ? 'sonnet' : 'opus';
|
|
285
341
|
}
|
|
286
|
-
return { model, confidence, uncertainty };
|
|
287
|
-
}
|
|
342
|
+
return { model: model, confidence: confidence, uncertainty: uncertainty };
|
|
343
|
+
};
|
|
288
344
|
/**
|
|
289
345
|
* Build human-readable reasoning
|
|
290
346
|
*/
|
|
291
|
-
buildReasoning(model, complexity, confidence) {
|
|
292
|
-
|
|
293
|
-
parts.push(
|
|
347
|
+
ModelRouter.prototype.buildReasoning = function (model, complexity, confidence) {
|
|
348
|
+
var parts = [];
|
|
349
|
+
parts.push("Complexity: " + (complexity.score * 100).toFixed(0) + "%");
|
|
294
350
|
if (complexity.indicators.high.length > 0) {
|
|
295
|
-
parts.push(
|
|
351
|
+
parts.push("High-complexity indicators: " + complexity.indicators.high.join(', '));
|
|
296
352
|
}
|
|
297
|
-
parts.push(
|
|
298
|
-
parts.push(
|
|
353
|
+
parts.push("Confidence: " + (confidence * 100).toFixed(0) + "%");
|
|
354
|
+
parts.push("Model: " + model + " - " + MODEL_CAPABILITIES[model].description);
|
|
299
355
|
if (this.config.enableCostOptimization) {
|
|
300
|
-
parts.push(
|
|
356
|
+
parts.push("Cost: " + MODEL_CAPABILITIES[model].costMultiplier + "x baseline");
|
|
301
357
|
}
|
|
302
358
|
return parts.join(' | ');
|
|
303
|
-
}
|
|
359
|
+
};
|
|
304
360
|
/**
|
|
305
361
|
* Track routing decision for learning
|
|
306
362
|
*/
|
|
307
|
-
trackDecision(task, result) {
|
|
363
|
+
ModelRouter.prototype.trackDecision = function (task, result) {
|
|
308
364
|
this.decisionCount++;
|
|
309
365
|
this.state.totalDecisions++;
|
|
310
366
|
this.state.modelDistribution[result.model] =
|
|
311
367
|
(this.state.modelDistribution[result.model] || 0) + 1;
|
|
312
368
|
// Update running averages
|
|
313
|
-
|
|
369
|
+
var n = this.state.totalDecisions;
|
|
314
370
|
this.state.avgComplexity =
|
|
315
371
|
(this.state.avgComplexity * (n - 1) + result.complexity) / n;
|
|
316
372
|
this.state.avgConfidence =
|
|
@@ -319,11 +375,11 @@ export class ModelRouter {
|
|
|
319
375
|
if (this.decisionCount % this.config.autoSaveInterval === 0) {
|
|
320
376
|
this.saveState();
|
|
321
377
|
}
|
|
322
|
-
}
|
|
378
|
+
};
|
|
323
379
|
/**
|
|
324
380
|
* Record outcome for learning
|
|
325
381
|
*/
|
|
326
|
-
recordOutcome(task, model, outcome) {
|
|
382
|
+
ModelRouter.prototype.recordOutcome = function (task, model, outcome) {
|
|
327
383
|
// Update circuit breaker state
|
|
328
384
|
if (outcome === 'failure') {
|
|
329
385
|
this.consecutiveFailures[model]++;
|
|
@@ -334,10 +390,10 @@ export class ModelRouter {
|
|
|
334
390
|
// Track in history
|
|
335
391
|
this.state.learningHistory.push({
|
|
336
392
|
task: task.slice(0, 100),
|
|
337
|
-
model,
|
|
393
|
+
model: model,
|
|
338
394
|
complexity: this.state.avgComplexity,
|
|
339
|
-
outcome,
|
|
340
|
-
timestamp: new Date().toISOString()
|
|
395
|
+
outcome: outcome,
|
|
396
|
+
timestamp: new Date().toISOString()
|
|
341
397
|
});
|
|
342
398
|
// Keep history bounded
|
|
343
399
|
if (this.state.learningHistory.length > 100) {
|
|
@@ -347,66 +403,66 @@ export class ModelRouter {
|
|
|
347
403
|
this.state.circuitBreakerTrips++;
|
|
348
404
|
}
|
|
349
405
|
this.saveState();
|
|
350
|
-
}
|
|
406
|
+
};
|
|
351
407
|
/**
|
|
352
408
|
* Get router statistics
|
|
353
409
|
*/
|
|
354
|
-
getStats() {
|
|
410
|
+
ModelRouter.prototype.getStats = function () {
|
|
355
411
|
return {
|
|
356
412
|
totalDecisions: this.state.totalDecisions,
|
|
357
|
-
modelDistribution: {
|
|
413
|
+
modelDistribution: __assign({}, this.state.modelDistribution),
|
|
358
414
|
avgComplexity: this.state.avgComplexity,
|
|
359
415
|
avgConfidence: this.state.avgConfidence,
|
|
360
416
|
circuitBreakerTrips: this.state.circuitBreakerTrips,
|
|
361
|
-
consecutiveFailures: {
|
|
417
|
+
consecutiveFailures: __assign({}, this.consecutiveFailures)
|
|
362
418
|
};
|
|
363
|
-
}
|
|
419
|
+
};
|
|
364
420
|
/**
|
|
365
421
|
* Load state from disk
|
|
366
422
|
*/
|
|
367
|
-
loadState() {
|
|
368
|
-
|
|
423
|
+
ModelRouter.prototype.loadState = function () {
|
|
424
|
+
var defaultState = {
|
|
369
425
|
totalDecisions: 0,
|
|
370
426
|
modelDistribution: { haiku: 0, sonnet: 0, opus: 0, inherit: 0 },
|
|
371
427
|
avgComplexity: 0.5,
|
|
372
428
|
avgConfidence: 0.8,
|
|
373
429
|
circuitBreakerTrips: 0,
|
|
374
430
|
lastUpdated: new Date().toISOString(),
|
|
375
|
-
learningHistory: []
|
|
431
|
+
learningHistory: []
|
|
376
432
|
};
|
|
377
433
|
try {
|
|
378
|
-
|
|
434
|
+
var fullPath = join(process.cwd(), this.config.statePath);
|
|
379
435
|
if (existsSync(fullPath)) {
|
|
380
|
-
|
|
381
|
-
return {
|
|
436
|
+
var data = readFileSync(fullPath, 'utf-8');
|
|
437
|
+
return __assign(__assign({}, defaultState), JSON.parse(data));
|
|
382
438
|
}
|
|
383
439
|
}
|
|
384
|
-
catch {
|
|
440
|
+
catch (_a) {
|
|
385
441
|
// Ignore load errors
|
|
386
442
|
}
|
|
387
443
|
return defaultState;
|
|
388
|
-
}
|
|
444
|
+
};
|
|
389
445
|
/**
|
|
390
446
|
* Save state to disk
|
|
391
447
|
*/
|
|
392
|
-
saveState() {
|
|
448
|
+
ModelRouter.prototype.saveState = function () {
|
|
393
449
|
try {
|
|
394
|
-
|
|
395
|
-
|
|
450
|
+
var fullPath = join(process.cwd(), this.config.statePath);
|
|
451
|
+
var dir = dirname(fullPath);
|
|
396
452
|
if (!existsSync(dir)) {
|
|
397
453
|
mkdirSync(dir, { recursive: true });
|
|
398
454
|
}
|
|
399
455
|
this.state.lastUpdated = new Date().toISOString();
|
|
400
456
|
writeFileSync(fullPath, JSON.stringify(this.state, null, 2));
|
|
401
457
|
}
|
|
402
|
-
catch {
|
|
458
|
+
catch (_a) {
|
|
403
459
|
// Ignore save errors in non-critical scenarios
|
|
404
460
|
}
|
|
405
|
-
}
|
|
461
|
+
};
|
|
406
462
|
/**
|
|
407
463
|
* Reset router state
|
|
408
464
|
*/
|
|
409
|
-
reset() {
|
|
465
|
+
ModelRouter.prototype.reset = function () {
|
|
410
466
|
this.state = {
|
|
411
467
|
totalDecisions: 0,
|
|
412
468
|
modelDistribution: { haiku: 0, sonnet: 0, opus: 0, inherit: 0 },
|
|
@@ -414,17 +470,19 @@ export class ModelRouter {
|
|
|
414
470
|
avgConfidence: 0.8,
|
|
415
471
|
circuitBreakerTrips: 0,
|
|
416
472
|
lastUpdated: new Date().toISOString(),
|
|
417
|
-
learningHistory: []
|
|
473
|
+
learningHistory: []
|
|
418
474
|
};
|
|
419
475
|
this.consecutiveFailures = { haiku: 0, sonnet: 0, opus: 0, inherit: 0 };
|
|
420
476
|
this.decisionCount = 0;
|
|
421
477
|
this.saveState();
|
|
422
|
-
}
|
|
423
|
-
|
|
478
|
+
};
|
|
479
|
+
return ModelRouter;
|
|
480
|
+
}());
|
|
481
|
+
export { ModelRouter };
|
|
424
482
|
// ============================================================================
|
|
425
483
|
// Singleton & Factory Functions
|
|
426
484
|
// ============================================================================
|
|
427
|
-
|
|
485
|
+
var modelRouterInstance = null;
|
|
428
486
|
/**
|
|
429
487
|
* Get or create the singleton ModelRouter instance
|
|
430
488
|
*/
|
|
@@ -452,37 +510,52 @@ export function createModelRouter(config) {
|
|
|
452
510
|
/**
|
|
453
511
|
* Quick route function for common use case
|
|
454
512
|
*/
|
|
455
|
-
export
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
513
|
+
export function routeToModel(task) {
|
|
514
|
+
return __awaiter(this, void 0, Promise, function () {
|
|
515
|
+
var router, result;
|
|
516
|
+
return __generator(this, function (_a) {
|
|
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
|
+
});
|
|
459
527
|
}
|
|
460
528
|
/**
|
|
461
529
|
* Route with full result
|
|
462
530
|
*/
|
|
463
|
-
export
|
|
464
|
-
|
|
465
|
-
|
|
531
|
+
export function routeToModelFull(task, embedding) {
|
|
532
|
+
return __awaiter(this, void 0, Promise, function () {
|
|
533
|
+
var router;
|
|
534
|
+
return __generator(this, function (_a) {
|
|
535
|
+
router = getModelRouter();
|
|
536
|
+
return [2 /*return*/, router.route(task, embedding)];
|
|
537
|
+
});
|
|
538
|
+
});
|
|
466
539
|
}
|
|
467
540
|
/**
|
|
468
541
|
* Analyze task complexity without routing
|
|
469
542
|
*/
|
|
470
543
|
export function analyzeTaskComplexity(task) {
|
|
471
|
-
|
|
544
|
+
var router = getModelRouter();
|
|
472
545
|
return router.analyzeComplexity(task, undefined);
|
|
473
546
|
}
|
|
474
547
|
/**
|
|
475
548
|
* Get model router statistics
|
|
476
549
|
*/
|
|
477
550
|
export function getModelRouterStats() {
|
|
478
|
-
|
|
551
|
+
var router = getModelRouter();
|
|
479
552
|
return router.getStats();
|
|
480
553
|
}
|
|
481
554
|
/**
|
|
482
555
|
* Record routing outcome for learning
|
|
483
556
|
*/
|
|
484
557
|
export function recordModelOutcome(task, model, outcome) {
|
|
485
|
-
|
|
558
|
+
var router = getModelRouter();
|
|
486
559
|
router.recordOutcome(task, model, outcome);
|
|
487
560
|
}
|
|
488
561
|
//# sourceMappingURL=model-router.js.map
|