@claude-flow/cli 3.32.2 → 3.32.3
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/helpers/helpers.manifest.json +3 -3
- package/.claude/helpers/statusline.cjs +38 -38
- package/catalog-manifest.json +2 -2
- package/package.json +2 -2
- package/plugins/ruflo-metaharness/scripts/smoke.sh +11 -11
- package/dist/src/agenticow/speculative-exploration.d.ts +0 -148
- package/dist/src/agenticow/speculative-exploration.js +0 -218
- package/dist/src/appliance/gguf-engine.d.ts +0 -91
- package/dist/src/appliance/gguf-engine.js +0 -425
- package/dist/src/appliance/ruvllm-bridge.d.ts +0 -102
- package/dist/src/appliance/ruvllm-bridge.js +0 -292
- package/dist/src/appliance/rvfa-builder.d.ts +0 -44
- package/dist/src/appliance/rvfa-builder.js +0 -329
- package/dist/src/appliance/rvfa-distribution.d.ts +0 -97
- package/dist/src/appliance/rvfa-distribution.js +0 -370
- package/dist/src/appliance/rvfa-format.d.ts +0 -111
- package/dist/src/appliance/rvfa-format.js +0 -393
- package/dist/src/appliance/rvfa-runner.d.ts +0 -69
- package/dist/src/appliance/rvfa-runner.js +0 -237
- package/dist/src/appliance/rvfa-signing.d.ts +0 -123
- package/dist/src/appliance/rvfa-signing.js +0 -347
- package/dist/src/autopilot-state.d.ts +0 -77
- package/dist/src/autopilot-state.js +0 -271
- package/dist/src/benchmarks/gaia-agent-planning.smoke.d.ts +0 -18
- package/dist/src/benchmarks/gaia-agent-planning.smoke.js +0 -253
- package/dist/src/benchmarks/gaia-agent.d.ts +0 -198
- package/dist/src/benchmarks/gaia-agent.js +0 -651
- package/dist/src/benchmarks/gaia-causal-memory.d.ts +0 -133
- package/dist/src/benchmarks/gaia-causal-memory.js +0 -281
- package/dist/src/benchmarks/gaia-causal-memory.smoke.d.ts +0 -22
- package/dist/src/benchmarks/gaia-causal-memory.smoke.js +0 -300
- package/dist/src/benchmarks/gaia-convergence.d.ts +0 -138
- package/dist/src/benchmarks/gaia-convergence.js +0 -260
- package/dist/src/benchmarks/gaia-convergence.smoke.d.ts +0 -19
- package/dist/src/benchmarks/gaia-convergence.smoke.js +0 -246
- package/dist/src/benchmarks/gaia-critic.d.ts +0 -123
- package/dist/src/benchmarks/gaia-critic.js +0 -312
- package/dist/src/benchmarks/gaia-critic.smoke.d.ts +0 -21
- package/dist/src/benchmarks/gaia-critic.smoke.js +0 -327
- package/dist/src/benchmarks/gaia-decomposer.d.ts +0 -125
- package/dist/src/benchmarks/gaia-decomposer.js +0 -350
- package/dist/src/benchmarks/gaia-decomposer.smoke.d.ts +0 -21
- package/dist/src/benchmarks/gaia-decomposer.smoke.js +0 -228
- package/dist/src/benchmarks/gaia-e2e-smoke.d.ts +0 -27
- package/dist/src/benchmarks/gaia-e2e-smoke.js +0 -136
- package/dist/src/benchmarks/gaia-extract.smoke.d.ts +0 -45
- package/dist/src/benchmarks/gaia-extract.smoke.js +0 -242
- package/dist/src/benchmarks/gaia-hardness/features.d.ts +0 -46
- package/dist/src/benchmarks/gaia-hardness/features.js +0 -170
- package/dist/src/benchmarks/gaia-hardness/predictor.d.ts +0 -105
- package/dist/src/benchmarks/gaia-hardness/predictor.js +0 -260
- package/dist/src/benchmarks/gaia-hardness/predictor.smoke.d.ts +0 -20
- package/dist/src/benchmarks/gaia-hardness/predictor.smoke.js +0 -235
- package/dist/src/benchmarks/gaia-hardness/train-data-loader.d.ts +0 -51
- package/dist/src/benchmarks/gaia-hardness/train-data-loader.js +0 -179
- package/dist/src/benchmarks/gaia-judge.d.ts +0 -88
- package/dist/src/benchmarks/gaia-judge.js +0 -437
- package/dist/src/benchmarks/gaia-loader.d.ts +0 -87
- package/dist/src/benchmarks/gaia-loader.js +0 -326
- package/dist/src/benchmarks/gaia-tools/file_read.d.ts +0 -35
- package/dist/src/benchmarks/gaia-tools/file_read.js +0 -403
- package/dist/src/benchmarks/gaia-tools/grounded_query.d.ts +0 -126
- package/dist/src/benchmarks/gaia-tools/grounded_query.js +0 -225
- package/dist/src/benchmarks/gaia-tools/index.d.ts +0 -32
- package/dist/src/benchmarks/gaia-tools/index.js +0 -36
- package/dist/src/benchmarks/gaia-tools/types.d.ts +0 -62
- package/dist/src/benchmarks/gaia-tools/types.js +0 -12
- package/dist/src/benchmarks/gaia-tools/web_search.d.ts +0 -30
- package/dist/src/benchmarks/gaia-tools/web_search.js +0 -210
- package/dist/src/benchmarks/gaia-voting.d.ts +0 -88
- package/dist/src/benchmarks/gaia-voting.js +0 -297
- package/dist/src/benchmarks/gaia-voting.smoke.d.ts +0 -20
- package/dist/src/benchmarks/gaia-voting.smoke.js +0 -332
- package/dist/src/benchmarks/pretrain/index.d.ts +0 -58
- package/dist/src/benchmarks/pretrain/index.js +0 -404
- package/dist/src/business-pods/bbs-budget-tracker.d.ts +0 -139
- package/dist/src/business-pods/bbs-budget-tracker.js +0 -358
- package/dist/src/business-pods/domain-affinity-policy.d.ts +0 -47
- package/dist/src/business-pods/domain-affinity-policy.js +0 -65
- package/dist/src/business-pods/pod-schema.d.ts +0 -96
- package/dist/src/business-pods/pod-schema.js +0 -225
- package/dist/src/commands/advisor.d.ts +0 -15
- package/dist/src/commands/advisor.js +0 -94
- package/dist/src/commands/agent-wasm.d.ts +0 -14
- package/dist/src/commands/agent-wasm.js +0 -333
- package/dist/src/commands/agent.d.ts +0 -8
- package/dist/src/commands/agent.js +0 -927
- package/dist/src/commands/analyze.d.ts +0 -19
- package/dist/src/commands/analyze.js +0 -2047
- package/dist/src/commands/announcements.d.ts +0 -17
- package/dist/src/commands/announcements.js +0 -0
- package/dist/src/commands/appliance-advanced.d.ts +0 -9
- package/dist/src/commands/appliance-advanced.js +0 -215
- package/dist/src/commands/appliance.d.ts +0 -8
- package/dist/src/commands/appliance.js +0 -404
- package/dist/src/commands/autopilot.d.ts +0 -15
- package/dist/src/commands/autopilot.js +0 -407
- package/dist/src/commands/benchmark.d.ts +0 -10
- package/dist/src/commands/benchmark.js +0 -460
- package/dist/src/commands/claims.d.ts +0 -10
- package/dist/src/commands/claims.js +0 -620
- package/dist/src/commands/cleanup.d.ts +0 -13
- package/dist/src/commands/cleanup.js +0 -250
- package/dist/src/commands/completions.d.ts +0 -10
- package/dist/src/commands/completions.js +0 -539
- package/dist/src/commands/config.d.ts +0 -8
- package/dist/src/commands/config.js +0 -428
- package/dist/src/commands/daemon.d.ts +0 -59
- package/dist/src/commands/daemon.js +0 -1733
- package/dist/src/commands/deployment.d.ts +0 -10
- package/dist/src/commands/deployment.js +0 -672
- package/dist/src/commands/doctor.d.ts +0 -10
- package/dist/src/commands/doctor.js +0 -1695
- package/dist/src/commands/eject.d.ts +0 -33
- package/dist/src/commands/eject.js +0 -195
- package/dist/src/commands/embeddings.d.ts +0 -18
- package/dist/src/commands/embeddings.js +0 -1623
- package/dist/src/commands/funnel.d.ts +0 -18
- package/dist/src/commands/funnel.js +0 -302
- package/dist/src/commands/gaia-bench.d.ts +0 -40
- package/dist/src/commands/gaia-bench.js +0 -597
- package/dist/src/commands/guidance.d.ts +0 -8
- package/dist/src/commands/guidance.js +0 -556
- package/dist/src/commands/hive-mind.d.ts +0 -11
- package/dist/src/commands/hive-mind.js +0 -1319
- package/dist/src/commands/hooks.d.ts +0 -8
- package/dist/src/commands/hooks.js +0 -4606
- package/dist/src/commands/index.d.ts +0 -118
- package/dist/src/commands/index.js +0 -364
- package/dist/src/commands/init.d.ts +0 -13
- package/dist/src/commands/init.js +0 -1297
- package/dist/src/commands/issues.d.ts +0 -21
- package/dist/src/commands/issues.js +0 -567
- package/dist/src/commands/mcp.d.ts +0 -11
- package/dist/src/commands/mcp.js +0 -732
- package/dist/src/commands/memory-backup.d.ts +0 -11
- package/dist/src/commands/memory-backup.js +0 -46
- package/dist/src/commands/memory-distill.d.ts +0 -27
- package/dist/src/commands/memory-distill.js +0 -374
- package/dist/src/commands/memory.d.ts +0 -8
- package/dist/src/commands/memory.js +0 -1596
- package/dist/src/commands/metaharness.d.ts +0 -39
- package/dist/src/commands/metaharness.js +0 -215
- package/dist/src/commands/migrate.d.ts +0 -8
- package/dist/src/commands/migrate.js +0 -742
- package/dist/src/commands/neural.d.ts +0 -10
- package/dist/src/commands/neural.js +0 -4331
- package/dist/src/commands/performance.d.ts +0 -10
- package/dist/src/commands/performance.js +0 -583
- package/dist/src/commands/plugins.d.ts +0 -11
- package/dist/src/commands/plugins.js +0 -826
- package/dist/src/commands/process.d.ts +0 -10
- package/dist/src/commands/process.js +0 -694
- package/dist/src/commands/progress.d.ts +0 -11
- package/dist/src/commands/progress.js +0 -259
- package/dist/src/commands/providers.d.ts +0 -10
- package/dist/src/commands/providers.js +0 -502
- package/dist/src/commands/proxy.d.ts +0 -21
- package/dist/src/commands/proxy.js +0 -310
- package/dist/src/commands/route.d.ts +0 -16
- package/dist/src/commands/route.js +0 -822
- package/dist/src/commands/ruvector/backup.d.ts +0 -11
- package/dist/src/commands/ruvector/backup.js +0 -747
- package/dist/src/commands/ruvector/benchmark.d.ts +0 -11
- package/dist/src/commands/ruvector/benchmark.js +0 -490
- package/dist/src/commands/ruvector/import.d.ts +0 -18
- package/dist/src/commands/ruvector/import.js +0 -373
- package/dist/src/commands/ruvector/index.d.ts +0 -29
- package/dist/src/commands/ruvector/index.js +0 -129
- package/dist/src/commands/ruvector/init.d.ts +0 -11
- package/dist/src/commands/ruvector/init.js +0 -467
- package/dist/src/commands/ruvector/migrate.d.ts +0 -11
- package/dist/src/commands/ruvector/migrate.js +0 -498
- package/dist/src/commands/ruvector/optimize.d.ts +0 -11
- package/dist/src/commands/ruvector/optimize.js +0 -505
- package/dist/src/commands/ruvector/pg-utils.d.ts +0 -14
- package/dist/src/commands/ruvector/pg-utils.js +0 -41
- package/dist/src/commands/ruvector/setup.d.ts +0 -18
- package/dist/src/commands/ruvector/setup.js +0 -765
- package/dist/src/commands/ruvector/status.d.ts +0 -11
- package/dist/src/commands/ruvector/status.js +0 -479
- package/dist/src/commands/security.d.ts +0 -10
- package/dist/src/commands/security.js +0 -1012
- package/dist/src/commands/session.d.ts +0 -8
- package/dist/src/commands/session.js +0 -757
- package/dist/src/commands/settings.d.ts +0 -19
- package/dist/src/commands/settings.js +0 -180
- package/dist/src/commands/spinner.d.ts +0 -16
- package/dist/src/commands/spinner.js +0 -329
- package/dist/src/commands/start.d.ts +0 -8
- package/dist/src/commands/start.js +0 -418
- package/dist/src/commands/status.d.ts +0 -8
- package/dist/src/commands/status.js +0 -608
- package/dist/src/commands/swarm.d.ts +0 -8
- package/dist/src/commands/swarm.js +0 -891
- package/dist/src/commands/task.d.ts +0 -8
- package/dist/src/commands/task.js +0 -675
- package/dist/src/commands/transfer-store.d.ts +0 -13
- package/dist/src/commands/transfer-store.js +0 -428
- package/dist/src/commands/update.d.ts +0 -8
- package/dist/src/commands/update.js +0 -276
- package/dist/src/commands/verify.d.ts +0 -19
- package/dist/src/commands/verify.js +0 -261
- package/dist/src/commands/version.d.ts +0 -42
- package/dist/src/commands/version.js +0 -106
- package/dist/src/commands/workflow.d.ts +0 -8
- package/dist/src/commands/workflow.js +0 -617
- package/dist/src/config/harness-feedback-applier.d.ts +0 -50
- package/dist/src/config/harness-feedback-applier.js +0 -122
- package/dist/src/config/proven-config-refresh.d.ts +0 -39
- package/dist/src/config/proven-config-refresh.js +0 -154
- package/dist/src/config/proven-config-rvfa.d.ts +0 -23
- package/dist/src/config/proven-config-rvfa.js +0 -73
- package/dist/src/config/proven-config.d.ts +0 -86
- package/dist/src/config/proven-config.js +0 -176
- package/dist/src/config-adapter.d.ts +0 -15
- package/dist/src/config-adapter.js +0 -186
- package/dist/src/encryption/vault.d.ts +0 -94
- package/dist/src/encryption/vault.js +0 -172
- package/dist/src/fs-secure.d.ts +0 -86
- package/dist/src/fs-secure.js +0 -133
- package/dist/src/funnel/advisor-tip.d.ts +0 -58
- package/dist/src/funnel/advisor-tip.js +0 -92
- package/dist/src/funnel/attribution.d.ts +0 -37
- package/dist/src/funnel/attribution.js +0 -101
- package/dist/src/funnel/consent.d.ts +0 -22
- package/dist/src/funnel/consent.js +0 -58
- package/dist/src/funnel/credit-errors.d.ts +0 -31
- package/dist/src/funnel/credit-errors.js +0 -88
- package/dist/src/funnel/credit-notifier.d.ts +0 -44
- package/dist/src/funnel/credit-notifier.js +0 -74
- package/dist/src/funnel/disclosure.d.ts +0 -47
- package/dist/src/funnel/disclosure.js +0 -109
- package/dist/src/funnel/enrollment.d.ts +0 -36
- package/dist/src/funnel/enrollment.js +0 -64
- package/dist/src/funnel/environment.d.ts +0 -17
- package/dist/src/funnel/environment.js +0 -39
- package/dist/src/funnel/event-transport.d.ts +0 -51
- package/dist/src/funnel/event-transport.js +0 -199
- package/dist/src/funnel/events.d.ts +0 -42
- package/dist/src/funnel/events.js +0 -150
- package/dist/src/funnel/index.d.ts +0 -21
- package/dist/src/funnel/index.js +0 -21
- package/dist/src/funnel/insights.d.ts +0 -50
- package/dist/src/funnel/insights.js +0 -120
- package/dist/src/funnel/local-signals.d.ts +0 -20
- package/dist/src/funnel/local-signals.js +0 -77
- package/dist/src/funnel/message-transport.d.ts +0 -51
- package/dist/src/funnel/message-transport.js +0 -149
- package/dist/src/funnel/messages.d.ts +0 -55
- package/dist/src/funnel/messages.js +0 -160
- package/dist/src/funnel/payout.d.ts +0 -40
- package/dist/src/funnel/payout.js +0 -60
- package/dist/src/funnel/power-saver-notifier.d.ts +0 -44
- package/dist/src/funnel/power-saver-notifier.js +0 -92
- package/dist/src/funnel/precedence.d.ts +0 -16
- package/dist/src/funnel/precedence.js +0 -85
- package/dist/src/funnel/promo.d.ts +0 -41
- package/dist/src/funnel/promo.js +0 -144
- package/dist/src/funnel/rate-limit-notifier.d.ts +0 -55
- package/dist/src/funnel/rate-limit-notifier.js +0 -102
- package/dist/src/funnel/rotation.d.ts +0 -19
- package/dist/src/funnel/rotation.js +0 -70
- package/dist/src/funnel/state.d.ts +0 -13
- package/dist/src/funnel/state.js +0 -52
- package/dist/src/funnel/toggle-cooldown.d.ts +0 -17
- package/dist/src/funnel/toggle-cooldown.js +0 -32
- package/dist/src/funnel/types.d.ts +0 -98
- package/dist/src/funnel/types.js +0 -26
- package/dist/src/index.d.ts +0 -81
- package/dist/src/index.js +0 -609
- package/dist/src/infrastructure/in-memory-repositories.d.ts +0 -68
- package/dist/src/infrastructure/in-memory-repositories.js +0 -264
- package/dist/src/init/claudemd-generator.d.ts +0 -16
- package/dist/src/init/claudemd-generator.js +0 -368
- package/dist/src/init/executor.d.ts +0 -41
- package/dist/src/init/executor.js +0 -2142
- package/dist/src/init/helper-refresh.d.ts +0 -79
- package/dist/src/init/helper-refresh.js +0 -347
- package/dist/src/init/helper-signing.d.ts +0 -37
- package/dist/src/init/helper-signing.js +0 -67
- package/dist/src/init/helpers-generator.d.ts +0 -87
- package/dist/src/init/helpers-generator.js +0 -1456
- package/dist/src/init/index.d.ts +0 -13
- package/dist/src/init/index.js +0 -15
- package/dist/src/init/mcp-generator.d.ts +0 -26
- package/dist/src/init/mcp-generator.js +0 -126
- package/dist/src/init/memory-package-resolver.d.ts +0 -53
- package/dist/src/init/memory-package-resolver.js +0 -118
- package/dist/src/init/settings-generator.d.ts +0 -14
- package/dist/src/init/settings-generator.js +0 -462
- package/dist/src/init/statusline-generator.d.ts +0 -28
- package/dist/src/init/statusline-generator.js +0 -177
- package/dist/src/init/types.d.ts +0 -331
- package/dist/src/init/types.js +0 -276
- package/dist/src/log-filters.d.ts +0 -46
- package/dist/src/log-filters.js +0 -107
- package/dist/src/mcp-client.d.ts +0 -92
- package/dist/src/mcp-client.js +0 -397
- package/dist/src/mcp-server.d.ts +0 -163
- package/dist/src/mcp-server.js +0 -751
- package/dist/src/mcp-tools/agent-execute-core.d.ts +0 -115
- package/dist/src/mcp-tools/agent-execute-core.js +0 -587
- package/dist/src/mcp-tools/agent-tools.d.ts +0 -9
- package/dist/src/mcp-tools/agent-tools.js +0 -837
- package/dist/src/mcp-tools/agentbbs-tools.d.ts +0 -28
- package/dist/src/mcp-tools/agentbbs-tools.js +0 -394
- package/dist/src/mcp-tools/agentdb-tools.d.ts +0 -35
- package/dist/src/mcp-tools/agentdb-tools.js +0 -1473
- package/dist/src/mcp-tools/agenticow-loader.d.ts +0 -59
- package/dist/src/mcp-tools/agenticow-loader.js +0 -105
- package/dist/src/mcp-tools/agenticow-speculate-tools.d.ts +0 -24
- package/dist/src/mcp-tools/agenticow-speculate-tools.js +0 -209
- package/dist/src/mcp-tools/agenticow-tools.d.ts +0 -36
- package/dist/src/mcp-tools/agenticow-tools.js +0 -360
- package/dist/src/mcp-tools/analyze-tools.d.ts +0 -38
- package/dist/src/mcp-tools/analyze-tools.js +0 -346
- package/dist/src/mcp-tools/auto-install.d.ts +0 -83
- package/dist/src/mcp-tools/auto-install.js +0 -131
- package/dist/src/mcp-tools/autopilot-tools.d.ts +0 -12
- package/dist/src/mcp-tools/autopilot-tools.js +0 -231
- package/dist/src/mcp-tools/browser-intent-tools.d.ts +0 -162
- package/dist/src/mcp-tools/browser-intent-tools.js +0 -548
- package/dist/src/mcp-tools/browser-session-tools.d.ts +0 -27
- package/dist/src/mcp-tools/browser-session-tools.js +0 -398
- package/dist/src/mcp-tools/browser-tools.d.ts +0 -21
- package/dist/src/mcp-tools/browser-tools.js +0 -760
- package/dist/src/mcp-tools/business-pod-tools.d.ts +0 -20
- package/dist/src/mcp-tools/business-pod-tools.js +0 -169
- package/dist/src/mcp-tools/claims-tools.d.ts +0 -12
- package/dist/src/mcp-tools/claims-tools.js +0 -863
- package/dist/src/mcp-tools/config-tools.d.ts +0 -8
- package/dist/src/mcp-tools/config-tools.js +0 -411
- package/dist/src/mcp-tools/coordination-tools.d.ts +0 -13
- package/dist/src/mcp-tools/coordination-tools.js +0 -729
- package/dist/src/mcp-tools/daa-tools.d.ts +0 -13
- package/dist/src/mcp-tools/daa-tools.js +0 -534
- package/dist/src/mcp-tools/embeddings-tools.d.ts +0 -9
- package/dist/src/mcp-tools/embeddings-tools.js +0 -904
- package/dist/src/mcp-tools/github-tools.d.ts +0 -9
- package/dist/src/mcp-tools/github-tools.js +0 -659
- package/dist/src/mcp-tools/guidance-tools.d.ts +0 -15
- package/dist/src/mcp-tools/guidance-tools.js +0 -639
- package/dist/src/mcp-tools/hive-mind-tools.d.ts +0 -8
- package/dist/src/mcp-tools/hive-mind-tools.js +0 -953
- package/dist/src/mcp-tools/hooks-tools.d.ts +0 -65
- package/dist/src/mcp-tools/hooks-tools.js +0 -4836
- package/dist/src/mcp-tools/http-fetch-tools.d.ts +0 -55
- package/dist/src/mcp-tools/http-fetch-tools.js +0 -329
- package/dist/src/mcp-tools/index.d.ts +0 -34
- package/dist/src/mcp-tools/index.js +0 -40
- package/dist/src/mcp-tools/managed-agent-tools.d.ts +0 -22
- package/dist/src/mcp-tools/managed-agent-tools.js +0 -357
- package/dist/src/mcp-tools/memory-tools.d.ts +0 -14
- package/dist/src/mcp-tools/memory-tools.js +0 -1330
- package/dist/src/mcp-tools/metaharness-tools.d.ts +0 -51
- package/dist/src/mcp-tools/metaharness-tools.js +0 -684
- package/dist/src/mcp-tools/neural-tools.d.ts +0 -54
- package/dist/src/mcp-tools/neural-tools.js +0 -1168
- package/dist/src/mcp-tools/performance-tools.d.ts +0 -16
- package/dist/src/mcp-tools/performance-tools.js +0 -675
- package/dist/src/mcp-tools/progress-tools.d.ts +0 -14
- package/dist/src/mcp-tools/progress-tools.js +0 -348
- package/dist/src/mcp-tools/request-tracker.d.ts +0 -17
- package/dist/src/mcp-tools/request-tracker.js +0 -27
- package/dist/src/mcp-tools/ruvllm-tools.d.ts +0 -9
- package/dist/src/mcp-tools/ruvllm-tools.js +0 -355
- package/dist/src/mcp-tools/security-tools.d.ts +0 -18
- package/dist/src/mcp-tools/security-tools.js +0 -556
- package/dist/src/mcp-tools/session-tools.d.ts +0 -8
- package/dist/src/mcp-tools/session-tools.js +0 -517
- package/dist/src/mcp-tools/swarm-tools.d.ts +0 -37
- package/dist/src/mcp-tools/swarm-tools.js +0 -390
- package/dist/src/mcp-tools/system-tools.d.ts +0 -13
- package/dist/src/mcp-tools/system-tools.js +0 -688
- package/dist/src/mcp-tools/task-tools.d.ts +0 -8
- package/dist/src/mcp-tools/task-tools.js +0 -487
- package/dist/src/mcp-tools/terminal-tools.d.ts +0 -8
- package/dist/src/mcp-tools/terminal-tools.js +0 -306
- package/dist/src/mcp-tools/testgen-tools.d.ts +0 -26
- package/dist/src/mcp-tools/testgen-tools.js +0 -168
- package/dist/src/mcp-tools/tool-loop-guardrail.d.ts +0 -31
- package/dist/src/mcp-tools/tool-loop-guardrail.js +0 -71
- package/dist/src/mcp-tools/transfer-tools.d.ts +0 -14
- package/dist/src/mcp-tools/transfer-tools.js +0 -447
- package/dist/src/mcp-tools/types.d.ts +0 -8
- package/dist/src/mcp-tools/types.js +0 -8
- package/dist/src/mcp-tools/validate-input.d.ts +0 -9
- package/dist/src/mcp-tools/validate-input.js +0 -9
- package/dist/src/mcp-tools/wasm-agent-tools.d.ts +0 -13
- package/dist/src/mcp-tools/wasm-agent-tools.js +0 -840
- package/dist/src/mcp-tools/workflow-tools.d.ts +0 -8
- package/dist/src/mcp-tools/workflow-tools.js +0 -884
- package/dist/src/memory/bge-embedder.d.ts +0 -25
- package/dist/src/memory/bge-embedder.js +0 -121
- package/dist/src/memory/cross-encoder-rerank.d.ts +0 -33
- package/dist/src/memory/cross-encoder-rerank.js +0 -123
- package/dist/src/memory/embedding-policy.d.ts +0 -21
- package/dist/src/memory/embedding-policy.js +0 -30
- package/dist/src/memory/embedding-quantization.d.ts +0 -62
- package/dist/src/memory/embedding-quantization.js +0 -156
- package/dist/src/memory/ewc-consolidation.d.ts +0 -305
- package/dist/src/memory/ewc-consolidation.js +0 -611
- package/dist/src/memory/graph-edge-writer.d.ts +0 -95
- package/dist/src/memory/graph-edge-writer.js +0 -217
- package/dist/src/memory/hybrid-retrieval.d.ts +0 -77
- package/dist/src/memory/hybrid-retrieval.js +0 -192
- package/dist/src/memory/intelligence.d.ts +0 -405
- package/dist/src/memory/intelligence.js +0 -1316
- package/dist/src/memory/lucene-bm25.d.ts +0 -19
- package/dist/src/memory/lucene-bm25.js +0 -308
- package/dist/src/memory/memory-bridge.d.ts +0 -537
- package/dist/src/memory/memory-bridge.js +0 -2460
- package/dist/src/memory/memory-initializer.d.ts +0 -556
- package/dist/src/memory/memory-initializer.js +0 -3021
- package/dist/src/memory/neural-package-bridge.d.ts +0 -48
- package/dist/src/memory/neural-package-bridge.js +0 -87
- package/dist/src/memory/rabitq-index.d.ts +0 -60
- package/dist/src/memory/rabitq-index.js +0 -242
- package/dist/src/memory/sona-optimizer.d.ts +0 -267
- package/dist/src/memory/sona-optimizer.js +0 -779
- package/dist/src/memory/structured-distill.d.ts +0 -48
- package/dist/src/memory/structured-distill.js +0 -125
- package/dist/src/output.d.ts +0 -9
- package/dist/src/output.js +0 -9
- package/dist/src/parser.d.ts +0 -89
- package/dist/src/parser.js +0 -516
- package/dist/src/plugins/manager.d.ts +0 -133
- package/dist/src/plugins/manager.js +0 -415
- package/dist/src/plugins/store/discovery.d.ts +0 -99
- package/dist/src/plugins/store/discovery.js +0 -1224
- package/dist/src/plugins/store/index.d.ts +0 -76
- package/dist/src/plugins/store/index.js +0 -141
- package/dist/src/plugins/store/search.d.ts +0 -46
- package/dist/src/plugins/store/search.js +0 -230
- package/dist/src/plugins/store/types.d.ts +0 -279
- package/dist/src/plugins/store/types.js +0 -7
- package/dist/src/plugins/tests/demo-plugin-store.d.ts +0 -7
- package/dist/src/plugins/tests/demo-plugin-store.js +0 -126
- package/dist/src/plugins/tests/standalone-test.d.ts +0 -12
- package/dist/src/plugins/tests/standalone-test.js +0 -188
- package/dist/src/plugins/tests/test-plugin-store.d.ts +0 -7
- package/dist/src/plugins/tests/test-plugin-store.js +0 -206
- package/dist/src/production/circuit-breaker.d.ts +0 -101
- package/dist/src/production/circuit-breaker.js +0 -241
- package/dist/src/production/error-handler.d.ts +0 -92
- package/dist/src/production/error-handler.js +0 -299
- package/dist/src/production/index.d.ts +0 -23
- package/dist/src/production/index.js +0 -18
- package/dist/src/production/monitoring.d.ts +0 -161
- package/dist/src/production/monitoring.js +0 -356
- package/dist/src/production/rate-limiter.d.ts +0 -80
- package/dist/src/production/rate-limiter.js +0 -201
- package/dist/src/production/retry.d.ts +0 -48
- package/dist/src/production/retry.js +0 -179
- package/dist/src/prompt.d.ts +0 -44
- package/dist/src/prompt.js +0 -501
- package/dist/src/runtime/headless.d.ts +0 -60
- package/dist/src/runtime/headless.js +0 -284
- package/dist/src/runtime/parent-death-watchdog.d.ts +0 -42
- package/dist/src/runtime/parent-death-watchdog.js +0 -70
- package/dist/src/ruvector/agent-wasm.d.ts +0 -228
- package/dist/src/ruvector/agent-wasm.js +0 -463
- package/dist/src/ruvector/ast-analyzer.d.ts +0 -67
- package/dist/src/ruvector/ast-analyzer.js +0 -277
- package/dist/src/ruvector/codemods/engine.d.ts +0 -45
- package/dist/src/ruvector/codemods/engine.js +0 -291
- package/dist/src/ruvector/codemods/scope-analysis.d.ts +0 -29
- package/dist/src/ruvector/codemods/scope-analysis.js +0 -162
- package/dist/src/ruvector/coverage-router.d.ts +0 -160
- package/dist/src/ruvector/coverage-router.js +0 -531
- package/dist/src/ruvector/coverage-tools.d.ts +0 -33
- package/dist/src/ruvector/coverage-tools.js +0 -157
- package/dist/src/ruvector/diff-classifier.d.ts +0 -175
- package/dist/src/ruvector/diff-classifier.js +0 -699
- package/dist/src/ruvector/diskann-backend.d.ts +0 -78
- package/dist/src/ruvector/diskann-backend.js +0 -310
- package/dist/src/ruvector/enhanced-model-router.d.ts +0 -172
- package/dist/src/ruvector/enhanced-model-router.js +0 -577
- package/dist/src/ruvector/graph-analyzer.d.ts +0 -187
- package/dist/src/ruvector/graph-analyzer.js +0 -929
- package/dist/src/ruvector/graph-backend.d.ts +0 -79
- package/dist/src/ruvector/graph-backend.js +0 -220
- package/dist/src/ruvector/index.d.ts +0 -38
- package/dist/src/ruvector/index.js +0 -86
- package/dist/src/ruvector/lora-adapter.d.ts +0 -292
- package/dist/src/ruvector/lora-adapter.js +0 -710
- package/dist/src/ruvector/model-prices.d.ts +0 -50
- package/dist/src/ruvector/model-prices.js +0 -72
- package/dist/src/ruvector/model-router.d.ts +0 -408
- package/dist/src/ruvector/model-router.js +0 -1162
- package/dist/src/ruvector/neural-router.d.ts +0 -182
- package/dist/src/ruvector/neural-router.js +0 -825
- package/dist/src/ruvector/output-verifier.d.ts +0 -83
- package/dist/src/ruvector/output-verifier.js +0 -277
- package/dist/src/ruvector/q-learning-router.d.ts +0 -227
- package/dist/src/ruvector/q-learning-router.js +0 -721
- package/dist/src/ruvector/router-calibrator.d.ts +0 -65
- package/dist/src/ruvector/router-calibrator.js +0 -120
- package/dist/src/ruvector/router-parallel-recorder.d.ts +0 -127
- package/dist/src/ruvector/router-parallel-recorder.js +0 -183
- package/dist/src/ruvector/router-trajectory.d.ts +0 -194
- package/dist/src/ruvector/router-trajectory.js +0 -281
- package/dist/src/ruvector/run-transcript-recorder.d.ts +0 -154
- package/dist/src/ruvector/run-transcript-recorder.js +0 -209
- package/dist/src/ruvector/ruvllm-wasm.d.ts +0 -179
- package/dist/src/ruvector/ruvllm-wasm.js +0 -379
- package/dist/src/ruvector/semantic-router.d.ts +0 -77
- package/dist/src/ruvector/semantic-router.js +0 -178
- package/dist/src/ruvector/task-embedder.d.ts +0 -56
- package/dist/src/ruvector/task-embedder.js +0 -237
- package/dist/src/ruvector/trajectory-tree.d.ts +0 -113
- package/dist/src/ruvector/trajectory-tree.js +0 -237
- package/dist/src/ruvector/vector-db.d.ts +0 -73
- package/dist/src/ruvector/vector-db.js +0 -301
- package/dist/src/ruvector/wasm-embedder.d.ts +0 -13
- package/dist/src/ruvector/wasm-embedder.js +0 -143
- package/dist/src/security/builtin-aidefence.d.ts +0 -34
- package/dist/src/security/builtin-aidefence.js +0 -86
- package/dist/src/services/agentic-flow-bridge.d.ts +0 -50
- package/dist/src/services/agentic-flow-bridge.js +0 -95
- package/dist/src/services/ai-job-dedup.d.ts +0 -61
- package/dist/src/services/ai-job-dedup.js +0 -136
- package/dist/src/services/checkpoint-gate.d.ts +0 -140
- package/dist/src/services/checkpoint-gate.js +0 -223
- package/dist/src/services/claim-service.d.ts +0 -204
- package/dist/src/services/claim-service.js +0 -818
- package/dist/src/services/config-file-manager.d.ts +0 -37
- package/dist/src/services/config-file-manager.js +0 -224
- package/dist/src/services/container-worker-pool.d.ts +0 -204
- package/dist/src/services/container-worker-pool.js +0 -589
- package/dist/src/services/daemon-autostart.d.ts +0 -17
- package/dist/src/services/daemon-autostart.js +0 -102
- package/dist/src/services/distill-oracle.d.ts +0 -190
- package/dist/src/services/distill-oracle.js +0 -349
- package/dist/src/services/distill-tuning.d.ts +0 -111
- package/dist/src/services/distill-tuning.js +0 -510
- package/dist/src/services/evolve-proof.d.ts +0 -253
- package/dist/src/services/evolve-proof.js +0 -343
- package/dist/src/services/fable-harness.d.ts +0 -208
- package/dist/src/services/fable-harness.js +0 -388
- package/dist/src/services/git-workspace-identity.d.ts +0 -42
- package/dist/src/services/git-workspace-identity.js +0 -99
- package/dist/src/services/global-ai-budget.d.ts +0 -135
- package/dist/src/services/global-ai-budget.js +0 -415
- package/dist/src/services/harness-benchmark.d.ts +0 -68
- package/dist/src/services/harness-benchmark.js +0 -94
- package/dist/src/services/harness-canary.d.ts +0 -60
- package/dist/src/services/harness-canary.js +0 -69
- package/dist/src/services/harness-corpus-harvester.d.ts +0 -51
- package/dist/src/services/harness-corpus-harvester.js +0 -74
- package/dist/src/services/harness-flywheel-generations.d.ts +0 -115
- package/dist/src/services/harness-flywheel-generations.js +0 -360
- package/dist/src/services/harness-flywheel-runtime.d.ts +0 -25
- package/dist/src/services/harness-flywheel-runtime.js +0 -92
- package/dist/src/services/harness-flywheel.d.ts +0 -48
- package/dist/src/services/harness-flywheel.js +0 -207
- package/dist/src/services/harness-frozen-eval.d.ts +0 -22
- package/dist/src/services/harness-frozen-eval.js +0 -66
- package/dist/src/services/harness-hosts.d.ts +0 -40
- package/dist/src/services/harness-hosts.js +0 -88
- package/dist/src/services/harness-improvement-ledger.d.ts +0 -63
- package/dist/src/services/harness-improvement-ledger.js +0 -101
- package/dist/src/services/harness-loop.d.ts +0 -53
- package/dist/src/services/harness-loop.js +0 -85
- package/dist/src/services/harness-qualification.d.ts +0 -66
- package/dist/src/services/harness-qualification.js +0 -143
- package/dist/src/services/harness-replay.d.ts +0 -37
- package/dist/src/services/harness-replay.js +0 -92
- package/dist/src/services/harness-verify.d.ts +0 -33
- package/dist/src/services/harness-verify.js +0 -26
- package/dist/src/services/harness-worker.d.ts +0 -23
- package/dist/src/services/harness-worker.js +0 -66
- package/dist/src/services/headless-worker-executor.d.ts +0 -358
- package/dist/src/services/headless-worker-executor.js +0 -1269
- package/dist/src/services/index.d.ts +0 -13
- package/dist/src/services/index.js +0 -11
- package/dist/src/services/memory-backup.d.ts +0 -53
- package/dist/src/services/memory-backup.js +0 -198
- package/dist/src/services/memory-distillation.d.ts +0 -41
- package/dist/src/services/memory-distillation.js +0 -277
- package/dist/src/services/native-training.d.ts +0 -68
- package/dist/src/services/native-training.js +0 -141
- package/dist/src/services/registry-api.d.ts +0 -58
- package/dist/src/services/registry-api.js +0 -146
- package/dist/src/services/repo-supervisor.d.ts +0 -70
- package/dist/src/services/repo-supervisor.js +0 -228
- package/dist/src/services/ruvector-training.d.ts +0 -222
- package/dist/src/services/ruvector-training.js +0 -693
- package/dist/src/services/swarm-memory-branches.d.ts +0 -135
- package/dist/src/services/swarm-memory-branches.js +0 -213
- package/dist/src/services/weight-eft.d.ts +0 -305
- package/dist/src/services/weight-eft.js +0 -296
- package/dist/src/services/worker-daemon.d.ts +0 -439
- package/dist/src/services/worker-daemon.js +0 -1865
- package/dist/src/services/worker-queue.d.ts +0 -194
- package/dist/src/services/worker-queue.js +0 -513
- package/dist/src/services/workspace-lease.d.ts +0 -55
- package/dist/src/services/workspace-lease.js +0 -191
- package/dist/src/suggest.d.ts +0 -53
- package/dist/src/suggest.js +0 -200
- package/dist/src/transfer/anonymization/index.d.ts +0 -25
- package/dist/src/transfer/anonymization/index.js +0 -175
- package/dist/src/transfer/deploy-seraphine.d.ts +0 -13
- package/dist/src/transfer/deploy-seraphine.js +0 -205
- package/dist/src/transfer/export.d.ts +0 -25
- package/dist/src/transfer/export.js +0 -113
- package/dist/src/transfer/index.d.ts +0 -12
- package/dist/src/transfer/index.js +0 -31
- package/dist/src/transfer/ipfs/client.d.ts +0 -109
- package/dist/src/transfer/ipfs/client.js +0 -307
- package/dist/src/transfer/ipfs/upload.d.ts +0 -95
- package/dist/src/transfer/ipfs/upload.js +0 -413
- package/dist/src/transfer/models/seraphine.d.ts +0 -72
- package/dist/src/transfer/models/seraphine.js +0 -373
- package/dist/src/transfer/serialization/cfp.d.ts +0 -49
- package/dist/src/transfer/serialization/cfp.js +0 -183
- package/dist/src/transfer/storage/gcs.d.ts +0 -82
- package/dist/src/transfer/storage/gcs.js +0 -272
- package/dist/src/transfer/storage/index.d.ts +0 -6
- package/dist/src/transfer/storage/index.js +0 -6
- package/dist/src/transfer/store/discovery.d.ts +0 -84
- package/dist/src/transfer/store/discovery.js +0 -382
- package/dist/src/transfer/store/download.d.ts +0 -70
- package/dist/src/transfer/store/download.js +0 -334
- package/dist/src/transfer/store/index.d.ts +0 -84
- package/dist/src/transfer/store/index.js +0 -153
- package/dist/src/transfer/store/publish.d.ts +0 -76
- package/dist/src/transfer/store/publish.js +0 -294
- package/dist/src/transfer/store/registry.d.ts +0 -58
- package/dist/src/transfer/store/registry.js +0 -285
- package/dist/src/transfer/store/search.d.ts +0 -54
- package/dist/src/transfer/store/search.js +0 -232
- package/dist/src/transfer/store/tests/standalone-test.d.ts +0 -12
- package/dist/src/transfer/store/tests/standalone-test.js +0 -190
- package/dist/src/transfer/store/types.d.ts +0 -193
- package/dist/src/transfer/store/types.js +0 -6
- package/dist/src/transfer/test-seraphine.d.ts +0 -6
- package/dist/src/transfer/test-seraphine.js +0 -105
- package/dist/src/transfer/tests/test-store.d.ts +0 -7
- package/dist/src/transfer/tests/test-store.js +0 -214
- package/dist/src/transfer/types.d.ts +0 -245
- package/dist/src/transfer/types.js +0 -6
- package/dist/src/types.d.ts +0 -13
- package/dist/src/types.js +0 -13
- package/dist/src/update/checker.d.ts +0 -34
- package/dist/src/update/checker.js +0 -191
- package/dist/src/update/executor.d.ts +0 -33
- package/dist/src/update/executor.js +0 -217
- package/dist/src/update/index.d.ts +0 -33
- package/dist/src/update/index.js +0 -64
- package/dist/src/update/rate-limiter.d.ts +0 -20
- package/dist/src/update/rate-limiter.js +0 -96
- package/dist/src/update/validator.d.ts +0 -17
- package/dist/src/update/validator.js +0 -123
|
@@ -1,611 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EWC++ (Elastic Weight Consolidation) Implementation
|
|
3
|
-
* Prevents catastrophic forgetting of important patterns during continual learning
|
|
4
|
-
*
|
|
5
|
-
* Algorithm:
|
|
6
|
-
* L_total = L_new + (lambda/2) * sum_i(F_i * (theta_i - theta_old_i)^2)
|
|
7
|
-
*
|
|
8
|
-
* Where:
|
|
9
|
-
* - L_new is the loss on new data
|
|
10
|
-
* - lambda is the importance weight (ewcLambda)
|
|
11
|
-
* - F_i is the Fisher information for parameter i
|
|
12
|
-
* - theta_i is the current parameter value
|
|
13
|
-
* - theta_old_i is the previous parameter value
|
|
14
|
-
*
|
|
15
|
-
* Features:
|
|
16
|
-
* - Fisher Information Matrix computation from gradient history
|
|
17
|
-
* - Online EWC updates for streaming patterns
|
|
18
|
-
* - Selective consolidation based on pattern importance
|
|
19
|
-
* - Persistent storage in .swarm/ewc-fisher.json
|
|
20
|
-
*
|
|
21
|
-
* IMPLEMENTATION NOTE (honesty — see docs/reviews/intelligence-system-audit-2026-05-29.md):
|
|
22
|
-
* The penalty math above is real, but `F_i` here is NOT true Fisher information
|
|
23
|
-
* (the expectation of squared log-likelihood gradients). There are no model
|
|
24
|
-
* gradients in this pattern-memory context, so `F_i` is a HEURISTIC IMPORTANCE
|
|
25
|
-
* PROXY: accumulated squared embedding magnitude per dimension
|
|
26
|
-
* (`F_i += embedding_i^2`, see computeFisherMatrix). It protects high-magnitude
|
|
27
|
-
* embedding dimensions during consolidation — a reasonable importance signal —
|
|
28
|
-
* but "Fisher information" overstates it; read `F_i` as "embedding-importance
|
|
29
|
-
* weight", not gradient curvature.
|
|
30
|
-
*
|
|
31
|
-
* @module v3/cli/memory/ewc-consolidation
|
|
32
|
-
*/
|
|
33
|
-
import * as fs from 'fs';
|
|
34
|
-
import * as path from 'path';
|
|
35
|
-
// ============================================================================
|
|
36
|
-
// Default Configuration
|
|
37
|
-
// ============================================================================
|
|
38
|
-
const DEFAULT_EWC_CONFIG = {
|
|
39
|
-
lambda: 0.4,
|
|
40
|
-
maxPatterns: 1000,
|
|
41
|
-
fisherDecayRate: 0.01,
|
|
42
|
-
importanceThreshold: 0.3,
|
|
43
|
-
storagePath: path.join(process.cwd(), '.swarm', 'ewc-fisher.json'),
|
|
44
|
-
onlineMode: true,
|
|
45
|
-
dimensions: 384
|
|
46
|
-
};
|
|
47
|
-
// ============================================================================
|
|
48
|
-
// EWC Consolidator Class
|
|
49
|
-
// ============================================================================
|
|
50
|
-
/**
|
|
51
|
-
* EWC++ Consolidator
|
|
52
|
-
* Implements Elastic Weight Consolidation with online updates
|
|
53
|
-
* for preventing catastrophic forgetting in continual learning
|
|
54
|
-
*/
|
|
55
|
-
export class EWCConsolidator {
|
|
56
|
-
config;
|
|
57
|
-
patterns = new Map();
|
|
58
|
-
gradientHistory = [];
|
|
59
|
-
globalFisher = [];
|
|
60
|
-
consolidationHistory = [];
|
|
61
|
-
initialized = false;
|
|
62
|
-
constructor(config) {
|
|
63
|
-
this.config = { ...DEFAULT_EWC_CONFIG, ...config };
|
|
64
|
-
this.globalFisher = new Array(this.config.dimensions).fill(0);
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Initialize the consolidator by loading persisted state
|
|
68
|
-
*/
|
|
69
|
-
async initialize() {
|
|
70
|
-
if (this.initialized)
|
|
71
|
-
return true;
|
|
72
|
-
try {
|
|
73
|
-
await this.loadFromDisk();
|
|
74
|
-
this.initialized = true;
|
|
75
|
-
return true;
|
|
76
|
-
}
|
|
77
|
-
catch {
|
|
78
|
-
// Start fresh if no persisted state
|
|
79
|
-
this.initialized = true;
|
|
80
|
-
return true;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Compute Fisher Information Matrix from gradient history
|
|
85
|
-
* Uses diagonal approximation for efficiency: F_i = E[g_i^2]
|
|
86
|
-
*
|
|
87
|
-
* @param patterns - Array of patterns with their gradients/embeddings
|
|
88
|
-
* @returns Fisher information diagonal
|
|
89
|
-
*/
|
|
90
|
-
computeFisherMatrix(patterns) {
|
|
91
|
-
const fisher = new Array(this.config.dimensions).fill(0);
|
|
92
|
-
let sampleCount = 0;
|
|
93
|
-
for (const pattern of patterns) {
|
|
94
|
-
if (!pattern.embedding || pattern.embedding.length === 0)
|
|
95
|
-
continue;
|
|
96
|
-
// Only use successful patterns for Fisher computation
|
|
97
|
-
// (we want to preserve what worked)
|
|
98
|
-
if (!pattern.success)
|
|
99
|
-
continue;
|
|
100
|
-
sampleCount++;
|
|
101
|
-
// Fisher diagonal is expectation of squared gradients
|
|
102
|
-
// For embeddings, we use the embedding values as proxy for gradients
|
|
103
|
-
const len = Math.min(pattern.embedding.length, this.config.dimensions);
|
|
104
|
-
for (let i = 0; i < len; i++) {
|
|
105
|
-
// Accumulate squared values (gradient proxy)
|
|
106
|
-
fisher[i] += pattern.embedding[i] * pattern.embedding[i];
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
// Normalize by sample count
|
|
110
|
-
if (sampleCount > 0) {
|
|
111
|
-
for (let i = 0; i < this.config.dimensions; i++) {
|
|
112
|
-
fisher[i] /= sampleCount;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
// Update global Fisher with exponential moving average (EWC++)
|
|
116
|
-
if (this.config.onlineMode) {
|
|
117
|
-
const decay = this.config.fisherDecayRate;
|
|
118
|
-
for (let i = 0; i < this.config.dimensions; i++) {
|
|
119
|
-
this.globalFisher[i] = (1 - decay) * this.globalFisher[i] + decay * fisher[i];
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
return fisher;
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Consolidate new patterns with old patterns without forgetting
|
|
126
|
-
* Applies EWC penalty to preserve important weights
|
|
127
|
-
*
|
|
128
|
-
* @param newPatterns - New patterns to incorporate
|
|
129
|
-
* @param oldPatterns - Existing patterns to preserve
|
|
130
|
-
* @returns Consolidated patterns with modified weights
|
|
131
|
-
*/
|
|
132
|
-
consolidate(newPatterns, oldPatterns) {
|
|
133
|
-
const startTime = performance.now();
|
|
134
|
-
const result = {
|
|
135
|
-
success: false,
|
|
136
|
-
patternsConsolidated: 0,
|
|
137
|
-
totalPenalty: 0,
|
|
138
|
-
modifiedPatterns: [],
|
|
139
|
-
protectedPatterns: [],
|
|
140
|
-
duration: 0
|
|
141
|
-
};
|
|
142
|
-
try {
|
|
143
|
-
// Use stored patterns if no old patterns provided
|
|
144
|
-
const existingPatterns = oldPatterns || Array.from(this.patterns.values());
|
|
145
|
-
// Compute Fisher from successful existing patterns
|
|
146
|
-
const fisherInput = existingPatterns
|
|
147
|
-
.filter(p => p.successCount > p.failureCount)
|
|
148
|
-
.map(p => ({
|
|
149
|
-
id: p.id,
|
|
150
|
-
embedding: p.weights,
|
|
151
|
-
success: true
|
|
152
|
-
}));
|
|
153
|
-
const fisher = this.computeFisherMatrix(fisherInput);
|
|
154
|
-
// Process each new pattern
|
|
155
|
-
for (const newPattern of newPatterns) {
|
|
156
|
-
if (!newPattern.embedding || newPattern.embedding.length === 0)
|
|
157
|
-
continue;
|
|
158
|
-
const existingPattern = this.patterns.get(newPattern.id);
|
|
159
|
-
if (existingPattern) {
|
|
160
|
-
// Calculate EWC penalty for updating existing pattern
|
|
161
|
-
const penalty = this.getPenalty(existingPattern.weights, newPattern.embedding, fisher);
|
|
162
|
-
// Determine if update is allowed based on penalty
|
|
163
|
-
const importanceScore = this.calculateImportance(existingPattern);
|
|
164
|
-
if (importanceScore > this.config.importanceThreshold && penalty > this.config.lambda) {
|
|
165
|
-
// Protect high-importance patterns with high penalty
|
|
166
|
-
result.protectedPatterns.push(newPattern.id);
|
|
167
|
-
// Apply constrained update: blend old and new based on importance
|
|
168
|
-
const blendFactor = 1 - importanceScore;
|
|
169
|
-
const blendedWeights = this.blendWeights(existingPattern.weights, newPattern.embedding, blendFactor, fisher);
|
|
170
|
-
existingPattern.weights = blendedWeights;
|
|
171
|
-
existingPattern.lastUpdated = Date.now();
|
|
172
|
-
result.modifiedPatterns.push(newPattern.id);
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
// Low importance or low penalty: allow full update
|
|
176
|
-
existingPattern.weights = newPattern.embedding.slice(0, this.config.dimensions);
|
|
177
|
-
existingPattern.lastUpdated = Date.now();
|
|
178
|
-
result.modifiedPatterns.push(newPattern.id);
|
|
179
|
-
}
|
|
180
|
-
// Update Fisher diagonal for this pattern
|
|
181
|
-
existingPattern.fisherDiagonal = fisher;
|
|
182
|
-
result.totalPenalty += penalty;
|
|
183
|
-
}
|
|
184
|
-
else {
|
|
185
|
-
// New pattern: add directly
|
|
186
|
-
const weights = {
|
|
187
|
-
id: newPattern.id,
|
|
188
|
-
weights: newPattern.embedding.slice(0, this.config.dimensions),
|
|
189
|
-
fisherDiagonal: fisher,
|
|
190
|
-
importance: 0.5,
|
|
191
|
-
successCount: 0,
|
|
192
|
-
failureCount: 0,
|
|
193
|
-
lastUpdated: Date.now(),
|
|
194
|
-
type: newPattern.type,
|
|
195
|
-
description: newPattern.description
|
|
196
|
-
};
|
|
197
|
-
this.patterns.set(newPattern.id, weights);
|
|
198
|
-
result.modifiedPatterns.push(newPattern.id);
|
|
199
|
-
}
|
|
200
|
-
result.patternsConsolidated++;
|
|
201
|
-
}
|
|
202
|
-
// Prune old patterns if exceeding limit
|
|
203
|
-
if (this.patterns.size > this.config.maxPatterns) {
|
|
204
|
-
this.pruneOldPatterns();
|
|
205
|
-
}
|
|
206
|
-
// Record consolidation
|
|
207
|
-
this.consolidationHistory.push({
|
|
208
|
-
timestamp: Date.now(),
|
|
209
|
-
penalty: result.totalPenalty,
|
|
210
|
-
patterns: result.patternsConsolidated
|
|
211
|
-
});
|
|
212
|
-
// Persist to disk
|
|
213
|
-
this.saveToDisk();
|
|
214
|
-
result.success = true;
|
|
215
|
-
result.duration = performance.now() - startTime;
|
|
216
|
-
return result;
|
|
217
|
-
}
|
|
218
|
-
catch (error) {
|
|
219
|
-
result.error = error instanceof Error ? error.message : String(error);
|
|
220
|
-
result.duration = performance.now() - startTime;
|
|
221
|
-
return result;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* Calculate EWC regularization penalty
|
|
226
|
-
*
|
|
227
|
-
* L_ewc = (lambda/2) * sum_i(F_i * (theta_i - theta_old_i)^2)
|
|
228
|
-
*
|
|
229
|
-
* @param oldWeights - Previous weight values
|
|
230
|
-
* @param newWeights - New weight values
|
|
231
|
-
* @param fisher - Fisher information diagonal (optional, uses global if not provided)
|
|
232
|
-
* @returns Regularization penalty value
|
|
233
|
-
*/
|
|
234
|
-
getPenalty(oldWeights, newWeights, fisher) {
|
|
235
|
-
const fisherDiag = fisher || this.globalFisher;
|
|
236
|
-
const len = Math.min(oldWeights.length, newWeights.length, fisherDiag.length);
|
|
237
|
-
let penalty = 0;
|
|
238
|
-
for (let i = 0; i < len; i++) {
|
|
239
|
-
const diff = newWeights[i] - oldWeights[i];
|
|
240
|
-
penalty += fisherDiag[i] * diff * diff;
|
|
241
|
-
}
|
|
242
|
-
return (this.config.lambda / 2) * penalty;
|
|
243
|
-
}
|
|
244
|
-
/**
|
|
245
|
-
* Get consolidation statistics
|
|
246
|
-
*/
|
|
247
|
-
getConsolidationStats() {
|
|
248
|
-
let totalFisher = 0;
|
|
249
|
-
let maxFisher = 0;
|
|
250
|
-
let highImportance = 0;
|
|
251
|
-
for (let i = 0; i < this.globalFisher.length; i++) {
|
|
252
|
-
totalFisher += this.globalFisher[i];
|
|
253
|
-
if (this.globalFisher[i] > maxFisher) {
|
|
254
|
-
maxFisher = this.globalFisher[i];
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
for (const pattern of this.patterns.values()) {
|
|
258
|
-
if (this.calculateImportance(pattern) > this.config.importanceThreshold) {
|
|
259
|
-
highImportance++;
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
const totalPenalty = this.consolidationHistory.reduce((sum, h) => sum + h.penalty, 0);
|
|
263
|
-
const avgPenalty = this.consolidationHistory.length > 0
|
|
264
|
-
? totalPenalty / this.consolidationHistory.length
|
|
265
|
-
: 0;
|
|
266
|
-
// Estimate storage size
|
|
267
|
-
let storageSizeBytes = 0;
|
|
268
|
-
try {
|
|
269
|
-
if (fs.existsSync(this.config.storagePath)) {
|
|
270
|
-
const stats = fs.statSync(this.config.storagePath);
|
|
271
|
-
storageSizeBytes = stats.size;
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
catch {
|
|
275
|
-
// Ignore stat errors
|
|
276
|
-
}
|
|
277
|
-
return {
|
|
278
|
-
totalPatterns: this.patterns.size,
|
|
279
|
-
highImportancePatterns: highImportance,
|
|
280
|
-
avgFisherValue: this.globalFisher.length > 0 ? totalFisher / this.globalFisher.length : 0,
|
|
281
|
-
maxFisherValue: maxFisher,
|
|
282
|
-
consolidationCount: this.consolidationHistory.length,
|
|
283
|
-
lastConsolidation: this.consolidationHistory.length > 0
|
|
284
|
-
? this.consolidationHistory[this.consolidationHistory.length - 1].timestamp
|
|
285
|
-
: null,
|
|
286
|
-
avgPenalty,
|
|
287
|
-
storageSizeBytes
|
|
288
|
-
};
|
|
289
|
-
}
|
|
290
|
-
/**
|
|
291
|
-
* Record a gradient sample for Fisher computation
|
|
292
|
-
*/
|
|
293
|
-
recordGradient(patternId, gradients, success) {
|
|
294
|
-
this.gradientHistory.push({
|
|
295
|
-
patternId,
|
|
296
|
-
gradients,
|
|
297
|
-
timestamp: Date.now(),
|
|
298
|
-
success
|
|
299
|
-
});
|
|
300
|
-
// Keep only recent gradients
|
|
301
|
-
const maxGradients = this.config.maxPatterns * 2;
|
|
302
|
-
if (this.gradientHistory.length > maxGradients) {
|
|
303
|
-
this.gradientHistory = this.gradientHistory.slice(-maxGradients);
|
|
304
|
-
}
|
|
305
|
-
// Update pattern success/failure counts
|
|
306
|
-
const pattern = this.patterns.get(patternId);
|
|
307
|
-
if (pattern) {
|
|
308
|
-
if (success) {
|
|
309
|
-
pattern.successCount++;
|
|
310
|
-
}
|
|
311
|
-
else {
|
|
312
|
-
pattern.failureCount++;
|
|
313
|
-
}
|
|
314
|
-
pattern.importance = this.calculateImportance(pattern);
|
|
315
|
-
}
|
|
316
|
-
// Online Fisher update from this gradient
|
|
317
|
-
if (this.config.onlineMode && success) {
|
|
318
|
-
const decay = this.config.fisherDecayRate;
|
|
319
|
-
const len = Math.min(gradients.length, this.config.dimensions);
|
|
320
|
-
for (let i = 0; i < len; i++) {
|
|
321
|
-
this.globalFisher[i] = (1 - decay) * this.globalFisher[i] + decay * gradients[i] * gradients[i];
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
/**
|
|
326
|
-
* Get pattern weights by ID
|
|
327
|
-
*/
|
|
328
|
-
getPatternWeights(id) {
|
|
329
|
-
return this.patterns.get(id);
|
|
330
|
-
}
|
|
331
|
-
/**
|
|
332
|
-
* Get all stored patterns
|
|
333
|
-
*/
|
|
334
|
-
getAllPatterns() {
|
|
335
|
-
return Array.from(this.patterns.values());
|
|
336
|
-
}
|
|
337
|
-
/**
|
|
338
|
-
* Update EWC lambda (regularization strength)
|
|
339
|
-
*/
|
|
340
|
-
setLambda(lambda) {
|
|
341
|
-
this.config.lambda = lambda;
|
|
342
|
-
}
|
|
343
|
-
/**
|
|
344
|
-
* Get current lambda value
|
|
345
|
-
*/
|
|
346
|
-
getLambda() {
|
|
347
|
-
return this.config.lambda;
|
|
348
|
-
}
|
|
349
|
-
/**
|
|
350
|
-
* Reset Fisher matrix (use with caution - allows forgetting)
|
|
351
|
-
*/
|
|
352
|
-
resetFisher() {
|
|
353
|
-
this.globalFisher = new Array(this.config.dimensions).fill(0);
|
|
354
|
-
}
|
|
355
|
-
/**
|
|
356
|
-
* Update Fisher matrix from pattern confidence changes.
|
|
357
|
-
* Called by SONA after distillLearning to track which patterns
|
|
358
|
-
* are important and should be protected from forgetting.
|
|
359
|
-
*
|
|
360
|
-
* Uses online averaging: F_new = alpha * F_old + (1-alpha) * F_current
|
|
361
|
-
*
|
|
362
|
-
* @param confidenceChanges - Array of {id, embedding, oldConf, newConf}
|
|
363
|
-
*/
|
|
364
|
-
updateFisherFromConfidences(confidenceChanges) {
|
|
365
|
-
if (confidenceChanges.length === 0)
|
|
366
|
-
return;
|
|
367
|
-
const alpha = this.config.fisherDecayRate;
|
|
368
|
-
const currentFisher = new Array(this.config.dimensions).fill(0);
|
|
369
|
-
let sampleCount = 0;
|
|
370
|
-
for (const change of confidenceChanges) {
|
|
371
|
-
if (!change.embedding || change.embedding.length === 0)
|
|
372
|
-
continue;
|
|
373
|
-
const confDelta = Math.abs(change.newConf - change.oldConf);
|
|
374
|
-
if (confDelta === 0)
|
|
375
|
-
continue;
|
|
376
|
-
sampleCount++;
|
|
377
|
-
const len = Math.min(change.embedding.length, this.config.dimensions);
|
|
378
|
-
// Squared gradient proxy: embedding scaled by confidence change magnitude
|
|
379
|
-
for (let i = 0; i < len; i++) {
|
|
380
|
-
const grad = change.embedding[i] * confDelta;
|
|
381
|
-
currentFisher[i] += grad * grad;
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
if (sampleCount > 0) {
|
|
385
|
-
for (let i = 0; i < this.config.dimensions; i++) {
|
|
386
|
-
currentFisher[i] /= sampleCount;
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
// Online EMA: F_new = alpha * F_old + (1-alpha) * F_current
|
|
390
|
-
for (let i = 0; i < this.config.dimensions; i++) {
|
|
391
|
-
this.globalFisher[i] = alpha * this.globalFisher[i] + (1 - alpha) * currentFisher[i];
|
|
392
|
-
}
|
|
393
|
-
this.saveToDisk();
|
|
394
|
-
}
|
|
395
|
-
/**
|
|
396
|
-
* Compute consolidation penalty for a proposed confidence update.
|
|
397
|
-
* Used by SONA to check whether a pattern update would cause forgetting.
|
|
398
|
-
*
|
|
399
|
-
* @param oldConfidence - Current confidence value
|
|
400
|
-
* @param newConfidence - Proposed new confidence value
|
|
401
|
-
* @returns Penalty value (higher = more forgetting risk)
|
|
402
|
-
*/
|
|
403
|
-
computeConfidencePenalty(oldConfidence, newConfidence) {
|
|
404
|
-
// Use the global Fisher to estimate penalty for scalar confidence change
|
|
405
|
-
// Average Fisher value represents overall importance
|
|
406
|
-
let avgFisher = 0;
|
|
407
|
-
for (let i = 0; i < this.globalFisher.length; i++) {
|
|
408
|
-
avgFisher += this.globalFisher[i];
|
|
409
|
-
}
|
|
410
|
-
avgFisher = this.globalFisher.length > 0 ? avgFisher / this.globalFisher.length : 0;
|
|
411
|
-
const diff = newConfidence - oldConfidence;
|
|
412
|
-
return (this.config.lambda / 2) * avgFisher * diff * diff;
|
|
413
|
-
}
|
|
414
|
-
/**
|
|
415
|
-
* Clear all patterns and history (full reset)
|
|
416
|
-
*/
|
|
417
|
-
clear() {
|
|
418
|
-
this.patterns.clear();
|
|
419
|
-
this.gradientHistory = [];
|
|
420
|
-
this.globalFisher = new Array(this.config.dimensions).fill(0);
|
|
421
|
-
this.consolidationHistory = [];
|
|
422
|
-
// Remove persisted file
|
|
423
|
-
try {
|
|
424
|
-
if (fs.existsSync(this.config.storagePath)) {
|
|
425
|
-
fs.unlinkSync(this.config.storagePath);
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
catch {
|
|
429
|
-
// Ignore deletion errors
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
// ============================================================================
|
|
433
|
-
// Private Methods
|
|
434
|
-
// ============================================================================
|
|
435
|
-
/**
|
|
436
|
-
* Calculate importance score for a pattern based on usage
|
|
437
|
-
*/
|
|
438
|
-
calculateImportance(pattern) {
|
|
439
|
-
const total = pattern.successCount + pattern.failureCount;
|
|
440
|
-
if (total === 0)
|
|
441
|
-
return 0.5;
|
|
442
|
-
// Success rate with Laplace smoothing
|
|
443
|
-
const successRate = (pattern.successCount + 1) / (total + 2);
|
|
444
|
-
// Recency factor: recent patterns are more important
|
|
445
|
-
const hoursSinceUpdate = (Date.now() - pattern.lastUpdated) / (1000 * 60 * 60);
|
|
446
|
-
const recencyFactor = Math.exp(-hoursSinceUpdate / 168); // 1 week half-life
|
|
447
|
-
// Combine factors
|
|
448
|
-
return successRate * 0.7 + recencyFactor * 0.3;
|
|
449
|
-
}
|
|
450
|
-
/**
|
|
451
|
-
* Blend old and new weights using Fisher-weighted interpolation
|
|
452
|
-
*/
|
|
453
|
-
blendWeights(oldWeights, newWeights, blendFactor, fisher) {
|
|
454
|
-
const len = Math.min(oldWeights.length, newWeights.length, this.config.dimensions);
|
|
455
|
-
const result = new Array(len);
|
|
456
|
-
// Normalize Fisher for per-weight blend factors
|
|
457
|
-
let maxF = 0;
|
|
458
|
-
for (let i = 0; i < len; i++) {
|
|
459
|
-
if (fisher[i] > maxF)
|
|
460
|
-
maxF = fisher[i];
|
|
461
|
-
}
|
|
462
|
-
const normFactor = maxF > 0 ? 1 / maxF : 1;
|
|
463
|
-
for (let i = 0; i < len; i++) {
|
|
464
|
-
// Higher Fisher = more weight on old value
|
|
465
|
-
const fisherWeight = fisher[i] * normFactor;
|
|
466
|
-
const adjustedBlend = blendFactor * (1 - fisherWeight * 0.5);
|
|
467
|
-
result[i] = oldWeights[i] * (1 - adjustedBlend) + newWeights[i] * adjustedBlend;
|
|
468
|
-
}
|
|
469
|
-
return result;
|
|
470
|
-
}
|
|
471
|
-
/**
|
|
472
|
-
* Prune old, low-importance patterns to stay within limit
|
|
473
|
-
*/
|
|
474
|
-
pruneOldPatterns() {
|
|
475
|
-
if (this.patterns.size <= this.config.maxPatterns)
|
|
476
|
-
return;
|
|
477
|
-
// Sort by importance (ascending)
|
|
478
|
-
const sortedPatterns = Array.from(this.patterns.entries())
|
|
479
|
-
.map(([id, pattern]) => ({ id, importance: this.calculateImportance(pattern) }))
|
|
480
|
-
.sort((a, b) => a.importance - b.importance);
|
|
481
|
-
// Remove lowest importance patterns
|
|
482
|
-
const toRemove = this.patterns.size - this.config.maxPatterns;
|
|
483
|
-
for (let i = 0; i < toRemove; i++) {
|
|
484
|
-
this.patterns.delete(sortedPatterns[i].id);
|
|
485
|
-
}
|
|
486
|
-
}
|
|
487
|
-
/**
|
|
488
|
-
* Save state to disk
|
|
489
|
-
*/
|
|
490
|
-
saveToDisk() {
|
|
491
|
-
try {
|
|
492
|
-
const dir = path.dirname(this.config.storagePath);
|
|
493
|
-
if (!fs.existsSync(dir)) {
|
|
494
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
495
|
-
}
|
|
496
|
-
const state = {
|
|
497
|
-
version: '1.0.0',
|
|
498
|
-
config: {
|
|
499
|
-
lambda: this.config.lambda,
|
|
500
|
-
dimensions: this.config.dimensions,
|
|
501
|
-
fisherDecayRate: this.config.fisherDecayRate
|
|
502
|
-
},
|
|
503
|
-
globalFisher: this.globalFisher,
|
|
504
|
-
patterns: Array.from(this.patterns.entries()),
|
|
505
|
-
consolidationHistory: this.consolidationHistory.slice(-100),
|
|
506
|
-
savedAt: Date.now()
|
|
507
|
-
};
|
|
508
|
-
fs.writeFileSync(this.config.storagePath, JSON.stringify(state, null, 2));
|
|
509
|
-
}
|
|
510
|
-
catch {
|
|
511
|
-
// Silently fail - persistence is best-effort
|
|
512
|
-
}
|
|
513
|
-
}
|
|
514
|
-
/**
|
|
515
|
-
* Load state from disk
|
|
516
|
-
*/
|
|
517
|
-
async loadFromDisk() {
|
|
518
|
-
if (!fs.existsSync(this.config.storagePath)) {
|
|
519
|
-
throw new Error('No persisted state found');
|
|
520
|
-
}
|
|
521
|
-
const content = fs.readFileSync(this.config.storagePath, 'utf-8');
|
|
522
|
-
const state = JSON.parse(content);
|
|
523
|
-
// Validate version
|
|
524
|
-
if (state.version !== '1.0.0') {
|
|
525
|
-
throw new Error(`Unsupported state version: ${state.version}`);
|
|
526
|
-
}
|
|
527
|
-
// Restore state
|
|
528
|
-
this.globalFisher = state.globalFisher || new Array(this.config.dimensions).fill(0);
|
|
529
|
-
// Restore patterns
|
|
530
|
-
this.patterns.clear();
|
|
531
|
-
if (state.patterns) {
|
|
532
|
-
for (const [id, pattern] of state.patterns) {
|
|
533
|
-
this.patterns.set(id, pattern);
|
|
534
|
-
}
|
|
535
|
-
}
|
|
536
|
-
// Restore history
|
|
537
|
-
this.consolidationHistory = state.consolidationHistory || [];
|
|
538
|
-
// Update config from persisted values
|
|
539
|
-
if (state.config) {
|
|
540
|
-
this.config.lambda = state.config.lambda ?? this.config.lambda;
|
|
541
|
-
}
|
|
542
|
-
}
|
|
543
|
-
}
|
|
544
|
-
// ============================================================================
|
|
545
|
-
// Singleton Instance
|
|
546
|
-
// ============================================================================
|
|
547
|
-
let ewcConsolidatorInstance = null;
|
|
548
|
-
/**
|
|
549
|
-
* Get the singleton EWC Consolidator instance
|
|
550
|
-
*
|
|
551
|
-
* @param config - Optional configuration overrides
|
|
552
|
-
* @returns EWC Consolidator instance
|
|
553
|
-
*/
|
|
554
|
-
export async function getEWCConsolidator(config) {
|
|
555
|
-
if (!ewcConsolidatorInstance) {
|
|
556
|
-
ewcConsolidatorInstance = new EWCConsolidator(config);
|
|
557
|
-
await ewcConsolidatorInstance.initialize();
|
|
558
|
-
}
|
|
559
|
-
return ewcConsolidatorInstance;
|
|
560
|
-
}
|
|
561
|
-
/**
|
|
562
|
-
* Reset the singleton instance (for testing)
|
|
563
|
-
*/
|
|
564
|
-
export function resetEWCConsolidator() {
|
|
565
|
-
if (ewcConsolidatorInstance) {
|
|
566
|
-
ewcConsolidatorInstance.clear();
|
|
567
|
-
ewcConsolidatorInstance = null;
|
|
568
|
-
}
|
|
569
|
-
}
|
|
570
|
-
// ============================================================================
|
|
571
|
-
// Utility Functions
|
|
572
|
-
// ============================================================================
|
|
573
|
-
/**
|
|
574
|
-
* Quick consolidation helper for common use case
|
|
575
|
-
* Consolidates new patterns with existing ones using EWC
|
|
576
|
-
*
|
|
577
|
-
* @param newPatterns - New patterns to add
|
|
578
|
-
* @returns Consolidation result
|
|
579
|
-
*/
|
|
580
|
-
export async function consolidatePatterns(newPatterns) {
|
|
581
|
-
const consolidator = await getEWCConsolidator();
|
|
582
|
-
return consolidator.consolidate(newPatterns);
|
|
583
|
-
}
|
|
584
|
-
/**
|
|
585
|
-
* Record pattern usage outcome
|
|
586
|
-
* Updates Fisher information and pattern importance
|
|
587
|
-
*
|
|
588
|
-
* @param patternId - Pattern identifier
|
|
589
|
-
* @param embedding - Pattern embedding (used as gradient proxy)
|
|
590
|
-
* @param success - Whether the pattern was successful
|
|
591
|
-
*/
|
|
592
|
-
export async function recordPatternOutcome(patternId, embedding, success) {
|
|
593
|
-
const consolidator = await getEWCConsolidator();
|
|
594
|
-
consolidator.recordGradient(patternId, embedding, success);
|
|
595
|
-
}
|
|
596
|
-
/**
|
|
597
|
-
* Get EWC statistics
|
|
598
|
-
*/
|
|
599
|
-
export async function getEWCStats() {
|
|
600
|
-
const consolidator = await getEWCConsolidator();
|
|
601
|
-
return consolidator.getConsolidationStats();
|
|
602
|
-
}
|
|
603
|
-
export default {
|
|
604
|
-
EWCConsolidator,
|
|
605
|
-
getEWCConsolidator,
|
|
606
|
-
resetEWCConsolidator,
|
|
607
|
-
consolidatePatterns,
|
|
608
|
-
recordPatternOutcome,
|
|
609
|
-
getEWCStats
|
|
610
|
-
};
|
|
611
|
-
//# sourceMappingURL=ewc-consolidation.js.map
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Graph Edge Writer — ADR-130 Phase 1
|
|
3
|
-
*
|
|
4
|
-
* Provides a minimal interface for inserting rows into the graph_edges
|
|
5
|
-
* SQLite table defined by MEMORY_SCHEMA_V3.
|
|
6
|
-
*
|
|
7
|
-
* #2431 fix (2026-06-22) — replaces the prior sql.js implementation. The
|
|
8
|
-
* prior version opened sql.js, performed in-memory updates, then called
|
|
9
|
-
* `fs.writeFileSync(dbPath, db.export())` after every edge insert. This
|
|
10
|
-
* whole-file flush overwrote the main `memory.db` while the better-sqlite3
|
|
11
|
-
* bridge was actively writing through its WAL — exactly the dual-write
|
|
12
|
-
* race that ADR-068 (#1257) removed. Symptom: PRAGMA integrity_check
|
|
13
|
-
* reports `database disk image is malformed (11)` after a single
|
|
14
|
-
* memory_store + causal-edge sequence.
|
|
15
|
-
*
|
|
16
|
-
* Fix posture: use better-sqlite3 directly (the same native engine the
|
|
17
|
-
* memory bridge uses). WAL-native, no whole-file fsync, no race. Keeps
|
|
18
|
-
* the public API surface identical so callers don't have to change.
|
|
19
|
-
*
|
|
20
|
-
* Note: this is the minimum-safe fix. The architecturally cleaner fix
|
|
21
|
-
* (route writes through the bridge's controller layer) is scoped to a
|
|
22
|
-
* future ADR — see #2431 for the discussion. Until that ADR lands, this
|
|
23
|
-
* module owns its own better-sqlite3 handle but on the same file, with
|
|
24
|
-
* WAL mode enabled (which makes concurrent writers safe by SQLite's own
|
|
25
|
-
* design — no overlapping fsync).
|
|
26
|
-
*
|
|
27
|
-
* The module is designed for fire-and-forget callers — every public
|
|
28
|
-
* function suppresses errors internally so callers never need try/catch.
|
|
29
|
-
*
|
|
30
|
-
* @module v3/cli/memory/graph-edge-writer
|
|
31
|
-
*/
|
|
32
|
-
/**
|
|
33
|
-
* Return the better-sqlite3 Database instance for graph_edges writes.
|
|
34
|
-
* Creates the graph_edges table if it is absent (idempotent).
|
|
35
|
-
* Returns null if better-sqlite3 is not available or db cannot be opened.
|
|
36
|
-
*
|
|
37
|
-
* #2246 fix: `createIfMissing` (default false for back-compat) — when true,
|
|
38
|
-
* lazily creates an empty memory.db with the graph_edges schema so
|
|
39
|
-
* graph-pathfinder works on fresh environments before any memory writes.
|
|
40
|
-
*
|
|
41
|
-
* #2431 fix: better-sqlite3 + WAL mode replaces sql.js + whole-file
|
|
42
|
-
* writeFileSync. Eliminates the dual-write race that corrupted memory.db
|
|
43
|
-
* when called alongside the memory bridge's better-sqlite3 writer.
|
|
44
|
-
*/
|
|
45
|
-
export declare function getBridgeDb(customDbPath?: string, opts?: {
|
|
46
|
-
createIfMissing?: boolean;
|
|
47
|
-
}): Promise<any | null>;
|
|
48
|
-
export interface GraphEdgeInput {
|
|
49
|
-
sourceId: string;
|
|
50
|
-
targetId: string;
|
|
51
|
-
relation: string;
|
|
52
|
-
weight?: number;
|
|
53
|
-
confidence?: number;
|
|
54
|
-
decayRate?: number;
|
|
55
|
-
lastReinforced?: string;
|
|
56
|
-
witnessId?: string;
|
|
57
|
-
embedding?: number[];
|
|
58
|
-
metadata?: Record<string, unknown>;
|
|
59
|
-
dbPath?: string;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Insert a single edge into graph_edges.
|
|
63
|
-
* Fire-and-forget — errors are suppressed.
|
|
64
|
-
* Returns true if the write succeeded, false otherwise.
|
|
65
|
-
*
|
|
66
|
-
* #2431 fix: uses better-sqlite3 prepared statements + implicit WAL
|
|
67
|
-
* journal. No `fs.writeFileSync` whole-file flush — the WAL handles
|
|
68
|
-
* durability without overwriting the main file out from under other
|
|
69
|
-
* writers.
|
|
70
|
-
*/
|
|
71
|
-
export declare function insertGraphEdge(input: GraphEdgeInput): Promise<boolean>;
|
|
72
|
-
/**
|
|
73
|
-
* Query graph_edges by source_id.
|
|
74
|
-
* Returns rows or empty array on error.
|
|
75
|
-
*/
|
|
76
|
-
export declare function queryEdgesBySource(sourceId: string, relation?: string, dbPath?: string): Promise<Array<{
|
|
77
|
-
id: string;
|
|
78
|
-
source_id: string;
|
|
79
|
-
target_id: string;
|
|
80
|
-
relation: string;
|
|
81
|
-
weight: number;
|
|
82
|
-
}>>;
|
|
83
|
-
/**
|
|
84
|
-
* Count rows in graph_edges (for test assertions).
|
|
85
|
-
*/
|
|
86
|
-
export declare function countGraphEdges(dbPath?: string): Promise<number>;
|
|
87
|
-
/**
|
|
88
|
-
* Reset the cached db handle (for tests that need a fresh DB).
|
|
89
|
-
*
|
|
90
|
-
* #2431 fix: also explicitly closes the prior handle so file locks
|
|
91
|
-
* release immediately — better-sqlite3 holds an OS-level file handle
|
|
92
|
-
* which the prior sql.js implementation did not.
|
|
93
|
-
*/
|
|
94
|
-
export declare function _resetBridgeDb(): void;
|
|
95
|
-
//# sourceMappingURL=graph-edge-writer.d.ts.map
|