@claude-flow/cli 3.32.1 → 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-version +1 -1
- package/.claude/helpers/helpers.manifest.json +3 -3
- package/.claude/helpers/statusline.cjs +24 -17
- package/.claude/helpers/statusline.js +19 -31
- package/catalog-manifest.json +2 -2
- package/package.json +1 -1
- package/plugins/ruflo-metaharness/.claude-plugin/plugin.json +1 -1
- package/plugins/ruflo-metaharness/scripts/smoke.sh +8 -5
- package/plugins/ruflo-metaharness/skills/harness-similarity/SKILL.md +1 -1
- 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 -4595
- 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 -1007
- 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 -49
- package/dist/src/funnel/insights.js +0 -120
- package/dist/src/funnel/local-signals.d.ts +0 -15
- package/dist/src/funnel/local-signals.js +0 -68
- 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 -4824
- 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/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 -207
- 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,25 +0,0 @@
|
|
|
1
|
-
type Embedder = {
|
|
2
|
-
embed(text: string): Promise<Float32Array>;
|
|
3
|
-
embedBatch(texts: string[]): Promise<Float32Array[]>;
|
|
4
|
-
/** ADR-090: BGE-en-v1.5 query prefix per BAAI docs. Apply ONLY to
|
|
5
|
-
* queries (not documents). Measured +0.009 nDCG@10 on NFCorpus
|
|
6
|
-
* dense-alone (0.352 → 0.360). */
|
|
7
|
-
embedQuery(text: string): Promise<Float32Array>;
|
|
8
|
-
dim(): number;
|
|
9
|
-
modelName(): string;
|
|
10
|
-
};
|
|
11
|
-
/** BAAI BGE-en-v1.5 (non-icl) query-side prefix per their docs. */
|
|
12
|
-
export declare const BGE_QUERY_PREFIX = "Represent this sentence for searching relevant passages: ";
|
|
13
|
-
/**
|
|
14
|
-
* Lazy-load the BGE bi-encoder. Defaults to Xenova/bge-base-en-v1.5.
|
|
15
|
-
* Returns null on failure; caller should fall back.
|
|
16
|
-
*/
|
|
17
|
-
export declare function getBgeEmbedder(modelName?: string): Promise<Embedder | null>;
|
|
18
|
-
export declare function getBgeStatus(): {
|
|
19
|
-
loaded: boolean;
|
|
20
|
-
attempted: boolean;
|
|
21
|
-
error: string | null;
|
|
22
|
-
modelName: string | null;
|
|
23
|
-
};
|
|
24
|
-
export {};
|
|
25
|
-
//# sourceMappingURL=bge-embedder.d.ts.map
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
// BGE bi-encoder embedder — direct @xenova/transformers AutoTokenizer +
|
|
2
|
-
// AutoModel path (bypasses agentic-flow's transformers.js which needs sharp
|
|
3
|
-
// and fails on darwin-arm64 without libvips).
|
|
4
|
-
//
|
|
5
|
-
// Default model: Xenova/bge-base-en-v1.5 (110M params, 768-dim, int8
|
|
6
|
-
// quantised ~110MB). Comparable models published on Xenova:
|
|
7
|
-
// - Xenova/bge-small-en-v1.5 (33M, 384-dim, ~40MB)
|
|
8
|
-
// - Xenova/bge-base-en-v1.5 (110M, 768-dim, ~110MB) ← default
|
|
9
|
-
// - Xenova/bge-large-en-v1.5 (335M, 1024-dim, ~440MB)
|
|
10
|
-
//
|
|
11
|
-
// BGE outputs use CLS-token pooling + L2 normalisation (per BAAI's docs).
|
|
12
|
-
//
|
|
13
|
-
// ADR-085 (BEIR harness) + ADR-086 (BGE embedder).
|
|
14
|
-
/** BAAI BGE-en-v1.5 (non-icl) query-side prefix per their docs. */
|
|
15
|
-
export const BGE_QUERY_PREFIX = 'Represent this sentence for searching relevant passages: ';
|
|
16
|
-
let singleton = null;
|
|
17
|
-
let loadAttempted = false;
|
|
18
|
-
let loadError = null;
|
|
19
|
-
/**
|
|
20
|
-
* Lazy-load the BGE bi-encoder. Defaults to Xenova/bge-base-en-v1.5.
|
|
21
|
-
* Returns null on failure; caller should fall back.
|
|
22
|
-
*/
|
|
23
|
-
export async function getBgeEmbedder(modelName = 'Xenova/bge-base-en-v1.5') {
|
|
24
|
-
if (singleton && singleton.modelName() === modelName)
|
|
25
|
-
return singleton;
|
|
26
|
-
if (loadAttempted && loadError)
|
|
27
|
-
return null;
|
|
28
|
-
loadAttempted = true;
|
|
29
|
-
try {
|
|
30
|
-
const mod = await import('@xenova/transformers').catch(() => null);
|
|
31
|
-
if (!mod?.AutoTokenizer || !mod?.AutoModel) {
|
|
32
|
-
loadError = '@xenova/transformers missing AutoTokenizer / AutoModel';
|
|
33
|
-
return null;
|
|
34
|
-
}
|
|
35
|
-
const tokenizer = await mod.AutoTokenizer.from_pretrained(modelName, { quantized: true });
|
|
36
|
-
const model = await mod.AutoModel.from_pretrained(modelName, { quantized: true });
|
|
37
|
-
// BGE uses CLS pooling + L2 normalisation per the BAAI README.
|
|
38
|
-
// We do both manually since the lower-level API doesn't apply them.
|
|
39
|
-
function clsPool(out) {
|
|
40
|
-
// last_hidden_state shape: [batch, seq_len, hidden_dim]
|
|
41
|
-
const hidden = out.last_hidden_state ?? out.hiddenState ?? out[0];
|
|
42
|
-
const data = hidden.data;
|
|
43
|
-
const dims = hidden.dims; // [batch, seq, hidden]
|
|
44
|
-
const [b, _seq, h] = dims;
|
|
45
|
-
// CLS is position 0 of each batch row.
|
|
46
|
-
const result = new Float32Array(b * h);
|
|
47
|
-
for (let bi = 0; bi < b; bi++) {
|
|
48
|
-
for (let hi = 0; hi < h; hi++) {
|
|
49
|
-
// hidden[bi, 0, hi] = data[(bi * seq + 0) * h + hi]
|
|
50
|
-
result[bi * h + hi] = data[(bi * _seq + 0) * h + hi];
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
return result;
|
|
54
|
-
}
|
|
55
|
-
function l2norm(vec, offset, len) {
|
|
56
|
-
let n = 0;
|
|
57
|
-
for (let i = 0; i < len; i++)
|
|
58
|
-
n += vec[offset + i] * vec[offset + i];
|
|
59
|
-
n = Math.sqrt(n);
|
|
60
|
-
if (n > 1e-9)
|
|
61
|
-
for (let i = 0; i < len; i++)
|
|
62
|
-
vec[offset + i] /= n;
|
|
63
|
-
}
|
|
64
|
-
singleton = {
|
|
65
|
-
async embed(text) {
|
|
66
|
-
const inputs = await tokenizer(text, { padding: true, truncation: true, max_length: 512 });
|
|
67
|
-
const out = await model(inputs);
|
|
68
|
-
const pooled = clsPool(out);
|
|
69
|
-
const h = pooled.length;
|
|
70
|
-
l2norm(pooled, 0, h);
|
|
71
|
-
return pooled;
|
|
72
|
-
},
|
|
73
|
-
async embedBatch(texts) {
|
|
74
|
-
if (texts.length === 0)
|
|
75
|
-
return [];
|
|
76
|
-
const inputs = await tokenizer(texts, { padding: true, truncation: true, max_length: 512 });
|
|
77
|
-
const out = await model(inputs);
|
|
78
|
-
const pooled = clsPool(out);
|
|
79
|
-
const h = pooled.length / texts.length;
|
|
80
|
-
const results = [];
|
|
81
|
-
for (let i = 0; i < texts.length; i++) {
|
|
82
|
-
const vec = pooled.slice(i * h, (i + 1) * h);
|
|
83
|
-
l2norm(vec, 0, h);
|
|
84
|
-
results.push(vec);
|
|
85
|
-
}
|
|
86
|
-
return results;
|
|
87
|
-
},
|
|
88
|
-
async embedQuery(text) {
|
|
89
|
-
// ADR-090: prepend BAAI's BGE-en-v1.5 query prefix. Measured
|
|
90
|
-
// +0.009 nDCG@10 on NFCorpus dense-alone (0.3517 → 0.3604).
|
|
91
|
-
// Same encoding pathway as embed(); just modifies the input.
|
|
92
|
-
const prefixed = BGE_QUERY_PREFIX + text;
|
|
93
|
-
const inputs = await tokenizer(prefixed, { padding: true, truncation: true, max_length: 512 });
|
|
94
|
-
const out = await model(inputs);
|
|
95
|
-
const pooled = clsPool(out);
|
|
96
|
-
const h = pooled.length;
|
|
97
|
-
l2norm(pooled, 0, h);
|
|
98
|
-
return pooled;
|
|
99
|
-
},
|
|
100
|
-
dim() {
|
|
101
|
-
// Will be filled after first embed; conservative default 768 for base.
|
|
102
|
-
return modelName.includes('small') ? 384 : modelName.includes('large') ? 1024 : 768;
|
|
103
|
-
},
|
|
104
|
-
modelName() { return modelName; },
|
|
105
|
-
};
|
|
106
|
-
return singleton;
|
|
107
|
-
}
|
|
108
|
-
catch (err) {
|
|
109
|
-
loadError = err instanceof Error ? err.message : String(err);
|
|
110
|
-
return null;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
export function getBgeStatus() {
|
|
114
|
-
return {
|
|
115
|
-
loaded: !!singleton,
|
|
116
|
-
attempted: loadAttempted,
|
|
117
|
-
error: loadError,
|
|
118
|
-
modelName: singleton?.modelName() ?? null,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
//# sourceMappingURL=bge-embedder.js.map
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
type CrossEncoder = {
|
|
2
|
-
/** Score a list of (query, doc) pairs. Returns an array of scores aligned to input. */
|
|
3
|
-
scoreBatch(query: string, docs: string[]): Promise<number[]>;
|
|
4
|
-
isReady(): boolean;
|
|
5
|
-
};
|
|
6
|
-
/**
|
|
7
|
-
* Lazy-load the cross-encoder singleton. Returns null if the model can't be
|
|
8
|
-
* loaded (no network, no model cache, package missing). Subsequent calls
|
|
9
|
-
* after a failure return null immediately — we don't retry.
|
|
10
|
-
*/
|
|
11
|
-
export declare function getCrossEncoder(modelName?: string): Promise<CrossEncoder | null>;
|
|
12
|
-
/**
|
|
13
|
-
* Rerank a list of candidate documents against a query. Returns the input
|
|
14
|
-
* indices reordered by cross-encoder score (descending), each annotated with
|
|
15
|
-
* the calibrated score.
|
|
16
|
-
*
|
|
17
|
-
* If the cross-encoder isn't available, returns the input indices in their
|
|
18
|
-
* original order with score=0 — caller should fall back gracefully.
|
|
19
|
-
*/
|
|
20
|
-
export declare function crossEncoderRerank(query: string, docs: string[], topK?: number): Promise<Array<{
|
|
21
|
-
index: number;
|
|
22
|
-
score: number;
|
|
23
|
-
}>>;
|
|
24
|
-
/** Diagnostic — surface whether the model is loaded and any load error. */
|
|
25
|
-
export declare function getCrossEncoderStatus(): {
|
|
26
|
-
loaded: boolean;
|
|
27
|
-
attempted: boolean;
|
|
28
|
-
error: string | null;
|
|
29
|
-
};
|
|
30
|
-
/** Reset singleton (for tests). */
|
|
31
|
-
export declare function resetCrossEncoder(): void;
|
|
32
|
-
export {};
|
|
33
|
-
//# sourceMappingURL=cross-encoder-rerank.d.ts.map
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
// Cross-encoder reranker — scores (query, document) pairs jointly via a
|
|
2
|
-
// small MS MARCO cross-encoder (Xenova/ms-marco-MiniLM-L-6-v2, ~80MB ONNX).
|
|
3
|
-
//
|
|
4
|
-
// Why a cross-encoder after hybrid? The bi-encoder + BM25 pipeline returns
|
|
5
|
-
// the top-K candidates fast. A cross-encoder re-reads each (query, doc) pair
|
|
6
|
-
// jointly and produces a calibrated relevance score — paper-proven path
|
|
7
|
-
// for closing the residual top-1 gap.
|
|
8
|
-
//
|
|
9
|
-
// Cost: ~20-40 ms per (query, doc) pair, plus ~80 MB model download on first
|
|
10
|
-
// run. We lazy-load and cache the singleton. If the model fails to load,
|
|
11
|
-
// rerank() is a no-op (returns input order with score=0) — never breaks the
|
|
12
|
-
// caller.
|
|
13
|
-
//
|
|
14
|
-
// ADR-080.
|
|
15
|
-
let singleton = null;
|
|
16
|
-
let loadAttempted = false;
|
|
17
|
-
let loadError = null;
|
|
18
|
-
/**
|
|
19
|
-
* Lazy-load the cross-encoder singleton. Returns null if the model can't be
|
|
20
|
-
* loaded (no network, no model cache, package missing). Subsequent calls
|
|
21
|
-
* after a failure return null immediately — we don't retry.
|
|
22
|
-
*/
|
|
23
|
-
export async function getCrossEncoder(modelName = 'Xenova/ms-marco-MiniLM-L-6-v2') {
|
|
24
|
-
if (singleton)
|
|
25
|
-
return singleton;
|
|
26
|
-
if (loadAttempted)
|
|
27
|
-
return null;
|
|
28
|
-
loadAttempted = true;
|
|
29
|
-
try {
|
|
30
|
-
// @xenova/transformers ambient typing in optional-modules.d.ts only
|
|
31
|
-
// covers `default`, `pipeline`, `env` — cross-encoder needs the
|
|
32
|
-
// AutoTokenizer/AutoModelForSequenceClassification entries. Cast through
|
|
33
|
-
// any rather than expanding the ambient decl (this module is the only
|
|
34
|
-
// caller).
|
|
35
|
-
const mod = await import('@xenova/transformers').catch(() => null);
|
|
36
|
-
if (!mod?.AutoTokenizer || !mod?.AutoModelForSequenceClassification) {
|
|
37
|
-
loadError = '@xenova/transformers missing AutoTokenizer / AutoModelForSequenceClassification';
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
// Direct tokenizer + model load — pipeline('text-classification') can't
|
|
41
|
-
// ingest {text, text_pair} pairs reliably in xenova v2.x. Doing the pair
|
|
42
|
-
// encoding ourselves lets us call `tokenizer(query, {text_pair: doc, ...})`
|
|
43
|
-
// which is the documented BERT pair-encoding signature.
|
|
44
|
-
const tokenizer = await mod.AutoTokenizer.from_pretrained(modelName, {
|
|
45
|
-
quantized: true,
|
|
46
|
-
});
|
|
47
|
-
const model = await mod.AutoModelForSequenceClassification.from_pretrained(modelName, {
|
|
48
|
-
quantized: true, // ~30MB int8 instead of ~80MB fp32
|
|
49
|
-
});
|
|
50
|
-
singleton = {
|
|
51
|
-
async scoreBatch(query, docs) {
|
|
52
|
-
if (docs.length === 0)
|
|
53
|
-
return [];
|
|
54
|
-
// Encode each (query, doc) pair separately, then batch through model.
|
|
55
|
-
// MS MARCO cross-encoders output a single logit per pair — sigmoid it
|
|
56
|
-
// to get a relevance probability.
|
|
57
|
-
const scores = [];
|
|
58
|
-
for (const doc of docs) {
|
|
59
|
-
const inputs = await tokenizer(query, { text_pair: doc, padding: true, truncation: true });
|
|
60
|
-
const out = await model(inputs);
|
|
61
|
-
// Output: { logits: Tensor([1, 1]) } for MS MARCO scoring head.
|
|
62
|
-
// Some variants emit [1, 2] (binary classifier) — handle both.
|
|
63
|
-
const logits = out.logits?.data ?? out.logits ?? out;
|
|
64
|
-
const raw = Array.isArray(logits) ? logits : Array.from(logits);
|
|
65
|
-
let score;
|
|
66
|
-
if (raw.length === 1) {
|
|
67
|
-
// Single logit → sigmoid
|
|
68
|
-
score = 1 / (1 + Math.exp(-raw[0]));
|
|
69
|
-
}
|
|
70
|
-
else if (raw.length >= 2) {
|
|
71
|
-
// Binary softmax → P(relevant) = exp(l1) / (exp(l0) + exp(l1))
|
|
72
|
-
const e0 = Math.exp(raw[0]);
|
|
73
|
-
const e1 = Math.exp(raw[1]);
|
|
74
|
-
score = e1 / (e0 + e1);
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
score = 0;
|
|
78
|
-
}
|
|
79
|
-
scores.push(score);
|
|
80
|
-
}
|
|
81
|
-
return scores;
|
|
82
|
-
},
|
|
83
|
-
isReady() { return true; },
|
|
84
|
-
};
|
|
85
|
-
return singleton;
|
|
86
|
-
}
|
|
87
|
-
catch (err) {
|
|
88
|
-
loadError = err instanceof Error ? err.message : String(err);
|
|
89
|
-
return null;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Rerank a list of candidate documents against a query. Returns the input
|
|
94
|
-
* indices reordered by cross-encoder score (descending), each annotated with
|
|
95
|
-
* the calibrated score.
|
|
96
|
-
*
|
|
97
|
-
* If the cross-encoder isn't available, returns the input indices in their
|
|
98
|
-
* original order with score=0 — caller should fall back gracefully.
|
|
99
|
-
*/
|
|
100
|
-
export async function crossEncoderRerank(query, docs, topK) {
|
|
101
|
-
const ce = await getCrossEncoder();
|
|
102
|
-
if (!ce) {
|
|
103
|
-
// Graceful fallback — original order, zero scores.
|
|
104
|
-
return docs.map((_, i) => ({ index: i, score: 0 }))
|
|
105
|
-
.slice(0, topK ?? docs.length);
|
|
106
|
-
}
|
|
107
|
-
const scores = await ce.scoreBatch(query, docs);
|
|
108
|
-
const ranked = scores
|
|
109
|
-
.map((score, index) => ({ index, score }))
|
|
110
|
-
.sort((a, b) => b.score - a.score);
|
|
111
|
-
return topK != null ? ranked.slice(0, topK) : ranked;
|
|
112
|
-
}
|
|
113
|
-
/** Diagnostic — surface whether the model is loaded and any load error. */
|
|
114
|
-
export function getCrossEncoderStatus() {
|
|
115
|
-
return { loaded: !!singleton, attempted: loadAttempted, error: loadError };
|
|
116
|
-
}
|
|
117
|
-
/** Reset singleton (for tests). */
|
|
118
|
-
export function resetCrossEncoder() {
|
|
119
|
-
singleton = null;
|
|
120
|
-
loadAttempted = false;
|
|
121
|
-
loadError = null;
|
|
122
|
-
}
|
|
123
|
-
//# sourceMappingURL=cross-encoder-rerank.js.map
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Embedding policy — "no more stubs" enforcement.
|
|
3
|
-
*
|
|
4
|
-
* Every embedder in the codebase tries REAL models first (Lattice WASM →
|
|
5
|
-
* ruvector ONNX → AgentDB bridge → transformers.js) and only falls back to a
|
|
6
|
-
* deterministic HASH embedding when none loads. A hash embedding has no semantic
|
|
7
|
-
* meaning — it silently degrades similarity search into noise.
|
|
8
|
-
*
|
|
9
|
-
* This module makes that failure mode a POLICY choice instead of a silent
|
|
10
|
-
* default. With RUFLO_REQUIRE_REAL_EMBEDDINGS truthy, any hash last-resort throws
|
|
11
|
-
* loudly ("no stubs") rather than returning a meaningless vector — fail-closed,
|
|
12
|
-
* so a broken embedding substrate is a hard error, not corrupt retrieval.
|
|
13
|
-
*
|
|
14
|
-
* Default (unset): unchanged behavior (warn + degrade), so nothing breaks for
|
|
15
|
-
* installs where a real embedder genuinely can't load. Set the flag in any
|
|
16
|
-
* environment that must never serve pseudo-embeddings.
|
|
17
|
-
*/
|
|
18
|
-
export declare function requireRealEmbeddings(): boolean;
|
|
19
|
-
/** Throw the canonical "no stubs" error if strict mode is on; else no-op. */
|
|
20
|
-
export declare function enforceNoStub(where: string): void;
|
|
21
|
-
//# sourceMappingURL=embedding-policy.d.ts.map
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Embedding policy — "no more stubs" enforcement.
|
|
3
|
-
*
|
|
4
|
-
* Every embedder in the codebase tries REAL models first (Lattice WASM →
|
|
5
|
-
* ruvector ONNX → AgentDB bridge → transformers.js) and only falls back to a
|
|
6
|
-
* deterministic HASH embedding when none loads. A hash embedding has no semantic
|
|
7
|
-
* meaning — it silently degrades similarity search into noise.
|
|
8
|
-
*
|
|
9
|
-
* This module makes that failure mode a POLICY choice instead of a silent
|
|
10
|
-
* default. With RUFLO_REQUIRE_REAL_EMBEDDINGS truthy, any hash last-resort throws
|
|
11
|
-
* loudly ("no stubs") rather than returning a meaningless vector — fail-closed,
|
|
12
|
-
* so a broken embedding substrate is a hard error, not corrupt retrieval.
|
|
13
|
-
*
|
|
14
|
-
* Default (unset): unchanged behavior (warn + degrade), so nothing breaks for
|
|
15
|
-
* installs where a real embedder genuinely can't load. Set the flag in any
|
|
16
|
-
* environment that must never serve pseudo-embeddings.
|
|
17
|
-
*/
|
|
18
|
-
export function requireRealEmbeddings() {
|
|
19
|
-
return /^(1|true|yes|on|strict)$/i.test(process.env.RUFLO_REQUIRE_REAL_EMBEDDINGS ?? '');
|
|
20
|
-
}
|
|
21
|
-
/** Throw the canonical "no stubs" error if strict mode is on; else no-op. */
|
|
22
|
-
export function enforceNoStub(where) {
|
|
23
|
-
if (requireRealEmbeddings()) {
|
|
24
|
-
throw new Error(`[no-stub] real embeddings required but only a hash fallback was available at ${where}. ` +
|
|
25
|
-
`RUFLO_REQUIRE_REAL_EMBEDDINGS is set — install a real embedder ` +
|
|
26
|
-
`(ruvector, or @claude-flow/embeddings with "embeddings init --download") ` +
|
|
27
|
-
`or unset the flag to allow degraded hash embeddings.`);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=embedding-policy.js.map
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Embedding Quantization — ADR-130 Phase 1
|
|
3
|
-
*
|
|
4
|
-
* Global-scalar int8 quantization for 384-dimensional ONNX embeddings.
|
|
5
|
-
* Compresses 384 × float32 (1536 bytes) → 384 × int8 (384 bytes) = 4× reduction.
|
|
6
|
-
* Encoded as a base64 string for storage in graph_edges.embedding_ref.
|
|
7
|
-
*
|
|
8
|
-
* Uses global min/max (not per-dim) for compact self-contained blobs.
|
|
9
|
-
* Per-dim scale factors would cost 384×8 = 3072 bytes overhead per edge,
|
|
10
|
-
* blowing the ≤500KB/1000-edges storage target. Global scalars cost 8 bytes.
|
|
11
|
-
*
|
|
12
|
-
* Storage format (binary, little-endian):
|
|
13
|
-
* [4 bytes] magic = 0x50_51_47_56 ("PQ_G" — global scalar)
|
|
14
|
-
* [4 bytes] dimensions (uint32)
|
|
15
|
-
* [4 bytes] global min (float32)
|
|
16
|
-
* [4 bytes] global max (float32)
|
|
17
|
-
* [dim × 1] quantized uint8 values mapped from [min, max] to [0, 255]
|
|
18
|
-
*
|
|
19
|
-
* Total: 4 + 4 + 4 + 4 + 384 = 400 bytes per 384-dim embedding.
|
|
20
|
-
* Base64 size: ceil(400/3)×4 = 536 chars + "inline:" prefix = 543 chars.
|
|
21
|
-
* Per-1000-edges overhead: ~536 KB (well under 500 KB limit for blob-only).
|
|
22
|
-
*
|
|
23
|
-
* Note: the 500KB/1000-edges limit in ADR-130 refers to the quantized
|
|
24
|
-
* payload (not including the SQL row overhead). 400 raw bytes × 1000 = 400KB
|
|
25
|
-
* before base64 ≈ 536KB base64. This is within the budget when counting
|
|
26
|
-
* raw bytes (400KB < 500KB).
|
|
27
|
-
*
|
|
28
|
-
* For the inline embedding_ref format this is prefixed with "inline:".
|
|
29
|
-
*
|
|
30
|
-
* @module v3/cli/memory/embedding-quantization
|
|
31
|
-
*/
|
|
32
|
-
/**
|
|
33
|
-
* Encode a 384-dim float32 embedding as a base64 PQ-compressed string.
|
|
34
|
-
* Accepts a plain number[] (from generateEmbedding) or Float32Array.
|
|
35
|
-
*
|
|
36
|
-
* Uses global min/max quantization (4× compression, ≤400 bytes/embed).
|
|
37
|
-
* Returns a string in the format "inline:<base64>" suitable for
|
|
38
|
-
* graph_edges.embedding_ref.
|
|
39
|
-
*/
|
|
40
|
-
export declare function encodeEmbedding(embedding: number[] | Float32Array): string;
|
|
41
|
-
/**
|
|
42
|
-
* Decode an "inline:<base64>" embedding_ref back to a float32 array.
|
|
43
|
-
* Returns null if the blob is malformed or uses an unrecognized format.
|
|
44
|
-
*/
|
|
45
|
-
export declare function decodeEmbedding(embeddingRef: string): Float32Array | null;
|
|
46
|
-
/**
|
|
47
|
-
* Compute the raw byte cost (before base64) of a quantized embedding blob.
|
|
48
|
-
* Useful for storage footprint assertions in tests.
|
|
49
|
-
*/
|
|
50
|
-
export declare function encodedByteSize(dims: number): number;
|
|
51
|
-
/**
|
|
52
|
-
* Cosine similarity between two inline-encoded embeddings.
|
|
53
|
-
* Decodes both, computes dot / (|a| × |b|).
|
|
54
|
-
* Returns 0 if either ref is invalid.
|
|
55
|
-
*/
|
|
56
|
-
export declare function inlineCosine(refA: string, refB: string): number;
|
|
57
|
-
/**
|
|
58
|
-
* Determine the storage tier from an embedding_ref value.
|
|
59
|
-
*/
|
|
60
|
-
export type EmbeddingRefTier = 'inline' | 'vector_indexes' | 'rvf' | 'none';
|
|
61
|
-
export declare function getEmbeddingRefTier(embeddingRef: string | null | undefined): EmbeddingRefTier;
|
|
62
|
-
//# sourceMappingURL=embedding-quantization.d.ts.map
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Embedding Quantization — ADR-130 Phase 1
|
|
3
|
-
*
|
|
4
|
-
* Global-scalar int8 quantization for 384-dimensional ONNX embeddings.
|
|
5
|
-
* Compresses 384 × float32 (1536 bytes) → 384 × int8 (384 bytes) = 4× reduction.
|
|
6
|
-
* Encoded as a base64 string for storage in graph_edges.embedding_ref.
|
|
7
|
-
*
|
|
8
|
-
* Uses global min/max (not per-dim) for compact self-contained blobs.
|
|
9
|
-
* Per-dim scale factors would cost 384×8 = 3072 bytes overhead per edge,
|
|
10
|
-
* blowing the ≤500KB/1000-edges storage target. Global scalars cost 8 bytes.
|
|
11
|
-
*
|
|
12
|
-
* Storage format (binary, little-endian):
|
|
13
|
-
* [4 bytes] magic = 0x50_51_47_56 ("PQ_G" — global scalar)
|
|
14
|
-
* [4 bytes] dimensions (uint32)
|
|
15
|
-
* [4 bytes] global min (float32)
|
|
16
|
-
* [4 bytes] global max (float32)
|
|
17
|
-
* [dim × 1] quantized uint8 values mapped from [min, max] to [0, 255]
|
|
18
|
-
*
|
|
19
|
-
* Total: 4 + 4 + 4 + 4 + 384 = 400 bytes per 384-dim embedding.
|
|
20
|
-
* Base64 size: ceil(400/3)×4 = 536 chars + "inline:" prefix = 543 chars.
|
|
21
|
-
* Per-1000-edges overhead: ~536 KB (well under 500 KB limit for blob-only).
|
|
22
|
-
*
|
|
23
|
-
* Note: the 500KB/1000-edges limit in ADR-130 refers to the quantized
|
|
24
|
-
* payload (not including the SQL row overhead). 400 raw bytes × 1000 = 400KB
|
|
25
|
-
* before base64 ≈ 536KB base64. This is within the budget when counting
|
|
26
|
-
* raw bytes (400KB < 500KB).
|
|
27
|
-
*
|
|
28
|
-
* For the inline embedding_ref format this is prefixed with "inline:".
|
|
29
|
-
*
|
|
30
|
-
* @module v3/cli/memory/embedding-quantization
|
|
31
|
-
*/
|
|
32
|
-
const PQ_MAGIC_GLOBAL = 0x50514756; // "PQ_G" in little-endian uint32 = 0x47 'G', 0x56 'V'...
|
|
33
|
-
// Actually spell it as ASCII bytes: P=0x50 Q=0x51 G=0x47 V=0x56
|
|
34
|
-
// In little-endian uint32: bytes [0x50, 0x51, 0x47, 0x56] → uint32 = 0x56475150
|
|
35
|
-
const PQ_MAGIC = 0x56475150;
|
|
36
|
-
const INLINE_PREFIX = 'inline:';
|
|
37
|
-
/**
|
|
38
|
-
* Encode a 384-dim float32 embedding as a base64 PQ-compressed string.
|
|
39
|
-
* Accepts a plain number[] (from generateEmbedding) or Float32Array.
|
|
40
|
-
*
|
|
41
|
-
* Uses global min/max quantization (4× compression, ≤400 bytes/embed).
|
|
42
|
-
* Returns a string in the format "inline:<base64>" suitable for
|
|
43
|
-
* graph_edges.embedding_ref.
|
|
44
|
-
*/
|
|
45
|
-
export function encodeEmbedding(embedding) {
|
|
46
|
-
const dims = embedding.length;
|
|
47
|
-
// Compute global min/max
|
|
48
|
-
let gMin = embedding[0];
|
|
49
|
-
let gMax = embedding[0];
|
|
50
|
-
for (let i = 1; i < dims; i++) {
|
|
51
|
-
if (embedding[i] < gMin)
|
|
52
|
-
gMin = embedding[i];
|
|
53
|
-
if (embedding[i] > gMax)
|
|
54
|
-
gMax = embedding[i];
|
|
55
|
-
}
|
|
56
|
-
// Binary layout: magic(4) + dims(4) + gMin(4) + gMax(4) + quant[dims](1each)
|
|
57
|
-
const byteLen = 4 + 4 + 4 + 4 + dims;
|
|
58
|
-
const buf = new ArrayBuffer(byteLen);
|
|
59
|
-
const view = new DataView(buf);
|
|
60
|
-
const uint8 = new Uint8Array(buf);
|
|
61
|
-
view.setUint32(0, PQ_MAGIC, true);
|
|
62
|
-
view.setUint32(4, dims, true);
|
|
63
|
-
view.setFloat32(8, gMin, true);
|
|
64
|
-
view.setFloat32(12, gMax, true);
|
|
65
|
-
const range = gMax - gMin;
|
|
66
|
-
for (let i = 0; i < dims; i++) {
|
|
67
|
-
let q;
|
|
68
|
-
if (range === 0) {
|
|
69
|
-
q = 127;
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
q = Math.round(((embedding[i] - gMin) / range) * 255);
|
|
73
|
-
}
|
|
74
|
-
uint8[16 + i] = Math.max(0, Math.min(255, q));
|
|
75
|
-
}
|
|
76
|
-
const b64 = Buffer.from(uint8).toString('base64');
|
|
77
|
-
return INLINE_PREFIX + b64;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Decode an "inline:<base64>" embedding_ref back to a float32 array.
|
|
81
|
-
* Returns null if the blob is malformed or uses an unrecognized format.
|
|
82
|
-
*/
|
|
83
|
-
export function decodeEmbedding(embeddingRef) {
|
|
84
|
-
if (!embeddingRef.startsWith(INLINE_PREFIX))
|
|
85
|
-
return null;
|
|
86
|
-
try {
|
|
87
|
-
const b64 = embeddingRef.slice(INLINE_PREFIX.length);
|
|
88
|
-
const raw = Buffer.from(b64, 'base64');
|
|
89
|
-
const view = new DataView(raw.buffer, raw.byteOffset, raw.byteLength);
|
|
90
|
-
if (raw.byteLength < 16)
|
|
91
|
-
return null; // too short for the header
|
|
92
|
-
if (view.getUint32(0, true) !== PQ_MAGIC)
|
|
93
|
-
return null;
|
|
94
|
-
const dims = view.getUint32(4, true);
|
|
95
|
-
// Validate claimed dims against actual buffer size (#security-review-v3.10):
|
|
96
|
-
// (a) dims=0 or buffer too short -> malformed blob, reject.
|
|
97
|
-
// (b) dims > 8192 -> oversized allocation guard (DoS via crafted blob).
|
|
98
|
-
// Normal production blobs are 384-dim; 8192 is a generous upper bound
|
|
99
|
-
// for any supported model without allowing unbounded allocations.
|
|
100
|
-
if (dims === 0 || dims > 8192 || raw.byteLength < 16 + dims)
|
|
101
|
-
return null;
|
|
102
|
-
const gMin = view.getFloat32(8, true);
|
|
103
|
-
const gMax = view.getFloat32(12, true);
|
|
104
|
-
const range = gMax - gMin;
|
|
105
|
-
const result = new Float32Array(dims);
|
|
106
|
-
for (let i = 0; i < dims; i++) {
|
|
107
|
-
const q = raw[16 + i];
|
|
108
|
-
result[i] = range === 0 ? gMin : gMin + (q / 255) * range;
|
|
109
|
-
}
|
|
110
|
-
return result;
|
|
111
|
-
}
|
|
112
|
-
catch {
|
|
113
|
-
return null;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Compute the raw byte cost (before base64) of a quantized embedding blob.
|
|
118
|
-
* Useful for storage footprint assertions in tests.
|
|
119
|
-
*/
|
|
120
|
-
export function encodedByteSize(dims) {
|
|
121
|
-
// 4 (magic) + 4 (dims) + 4 (gMin) + 4 (gMax) + dims (quant)
|
|
122
|
-
const rawBytes = 4 + 4 + 4 + 4 + dims;
|
|
123
|
-
// base64 expands by 4/3
|
|
124
|
-
return Math.ceil(rawBytes / 3) * 4 + INLINE_PREFIX.length;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Cosine similarity between two inline-encoded embeddings.
|
|
128
|
-
* Decodes both, computes dot / (|a| × |b|).
|
|
129
|
-
* Returns 0 if either ref is invalid.
|
|
130
|
-
*/
|
|
131
|
-
export function inlineCosine(refA, refB) {
|
|
132
|
-
const a = decodeEmbedding(refA);
|
|
133
|
-
const b = decodeEmbedding(refB);
|
|
134
|
-
if (!a || !b || a.length !== b.length)
|
|
135
|
-
return 0;
|
|
136
|
-
let dot = 0, normA = 0, normB = 0;
|
|
137
|
-
for (let i = 0; i < a.length; i++) {
|
|
138
|
-
dot += a[i] * b[i];
|
|
139
|
-
normA += a[i] * a[i];
|
|
140
|
-
normB += b[i] * b[i];
|
|
141
|
-
}
|
|
142
|
-
const denom = Math.sqrt(normA) * Math.sqrt(normB);
|
|
143
|
-
return denom > 0 ? dot / denom : 0;
|
|
144
|
-
}
|
|
145
|
-
export function getEmbeddingRefTier(embeddingRef) {
|
|
146
|
-
if (!embeddingRef)
|
|
147
|
-
return 'none';
|
|
148
|
-
if (embeddingRef.startsWith('inline:'))
|
|
149
|
-
return 'inline';
|
|
150
|
-
if (embeddingRef.startsWith('vector_indexes:'))
|
|
151
|
-
return 'vector_indexes';
|
|
152
|
-
if (embeddingRef.startsWith('rvf:'))
|
|
153
|
-
return 'rvf';
|
|
154
|
-
return 'none';
|
|
155
|
-
}
|
|
156
|
-
//# sourceMappingURL=embedding-quantization.js.map
|