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
|
@@ -10,6 +10,62 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @module v3/cli/intelligence
|
|
12
12
|
*/
|
|
13
|
+
var __assign = (this && this.__assign) || function () {
|
|
14
|
+
__assign = Object.assign || function(t) {
|
|
15
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
16
|
+
s = arguments[i];
|
|
17
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
18
|
+
t[p] = s[p];
|
|
19
|
+
}
|
|
20
|
+
return t;
|
|
21
|
+
};
|
|
22
|
+
return __assign.apply(this, arguments);
|
|
23
|
+
};
|
|
24
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
25
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
26
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
27
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
28
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
29
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
30
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
34
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
35
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
36
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
37
|
+
function step(op) {
|
|
38
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
39
|
+
while (_) try {
|
|
40
|
+
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;
|
|
41
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
42
|
+
switch (op[0]) {
|
|
43
|
+
case 0: case 1: t = op; break;
|
|
44
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
45
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
46
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
47
|
+
default:
|
|
48
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
49
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
50
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
51
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
52
|
+
if (t[2]) _.ops.pop();
|
|
53
|
+
_.trys.pop(); continue;
|
|
54
|
+
}
|
|
55
|
+
op = body.call(thisArg, _);
|
|
56
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
57
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
61
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
62
|
+
if (ar || !(i in from)) {
|
|
63
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
64
|
+
ar[i] = from[i];
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
68
|
+
};
|
|
13
69
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
14
70
|
import { homedir } from 'node:os';
|
|
15
71
|
import { join } from 'node:path';
|
|
@@ -22,9 +78,9 @@ import { join } from 'node:path';
|
|
|
22
78
|
* falling back to home directory
|
|
23
79
|
*/
|
|
24
80
|
function getDataDir() {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
81
|
+
var cwd = process.cwd();
|
|
82
|
+
var localDir = join(cwd, '.claude-flow', 'neural');
|
|
83
|
+
var homeDir = join(homedir(), '.claude-flow', 'neural');
|
|
28
84
|
// Prefer local directory if .claude-flow exists
|
|
29
85
|
if (existsSync(join(cwd, '.claude-flow'))) {
|
|
30
86
|
return localDir;
|
|
@@ -35,7 +91,7 @@ function getDataDir() {
|
|
|
35
91
|
* Ensure the data directory exists
|
|
36
92
|
*/
|
|
37
93
|
function ensureDataDir() {
|
|
38
|
-
|
|
94
|
+
var dir = getDataDir();
|
|
39
95
|
if (!existsSync(dir)) {
|
|
40
96
|
mkdirSync(dir, { recursive: true });
|
|
41
97
|
}
|
|
@@ -56,7 +112,7 @@ function getStatsPath() {
|
|
|
56
112
|
// ============================================================================
|
|
57
113
|
// Default Configuration
|
|
58
114
|
// ============================================================================
|
|
59
|
-
|
|
115
|
+
var DEFAULT_SONA_CONFIG = {
|
|
60
116
|
instantLoopEnabled: true,
|
|
61
117
|
backgroundLoopEnabled: false,
|
|
62
118
|
loraLearningRate: 0.001,
|
|
@@ -75,14 +131,13 @@ const DEFAULT_SONA_CONFIG = {
|
|
|
75
131
|
* Uses circular buffer for O(1) signal recording
|
|
76
132
|
* Achieves <0.05ms per operation
|
|
77
133
|
*/
|
|
78
|
-
|
|
79
|
-
config
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
constructor(config) {
|
|
134
|
+
var LocalSonaCoordinator = /** @class */ (function () {
|
|
135
|
+
function LocalSonaCoordinator(config) {
|
|
136
|
+
this.signalHead = 0;
|
|
137
|
+
this.signalCount = 0;
|
|
138
|
+
this.trajectories = [];
|
|
139
|
+
this.adaptationTimes = [];
|
|
140
|
+
this.currentTrajectorySteps = [];
|
|
86
141
|
this.config = config;
|
|
87
142
|
// Pre-allocate circular buffer
|
|
88
143
|
this.signals = new Array(config.maxSignals);
|
|
@@ -91,75 +146,257 @@ class LocalSonaCoordinator {
|
|
|
91
146
|
* Record a signal - O(1) operation
|
|
92
147
|
* Target: <0.05ms
|
|
93
148
|
*/
|
|
94
|
-
recordSignal(signal) {
|
|
95
|
-
|
|
149
|
+
LocalSonaCoordinator.prototype.recordSignal = function (signal) {
|
|
150
|
+
var start = performance.now();
|
|
96
151
|
// Circular buffer insertion - constant time
|
|
97
152
|
this.signals[this.signalHead] = signal;
|
|
98
153
|
this.signalHead = (this.signalHead + 1) % this.config.maxSignals;
|
|
99
154
|
if (this.signalCount < this.config.maxSignals) {
|
|
100
155
|
this.signalCount++;
|
|
101
156
|
}
|
|
102
|
-
|
|
157
|
+
var elapsed = performance.now() - start;
|
|
103
158
|
this.adaptationTimes.push(elapsed);
|
|
104
159
|
if (this.adaptationTimes.length > 100) {
|
|
105
160
|
this.adaptationTimes.shift();
|
|
106
161
|
}
|
|
107
|
-
}
|
|
162
|
+
};
|
|
108
163
|
/**
|
|
109
164
|
* Record complete trajectory
|
|
110
165
|
*/
|
|
111
|
-
recordTrajectory(trajectory) {
|
|
166
|
+
LocalSonaCoordinator.prototype.recordTrajectory = function (trajectory) {
|
|
112
167
|
this.trajectories.push(trajectory);
|
|
113
168
|
if (this.trajectories.length > this.config.maxTrajectorySize) {
|
|
114
169
|
this.trajectories.shift();
|
|
115
170
|
}
|
|
116
|
-
}
|
|
171
|
+
};
|
|
117
172
|
/**
|
|
118
173
|
* Get recent signals
|
|
119
174
|
*/
|
|
120
|
-
getRecentSignals
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
175
|
+
LocalSonaCoordinator.prototype.getRecentSignals = function (count) {
|
|
176
|
+
if (count === void 0) { count = 10; }
|
|
177
|
+
var result = [];
|
|
178
|
+
var actualCount = Math.min(count, this.signalCount);
|
|
179
|
+
for (var i = 0; i < actualCount; i++) {
|
|
180
|
+
var idx = (this.signalHead - 1 - i + this.config.maxSignals) % this.config.maxSignals;
|
|
125
181
|
if (this.signals[idx]) {
|
|
126
182
|
result.push(this.signals[idx]);
|
|
127
183
|
}
|
|
128
184
|
}
|
|
129
185
|
return result;
|
|
130
|
-
}
|
|
186
|
+
};
|
|
131
187
|
/**
|
|
132
188
|
* Get average adaptation time
|
|
133
189
|
*/
|
|
134
|
-
getAvgAdaptationTime() {
|
|
190
|
+
LocalSonaCoordinator.prototype.getAvgAdaptationTime = function () {
|
|
135
191
|
if (this.adaptationTimes.length === 0)
|
|
136
192
|
return 0;
|
|
137
|
-
return this.adaptationTimes.reduce((a, b)
|
|
138
|
-
}
|
|
193
|
+
return this.adaptationTimes.reduce(function (a, b) { return a + b; }, 0) / this.adaptationTimes.length;
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* Add a step to the current in-progress trajectory
|
|
197
|
+
*/
|
|
198
|
+
LocalSonaCoordinator.prototype.addTrajectoryStep = function (step) {
|
|
199
|
+
this.currentTrajectorySteps.push(step);
|
|
200
|
+
// Prevent unbounded growth
|
|
201
|
+
if (this.currentTrajectorySteps.length > this.config.maxTrajectorySize) {
|
|
202
|
+
this.currentTrajectorySteps.shift();
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
/**
|
|
206
|
+
* End the current trajectory with a verdict and apply RL updates.
|
|
207
|
+
* Reward mapping: success=1.0, partial=0.5, failure=-0.5
|
|
208
|
+
*
|
|
209
|
+
* For successful/partial trajectories, boosts confidence of similar patterns
|
|
210
|
+
* in the ReasoningBank. For failures, reduces confidence scores.
|
|
211
|
+
*/
|
|
212
|
+
LocalSonaCoordinator.prototype.endTrajectory = function (verdict, bank) {
|
|
213
|
+
var _a;
|
|
214
|
+
return __awaiter(this, void 0, Promise, function () {
|
|
215
|
+
var rewardMap, reward, completedTrajectory, patternsUpdated, allPatterns, _i, _b, step, similar, _c, similar_1, match, pattern, delta, newConfidence;
|
|
216
|
+
return __generator(this, function (_d) {
|
|
217
|
+
rewardMap = {
|
|
218
|
+
success: 1.0,
|
|
219
|
+
partial: 0.5,
|
|
220
|
+
failure: -0.5
|
|
221
|
+
};
|
|
222
|
+
reward = (_a = rewardMap[verdict]) !== null && _a !== void 0 ? _a : 0;
|
|
223
|
+
completedTrajectory = {
|
|
224
|
+
steps: __spreadArray([], this.currentTrajectorySteps, true),
|
|
225
|
+
verdict: verdict,
|
|
226
|
+
timestamp: Date.now()
|
|
227
|
+
};
|
|
228
|
+
this.recordTrajectory(completedTrajectory);
|
|
229
|
+
patternsUpdated = 0;
|
|
230
|
+
allPatterns = bank.getAll();
|
|
231
|
+
for (_i = 0, _b = this.currentTrajectorySteps; _i < _b.length; _i++) {
|
|
232
|
+
step = _b[_i];
|
|
233
|
+
if (!step.embedding || step.embedding.length === 0)
|
|
234
|
+
continue;
|
|
235
|
+
similar = bank.findSimilar(step.embedding, {
|
|
236
|
+
k: 3,
|
|
237
|
+
threshold: 0.3
|
|
238
|
+
});
|
|
239
|
+
for (_c = 0, similar_1 = similar; _c < similar_1.length; _c++) {
|
|
240
|
+
match = similar_1[_c];
|
|
241
|
+
pattern = bank.get(match.id);
|
|
242
|
+
if (!pattern)
|
|
243
|
+
continue;
|
|
244
|
+
delta = reward * 0.1;
|
|
245
|
+
newConfidence = Math.max(0.0, Math.min(1.0, pattern.confidence + delta));
|
|
246
|
+
pattern.confidence = newConfidence;
|
|
247
|
+
pattern.usageCount++;
|
|
248
|
+
pattern.lastUsedAt = Date.now();
|
|
249
|
+
patternsUpdated++;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
// Clear current trajectory
|
|
253
|
+
this.currentTrajectorySteps = [];
|
|
254
|
+
return [2 /*return*/, { reward: reward, patternsUpdated: patternsUpdated }];
|
|
255
|
+
});
|
|
256
|
+
});
|
|
257
|
+
};
|
|
258
|
+
/**
|
|
259
|
+
* Distill learning from recent successful trajectories.
|
|
260
|
+
* Applies LoRA-style confidence updates and integrates EWC++ consolidation.
|
|
261
|
+
*
|
|
262
|
+
* For each successful trajectory step with high confidence,
|
|
263
|
+
* increases the pattern's stored confidence by loraLearningRate * reward.
|
|
264
|
+
* Before applying updates, checks EWC penalty to prevent catastrophic forgetting.
|
|
265
|
+
*/
|
|
266
|
+
LocalSonaCoordinator.prototype.distillLearning = function (bank) {
|
|
267
|
+
var _a;
|
|
268
|
+
return __awaiter(this, void 0, Promise, function () {
|
|
269
|
+
var patternsDistilled, totalEwcPenalty, recentSuccessful, ewcConsolidator, ewcModule, _b, rewardMap, confidenceChanges, _i, recentSuccessful_1, trajectory, reward, _c, _d, step, similar, _e, similar_2, match, pattern, oldConfidence, oldWeights, proposedConfidence, newWeights, penalty, dampedDelta, _loop_1, _f, confidenceChanges_1, change;
|
|
270
|
+
return __generator(this, function (_g) {
|
|
271
|
+
switch (_g.label) {
|
|
272
|
+
case 0:
|
|
273
|
+
patternsDistilled = 0;
|
|
274
|
+
totalEwcPenalty = 0;
|
|
275
|
+
recentSuccessful = this.trajectories.filter(function (t) { return t.verdict === 'success' || t.verdict === 'partial'; }).slice(-10);
|
|
276
|
+
if (recentSuccessful.length === 0) {
|
|
277
|
+
return [2 /*return*/, { patternsDistilled: 0, ewcPenalty: 0 }];
|
|
278
|
+
}
|
|
279
|
+
ewcConsolidator = null;
|
|
280
|
+
_g.label = 1;
|
|
281
|
+
case 1:
|
|
282
|
+
_g.trys.push([1, 4, , 5]);
|
|
283
|
+
return [4 /*yield*/, import('./ewc-consolidation.js')];
|
|
284
|
+
case 2:
|
|
285
|
+
ewcModule = _g.sent();
|
|
286
|
+
return [4 /*yield*/, ewcModule.getEWCConsolidator({
|
|
287
|
+
lambda: this.config.ewcLambda
|
|
288
|
+
})];
|
|
289
|
+
case 3:
|
|
290
|
+
ewcConsolidator = _g.sent();
|
|
291
|
+
return [3 /*break*/, 5];
|
|
292
|
+
case 4:
|
|
293
|
+
_b = _g.sent();
|
|
294
|
+
return [3 /*break*/, 5];
|
|
295
|
+
case 5:
|
|
296
|
+
rewardMap = {
|
|
297
|
+
success: 1.0,
|
|
298
|
+
partial: 0.5
|
|
299
|
+
};
|
|
300
|
+
confidenceChanges = [];
|
|
301
|
+
for (_i = 0, recentSuccessful_1 = recentSuccessful; _i < recentSuccessful_1.length; _i++) {
|
|
302
|
+
trajectory = recentSuccessful_1[_i];
|
|
303
|
+
reward = (_a = rewardMap[trajectory.verdict]) !== null && _a !== void 0 ? _a : 0;
|
|
304
|
+
for (_c = 0, _d = trajectory.steps; _c < _d.length; _c++) {
|
|
305
|
+
step = _d[_c];
|
|
306
|
+
if (!step.embedding || step.embedding.length === 0)
|
|
307
|
+
continue;
|
|
308
|
+
similar = bank.findSimilar(step.embedding, {
|
|
309
|
+
k: 3,
|
|
310
|
+
threshold: 0.4
|
|
311
|
+
});
|
|
312
|
+
for (_e = 0, similar_2 = similar; _e < similar_2.length; _e++) {
|
|
313
|
+
match = similar_2[_e];
|
|
314
|
+
pattern = bank.get(match.id);
|
|
315
|
+
if (!pattern)
|
|
316
|
+
continue;
|
|
317
|
+
// Only distill from high-confidence matches
|
|
318
|
+
if (match.confidence < 0.5)
|
|
319
|
+
continue;
|
|
320
|
+
oldConfidence = pattern.confidence;
|
|
321
|
+
// Check EWC penalty before applying update
|
|
322
|
+
if (ewcConsolidator) {
|
|
323
|
+
oldWeights = [oldConfidence];
|
|
324
|
+
proposedConfidence = Math.min(1.0, oldConfidence + this.config.loraLearningRate * reward);
|
|
325
|
+
newWeights = [proposedConfidence];
|
|
326
|
+
penalty = ewcConsolidator.getPenalty(oldWeights, newWeights);
|
|
327
|
+
totalEwcPenalty += penalty;
|
|
328
|
+
// If penalty is too high, reduce the update magnitude
|
|
329
|
+
if (penalty > this.config.ewcLambda) {
|
|
330
|
+
dampedDelta = (this.config.loraLearningRate * reward) / (1 + penalty);
|
|
331
|
+
pattern.confidence = Math.max(0.0, Math.min(1.0, oldConfidence + dampedDelta));
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
pattern.confidence = proposedConfidence;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
else {
|
|
338
|
+
// No EWC: apply full LoRA update
|
|
339
|
+
pattern.confidence = Math.max(0.0, Math.min(1.0, oldConfidence + this.config.loraLearningRate * reward));
|
|
340
|
+
}
|
|
341
|
+
pattern.lastUsedAt = Date.now();
|
|
342
|
+
patternsDistilled++;
|
|
343
|
+
confidenceChanges.push({
|
|
344
|
+
id: pattern.id,
|
|
345
|
+
oldConf: oldConfidence,
|
|
346
|
+
newConf: pattern.confidence,
|
|
347
|
+
embedding: pattern.embedding
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
// Update EWC Fisher matrix with confidence changes
|
|
353
|
+
if (ewcConsolidator && confidenceChanges.length > 0) {
|
|
354
|
+
_loop_1 = function (change) {
|
|
355
|
+
// Use confidence delta as gradient proxy
|
|
356
|
+
var gradient = change.embedding.map(function (e) { return e * Math.abs(change.newConf - change.oldConf); });
|
|
357
|
+
ewcConsolidator.recordGradient(change.id, gradient, true);
|
|
358
|
+
};
|
|
359
|
+
for (_f = 0, confidenceChanges_1 = confidenceChanges; _f < confidenceChanges_1.length; _f++) {
|
|
360
|
+
change = confidenceChanges_1[_f];
|
|
361
|
+
_loop_1(change);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
// Persist updated patterns
|
|
365
|
+
bank.flushToDisk();
|
|
366
|
+
return [2 /*return*/, { patternsDistilled: patternsDistilled, ewcPenalty: totalEwcPenalty }];
|
|
367
|
+
}
|
|
368
|
+
});
|
|
369
|
+
});
|
|
370
|
+
};
|
|
371
|
+
/**
|
|
372
|
+
* Get current trajectory steps (for inspection)
|
|
373
|
+
*/
|
|
374
|
+
LocalSonaCoordinator.prototype.getCurrentTrajectorySteps = function () {
|
|
375
|
+
return __spreadArray([], this.currentTrajectorySteps, true);
|
|
376
|
+
};
|
|
139
377
|
/**
|
|
140
378
|
* Get statistics
|
|
141
379
|
*/
|
|
142
|
-
stats() {
|
|
380
|
+
LocalSonaCoordinator.prototype.stats = function () {
|
|
143
381
|
return {
|
|
144
382
|
signalCount: this.signalCount,
|
|
145
383
|
trajectoryCount: this.trajectories.length,
|
|
146
384
|
avgAdaptationMs: this.getAvgAdaptationTime()
|
|
147
385
|
};
|
|
148
|
-
}
|
|
149
|
-
|
|
386
|
+
};
|
|
387
|
+
return LocalSonaCoordinator;
|
|
388
|
+
}());
|
|
150
389
|
/**
|
|
151
390
|
* Lightweight ReasoningBank
|
|
152
391
|
* Uses Map for O(1) storage and array for similarity search
|
|
153
392
|
* Supports persistence to disk
|
|
154
393
|
*/
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
saveTimeout = null;
|
|
162
|
-
constructor(options) {
|
|
394
|
+
var LocalReasoningBank = /** @class */ (function () {
|
|
395
|
+
function LocalReasoningBank(options) {
|
|
396
|
+
this.patterns = new Map();
|
|
397
|
+
this.patternList = [];
|
|
398
|
+
this.dirty = false;
|
|
399
|
+
this.saveTimeout = null;
|
|
163
400
|
this.maxSize = options.maxSize;
|
|
164
401
|
this.persistenceEnabled = options.persistence !== false;
|
|
165
402
|
// Load persisted patterns
|
|
@@ -170,27 +407,29 @@ class LocalReasoningBank {
|
|
|
170
407
|
/**
|
|
171
408
|
* Load patterns from disk
|
|
172
409
|
*/
|
|
173
|
-
loadFromDisk() {
|
|
410
|
+
LocalReasoningBank.prototype.loadFromDisk = function () {
|
|
174
411
|
try {
|
|
175
|
-
|
|
412
|
+
var path = getPatternsPath();
|
|
176
413
|
if (existsSync(path)) {
|
|
177
|
-
|
|
414
|
+
var data = JSON.parse(readFileSync(path, 'utf-8'));
|
|
178
415
|
if (Array.isArray(data)) {
|
|
179
|
-
for (
|
|
416
|
+
for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {
|
|
417
|
+
var pattern = data_1[_i];
|
|
180
418
|
this.patterns.set(pattern.id, pattern);
|
|
181
419
|
this.patternList.push(pattern);
|
|
182
420
|
}
|
|
183
421
|
}
|
|
184
422
|
}
|
|
185
423
|
}
|
|
186
|
-
catch {
|
|
424
|
+
catch (_a) {
|
|
187
425
|
// Ignore load errors, start fresh
|
|
188
426
|
}
|
|
189
|
-
}
|
|
427
|
+
};
|
|
190
428
|
/**
|
|
191
429
|
* Save patterns to disk (debounced)
|
|
192
430
|
*/
|
|
193
|
-
saveToDisk() {
|
|
431
|
+
LocalReasoningBank.prototype.saveToDisk = function () {
|
|
432
|
+
var _this = this;
|
|
194
433
|
if (!this.persistenceEnabled)
|
|
195
434
|
return;
|
|
196
435
|
this.dirty = true;
|
|
@@ -198,19 +437,19 @@ class LocalReasoningBank {
|
|
|
198
437
|
if (this.saveTimeout) {
|
|
199
438
|
clearTimeout(this.saveTimeout);
|
|
200
439
|
}
|
|
201
|
-
this.saveTimeout = setTimeout(()
|
|
202
|
-
|
|
440
|
+
this.saveTimeout = setTimeout(function () {
|
|
441
|
+
_this.flushToDisk();
|
|
203
442
|
}, 100);
|
|
204
|
-
}
|
|
443
|
+
};
|
|
205
444
|
/**
|
|
206
445
|
* Immediately flush patterns to disk
|
|
207
446
|
*/
|
|
208
|
-
flushToDisk() {
|
|
447
|
+
LocalReasoningBank.prototype.flushToDisk = function () {
|
|
209
448
|
if (!this.persistenceEnabled || !this.dirty)
|
|
210
449
|
return;
|
|
211
450
|
try {
|
|
212
451
|
ensureDataDir();
|
|
213
|
-
|
|
452
|
+
var path = getPatternsPath();
|
|
214
453
|
writeFileSync(path, JSON.stringify(this.patternList, null, 2), 'utf-8');
|
|
215
454
|
this.dirty = false;
|
|
216
455
|
}
|
|
@@ -218,25 +457,21 @@ class LocalReasoningBank {
|
|
|
218
457
|
// Log but don't throw - persistence failures shouldn't break training
|
|
219
458
|
console.error('Failed to persist patterns:', error);
|
|
220
459
|
}
|
|
221
|
-
}
|
|
460
|
+
};
|
|
222
461
|
/**
|
|
223
462
|
* Store a pattern - O(1)
|
|
224
463
|
*/
|
|
225
|
-
store(pattern) {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
usageCount: pattern.usageCount ?? 0,
|
|
230
|
-
createdAt: pattern.createdAt ?? now,
|
|
231
|
-
lastUsedAt: pattern.lastUsedAt ?? now
|
|
232
|
-
};
|
|
464
|
+
LocalReasoningBank.prototype.store = function (pattern) {
|
|
465
|
+
var _a, _b, _c;
|
|
466
|
+
var now = Date.now();
|
|
467
|
+
var stored = __assign(__assign({}, pattern), { usageCount: (_a = pattern.usageCount) !== null && _a !== void 0 ? _a : 0, createdAt: (_b = pattern.createdAt) !== null && _b !== void 0 ? _b : now, lastUsedAt: (_c = pattern.lastUsedAt) !== null && _c !== void 0 ? _c : now });
|
|
233
468
|
// Update or insert
|
|
234
469
|
if (this.patterns.has(pattern.id)) {
|
|
235
|
-
|
|
470
|
+
var existing = this.patterns.get(pattern.id);
|
|
236
471
|
stored.usageCount = existing.usageCount + 1;
|
|
237
472
|
stored.createdAt = existing.createdAt;
|
|
238
473
|
// Update in list
|
|
239
|
-
|
|
474
|
+
var idx = this.patternList.findIndex(function (p) { return p.id === pattern.id; });
|
|
240
475
|
if (idx >= 0) {
|
|
241
476
|
this.patternList[idx] = stored;
|
|
242
477
|
}
|
|
@@ -244,9 +479,9 @@ class LocalReasoningBank {
|
|
|
244
479
|
else {
|
|
245
480
|
// Evict oldest if at capacity
|
|
246
481
|
if (this.patterns.size >= this.maxSize) {
|
|
247
|
-
|
|
482
|
+
var oldest = this.patternList.shift();
|
|
248
483
|
if (oldest) {
|
|
249
|
-
this.patterns
|
|
484
|
+
this.patterns["delete"](oldest.id);
|
|
250
485
|
}
|
|
251
486
|
}
|
|
252
487
|
this.patternList.push(stored);
|
|
@@ -254,108 +489,110 @@ class LocalReasoningBank {
|
|
|
254
489
|
this.patterns.set(pattern.id, stored);
|
|
255
490
|
// Trigger persistence (debounced)
|
|
256
491
|
this.saveToDisk();
|
|
257
|
-
}
|
|
492
|
+
};
|
|
258
493
|
/**
|
|
259
494
|
* Find similar patterns by embedding
|
|
260
495
|
*/
|
|
261
|
-
findSimilar(queryEmbedding, options) {
|
|
262
|
-
|
|
496
|
+
LocalReasoningBank.prototype.findSimilar = function (queryEmbedding, options) {
|
|
497
|
+
var _this = this;
|
|
498
|
+
var _a = options.k, k = _a === void 0 ? 5 : _a, _b = options.threshold, threshold = _b === void 0 ? 0.5 : _b, type = options.type;
|
|
263
499
|
// Filter by type if specified
|
|
264
|
-
|
|
265
|
-
? this.patternList.filter(p
|
|
500
|
+
var candidates = type
|
|
501
|
+
? this.patternList.filter(function (p) { return p.type === type; })
|
|
266
502
|
: this.patternList;
|
|
267
503
|
// Compute similarities
|
|
268
|
-
|
|
269
|
-
pattern,
|
|
270
|
-
score:
|
|
271
|
-
}));
|
|
504
|
+
var scored = candidates.map(function (pattern) { return ({
|
|
505
|
+
pattern: pattern,
|
|
506
|
+
score: _this.cosineSim(queryEmbedding, pattern.embedding)
|
|
507
|
+
}); });
|
|
272
508
|
// Filter by threshold and sort
|
|
273
509
|
return scored
|
|
274
|
-
.filter(s
|
|
275
|
-
.sort((a, b)
|
|
510
|
+
.filter(function (s) { return s.score >= threshold; })
|
|
511
|
+
.sort(function (a, b) { return b.score - a.score; })
|
|
276
512
|
.slice(0, k)
|
|
277
|
-
.map(s
|
|
513
|
+
.map(function (s) {
|
|
278
514
|
// Update usage
|
|
279
515
|
s.pattern.usageCount++;
|
|
280
516
|
s.pattern.lastUsedAt = Date.now();
|
|
281
|
-
return {
|
|
517
|
+
return __assign(__assign({}, s.pattern), { confidence: s.score });
|
|
282
518
|
});
|
|
283
|
-
}
|
|
519
|
+
};
|
|
284
520
|
/**
|
|
285
521
|
* Optimized cosine similarity
|
|
286
522
|
*/
|
|
287
|
-
cosineSim(a, b) {
|
|
523
|
+
LocalReasoningBank.prototype.cosineSim = function (a, b) {
|
|
288
524
|
if (!a || !b || a.length === 0 || b.length === 0)
|
|
289
525
|
return 0;
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
for (
|
|
293
|
-
|
|
526
|
+
var len = Math.min(a.length, b.length);
|
|
527
|
+
var dot = 0, normA = 0, normB = 0;
|
|
528
|
+
for (var i = 0; i < len; i++) {
|
|
529
|
+
var ai = a[i], bi = b[i];
|
|
294
530
|
dot += ai * bi;
|
|
295
531
|
normA += ai * ai;
|
|
296
532
|
normB += bi * bi;
|
|
297
533
|
}
|
|
298
|
-
|
|
534
|
+
var mag = Math.sqrt(normA * normB);
|
|
299
535
|
return mag === 0 ? 0 : dot / mag;
|
|
300
|
-
}
|
|
536
|
+
};
|
|
301
537
|
/**
|
|
302
538
|
* Get statistics
|
|
303
539
|
*/
|
|
304
|
-
stats() {
|
|
540
|
+
LocalReasoningBank.prototype.stats = function () {
|
|
305
541
|
return {
|
|
306
542
|
size: this.patterns.size,
|
|
307
543
|
patternCount: this.patternList.length
|
|
308
544
|
};
|
|
309
|
-
}
|
|
545
|
+
};
|
|
310
546
|
/**
|
|
311
547
|
* Get pattern by ID
|
|
312
548
|
*/
|
|
313
|
-
get(id) {
|
|
549
|
+
LocalReasoningBank.prototype.get = function (id) {
|
|
314
550
|
return this.patterns.get(id);
|
|
315
|
-
}
|
|
551
|
+
};
|
|
316
552
|
/**
|
|
317
553
|
* Get all patterns
|
|
318
554
|
*/
|
|
319
|
-
getAll() {
|
|
320
|
-
return [
|
|
321
|
-
}
|
|
555
|
+
LocalReasoningBank.prototype.getAll = function () {
|
|
556
|
+
return __spreadArray([], this.patternList, true);
|
|
557
|
+
};
|
|
322
558
|
/**
|
|
323
559
|
* Get patterns by type
|
|
324
560
|
*/
|
|
325
|
-
getByType(type) {
|
|
326
|
-
return this.patternList.filter(p
|
|
327
|
-
}
|
|
561
|
+
LocalReasoningBank.prototype.getByType = function (type) {
|
|
562
|
+
return this.patternList.filter(function (p) { return p.type === type; });
|
|
563
|
+
};
|
|
328
564
|
/**
|
|
329
565
|
* Delete a pattern by ID
|
|
330
566
|
*/
|
|
331
|
-
delete(id) {
|
|
332
|
-
|
|
567
|
+
LocalReasoningBank.prototype["delete"] = function (id) {
|
|
568
|
+
var pattern = this.patterns.get(id);
|
|
333
569
|
if (!pattern)
|
|
334
570
|
return false;
|
|
335
|
-
this.patterns
|
|
336
|
-
|
|
571
|
+
this.patterns["delete"](id);
|
|
572
|
+
var idx = this.patternList.findIndex(function (p) { return p.id === id; });
|
|
337
573
|
if (idx >= 0) {
|
|
338
574
|
this.patternList.splice(idx, 1);
|
|
339
575
|
}
|
|
340
576
|
this.saveToDisk();
|
|
341
577
|
return true;
|
|
342
|
-
}
|
|
578
|
+
};
|
|
343
579
|
/**
|
|
344
580
|
* Clear all patterns
|
|
345
581
|
*/
|
|
346
|
-
clear() {
|
|
582
|
+
LocalReasoningBank.prototype.clear = function () {
|
|
347
583
|
this.patterns.clear();
|
|
348
584
|
this.patternList = [];
|
|
349
585
|
this.saveToDisk();
|
|
350
|
-
}
|
|
351
|
-
|
|
586
|
+
};
|
|
587
|
+
return LocalReasoningBank;
|
|
588
|
+
}());
|
|
352
589
|
// ============================================================================
|
|
353
590
|
// Module State
|
|
354
591
|
// ============================================================================
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
592
|
+
var sonaCoordinator = null;
|
|
593
|
+
var reasoningBank = null;
|
|
594
|
+
var intelligenceInitialized = false;
|
|
595
|
+
var globalStats = {
|
|
359
596
|
trajectoriesRecorded: 0,
|
|
360
597
|
lastAdaptation: null
|
|
361
598
|
};
|
|
@@ -366,17 +603,18 @@ let globalStats = {
|
|
|
366
603
|
* Load persisted stats from disk
|
|
367
604
|
*/
|
|
368
605
|
function loadPersistedStats() {
|
|
606
|
+
var _a, _b;
|
|
369
607
|
try {
|
|
370
|
-
|
|
608
|
+
var path = getStatsPath();
|
|
371
609
|
if (existsSync(path)) {
|
|
372
|
-
|
|
610
|
+
var data = JSON.parse(readFileSync(path, 'utf-8'));
|
|
373
611
|
if (data && typeof data === 'object') {
|
|
374
|
-
globalStats.trajectoriesRecorded = data.trajectoriesRecorded
|
|
375
|
-
globalStats.lastAdaptation = data.lastAdaptation
|
|
612
|
+
globalStats.trajectoriesRecorded = (_a = data.trajectoriesRecorded) !== null && _a !== void 0 ? _a : 0;
|
|
613
|
+
globalStats.lastAdaptation = (_b = data.lastAdaptation) !== null && _b !== void 0 ? _b : null;
|
|
376
614
|
}
|
|
377
615
|
}
|
|
378
616
|
}
|
|
379
|
-
catch {
|
|
617
|
+
catch (_c) {
|
|
380
618
|
// Ignore load errors, start fresh
|
|
381
619
|
}
|
|
382
620
|
}
|
|
@@ -386,10 +624,10 @@ function loadPersistedStats() {
|
|
|
386
624
|
function savePersistedStats() {
|
|
387
625
|
try {
|
|
388
626
|
ensureDataDir();
|
|
389
|
-
|
|
627
|
+
var path = getStatsPath();
|
|
390
628
|
writeFileSync(path, JSON.stringify(globalStats, null, 2), 'utf-8');
|
|
391
629
|
}
|
|
392
|
-
catch {
|
|
630
|
+
catch (_a) {
|
|
393
631
|
// Ignore save errors
|
|
394
632
|
}
|
|
395
633
|
}
|
|
@@ -400,157 +638,277 @@ function savePersistedStats() {
|
|
|
400
638
|
* Initialize the intelligence system (SONA + ReasoningBank)
|
|
401
639
|
* Uses optimized local implementations
|
|
402
640
|
*/
|
|
403
|
-
export
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
641
|
+
export function initializeIntelligence(config) {
|
|
642
|
+
return __awaiter(this, void 0, Promise, function () {
|
|
643
|
+
var finalConfig;
|
|
644
|
+
return __generator(this, function (_a) {
|
|
645
|
+
if (intelligenceInitialized) {
|
|
646
|
+
return [2 /*return*/, {
|
|
647
|
+
success: true,
|
|
648
|
+
sonaEnabled: !!sonaCoordinator,
|
|
649
|
+
reasoningBankEnabled: !!reasoningBank
|
|
650
|
+
}];
|
|
651
|
+
}
|
|
652
|
+
try {
|
|
653
|
+
finalConfig = __assign(__assign({}, DEFAULT_SONA_CONFIG), config);
|
|
654
|
+
// Initialize local SONA (optimized for <0.05ms)
|
|
655
|
+
sonaCoordinator = new LocalSonaCoordinator(finalConfig);
|
|
656
|
+
// Initialize local ReasoningBank with persistence enabled
|
|
657
|
+
reasoningBank = new LocalReasoningBank({
|
|
658
|
+
maxSize: finalConfig.maxPatterns,
|
|
659
|
+
persistence: true
|
|
660
|
+
});
|
|
661
|
+
// Load persisted stats if available
|
|
662
|
+
loadPersistedStats();
|
|
663
|
+
intelligenceInitialized = true;
|
|
664
|
+
return [2 /*return*/, {
|
|
665
|
+
success: true,
|
|
666
|
+
sonaEnabled: true,
|
|
667
|
+
reasoningBankEnabled: true
|
|
668
|
+
}];
|
|
669
|
+
}
|
|
670
|
+
catch (error) {
|
|
671
|
+
return [2 /*return*/, {
|
|
672
|
+
success: false,
|
|
673
|
+
sonaEnabled: false,
|
|
674
|
+
reasoningBankEnabled: false,
|
|
675
|
+
error: error instanceof Error ? error.message : String(error)
|
|
676
|
+
}];
|
|
677
|
+
}
|
|
678
|
+
return [2 /*return*/];
|
|
423
679
|
});
|
|
424
|
-
|
|
425
|
-
loadPersistedStats();
|
|
426
|
-
intelligenceInitialized = true;
|
|
427
|
-
return {
|
|
428
|
-
success: true,
|
|
429
|
-
sonaEnabled: true,
|
|
430
|
-
reasoningBankEnabled: true
|
|
431
|
-
};
|
|
432
|
-
}
|
|
433
|
-
catch (error) {
|
|
434
|
-
return {
|
|
435
|
-
success: false,
|
|
436
|
-
sonaEnabled: false,
|
|
437
|
-
reasoningBankEnabled: false,
|
|
438
|
-
error: error instanceof Error ? error.message : String(error)
|
|
439
|
-
};
|
|
440
|
-
}
|
|
680
|
+
});
|
|
441
681
|
}
|
|
442
682
|
/**
|
|
443
683
|
* Record a trajectory step for learning
|
|
444
684
|
* Performance: <0.05ms without embedding generation
|
|
445
685
|
*/
|
|
446
|
-
export
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
686
|
+
export function recordStep(step) {
|
|
687
|
+
var _a;
|
|
688
|
+
return __awaiter(this, void 0, Promise, function () {
|
|
689
|
+
var init, embedding, bridge, bridgeResult, _b, generateEmbedding, result, stepWithEmbedding, verdict, _c;
|
|
690
|
+
return __generator(this, function (_d) {
|
|
691
|
+
switch (_d.label) {
|
|
692
|
+
case 0:
|
|
693
|
+
if (!!sonaCoordinator) return [3 /*break*/, 2];
|
|
694
|
+
return [4 /*yield*/, initializeIntelligence()];
|
|
695
|
+
case 1:
|
|
696
|
+
init = _d.sent();
|
|
697
|
+
if (!init.success)
|
|
698
|
+
return [2 /*return*/, false];
|
|
699
|
+
_d.label = 2;
|
|
700
|
+
case 2:
|
|
701
|
+
_d.trys.push([2, 14, , 15]);
|
|
702
|
+
embedding = step.embedding;
|
|
703
|
+
if (!!embedding) return [3 /*break*/, 10];
|
|
704
|
+
_d.label = 3;
|
|
705
|
+
case 3:
|
|
706
|
+
_d.trys.push([3, 6, , 7]);
|
|
707
|
+
return [4 /*yield*/, import('./memory-bridge.js')];
|
|
708
|
+
case 4:
|
|
709
|
+
bridge = _d.sent();
|
|
710
|
+
return [4 /*yield*/, bridge.bridgeGenerateEmbedding(step.content)];
|
|
711
|
+
case 5:
|
|
712
|
+
bridgeResult = _d.sent();
|
|
713
|
+
if (bridgeResult) {
|
|
714
|
+
embedding = bridgeResult.embedding;
|
|
715
|
+
}
|
|
716
|
+
return [3 /*break*/, 7];
|
|
717
|
+
case 6:
|
|
718
|
+
_b = _d.sent();
|
|
719
|
+
return [3 /*break*/, 7];
|
|
720
|
+
case 7:
|
|
721
|
+
if (!!embedding) return [3 /*break*/, 10];
|
|
722
|
+
return [4 /*yield*/, import('./memory-initializer.js')];
|
|
723
|
+
case 8:
|
|
724
|
+
generateEmbedding = (_d.sent()).generateEmbedding;
|
|
725
|
+
return [4 /*yield*/, generateEmbedding(step.content)];
|
|
726
|
+
case 9:
|
|
727
|
+
result = _d.sent();
|
|
728
|
+
embedding = result.embedding;
|
|
729
|
+
_d.label = 10;
|
|
730
|
+
case 10:
|
|
731
|
+
// Record in SONA - <0.05ms
|
|
732
|
+
sonaCoordinator.recordSignal({
|
|
733
|
+
type: step.type,
|
|
734
|
+
content: step.content,
|
|
735
|
+
embedding: embedding,
|
|
736
|
+
metadata: step.metadata,
|
|
737
|
+
timestamp: step.timestamp || Date.now()
|
|
738
|
+
});
|
|
739
|
+
stepWithEmbedding = __assign(__assign({}, step), { embedding: embedding });
|
|
740
|
+
sonaCoordinator.addTrajectoryStep(stepWithEmbedding);
|
|
741
|
+
// Store in ReasoningBank for retrieval
|
|
742
|
+
if (reasoningBank) {
|
|
743
|
+
reasoningBank.store({
|
|
744
|
+
id: "step_" + Date.now() + "_" + Math.random().toString(36).substring(7),
|
|
745
|
+
type: step.type,
|
|
746
|
+
embedding: embedding,
|
|
747
|
+
content: step.content,
|
|
748
|
+
confidence: 1.0,
|
|
749
|
+
metadata: step.metadata
|
|
750
|
+
});
|
|
751
|
+
}
|
|
752
|
+
if (!(step.type === 'result' && reasoningBank)) return [3 /*break*/, 13];
|
|
753
|
+
verdict = ((_a = step.metadata) === null || _a === void 0 ? void 0 : _a.verdict) || 'partial';
|
|
754
|
+
return [4 /*yield*/, sonaCoordinator.endTrajectory(verdict, reasoningBank)];
|
|
755
|
+
case 11:
|
|
756
|
+
_d.sent();
|
|
757
|
+
// Distill learning from recent successful trajectories
|
|
758
|
+
return [4 /*yield*/, sonaCoordinator.distillLearning(reasoningBank)];
|
|
759
|
+
case 12:
|
|
760
|
+
// Distill learning from recent successful trajectories
|
|
761
|
+
_d.sent();
|
|
762
|
+
globalStats.lastAdaptation = Date.now();
|
|
763
|
+
_d.label = 13;
|
|
764
|
+
case 13:
|
|
765
|
+
globalStats.trajectoriesRecorded++;
|
|
766
|
+
savePersistedStats();
|
|
767
|
+
return [2 /*return*/, true];
|
|
768
|
+
case 14:
|
|
769
|
+
_c = _d.sent();
|
|
770
|
+
return [2 /*return*/, false];
|
|
771
|
+
case 15: return [2 /*return*/];
|
|
772
|
+
}
|
|
467
773
|
});
|
|
468
|
-
|
|
469
|
-
if (reasoningBank) {
|
|
470
|
-
reasoningBank.store({
|
|
471
|
-
id: `step_${Date.now()}_${Math.random().toString(36).substring(7)}`,
|
|
472
|
-
type: step.type,
|
|
473
|
-
embedding,
|
|
474
|
-
content: step.content,
|
|
475
|
-
confidence: 1.0,
|
|
476
|
-
metadata: step.metadata
|
|
477
|
-
});
|
|
478
|
-
}
|
|
479
|
-
globalStats.trajectoriesRecorded++;
|
|
480
|
-
savePersistedStats();
|
|
481
|
-
return true;
|
|
482
|
-
}
|
|
483
|
-
catch {
|
|
484
|
-
return false;
|
|
485
|
-
}
|
|
774
|
+
});
|
|
486
775
|
}
|
|
487
776
|
/**
|
|
488
777
|
* Record a complete trajectory with verdict
|
|
489
778
|
*/
|
|
490
|
-
export
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
779
|
+
export function recordTrajectory(steps, verdict) {
|
|
780
|
+
return __awaiter(this, void 0, Promise, function () {
|
|
781
|
+
var init, _i, steps_1, step, _a;
|
|
782
|
+
return __generator(this, function (_b) {
|
|
783
|
+
switch (_b.label) {
|
|
784
|
+
case 0:
|
|
785
|
+
if (!!sonaCoordinator) return [3 /*break*/, 2];
|
|
786
|
+
return [4 /*yield*/, initializeIntelligence()];
|
|
787
|
+
case 1:
|
|
788
|
+
init = _b.sent();
|
|
789
|
+
if (!init.success)
|
|
790
|
+
return [2 /*return*/, false];
|
|
791
|
+
_b.label = 2;
|
|
792
|
+
case 2:
|
|
793
|
+
_b.trys.push([2, 6, , 7]);
|
|
794
|
+
sonaCoordinator.recordTrajectory({
|
|
795
|
+
steps: steps,
|
|
796
|
+
verdict: verdict,
|
|
797
|
+
timestamp: Date.now()
|
|
798
|
+
});
|
|
799
|
+
if (!reasoningBank) return [3 /*break*/, 5];
|
|
800
|
+
// Load steps into the coordinator for endTrajectory processing
|
|
801
|
+
for (_i = 0, steps_1 = steps; _i < steps_1.length; _i++) {
|
|
802
|
+
step = steps_1[_i];
|
|
803
|
+
sonaCoordinator.addTrajectoryStep(step);
|
|
804
|
+
}
|
|
805
|
+
return [4 /*yield*/, sonaCoordinator.endTrajectory(verdict, reasoningBank)];
|
|
806
|
+
case 3:
|
|
807
|
+
_b.sent();
|
|
808
|
+
return [4 /*yield*/, sonaCoordinator.distillLearning(reasoningBank)];
|
|
809
|
+
case 4:
|
|
810
|
+
_b.sent();
|
|
811
|
+
_b.label = 5;
|
|
812
|
+
case 5:
|
|
813
|
+
globalStats.trajectoriesRecorded++;
|
|
814
|
+
globalStats.lastAdaptation = Date.now();
|
|
815
|
+
savePersistedStats();
|
|
816
|
+
return [2 /*return*/, true];
|
|
817
|
+
case 6:
|
|
818
|
+
_a = _b.sent();
|
|
819
|
+
return [2 /*return*/, false];
|
|
820
|
+
case 7: return [2 /*return*/];
|
|
821
|
+
}
|
|
501
822
|
});
|
|
502
|
-
|
|
503
|
-
globalStats.lastAdaptation = Date.now();
|
|
504
|
-
savePersistedStats();
|
|
505
|
-
return true;
|
|
506
|
-
}
|
|
507
|
-
catch {
|
|
508
|
-
return false;
|
|
509
|
-
}
|
|
823
|
+
});
|
|
510
824
|
}
|
|
511
|
-
export
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
825
|
+
export function findSimilarPatterns(query, options) {
|
|
826
|
+
var _a, _b;
|
|
827
|
+
return __awaiter(this, void 0, Promise, function () {
|
|
828
|
+
var init, queryEmbedding, bridge, bridgeResult, _c, generateEmbedding, queryResult, isHashFallback, defaultThreshold, results, _d;
|
|
829
|
+
return __generator(this, function (_e) {
|
|
830
|
+
switch (_e.label) {
|
|
831
|
+
case 0:
|
|
832
|
+
if (!!reasoningBank) return [3 /*break*/, 2];
|
|
833
|
+
return [4 /*yield*/, initializeIntelligence()];
|
|
834
|
+
case 1:
|
|
835
|
+
init = _e.sent();
|
|
836
|
+
if (!init.success)
|
|
837
|
+
return [2 /*return*/, []];
|
|
838
|
+
_e.label = 2;
|
|
839
|
+
case 2:
|
|
840
|
+
_e.trys.push([2, 11, , 12]);
|
|
841
|
+
queryEmbedding = null;
|
|
842
|
+
_e.label = 3;
|
|
843
|
+
case 3:
|
|
844
|
+
_e.trys.push([3, 6, , 7]);
|
|
845
|
+
return [4 /*yield*/, import('./memory-bridge.js')];
|
|
846
|
+
case 4:
|
|
847
|
+
bridge = _e.sent();
|
|
848
|
+
return [4 /*yield*/, bridge.bridgeGenerateEmbedding(query)];
|
|
849
|
+
case 5:
|
|
850
|
+
bridgeResult = _e.sent();
|
|
851
|
+
if (bridgeResult) {
|
|
852
|
+
queryEmbedding = bridgeResult.embedding;
|
|
853
|
+
}
|
|
854
|
+
return [3 /*break*/, 7];
|
|
855
|
+
case 6:
|
|
856
|
+
_c = _e.sent();
|
|
857
|
+
return [3 /*break*/, 7];
|
|
858
|
+
case 7:
|
|
859
|
+
if (!!queryEmbedding) return [3 /*break*/, 10];
|
|
860
|
+
return [4 /*yield*/, import('./memory-initializer.js')];
|
|
861
|
+
case 8:
|
|
862
|
+
generateEmbedding = (_e.sent()).generateEmbedding;
|
|
863
|
+
return [4 /*yield*/, generateEmbedding(query)];
|
|
864
|
+
case 9:
|
|
865
|
+
queryResult = _e.sent();
|
|
866
|
+
queryEmbedding = queryResult.embedding;
|
|
867
|
+
_e.label = 10;
|
|
868
|
+
case 10:
|
|
869
|
+
isHashFallback = queryEmbedding.length === 128;
|
|
870
|
+
defaultThreshold = isHashFallback ? 0.1 : 0.5;
|
|
871
|
+
results = reasoningBank.findSimilar(queryEmbedding, {
|
|
872
|
+
k: (_a = options === null || options === void 0 ? void 0 : options.k) !== null && _a !== void 0 ? _a : 5,
|
|
873
|
+
threshold: (_b = options === null || options === void 0 ? void 0 : options.threshold) !== null && _b !== void 0 ? _b : defaultThreshold,
|
|
874
|
+
type: options === null || options === void 0 ? void 0 : options.type
|
|
875
|
+
});
|
|
876
|
+
return [2 /*return*/, results.map(function (r) {
|
|
877
|
+
var _a, _b;
|
|
878
|
+
return ({
|
|
879
|
+
id: r.id,
|
|
880
|
+
type: r.type,
|
|
881
|
+
embedding: r.embedding,
|
|
882
|
+
content: r.content,
|
|
883
|
+
confidence: r.confidence,
|
|
884
|
+
usageCount: r.usageCount,
|
|
885
|
+
createdAt: r.createdAt,
|
|
886
|
+
lastUsedAt: r.lastUsedAt,
|
|
887
|
+
similarity: (_b = (_a = r.similarity) !== null && _a !== void 0 ? _a : r.confidence) !== null && _b !== void 0 ? _b : 0.5
|
|
888
|
+
});
|
|
889
|
+
})];
|
|
890
|
+
case 11:
|
|
891
|
+
_d = _e.sent();
|
|
892
|
+
return [2 /*return*/, []];
|
|
893
|
+
case 12: return [2 /*return*/];
|
|
894
|
+
}
|
|
524
895
|
});
|
|
525
|
-
|
|
526
|
-
id: r.id,
|
|
527
|
-
type: r.type,
|
|
528
|
-
embedding: r.embedding,
|
|
529
|
-
content: r.content,
|
|
530
|
-
confidence: r.confidence,
|
|
531
|
-
usageCount: r.usageCount,
|
|
532
|
-
createdAt: r.createdAt,
|
|
533
|
-
lastUsedAt: r.lastUsedAt,
|
|
534
|
-
similarity: r.similarity ?? r.confidence ?? 0.5
|
|
535
|
-
}));
|
|
536
|
-
}
|
|
537
|
-
catch {
|
|
538
|
-
return [];
|
|
539
|
-
}
|
|
896
|
+
});
|
|
540
897
|
}
|
|
541
898
|
/**
|
|
542
899
|
* Get intelligence system statistics
|
|
543
900
|
*/
|
|
544
901
|
export function getIntelligenceStats() {
|
|
545
|
-
|
|
546
|
-
|
|
902
|
+
var _a, _b, _c;
|
|
903
|
+
var sonaStats = sonaCoordinator === null || sonaCoordinator === void 0 ? void 0 : sonaCoordinator.stats();
|
|
904
|
+
var bankStats = reasoningBank === null || reasoningBank === void 0 ? void 0 : reasoningBank.stats();
|
|
547
905
|
return {
|
|
548
906
|
sonaEnabled: !!sonaCoordinator,
|
|
549
|
-
reasoningBankSize: bankStats
|
|
550
|
-
patternsLearned: bankStats
|
|
907
|
+
reasoningBankSize: (_a = bankStats === null || bankStats === void 0 ? void 0 : bankStats.size) !== null && _a !== void 0 ? _a : 0,
|
|
908
|
+
patternsLearned: (_b = bankStats === null || bankStats === void 0 ? void 0 : bankStats.patternCount) !== null && _b !== void 0 ? _b : 0,
|
|
551
909
|
trajectoriesRecorded: globalStats.trajectoriesRecorded,
|
|
552
910
|
lastAdaptation: globalStats.lastAdaptation,
|
|
553
|
-
avgAdaptationTime: sonaStats
|
|
911
|
+
avgAdaptationTime: (_c = sonaStats === null || sonaStats === void 0 ? void 0 : sonaStats.avgAdaptationMs) !== null && _c !== void 0 ? _c : 0
|
|
554
912
|
};
|
|
555
913
|
}
|
|
556
914
|
/**
|
|
@@ -565,6 +923,77 @@ export function getSonaCoordinator() {
|
|
|
565
923
|
export function getReasoningBank() {
|
|
566
924
|
return reasoningBank;
|
|
567
925
|
}
|
|
926
|
+
/**
|
|
927
|
+
* End the current trajectory with a verdict and apply RL updates.
|
|
928
|
+
* This is the public API for the SONA RL loop.
|
|
929
|
+
*
|
|
930
|
+
* @param verdict - 'success' (reward=1.0), 'partial' (0.5), or 'failure' (-0.5)
|
|
931
|
+
* @returns Update statistics or null if not initialized
|
|
932
|
+
*/
|
|
933
|
+
export function endTrajectoryWithVerdict(verdict) {
|
|
934
|
+
return __awaiter(this, void 0, Promise, function () {
|
|
935
|
+
var init, result, _a;
|
|
936
|
+
return __generator(this, function (_b) {
|
|
937
|
+
switch (_b.label) {
|
|
938
|
+
case 0:
|
|
939
|
+
if (!(!sonaCoordinator || !reasoningBank)) return [3 /*break*/, 2];
|
|
940
|
+
return [4 /*yield*/, initializeIntelligence()];
|
|
941
|
+
case 1:
|
|
942
|
+
init = _b.sent();
|
|
943
|
+
if (!init.success)
|
|
944
|
+
return [2 /*return*/, null];
|
|
945
|
+
_b.label = 2;
|
|
946
|
+
case 2:
|
|
947
|
+
_b.trys.push([2, 4, , 5]);
|
|
948
|
+
return [4 /*yield*/, sonaCoordinator.endTrajectory(verdict, reasoningBank)];
|
|
949
|
+
case 3:
|
|
950
|
+
result = _b.sent();
|
|
951
|
+
globalStats.lastAdaptation = Date.now();
|
|
952
|
+
savePersistedStats();
|
|
953
|
+
return [2 /*return*/, result];
|
|
954
|
+
case 4:
|
|
955
|
+
_a = _b.sent();
|
|
956
|
+
return [2 /*return*/, null];
|
|
957
|
+
case 5: return [2 /*return*/];
|
|
958
|
+
}
|
|
959
|
+
});
|
|
960
|
+
});
|
|
961
|
+
}
|
|
962
|
+
/**
|
|
963
|
+
* Distill learning from recent successful trajectories.
|
|
964
|
+
* Applies LoRA-style confidence updates with EWC++ consolidation protection.
|
|
965
|
+
*
|
|
966
|
+
* @returns Distillation statistics or null if not initialized
|
|
967
|
+
*/
|
|
968
|
+
export function distillLearning() {
|
|
969
|
+
return __awaiter(this, void 0, Promise, function () {
|
|
970
|
+
var init, result, _a;
|
|
971
|
+
return __generator(this, function (_b) {
|
|
972
|
+
switch (_b.label) {
|
|
973
|
+
case 0:
|
|
974
|
+
if (!(!sonaCoordinator || !reasoningBank)) return [3 /*break*/, 2];
|
|
975
|
+
return [4 /*yield*/, initializeIntelligence()];
|
|
976
|
+
case 1:
|
|
977
|
+
init = _b.sent();
|
|
978
|
+
if (!init.success)
|
|
979
|
+
return [2 /*return*/, null];
|
|
980
|
+
_b.label = 2;
|
|
981
|
+
case 2:
|
|
982
|
+
_b.trys.push([2, 4, , 5]);
|
|
983
|
+
return [4 /*yield*/, sonaCoordinator.distillLearning(reasoningBank)];
|
|
984
|
+
case 3:
|
|
985
|
+
result = _b.sent();
|
|
986
|
+
globalStats.lastAdaptation = Date.now();
|
|
987
|
+
savePersistedStats();
|
|
988
|
+
return [2 /*return*/, result];
|
|
989
|
+
case 4:
|
|
990
|
+
_a = _b.sent();
|
|
991
|
+
return [2 /*return*/, null];
|
|
992
|
+
case 5: return [2 /*return*/];
|
|
993
|
+
}
|
|
994
|
+
});
|
|
995
|
+
});
|
|
996
|
+
}
|
|
568
997
|
/**
|
|
569
998
|
* Clear intelligence state
|
|
570
999
|
*/
|
|
@@ -580,31 +1009,32 @@ export function clearIntelligence() {
|
|
|
580
1009
|
/**
|
|
581
1010
|
* Benchmark SONA adaptation time
|
|
582
1011
|
*/
|
|
583
|
-
export function benchmarkAdaptation(iterations
|
|
1012
|
+
export function benchmarkAdaptation(iterations) {
|
|
1013
|
+
if (iterations === void 0) { iterations = 1000; }
|
|
584
1014
|
if (!sonaCoordinator) {
|
|
585
1015
|
initializeIntelligence();
|
|
586
1016
|
}
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
for (
|
|
590
|
-
|
|
1017
|
+
var times = [];
|
|
1018
|
+
var testEmbedding = Array.from({ length: 384 }, function () { return Math.random(); });
|
|
1019
|
+
for (var i = 0; i < iterations; i++) {
|
|
1020
|
+
var start = performance.now();
|
|
591
1021
|
sonaCoordinator.recordSignal({
|
|
592
1022
|
type: 'test',
|
|
593
|
-
content:
|
|
1023
|
+
content: "benchmark_" + i,
|
|
594
1024
|
embedding: testEmbedding,
|
|
595
1025
|
timestamp: Date.now()
|
|
596
1026
|
});
|
|
597
1027
|
times.push(performance.now() - start);
|
|
598
1028
|
}
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
1029
|
+
var totalMs = times.reduce(function (a, b) { return a + b; }, 0);
|
|
1030
|
+
var avgMs = totalMs / iterations;
|
|
1031
|
+
var minMs = Math.min.apply(Math, times);
|
|
1032
|
+
var maxMs = Math.max.apply(Math, times);
|
|
603
1033
|
return {
|
|
604
|
-
totalMs,
|
|
605
|
-
avgMs,
|
|
606
|
-
minMs,
|
|
607
|
-
maxMs,
|
|
1034
|
+
totalMs: totalMs,
|
|
1035
|
+
avgMs: avgMs,
|
|
1036
|
+
minMs: minMs,
|
|
1037
|
+
maxMs: maxMs,
|
|
608
1038
|
targetMet: avgMs < 0.05
|
|
609
1039
|
};
|
|
610
1040
|
}
|
|
@@ -615,42 +1045,62 @@ export function benchmarkAdaptation(iterations = 1000) {
|
|
|
615
1045
|
* Get all patterns from ReasoningBank
|
|
616
1046
|
* Returns persisted patterns even after process restart
|
|
617
1047
|
*/
|
|
618
|
-
export
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
1048
|
+
export function getAllPatterns() {
|
|
1049
|
+
return __awaiter(this, void 0, Promise, function () {
|
|
1050
|
+
var init;
|
|
1051
|
+
return __generator(this, function (_a) {
|
|
1052
|
+
switch (_a.label) {
|
|
1053
|
+
case 0:
|
|
1054
|
+
if (!!reasoningBank) return [3 /*break*/, 2];
|
|
1055
|
+
return [4 /*yield*/, initializeIntelligence()];
|
|
1056
|
+
case 1:
|
|
1057
|
+
init = _a.sent();
|
|
1058
|
+
if (!init.success)
|
|
1059
|
+
return [2 /*return*/, []];
|
|
1060
|
+
_a.label = 2;
|
|
1061
|
+
case 2: return [2 /*return*/, reasoningBank.getAll().map(function (p) { return ({
|
|
1062
|
+
id: p.id,
|
|
1063
|
+
type: p.type,
|
|
1064
|
+
embedding: p.embedding,
|
|
1065
|
+
content: p.content,
|
|
1066
|
+
confidence: p.confidence,
|
|
1067
|
+
usageCount: p.usageCount,
|
|
1068
|
+
createdAt: p.createdAt,
|
|
1069
|
+
lastUsedAt: p.lastUsedAt
|
|
1070
|
+
}); })];
|
|
1071
|
+
}
|
|
1072
|
+
});
|
|
1073
|
+
});
|
|
634
1074
|
}
|
|
635
1075
|
/**
|
|
636
1076
|
* Get patterns by type from ReasoningBank
|
|
637
1077
|
*/
|
|
638
|
-
export
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
1078
|
+
export function getPatternsByType(type) {
|
|
1079
|
+
return __awaiter(this, void 0, Promise, function () {
|
|
1080
|
+
var init;
|
|
1081
|
+
return __generator(this, function (_a) {
|
|
1082
|
+
switch (_a.label) {
|
|
1083
|
+
case 0:
|
|
1084
|
+
if (!!reasoningBank) return [3 /*break*/, 2];
|
|
1085
|
+
return [4 /*yield*/, initializeIntelligence()];
|
|
1086
|
+
case 1:
|
|
1087
|
+
init = _a.sent();
|
|
1088
|
+
if (!init.success)
|
|
1089
|
+
return [2 /*return*/, []];
|
|
1090
|
+
_a.label = 2;
|
|
1091
|
+
case 2: return [2 /*return*/, reasoningBank.getByType(type).map(function (p) { return ({
|
|
1092
|
+
id: p.id,
|
|
1093
|
+
type: p.type,
|
|
1094
|
+
embedding: p.embedding,
|
|
1095
|
+
content: p.content,
|
|
1096
|
+
confidence: p.confidence,
|
|
1097
|
+
usageCount: p.usageCount,
|
|
1098
|
+
createdAt: p.createdAt,
|
|
1099
|
+
lastUsedAt: p.lastUsedAt
|
|
1100
|
+
}); })];
|
|
1101
|
+
}
|
|
1102
|
+
});
|
|
1103
|
+
});
|
|
654
1104
|
}
|
|
655
1105
|
/**
|
|
656
1106
|
* Flush patterns to disk immediately
|
|
@@ -666,80 +1116,112 @@ export function flushPatterns() {
|
|
|
666
1116
|
* Compact patterns by removing duplicates/similar patterns
|
|
667
1117
|
* @param threshold Similarity threshold (0-1), patterns above this are considered duplicates
|
|
668
1118
|
*/
|
|
669
|
-
export
|
|
670
|
-
if (
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
1119
|
+
export function compactPatterns(threshold) {
|
|
1120
|
+
if (threshold === void 0) { threshold = 0.95; }
|
|
1121
|
+
return __awaiter(this, void 0, Promise, function () {
|
|
1122
|
+
var init, patterns, before, toRemove, i, embA, j, embB, dotProduct, normA, normB, k, similarity, useA, useB, _i, toRemove_1, id;
|
|
1123
|
+
return __generator(this, function (_a) {
|
|
1124
|
+
switch (_a.label) {
|
|
1125
|
+
case 0:
|
|
1126
|
+
if (!!reasoningBank) return [3 /*break*/, 2];
|
|
1127
|
+
return [4 /*yield*/, initializeIntelligence()];
|
|
1128
|
+
case 1:
|
|
1129
|
+
init = _a.sent();
|
|
1130
|
+
if (!init.success) {
|
|
1131
|
+
return [2 /*return*/, { before: 0, after: 0, removed: 0 }];
|
|
1132
|
+
}
|
|
1133
|
+
_a.label = 2;
|
|
1134
|
+
case 2:
|
|
1135
|
+
patterns = reasoningBank.getAll();
|
|
1136
|
+
before = patterns.length;
|
|
1137
|
+
toRemove = new Set();
|
|
1138
|
+
for (i = 0; i < patterns.length; i++) {
|
|
1139
|
+
if (toRemove.has(patterns[i].id))
|
|
1140
|
+
continue;
|
|
1141
|
+
embA = patterns[i].embedding;
|
|
1142
|
+
if (!embA || embA.length === 0)
|
|
1143
|
+
continue;
|
|
1144
|
+
for (j = i + 1; j < patterns.length; j++) {
|
|
1145
|
+
if (toRemove.has(patterns[j].id))
|
|
1146
|
+
continue;
|
|
1147
|
+
embB = patterns[j].embedding;
|
|
1148
|
+
if (!embB || embB.length === 0 || embA.length !== embB.length)
|
|
1149
|
+
continue;
|
|
1150
|
+
dotProduct = 0;
|
|
1151
|
+
normA = 0;
|
|
1152
|
+
normB = 0;
|
|
1153
|
+
for (k = 0; k < embA.length; k++) {
|
|
1154
|
+
dotProduct += embA[k] * embB[k];
|
|
1155
|
+
normA += embA[k] * embA[k];
|
|
1156
|
+
normB += embB[k] * embB[k];
|
|
1157
|
+
}
|
|
1158
|
+
similarity = dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));
|
|
1159
|
+
if (similarity >= threshold) {
|
|
1160
|
+
useA = patterns[i].usageCount || 0;
|
|
1161
|
+
useB = patterns[j].usageCount || 0;
|
|
1162
|
+
toRemove.add(useA >= useB ? patterns[j].id : patterns[i].id);
|
|
1163
|
+
}
|
|
1164
|
+
}
|
|
1165
|
+
}
|
|
1166
|
+
// Remove duplicates
|
|
1167
|
+
for (_i = 0, toRemove_1 = toRemove; _i < toRemove_1.length; _i++) {
|
|
1168
|
+
id = toRemove_1[_i];
|
|
1169
|
+
reasoningBank["delete"](id);
|
|
1170
|
+
}
|
|
1171
|
+
// Flush to disk
|
|
1172
|
+
flushPatterns();
|
|
1173
|
+
return [2 /*return*/, {
|
|
1174
|
+
before: before,
|
|
1175
|
+
after: before - toRemove.size,
|
|
1176
|
+
removed: toRemove.size
|
|
1177
|
+
}];
|
|
707
1178
|
}
|
|
708
|
-
}
|
|
709
|
-
}
|
|
710
|
-
// Remove duplicates
|
|
711
|
-
for (const id of toRemove) {
|
|
712
|
-
reasoningBank.delete(id);
|
|
713
|
-
}
|
|
714
|
-
// Flush to disk
|
|
715
|
-
flushPatterns();
|
|
716
|
-
return {
|
|
717
|
-
before,
|
|
718
|
-
after: before - toRemove.size,
|
|
719
|
-
removed: toRemove.size,
|
|
720
|
-
};
|
|
1179
|
+
});
|
|
1180
|
+
});
|
|
721
1181
|
}
|
|
722
1182
|
/**
|
|
723
1183
|
* Delete a pattern by ID
|
|
724
1184
|
*/
|
|
725
|
-
export
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
1185
|
+
export function deletePattern(id) {
|
|
1186
|
+
return __awaiter(this, void 0, Promise, function () {
|
|
1187
|
+
var init;
|
|
1188
|
+
return __generator(this, function (_a) {
|
|
1189
|
+
switch (_a.label) {
|
|
1190
|
+
case 0:
|
|
1191
|
+
if (!!reasoningBank) return [3 /*break*/, 2];
|
|
1192
|
+
return [4 /*yield*/, initializeIntelligence()];
|
|
1193
|
+
case 1:
|
|
1194
|
+
init = _a.sent();
|
|
1195
|
+
if (!init.success)
|
|
1196
|
+
return [2 /*return*/, false];
|
|
1197
|
+
_a.label = 2;
|
|
1198
|
+
case 2: return [2 /*return*/, reasoningBank["delete"](id)];
|
|
1199
|
+
}
|
|
1200
|
+
});
|
|
1201
|
+
});
|
|
732
1202
|
}
|
|
733
1203
|
/**
|
|
734
1204
|
* Clear all patterns (both in memory and on disk)
|
|
735
1205
|
*/
|
|
736
|
-
export
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
1206
|
+
export function clearAllPatterns() {
|
|
1207
|
+
return __awaiter(this, void 0, Promise, function () {
|
|
1208
|
+
var init;
|
|
1209
|
+
return __generator(this, function (_a) {
|
|
1210
|
+
switch (_a.label) {
|
|
1211
|
+
case 0:
|
|
1212
|
+
if (!!reasoningBank) return [3 /*break*/, 2];
|
|
1213
|
+
return [4 /*yield*/, initializeIntelligence()];
|
|
1214
|
+
case 1:
|
|
1215
|
+
init = _a.sent();
|
|
1216
|
+
if (!init.success)
|
|
1217
|
+
return [2 /*return*/];
|
|
1218
|
+
_a.label = 2;
|
|
1219
|
+
case 2:
|
|
1220
|
+
reasoningBank.clear();
|
|
1221
|
+
return [2 /*return*/];
|
|
1222
|
+
}
|
|
1223
|
+
});
|
|
1224
|
+
});
|
|
743
1225
|
}
|
|
744
1226
|
/**
|
|
745
1227
|
* Get the neural data directory path
|
|
@@ -751,14 +1233,14 @@ export function getNeuralDataDir() {
|
|
|
751
1233
|
* Get persistence status
|
|
752
1234
|
*/
|
|
753
1235
|
export function getPersistenceStatus() {
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
1236
|
+
var dataDir = getDataDir();
|
|
1237
|
+
var patternsFile = getPatternsPath();
|
|
1238
|
+
var statsFile = getStatsPath();
|
|
757
1239
|
return {
|
|
758
1240
|
enabled: true,
|
|
759
|
-
dataDir,
|
|
760
|
-
patternsFile,
|
|
761
|
-
statsFile,
|
|
1241
|
+
dataDir: dataDir,
|
|
1242
|
+
patternsFile: patternsFile,
|
|
1243
|
+
statsFile: statsFile,
|
|
762
1244
|
patternsExist: existsSync(patternsFile),
|
|
763
1245
|
statsExist: existsSync(statsFile)
|
|
764
1246
|
};
|