@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,237 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* trajectory-tree.ts — Execution-state-tree retrieval PROTOTYPE (MAGE-style).
|
|
3
|
-
*
|
|
4
|
-
* Research basis: MAGE (arXiv 2606.06090) observes that semantic-similarity
|
|
5
|
-
* retrieval fragments decision trajectories on long-horizon tasks; retrieving
|
|
6
|
-
* by POSITION in a hierarchical execution-state tree (the root→current path)
|
|
7
|
-
* preserves coherence. This module mirrors ruflo's existing trajectory
|
|
8
|
-
* recording (hooks_intelligence_trajectory-start/step/end) into such a tree
|
|
9
|
-
* and offers position-based recall — NO embedding search anywhere.
|
|
10
|
-
*
|
|
11
|
-
* Structure:
|
|
12
|
-
* session root ─ trajectory ─ step
|
|
13
|
-
* └ trajectory (nested: a start while another is open
|
|
14
|
-
* opens UNDER the open one) ─ step …
|
|
15
|
-
*
|
|
16
|
-
* - `trajectory-start` opens a node under the deepest open trajectory of the
|
|
17
|
-
* session (or the session root).
|
|
18
|
-
* - `trajectory-step` appends a step child; the step becomes the "current"
|
|
19
|
-
* position of the session.
|
|
20
|
-
* - `trajectory-end` closes the node; current returns to its parent.
|
|
21
|
-
* - `recallPath({sessionId, depth})` returns the root→current path (the
|
|
22
|
-
* MAGE-style working context) plus the most recent siblings of the current
|
|
23
|
-
* node.
|
|
24
|
-
*
|
|
25
|
-
* PROTOTYPE LIMITATIONS (deliberate — see the feature spec):
|
|
26
|
-
* - Persistence is a single best-effort JSON snapshot at
|
|
27
|
-
* `.claude-flow/intelligence/trajectory-tree.json`, written on every
|
|
28
|
-
* mutation. It sits ALONGSIDE the existing 'trajectories' memory-namespace
|
|
29
|
-
* persistence; nothing is migrated and the semantic path is untouched.
|
|
30
|
-
* - No concurrency control: two MCP server processes sharing a cwd will
|
|
31
|
-
* last-writer-win the snapshot.
|
|
32
|
-
* - No pruning/compaction: long-lived sessions grow the file unboundedly
|
|
33
|
-
* (labels are truncated to 200 chars to bound row size, not row count).
|
|
34
|
-
* - sessionId defaults to CLAUDE_FLOW_SESSION_ID or 'default'; hosts that
|
|
35
|
-
* never set it collapse into one tree.
|
|
36
|
-
* - Retrieval is position-only by design; hybrid position+semantic ranking
|
|
37
|
-
* is future work.
|
|
38
|
-
*
|
|
39
|
-
* @module ruvector/trajectory-tree
|
|
40
|
-
*/
|
|
41
|
-
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
42
|
-
import { dirname, join, resolve } from 'node:path';
|
|
43
|
-
const DEFAULT_PERSIST_PATH = join('.claude-flow', 'intelligence', 'trajectory-tree.json');
|
|
44
|
-
const LABEL_MAX = 200;
|
|
45
|
-
function now() {
|
|
46
|
-
return new Date().toISOString();
|
|
47
|
-
}
|
|
48
|
-
function truncate(text) {
|
|
49
|
-
return text.length > LABEL_MAX ? `${text.slice(0, LABEL_MAX - 1)}…` : text;
|
|
50
|
-
}
|
|
51
|
-
export class TrajectoryTree {
|
|
52
|
-
nodes = new Map();
|
|
53
|
-
/** sessionId → id of the deepest "current" node (step or open trajectory). */
|
|
54
|
-
currentBySession = new Map();
|
|
55
|
-
/** trajectoryId → sessionId, so step/end calls can omit the session. */
|
|
56
|
-
trajectorySession = new Map();
|
|
57
|
-
persistPath;
|
|
58
|
-
constructor(persistPath) {
|
|
59
|
-
this.persistPath = resolve(persistPath ?? DEFAULT_PERSIST_PATH);
|
|
60
|
-
this.load();
|
|
61
|
-
}
|
|
62
|
-
sessionRootId(sessionId) {
|
|
63
|
-
return `session:${sessionId}`;
|
|
64
|
-
}
|
|
65
|
-
ensureSession(sessionId) {
|
|
66
|
-
const id = this.sessionRootId(sessionId);
|
|
67
|
-
let node = this.nodes.get(id);
|
|
68
|
-
if (!node) {
|
|
69
|
-
node = {
|
|
70
|
-
id,
|
|
71
|
-
kind: 'session',
|
|
72
|
-
label: truncate(sessionId),
|
|
73
|
-
parentId: null,
|
|
74
|
-
childIds: [],
|
|
75
|
-
status: 'open',
|
|
76
|
-
openedAt: now(),
|
|
77
|
-
};
|
|
78
|
-
this.nodes.set(id, node);
|
|
79
|
-
}
|
|
80
|
-
return node;
|
|
81
|
-
}
|
|
82
|
-
/** Deepest OPEN trajectory node on the current path of a session, if any. */
|
|
83
|
-
deepestOpenTrajectory(sessionId) {
|
|
84
|
-
let cursor = this.nodes.get(this.currentBySession.get(sessionId) ?? '');
|
|
85
|
-
while (cursor) {
|
|
86
|
-
if (cursor.kind === 'trajectory' && cursor.status === 'open')
|
|
87
|
-
return cursor;
|
|
88
|
-
cursor = cursor.parentId ? this.nodes.get(cursor.parentId) : undefined;
|
|
89
|
-
}
|
|
90
|
-
return null;
|
|
91
|
-
}
|
|
92
|
-
openTrajectory(args) {
|
|
93
|
-
const session = this.ensureSession(args.sessionId);
|
|
94
|
-
const parent = this.deepestOpenTrajectory(args.sessionId) ?? session;
|
|
95
|
-
const node = {
|
|
96
|
-
id: args.trajectoryId,
|
|
97
|
-
kind: 'trajectory',
|
|
98
|
-
label: truncate(args.task),
|
|
99
|
-
parentId: parent.id,
|
|
100
|
-
childIds: [],
|
|
101
|
-
status: 'open',
|
|
102
|
-
openedAt: now(),
|
|
103
|
-
meta: args.agent ? { agent: args.agent } : undefined,
|
|
104
|
-
};
|
|
105
|
-
this.nodes.set(node.id, node);
|
|
106
|
-
parent.childIds.push(node.id);
|
|
107
|
-
this.trajectorySession.set(args.trajectoryId, args.sessionId);
|
|
108
|
-
this.currentBySession.set(args.sessionId, node.id);
|
|
109
|
-
this.save();
|
|
110
|
-
return node;
|
|
111
|
-
}
|
|
112
|
-
appendStep(args) {
|
|
113
|
-
const trajectory = this.nodes.get(args.trajectoryId);
|
|
114
|
-
if (!trajectory || trajectory.kind !== 'trajectory')
|
|
115
|
-
return null;
|
|
116
|
-
const sessionId = this.trajectorySession.get(args.trajectoryId);
|
|
117
|
-
// The upstream stepId scheme (`step-${Date.now()}`) can collide within a
|
|
118
|
-
// millisecond — uniquify locally instead of clobbering an existing node.
|
|
119
|
-
let stepId = args.stepId;
|
|
120
|
-
let bump = 1;
|
|
121
|
-
while (this.nodes.has(stepId))
|
|
122
|
-
stepId = `${args.stepId}-${bump++}`;
|
|
123
|
-
const node = {
|
|
124
|
-
id: stepId,
|
|
125
|
-
kind: 'step',
|
|
126
|
-
label: truncate(args.action),
|
|
127
|
-
parentId: trajectory.id,
|
|
128
|
-
childIds: [],
|
|
129
|
-
status: 'closed',
|
|
130
|
-
openedAt: now(),
|
|
131
|
-
closedAt: now(),
|
|
132
|
-
meta: args.quality !== undefined ? { quality: args.quality } : undefined,
|
|
133
|
-
};
|
|
134
|
-
this.nodes.set(node.id, node);
|
|
135
|
-
trajectory.childIds.push(node.id);
|
|
136
|
-
if (sessionId)
|
|
137
|
-
this.currentBySession.set(sessionId, node.id);
|
|
138
|
-
this.save();
|
|
139
|
-
return node;
|
|
140
|
-
}
|
|
141
|
-
closeTrajectory(args) {
|
|
142
|
-
const trajectory = this.nodes.get(args.trajectoryId);
|
|
143
|
-
if (!trajectory || trajectory.kind !== 'trajectory')
|
|
144
|
-
return null;
|
|
145
|
-
trajectory.status = 'closed';
|
|
146
|
-
trajectory.closedAt = now();
|
|
147
|
-
if (args.success !== undefined) {
|
|
148
|
-
trajectory.meta = { ...trajectory.meta, success: args.success };
|
|
149
|
-
}
|
|
150
|
-
const sessionId = this.trajectorySession.get(args.trajectoryId);
|
|
151
|
-
if (sessionId && trajectory.parentId) {
|
|
152
|
-
// Current position pops back to the enclosing trajectory / session root.
|
|
153
|
-
this.currentBySession.set(sessionId, trajectory.parentId);
|
|
154
|
-
}
|
|
155
|
-
this.save();
|
|
156
|
-
return trajectory;
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* MAGE-style positional recall: the exact root→current path for a session,
|
|
160
|
-
* plus the most recent siblings of the current node for local context.
|
|
161
|
-
*
|
|
162
|
-
* @param depth Max number of path nodes returned, counted from the CURRENT
|
|
163
|
-
* node upward (deepest levels win). Default: full path.
|
|
164
|
-
* @param siblingWindow Max recent siblings of the current node. Default 3.
|
|
165
|
-
*/
|
|
166
|
-
recallPath(args) {
|
|
167
|
-
const currentId = this.currentBySession.get(args.sessionId) ?? null;
|
|
168
|
-
const path = [];
|
|
169
|
-
let cursor = currentId ? this.nodes.get(currentId) : undefined;
|
|
170
|
-
while (cursor) {
|
|
171
|
-
path.unshift(cursor);
|
|
172
|
-
cursor = cursor.parentId ? this.nodes.get(cursor.parentId) : undefined;
|
|
173
|
-
}
|
|
174
|
-
const depth = args.depth && args.depth > 0 ? args.depth : path.length;
|
|
175
|
-
const trimmedPath = path.slice(Math.max(0, path.length - depth));
|
|
176
|
-
const siblingWindow = args.siblingWindow ?? 3;
|
|
177
|
-
let siblings = [];
|
|
178
|
-
const current = currentId ? this.nodes.get(currentId) : undefined;
|
|
179
|
-
const parent = current?.parentId ? this.nodes.get(current.parentId) : undefined;
|
|
180
|
-
if (current && parent) {
|
|
181
|
-
siblings = parent.childIds
|
|
182
|
-
.filter(id => id !== current.id)
|
|
183
|
-
.map(id => this.nodes.get(id))
|
|
184
|
-
.filter((n) => !!n)
|
|
185
|
-
.slice(-siblingWindow);
|
|
186
|
-
}
|
|
187
|
-
return { sessionId: args.sessionId, path: trimmedPath, siblings, currentId, strategy: 'state-tree' };
|
|
188
|
-
}
|
|
189
|
-
get size() {
|
|
190
|
-
return this.nodes.size;
|
|
191
|
-
}
|
|
192
|
-
// ── Persistence (best-effort JSON snapshot) ──────────────────────────────
|
|
193
|
-
load() {
|
|
194
|
-
try {
|
|
195
|
-
if (!existsSync(this.persistPath))
|
|
196
|
-
return;
|
|
197
|
-
const raw = JSON.parse(readFileSync(this.persistPath, 'utf-8'));
|
|
198
|
-
if (raw?.v !== 1 || typeof raw.nodes !== 'object')
|
|
199
|
-
return;
|
|
200
|
-
this.nodes = new Map(Object.entries(raw.nodes));
|
|
201
|
-
this.currentBySession = new Map(Object.entries(raw.currentBySession ?? {}));
|
|
202
|
-
this.trajectorySession = new Map(Object.entries(raw.trajectorySession ?? {}));
|
|
203
|
-
}
|
|
204
|
-
catch {
|
|
205
|
-
// Corrupt/unreadable snapshot — start fresh; the semantic trajectory
|
|
206
|
-
// persistence in the 'trajectories' namespace is unaffected.
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
save() {
|
|
210
|
-
try {
|
|
211
|
-
const snapshot = {
|
|
212
|
-
v: 1,
|
|
213
|
-
nodes: Object.fromEntries(this.nodes),
|
|
214
|
-
currentBySession: Object.fromEntries(this.currentBySession),
|
|
215
|
-
trajectorySession: Object.fromEntries(this.trajectorySession),
|
|
216
|
-
};
|
|
217
|
-
mkdirSync(dirname(this.persistPath), { recursive: true });
|
|
218
|
-
writeFileSync(this.persistPath, JSON.stringify(snapshot), 'utf-8');
|
|
219
|
-
}
|
|
220
|
-
catch {
|
|
221
|
-
// Best-effort — tree still lives in memory.
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
// ── Singleton (mirrors the lazy-singleton pattern used by model-router) ────
|
|
226
|
-
let treeInstance = null;
|
|
227
|
-
export function getTrajectoryTree(persistPath) {
|
|
228
|
-
if (!treeInstance)
|
|
229
|
-
treeInstance = new TrajectoryTree(persistPath);
|
|
230
|
-
return treeInstance;
|
|
231
|
-
}
|
|
232
|
-
/** Test/reset hook — drops the singleton so the next get() reloads from disk. */
|
|
233
|
-
export function resetTrajectoryTree() {
|
|
234
|
-
treeInstance = null;
|
|
235
|
-
}
|
|
236
|
-
export default TrajectoryTree;
|
|
237
|
-
//# sourceMappingURL=trajectory-tree.js.map
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Vector Database Module
|
|
3
|
-
*
|
|
4
|
-
* Provides optional ruvector WASM-accelerated vector operations for:
|
|
5
|
-
* - Semantic similarity search
|
|
6
|
-
* - HNSW indexing (150x faster)
|
|
7
|
-
* - Embedding generation
|
|
8
|
-
*
|
|
9
|
-
* Gracefully degrades when ruvector is not installed.
|
|
10
|
-
*
|
|
11
|
-
* Created with love by ruv.io
|
|
12
|
-
*/
|
|
13
|
-
export interface VectorDB {
|
|
14
|
-
insert(embedding: Float32Array, id: string, metadata?: Record<string, unknown>): void | Promise<void>;
|
|
15
|
-
search(query: Float32Array, k?: number): Array<{
|
|
16
|
-
id: string;
|
|
17
|
-
score: number;
|
|
18
|
-
metadata?: Record<string, unknown>;
|
|
19
|
-
}> | Promise<Array<{
|
|
20
|
-
id: string;
|
|
21
|
-
score: number;
|
|
22
|
-
metadata?: Record<string, unknown>;
|
|
23
|
-
}>>;
|
|
24
|
-
remove(id: string): boolean | Promise<boolean>;
|
|
25
|
-
size(): number | Promise<number>;
|
|
26
|
-
clear(): void | Promise<void>;
|
|
27
|
-
}
|
|
28
|
-
export interface RuVectorModule {
|
|
29
|
-
createVectorDB(dimensions: number): Promise<VectorDB>;
|
|
30
|
-
generateEmbedding(text: string, dimensions?: number): Float32Array;
|
|
31
|
-
cosineSimilarity(a: Float32Array, b: Float32Array): number;
|
|
32
|
-
isWASMAccelerated(): boolean;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Attempt to load the ruvector module
|
|
36
|
-
* Returns true if successfully loaded, false otherwise
|
|
37
|
-
*/
|
|
38
|
-
export declare function loadRuVector(): Promise<boolean>;
|
|
39
|
-
/**
|
|
40
|
-
* Check if ruvector is available
|
|
41
|
-
*/
|
|
42
|
-
export declare function isRuVectorAvailable(): boolean;
|
|
43
|
-
/**
|
|
44
|
-
* Check if WASM acceleration is enabled
|
|
45
|
-
*/
|
|
46
|
-
export declare function isWASMAccelerated(): boolean;
|
|
47
|
-
/**
|
|
48
|
-
* Create a vector database
|
|
49
|
-
* Uses ruvector HNSW if available, falls back to brute-force search
|
|
50
|
-
*/
|
|
51
|
-
export declare function createVectorDB(dimensions?: number): Promise<VectorDB>;
|
|
52
|
-
/**
|
|
53
|
-
* Generate an embedding for text
|
|
54
|
-
* Uses ruvector if available, falls back to hash-based embedding
|
|
55
|
-
*
|
|
56
|
-
* @returns The embedding vector. When using hash fallback, the returned
|
|
57
|
-
* Float32Array will have a `_warning` property (non-enumerable)
|
|
58
|
-
* indicating it lacks semantic meaning.
|
|
59
|
-
*/
|
|
60
|
-
export declare function generateEmbedding(text: string, dimensions?: number): Float32Array;
|
|
61
|
-
/**
|
|
62
|
-
* Compute cosine similarity between two vectors
|
|
63
|
-
*/
|
|
64
|
-
export declare function computeSimilarity(a: Float32Array, b: Float32Array): number;
|
|
65
|
-
/**
|
|
66
|
-
* Get status information about the ruvector module
|
|
67
|
-
*/
|
|
68
|
-
export declare function getStatus(): {
|
|
69
|
-
available: boolean;
|
|
70
|
-
wasmAccelerated: boolean;
|
|
71
|
-
backend: 'ruvector-stub-search-disabled' | 'ruvector-native' | 'fallback';
|
|
72
|
-
};
|
|
73
|
-
//# sourceMappingURL=vector-db.d.ts.map
|
|
@@ -1,301 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Vector Database Module
|
|
3
|
-
*
|
|
4
|
-
* Provides optional ruvector WASM-accelerated vector operations for:
|
|
5
|
-
* - Semantic similarity search
|
|
6
|
-
* - HNSW indexing (150x faster)
|
|
7
|
-
* - Embedding generation
|
|
8
|
-
*
|
|
9
|
-
* Gracefully degrades when ruvector is not installed.
|
|
10
|
-
*
|
|
11
|
-
* Created with love by ruv.io
|
|
12
|
-
*/
|
|
13
|
-
import os from 'node:os';
|
|
14
|
-
import path from 'node:path';
|
|
15
|
-
import { randomUUID } from 'node:crypto';
|
|
16
|
-
import { enforceNoStub } from '../memory/embedding-policy.js';
|
|
17
|
-
// ============================================================================
|
|
18
|
-
// Fallback Implementation (when ruvector not available)
|
|
19
|
-
// ============================================================================
|
|
20
|
-
class FallbackVectorDB {
|
|
21
|
-
vectors = new Map();
|
|
22
|
-
dimensions;
|
|
23
|
-
constructor(dimensions) {
|
|
24
|
-
this.dimensions = dimensions;
|
|
25
|
-
}
|
|
26
|
-
insert(embedding, id, metadata) {
|
|
27
|
-
this.vectors.set(id, { embedding, metadata });
|
|
28
|
-
}
|
|
29
|
-
search(query, k = 10) {
|
|
30
|
-
const results = [];
|
|
31
|
-
for (const [id, { embedding, metadata }] of this.vectors) {
|
|
32
|
-
const score = cosineSimilarity(query, embedding);
|
|
33
|
-
results.push({ id, score, metadata });
|
|
34
|
-
}
|
|
35
|
-
return results
|
|
36
|
-
.sort((a, b) => b.score - a.score)
|
|
37
|
-
.slice(0, k);
|
|
38
|
-
}
|
|
39
|
-
remove(id) {
|
|
40
|
-
return this.vectors.delete(id);
|
|
41
|
-
}
|
|
42
|
-
size() {
|
|
43
|
-
return this.vectors.size;
|
|
44
|
-
}
|
|
45
|
-
clear() {
|
|
46
|
-
this.vectors.clear();
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Compute cosine similarity between two vectors
|
|
51
|
-
*/
|
|
52
|
-
function cosineSimilarity(a, b) {
|
|
53
|
-
if (a.length !== b.length) {
|
|
54
|
-
throw new Error(`Vector dimension mismatch: ${a.length} vs ${b.length}`);
|
|
55
|
-
}
|
|
56
|
-
let dotProduct = 0;
|
|
57
|
-
let normA = 0;
|
|
58
|
-
let normB = 0;
|
|
59
|
-
for (let i = 0; i < a.length; i++) {
|
|
60
|
-
dotProduct += a[i] * b[i];
|
|
61
|
-
normA += a[i] * a[i];
|
|
62
|
-
normB += b[i] * b[i];
|
|
63
|
-
}
|
|
64
|
-
const denom = Math.sqrt(normA) * Math.sqrt(normB);
|
|
65
|
-
return denom === 0 ? 0 : dotProduct / denom;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Whether the hash-embedding one-time warning has been emitted
|
|
69
|
-
*/
|
|
70
|
-
let hashEmbeddingWarned = false;
|
|
71
|
-
/**
|
|
72
|
-
* Generate a simple hash-based embedding (fallback when ruvector not available)
|
|
73
|
-
* WARNING: Produces deterministic vectors with NO semantic meaning.
|
|
74
|
-
*/
|
|
75
|
-
function generateHashEmbedding(text, dimensions = 768) {
|
|
76
|
-
if (!hashEmbeddingWarned) {
|
|
77
|
-
hashEmbeddingWarned = true;
|
|
78
|
-
console.warn('[vector-db] Using hash-based pseudo-embeddings (no semantic similarity). ' +
|
|
79
|
-
'Install ruvector or @claude-flow/embeddings for real ML embeddings.');
|
|
80
|
-
}
|
|
81
|
-
const embedding = new Float32Array(dimensions);
|
|
82
|
-
const normalized = text.toLowerCase().trim();
|
|
83
|
-
// Simple hash function
|
|
84
|
-
let hash = 0;
|
|
85
|
-
for (let i = 0; i < normalized.length; i++) {
|
|
86
|
-
hash = ((hash << 5) - hash) + normalized.charCodeAt(i);
|
|
87
|
-
hash = hash & hash; // Convert to 32bit integer
|
|
88
|
-
}
|
|
89
|
-
// Generate pseudo-random embedding based on hash
|
|
90
|
-
for (let i = 0; i < dimensions; i++) {
|
|
91
|
-
embedding[i] = Math.sin(hash * (i + 1) * 0.001) * 0.5 + 0.5;
|
|
92
|
-
}
|
|
93
|
-
// Normalize
|
|
94
|
-
let norm = 0;
|
|
95
|
-
for (let i = 0; i < dimensions; i++) {
|
|
96
|
-
norm += embedding[i] * embedding[i];
|
|
97
|
-
}
|
|
98
|
-
norm = Math.sqrt(norm);
|
|
99
|
-
for (let i = 0; i < dimensions; i++) {
|
|
100
|
-
embedding[i] /= norm;
|
|
101
|
-
}
|
|
102
|
-
return embedding;
|
|
103
|
-
}
|
|
104
|
-
// ============================================================================
|
|
105
|
-
// Module State
|
|
106
|
-
// ============================================================================
|
|
107
|
-
let ruvectorModule = null;
|
|
108
|
-
let loadAttempted = false;
|
|
109
|
-
let isAvailable = false;
|
|
110
|
-
// ============================================================================
|
|
111
|
-
// Public API
|
|
112
|
-
// ============================================================================
|
|
113
|
-
/**
|
|
114
|
-
* Attempt to load the ruvector module
|
|
115
|
-
* Returns true if successfully loaded, false otherwise
|
|
116
|
-
*/
|
|
117
|
-
export async function loadRuVector() {
|
|
118
|
-
if (loadAttempted) {
|
|
119
|
-
return isAvailable;
|
|
120
|
-
}
|
|
121
|
-
loadAttempted = true;
|
|
122
|
-
try {
|
|
123
|
-
// Dynamic import to handle missing dependency gracefully
|
|
124
|
-
const ruvector = await import('ruvector').catch(() => null);
|
|
125
|
-
// ruvector exports VectorDB class, not createVectorDB function
|
|
126
|
-
if (ruvector && (typeof ruvector.VectorDB === 'function' || typeof ruvector.VectorDb === 'function')) {
|
|
127
|
-
// Create adapter module that matches our expected interface
|
|
128
|
-
const VectorDBClass = ruvector.VectorDB || ruvector.VectorDb;
|
|
129
|
-
ruvectorModule = {
|
|
130
|
-
createVectorDB: async (dimensions) => {
|
|
131
|
-
// Build the HNSW graph with explicit, high-recall parameters instead
|
|
132
|
-
// of relying on the native layer's undocumented defaults. Measured on
|
|
133
|
-
// a 384-dim clustered corpus (scripts/benchmark-intelligence.mjs):
|
|
134
|
-
// - sparser graphs (e.g. m=16/efConstruction=64) are faster but
|
|
135
|
-
// drop recall@10 to ~0.68 at N=20k — unacceptable for a memory
|
|
136
|
-
// store, so we use the standard high-recall HNSW setting
|
|
137
|
-
// m=32/efConstruction=200, which keeps recall@10 ~0.99 while still
|
|
138
|
-
// scaling sub-linearly (log-graph traversal) above the crossover.
|
|
139
|
-
// These map onto ruvector's DbOptions.hnsw { m, efConstruction }.
|
|
140
|
-
//
|
|
141
|
-
// storagePath: the native ruvector DB takes an exclusive file lock on
|
|
142
|
-
// its storage path. Without an explicit path it defaults to a shared
|
|
143
|
-
// file in the CWD (e.g. agentdb.rvf), which is frequently already
|
|
144
|
-
// held by a running daemon/MCP server. When the lock cannot be
|
|
145
|
-
// acquired the constructor THROWS, and createVectorDB() below
|
|
146
|
-
// silently degrades to the O(n) brute-force FallbackVectorDB — so the
|
|
147
|
-
// "HNSW" index is never actually used. Giving each transient index a
|
|
148
|
-
// unique path avoids that contention so the real HNSW graph is built.
|
|
149
|
-
const db = new VectorDBClass({
|
|
150
|
-
dimensions,
|
|
151
|
-
hnswConfig: { m: 32, efConstruction: 200 },
|
|
152
|
-
storagePath: path.join(os.tmpdir(), `ruvector-${process.pid}-${randomUUID()}.rvf`),
|
|
153
|
-
});
|
|
154
|
-
// Wrap ruvector's VectorDB to match our interface
|
|
155
|
-
return {
|
|
156
|
-
insert: (embedding, id, metadata) => {
|
|
157
|
-
db.insert({ id, vector: embedding, metadata });
|
|
158
|
-
},
|
|
159
|
-
search: async (query, k = 10) => {
|
|
160
|
-
const results = await db.search({ vector: query, k });
|
|
161
|
-
return results.map((r) => ({
|
|
162
|
-
id: r.id,
|
|
163
|
-
score: r.score,
|
|
164
|
-
metadata: r.metadata,
|
|
165
|
-
}));
|
|
166
|
-
},
|
|
167
|
-
remove: (id) => {
|
|
168
|
-
db.delete(id);
|
|
169
|
-
return true;
|
|
170
|
-
},
|
|
171
|
-
size: async () => {
|
|
172
|
-
const len = await db.len();
|
|
173
|
-
return len;
|
|
174
|
-
},
|
|
175
|
-
clear: () => {
|
|
176
|
-
// Not directly supported - would need to recreate
|
|
177
|
-
},
|
|
178
|
-
};
|
|
179
|
-
},
|
|
180
|
-
generateEmbedding: (text, dimensions = 768) => {
|
|
181
|
-
// ruvector may not have this - use fallback
|
|
182
|
-
return generateHashEmbedding(text, dimensions);
|
|
183
|
-
},
|
|
184
|
-
cosineSimilarity: (a, b) => {
|
|
185
|
-
return cosineSimilarity(a, b);
|
|
186
|
-
},
|
|
187
|
-
isWASMAccelerated: () => {
|
|
188
|
-
return ruvector.isWasm?.() ?? false;
|
|
189
|
-
},
|
|
190
|
-
};
|
|
191
|
-
isAvailable = true;
|
|
192
|
-
return true;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
catch {
|
|
196
|
-
// Silently fail - ruvector is optional
|
|
197
|
-
}
|
|
198
|
-
isAvailable = false;
|
|
199
|
-
return false;
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Check if ruvector is available
|
|
203
|
-
*/
|
|
204
|
-
export function isRuVectorAvailable() {
|
|
205
|
-
return isAvailable;
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* Check if WASM acceleration is enabled
|
|
209
|
-
*/
|
|
210
|
-
export function isWASMAccelerated() {
|
|
211
|
-
if (ruvectorModule && typeof ruvectorModule.isWASMAccelerated === 'function') {
|
|
212
|
-
return ruvectorModule.isWASMAccelerated();
|
|
213
|
-
}
|
|
214
|
-
return false;
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* Create a vector database
|
|
218
|
-
* Uses ruvector HNSW if available, falls back to brute-force search
|
|
219
|
-
*/
|
|
220
|
-
export async function createVectorDB(dimensions = 768) {
|
|
221
|
-
await loadRuVector();
|
|
222
|
-
if (ruvectorModule && typeof ruvectorModule.createVectorDB === 'function') {
|
|
223
|
-
try {
|
|
224
|
-
return await ruvectorModule.createVectorDB(dimensions);
|
|
225
|
-
}
|
|
226
|
-
catch (err) {
|
|
227
|
-
// Fall back to simple implementation, but make the degradation VISIBLE.
|
|
228
|
-
// A silent fall-through here turns HNSW into O(n) brute force without any
|
|
229
|
-
// signal — exactly the failure mode that masked the lock-contention bug.
|
|
230
|
-
console.warn(`[vector-db] ruvector HNSW init failed, falling back to brute-force search: ${err?.message ?? err}`);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
return new FallbackVectorDB(dimensions);
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* Generate an embedding for text
|
|
237
|
-
* Uses ruvector if available, falls back to hash-based embedding
|
|
238
|
-
*
|
|
239
|
-
* @returns The embedding vector. When using hash fallback, the returned
|
|
240
|
-
* Float32Array will have a `_warning` property (non-enumerable)
|
|
241
|
-
* indicating it lacks semantic meaning.
|
|
242
|
-
*/
|
|
243
|
-
export function generateEmbedding(text, dimensions = 768) {
|
|
244
|
-
if (ruvectorModule && typeof ruvectorModule.generateEmbedding === 'function') {
|
|
245
|
-
try {
|
|
246
|
-
return ruvectorModule.generateEmbedding(text, dimensions);
|
|
247
|
-
}
|
|
248
|
-
catch {
|
|
249
|
-
// Fall back to hash-based embedding
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
enforceNoStub('vector-db.generateEmbedding'); // "no stubs" strict mode → throw instead of hash
|
|
253
|
-
const embedding = generateHashEmbedding(text, dimensions);
|
|
254
|
-
// Tag the result so consumers can detect it came from hash fallback
|
|
255
|
-
Object.defineProperty(embedding, '_warning', {
|
|
256
|
-
value: 'hash-based pseudo-embedding — no semantic similarity',
|
|
257
|
-
enumerable: false,
|
|
258
|
-
configurable: true,
|
|
259
|
-
});
|
|
260
|
-
return embedding;
|
|
261
|
-
}
|
|
262
|
-
/**
|
|
263
|
-
* Compute cosine similarity between two vectors
|
|
264
|
-
*/
|
|
265
|
-
export function computeSimilarity(a, b) {
|
|
266
|
-
if (ruvectorModule && typeof ruvectorModule.cosineSimilarity === 'function') {
|
|
267
|
-
try {
|
|
268
|
-
return ruvectorModule.cosineSimilarity(a, b);
|
|
269
|
-
}
|
|
270
|
-
catch {
|
|
271
|
-
// Fall back to JS implementation
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
return cosineSimilarity(a, b);
|
|
275
|
-
}
|
|
276
|
-
/**
|
|
277
|
-
* Get status information about the ruvector module
|
|
278
|
-
*/
|
|
279
|
-
export function getStatus() {
|
|
280
|
-
if (!isAvailable) {
|
|
281
|
-
return {
|
|
282
|
-
available: false,
|
|
283
|
-
wasmAccelerated: false,
|
|
284
|
-
backend: 'fallback',
|
|
285
|
-
};
|
|
286
|
-
}
|
|
287
|
-
// HONESTY (audit docs/reviews/intelligence-system-audit-2026-05-29.md):
|
|
288
|
-
// ruvector's `isWasm()` does NOT mean "WASM-accelerated" — there is no WASM
|
|
289
|
-
// HNSW build in this stack. `isWasm()===true` means the do-nothing STUB is
|
|
290
|
-
// active (search() returns []), i.e. native NAPI failed to load. So
|
|
291
|
-
// wasmAccelerated===false is the HEALTHY state (native NAPI is the fastest
|
|
292
|
-
// backend available). We label the stub honestly so a regression into it is
|
|
293
|
-
// visible instead of being mistaken for a faster mode.
|
|
294
|
-
const stubActive = isWASMAccelerated();
|
|
295
|
-
return {
|
|
296
|
-
available: true,
|
|
297
|
-
wasmAccelerated: stubActive,
|
|
298
|
-
backend: stubActive ? 'ruvector-stub-search-disabled' : 'ruvector-native',
|
|
299
|
-
};
|
|
300
|
-
}
|
|
301
|
-
//# sourceMappingURL=vector-db.js.map
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Package specifier for the optional WASM embedder. EMPTY by default (opt-in).
|
|
3
|
-
* `RUFLO_LATTICE_WASM_PKG` is accepted as a back-compat alias.
|
|
4
|
-
*/
|
|
5
|
-
export declare const EMBED_WASM_PKG: string;
|
|
6
|
-
export declare const DEFAULT_EMBED_MODEL: string;
|
|
7
|
-
/** Is an optional WASM embedder configured + installed + initializable? Cached; never throws. */
|
|
8
|
-
export declare function wasmEmbedderAvailable(): Promise<boolean>;
|
|
9
|
-
/** Models the configured WASM embedder reports (empty until available). */
|
|
10
|
-
export declare function wasmEmbedderModels(): string[];
|
|
11
|
-
/** Embed via the optional WASM embedder, or null (caller falls through). Never throws. */
|
|
12
|
-
export declare function wasmEmbed(text: string, model?: string): Promise<number[] | null>;
|
|
13
|
-
//# sourceMappingURL=wasm-embedder.d.ts.map
|