agentdb 1.0.12 → 1.1.1
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/README.md +196 -838
- package/dist/benchmarks/comprehensive-benchmark.js +664 -0
- package/dist/benchmarks/frontier-benchmark.js +419 -0
- package/dist/benchmarks/reflexion-benchmark.js +370 -0
- package/dist/cli/agentdb-cli.d.ts +117 -0
- package/dist/cli/agentdb-cli.d.ts.map +1 -0
- package/dist/cli/agentdb-cli.js +724 -0
- package/dist/cli/agentdb-cli.js.map +1 -0
- package/dist/controllers/CausalMemoryGraph.d.ts +125 -0
- package/dist/controllers/CausalMemoryGraph.d.ts.map +1 -0
- package/dist/controllers/CausalMemoryGraph.js +323 -0
- package/dist/controllers/CausalMemoryGraph.js.map +1 -0
- package/dist/controllers/CausalRecall.d.ts +111 -0
- package/dist/controllers/CausalRecall.d.ts.map +1 -0
- package/dist/controllers/CausalRecall.js +282 -0
- package/dist/controllers/CausalRecall.js.map +1 -0
- package/dist/controllers/EmbeddingService.d.ts +37 -0
- package/dist/controllers/EmbeddingService.d.ts.map +1 -0
- package/dist/controllers/EmbeddingService.js +119 -0
- package/dist/controllers/EmbeddingService.js.map +1 -0
- package/dist/controllers/ExplainableRecall.d.ts +138 -0
- package/dist/controllers/ExplainableRecall.d.ts.map +1 -0
- package/dist/controllers/ExplainableRecall.js +388 -0
- package/dist/controllers/ExplainableRecall.js.map +1 -0
- package/dist/controllers/NightlyLearner.d.ts +113 -0
- package/dist/controllers/NightlyLearner.d.ts.map +1 -0
- package/dist/controllers/NightlyLearner.js +383 -0
- package/dist/controllers/NightlyLearner.js.map +1 -0
- package/dist/controllers/ReflexionMemory.d.ts +84 -0
- package/dist/controllers/ReflexionMemory.d.ts.map +1 -0
- package/dist/controllers/ReflexionMemory.js +240 -0
- package/dist/controllers/ReflexionMemory.js.map +1 -0
- package/dist/controllers/SkillLibrary.d.ts +96 -0
- package/dist/controllers/SkillLibrary.d.ts.map +1 -0
- package/dist/controllers/SkillLibrary.js +277 -0
- package/dist/controllers/SkillLibrary.js.map +1 -0
- package/dist/controllers/frontier-index.d.ts +14 -0
- package/dist/controllers/frontier-index.d.ts.map +1 -0
- package/dist/controllers/frontier-index.js +10 -0
- package/dist/controllers/frontier-index.js.map +1 -0
- package/dist/controllers/index.d.ts +12 -0
- package/dist/controllers/index.d.ts.map +1 -0
- package/dist/controllers/index.js +9 -0
- package/dist/controllers/index.js.map +1 -0
- package/dist/optimizations/BatchOperations.d.ts +61 -0
- package/dist/optimizations/BatchOperations.d.ts.map +1 -0
- package/dist/optimizations/BatchOperations.js +199 -0
- package/dist/optimizations/BatchOperations.js.map +1 -0
- package/dist/optimizations/QueryOptimizer.d.ts +82 -0
- package/dist/optimizations/QueryOptimizer.d.ts.map +1 -0
- package/dist/optimizations/QueryOptimizer.js +226 -0
- package/dist/optimizations/QueryOptimizer.js.map +1 -0
- package/dist/optimizations/index.d.ts +10 -0
- package/dist/optimizations/index.d.ts.map +1 -0
- package/dist/optimizations/index.js +8 -0
- package/dist/optimizations/index.js.map +1 -0
- package/dist/schemas/frontier-schema.sql +341 -0
- package/dist/schemas/schema.sql +382 -0
- package/dist/tests/frontier-features.test.js +665 -0
- package/package.json +54 -117
- package/src/cli/agentdb-cli.ts +861 -0
- package/src/cli/examples.sh +83 -0
- package/src/controllers/CausalMemoryGraph.ts +504 -0
- package/src/controllers/CausalRecall.ts +395 -0
- package/src/controllers/EmbeddingService.ts +141 -0
- package/src/controllers/ExplainableRecall.ts +577 -0
- package/src/controllers/NightlyLearner.ts +475 -0
- package/src/controllers/ReflexionMemory.ts +349 -0
- package/src/controllers/SkillLibrary.ts +391 -0
- package/src/controllers/frontier-index.ts +35 -0
- package/src/controllers/index.ts +13 -0
- package/src/optimizations/BatchOperations.ts +292 -0
- package/src/optimizations/QueryOptimizer.ts +294 -0
- package/src/optimizations/index.ts +11 -0
- package/src/schemas/frontier-schema.sql +341 -0
- package/src/schemas/schema.sql +382 -0
- package/CHANGELOG.md +0 -166
- package/LICENSE +0 -38
- package/LICENSE-APACHE +0 -190
- package/LICENSE-MIT +0 -21
- package/bin/agentdb.js +0 -733
- package/bin/benchmark.js +0 -165
- package/bin/plugin-cli-wrapper.mjs +0 -21
- package/dist/agentdb.js +0 -5352
- package/dist/agentdb.js.map +0 -7
- package/dist/agentdb.min.js +0 -143
- package/dist/agentdb.min.js.map +0 -7
- package/dist/cache/query-cache.d.ts +0 -105
- package/dist/cache/query-cache.d.ts.map +0 -1
- package/dist/cache/query-cache.js +0 -224
- package/dist/cache/query-cache.js.map +0 -1
- package/dist/cache/query-cache.mjs +0 -219
- package/dist/cli/cache/query-cache.d.ts +0 -104
- package/dist/cli/cache/query-cache.js +0 -244
- package/dist/cli/cli/db-commands.d.ts +0 -48
- package/dist/cli/cli/db-commands.js +0 -613
- package/dist/cli/commands.d.ts +0 -7
- package/dist/cli/commands.d.ts.map +0 -1
- package/dist/cli/commands.js +0 -113
- package/dist/cli/commands.js.map +0 -1
- package/dist/cli/commands.mjs +0 -104
- package/dist/cli/core/backend-interface.d.ts +0 -70
- package/dist/cli/core/backend-interface.js +0 -15
- package/dist/cli/core/native-backend.d.ts +0 -140
- package/dist/cli/core/native-backend.js +0 -432
- package/dist/cli/core/vector-db.d.ts +0 -126
- package/dist/cli/core/vector-db.js +0 -338
- package/dist/cli/core/wasm-backend.d.ts +0 -95
- package/dist/cli/core/wasm-backend.js +0 -418
- package/dist/cli/db-commands.d.ts +0 -49
- package/dist/cli/db-commands.d.ts.map +0 -1
- package/dist/cli/db-commands.js +0 -533
- package/dist/cli/db-commands.js.map +0 -1
- package/dist/cli/db-commands.mjs +0 -522
- package/dist/cli/generator.d.ts +0 -11
- package/dist/cli/generator.d.ts.map +0 -1
- package/dist/cli/generator.js +0 -567
- package/dist/cli/generator.js.map +0 -1
- package/dist/cli/generator.mjs +0 -527
- package/dist/cli/help.d.ts +0 -18
- package/dist/cli/help.d.ts.map +0 -1
- package/dist/cli/help.js +0 -676
- package/dist/cli/help.js.map +0 -1
- package/dist/cli/help.mjs +0 -667
- package/dist/cli/index/hnsw.d.ts +0 -164
- package/dist/cli/index/hnsw.js +0 -558
- package/dist/cli/plugin-cli.d.ts +0 -7
- package/dist/cli/plugin-cli.d.ts.map +0 -1
- package/dist/cli/plugin-cli.js +0 -295
- package/dist/cli/plugin-cli.js.map +0 -1
- package/dist/cli/plugin-cli.mjs +0 -289
- package/dist/cli/quantization/product-quantization.d.ts +0 -108
- package/dist/cli/quantization/product-quantization.js +0 -350
- package/dist/cli/query/query-builder.d.ts +0 -322
- package/dist/cli/query/query-builder.js +0 -600
- package/dist/cli/templates.d.ts +0 -14
- package/dist/cli/templates.d.ts.map +0 -1
- package/dist/cli/templates.js +0 -182
- package/dist/cli/templates.js.map +0 -1
- package/dist/cli/templates.mjs +0 -176
- package/dist/cli/types/index.d.ts +0 -116
- package/dist/cli/types/index.js +0 -5
- package/dist/cli/types.d.ts +0 -91
- package/dist/cli/types.d.ts.map +0 -1
- package/dist/cli/types.js +0 -6
- package/dist/cli/types.js.map +0 -1
- package/dist/cli/types.mjs +0 -4
- package/dist/cli/wizard/index.d.ts +0 -6
- package/dist/cli/wizard/index.d.ts.map +0 -1
- package/dist/cli/wizard/index.js +0 -138
- package/dist/cli/wizard/index.js.map +0 -1
- package/dist/cli/wizard/index.mjs +0 -131
- package/dist/cli/wizard/prompts.d.ts +0 -11
- package/dist/cli/wizard/prompts.d.ts.map +0 -1
- package/dist/cli/wizard/prompts.js +0 -482
- package/dist/cli/wizard/prompts.js.map +0 -1
- package/dist/cli/wizard/prompts.mjs +0 -470
- package/dist/cli/wizard/validator.d.ts +0 -13
- package/dist/cli/wizard/validator.d.ts.map +0 -1
- package/dist/cli/wizard/validator.js +0 -234
- package/dist/cli/wizard/validator.js.map +0 -1
- package/dist/cli/wizard/validator.mjs +0 -224
- package/dist/core/backend-interface.d.ts +0 -71
- package/dist/core/backend-interface.d.ts.map +0 -1
- package/dist/core/backend-interface.js +0 -16
- package/dist/core/backend-interface.js.map +0 -1
- package/dist/core/backend-interface.mjs +0 -12
- package/dist/core/native-backend.d.ts +0 -141
- package/dist/core/native-backend.d.ts.map +0 -1
- package/dist/core/native-backend.js +0 -457
- package/dist/core/native-backend.js.map +0 -1
- package/dist/core/native-backend.mjs +0 -449
- package/dist/core/vector-db.d.ts +0 -127
- package/dist/core/vector-db.d.ts.map +0 -1
- package/dist/core/vector-db.js +0 -270
- package/dist/core/vector-db.js.map +0 -1
- package/dist/core/vector-db.mjs +0 -265
- package/dist/core/wasm-backend.d.ts +0 -96
- package/dist/core/wasm-backend.d.ts.map +0 -1
- package/dist/core/wasm-backend.js +0 -393
- package/dist/core/wasm-backend.js.map +0 -1
- package/dist/core/wasm-backend.mjs +0 -385
- package/dist/index/hnsw-optimized.d.ts +0 -75
- package/dist/index/hnsw-optimized.d.ts.map +0 -1
- package/dist/index/hnsw-optimized.js +0 -412
- package/dist/index/hnsw-optimized.js.map +0 -1
- package/dist/index/hnsw-optimized.mjs +0 -407
- package/dist/index/hnsw.d.ts +0 -165
- package/dist/index/hnsw.d.ts.map +0 -1
- package/dist/index/hnsw.js +0 -521
- package/dist/index/hnsw.js.map +0 -1
- package/dist/index/hnsw.mjs +0 -516
- package/dist/index.browser.d.ts +0 -47
- package/dist/index.browser.d.ts.map +0 -1
- package/dist/index.browser.js +0 -72
- package/dist/index.browser.js.map +0 -1
- package/dist/index.browser.mjs +0 -54
- package/dist/index.d.ts +0 -59
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -84
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -65
- package/dist/mcp/learning/core/experience-buffer.d.ts +0 -61
- package/dist/mcp/learning/core/experience-buffer.d.ts.map +0 -1
- package/dist/mcp/learning/core/experience-buffer.js +0 -175
- package/dist/mcp/learning/core/experience-buffer.js.map +0 -1
- package/dist/mcp/learning/core/experience-buffer.mjs +0 -170
- package/dist/mcp/learning/core/experience-recorder.d.ts +0 -40
- package/dist/mcp/learning/core/experience-recorder.d.ts.map +0 -1
- package/dist/mcp/learning/core/experience-recorder.js +0 -200
- package/dist/mcp/learning/core/experience-recorder.js.map +0 -1
- package/dist/mcp/learning/core/experience-recorder.mjs +0 -195
- package/dist/mcp/learning/core/learning-manager.d.ts +0 -66
- package/dist/mcp/learning/core/learning-manager.d.ts.map +0 -1
- package/dist/mcp/learning/core/learning-manager.js +0 -252
- package/dist/mcp/learning/core/learning-manager.js.map +0 -1
- package/dist/mcp/learning/core/learning-manager.mjs +0 -247
- package/dist/mcp/learning/core/policy-optimizer.d.ts +0 -53
- package/dist/mcp/learning/core/policy-optimizer.d.ts.map +0 -1
- package/dist/mcp/learning/core/policy-optimizer.js +0 -251
- package/dist/mcp/learning/core/policy-optimizer.js.map +0 -1
- package/dist/mcp/learning/core/policy-optimizer.mjs +0 -246
- package/dist/mcp/learning/core/reward-estimator.d.ts +0 -44
- package/dist/mcp/learning/core/reward-estimator.d.ts.map +0 -1
- package/dist/mcp/learning/core/reward-estimator.js +0 -158
- package/dist/mcp/learning/core/reward-estimator.js.map +0 -1
- package/dist/mcp/learning/core/reward-estimator.mjs +0 -153
- package/dist/mcp/learning/core/session-manager.d.ts +0 -63
- package/dist/mcp/learning/core/session-manager.d.ts.map +0 -1
- package/dist/mcp/learning/core/session-manager.js +0 -202
- package/dist/mcp/learning/core/session-manager.js.map +0 -1
- package/dist/mcp/learning/core/session-manager.mjs +0 -197
- package/dist/mcp/learning/index.d.ts +0 -19
- package/dist/mcp/learning/index.d.ts.map +0 -1
- package/dist/mcp/learning/index.js +0 -30
- package/dist/mcp/learning/index.js.map +0 -1
- package/dist/mcp/learning/index.mjs +0 -19
- package/dist/mcp/learning/tools/mcp-learning-tools.d.ts +0 -369
- package/dist/mcp/learning/tools/mcp-learning-tools.d.ts.map +0 -1
- package/dist/mcp/learning/tools/mcp-learning-tools.js +0 -361
- package/dist/mcp/learning/tools/mcp-learning-tools.js.map +0 -1
- package/dist/mcp/learning/tools/mcp-learning-tools.mjs +0 -356
- package/dist/mcp/learning/types/index.d.ts +0 -138
- package/dist/mcp/learning/types/index.d.ts.map +0 -1
- package/dist/mcp/learning/types/index.js +0 -6
- package/dist/mcp/learning/types/index.js.map +0 -1
- package/dist/mcp/learning/types/index.mjs +0 -4
- package/dist/mcp-server.d.ts +0 -29
- package/dist/mcp-server.d.ts.map +0 -1
- package/dist/mcp-server.js +0 -862
- package/dist/mcp-server.js.map +0 -1
- package/dist/mcp-server.mjs +0 -857
- package/dist/plugins/base-plugin.d.ts +0 -114
- package/dist/plugins/base-plugin.d.ts.map +0 -1
- package/dist/plugins/base-plugin.js +0 -313
- package/dist/plugins/base-plugin.js.map +0 -1
- package/dist/plugins/base-plugin.mjs +0 -275
- package/dist/plugins/implementations/active-learning.d.ts +0 -135
- package/dist/plugins/implementations/active-learning.d.ts.map +0 -1
- package/dist/plugins/implementations/active-learning.js +0 -372
- package/dist/plugins/implementations/active-learning.js.map +0 -1
- package/dist/plugins/implementations/active-learning.mjs +0 -367
- package/dist/plugins/implementations/actor-critic.d.ts +0 -64
- package/dist/plugins/implementations/actor-critic.d.ts.map +0 -1
- package/dist/plugins/implementations/actor-critic.js +0 -363
- package/dist/plugins/implementations/actor-critic.js.map +0 -1
- package/dist/plugins/implementations/actor-critic.mjs +0 -358
- package/dist/plugins/implementations/adversarial-training.d.ts +0 -133
- package/dist/plugins/implementations/adversarial-training.d.ts.map +0 -1
- package/dist/plugins/implementations/adversarial-training.js +0 -409
- package/dist/plugins/implementations/adversarial-training.js.map +0 -1
- package/dist/plugins/implementations/adversarial-training.mjs +0 -404
- package/dist/plugins/implementations/curriculum-learning.d.ts +0 -132
- package/dist/plugins/implementations/curriculum-learning.d.ts.map +0 -1
- package/dist/plugins/implementations/curriculum-learning.js +0 -354
- package/dist/plugins/implementations/curriculum-learning.js.map +0 -1
- package/dist/plugins/implementations/curriculum-learning.mjs +0 -349
- package/dist/plugins/implementations/decision-transformer.d.ts +0 -77
- package/dist/plugins/implementations/decision-transformer.d.ts.map +0 -1
- package/dist/plugins/implementations/decision-transformer.js +0 -422
- package/dist/plugins/implementations/decision-transformer.js.map +0 -1
- package/dist/plugins/implementations/decision-transformer.mjs +0 -417
- package/dist/plugins/implementations/federated-learning.d.ts +0 -126
- package/dist/plugins/implementations/federated-learning.d.ts.map +0 -1
- package/dist/plugins/implementations/federated-learning.js +0 -436
- package/dist/plugins/implementations/federated-learning.js.map +0 -1
- package/dist/plugins/implementations/federated-learning.mjs +0 -431
- package/dist/plugins/implementations/index.d.ts +0 -30
- package/dist/plugins/implementations/index.d.ts.map +0 -1
- package/dist/plugins/implementations/index.js +0 -45
- package/dist/plugins/implementations/index.js.map +0 -1
- package/dist/plugins/implementations/index.mjs +0 -31
- package/dist/plugins/implementations/multi-task-learning.d.ts +0 -115
- package/dist/plugins/implementations/multi-task-learning.d.ts.map +0 -1
- package/dist/plugins/implementations/multi-task-learning.js +0 -369
- package/dist/plugins/implementations/multi-task-learning.js.map +0 -1
- package/dist/plugins/implementations/multi-task-learning.mjs +0 -364
- package/dist/plugins/implementations/neural-architecture-search.d.ts +0 -148
- package/dist/plugins/implementations/neural-architecture-search.d.ts.map +0 -1
- package/dist/plugins/implementations/neural-architecture-search.js +0 -379
- package/dist/plugins/implementations/neural-architecture-search.js.map +0 -1
- package/dist/plugins/implementations/neural-architecture-search.mjs +0 -374
- package/dist/plugins/implementations/q-learning.d.ts +0 -98
- package/dist/plugins/implementations/q-learning.d.ts.map +0 -1
- package/dist/plugins/implementations/q-learning.js +0 -435
- package/dist/plugins/implementations/q-learning.js.map +0 -1
- package/dist/plugins/implementations/q-learning.mjs +0 -430
- package/dist/plugins/implementations/sarsa.d.ts +0 -103
- package/dist/plugins/implementations/sarsa.d.ts.map +0 -1
- package/dist/plugins/implementations/sarsa.js +0 -347
- package/dist/plugins/implementations/sarsa.js.map +0 -1
- package/dist/plugins/implementations/sarsa.mjs +0 -342
- package/dist/plugins/index.d.ts +0 -107
- package/dist/plugins/index.d.ts.map +0 -1
- package/dist/plugins/index.js +0 -179
- package/dist/plugins/index.js.map +0 -1
- package/dist/plugins/index.mjs +0 -168
- package/dist/plugins/interface.d.ts +0 -439
- package/dist/plugins/interface.d.ts.map +0 -1
- package/dist/plugins/interface.js +0 -12
- package/dist/plugins/interface.js.map +0 -1
- package/dist/plugins/interface.mjs +0 -10
- package/dist/plugins/learning-plugin.interface.d.ts +0 -257
- package/dist/plugins/learning-plugin.interface.d.ts.map +0 -1
- package/dist/plugins/learning-plugin.interface.js +0 -7
- package/dist/plugins/learning-plugin.interface.js.map +0 -1
- package/dist/plugins/learning-plugin.interface.mjs +0 -5
- package/dist/plugins/plugin-exports.d.ts +0 -71
- package/dist/plugins/plugin-exports.d.ts.map +0 -1
- package/dist/plugins/plugin-exports.js +0 -78
- package/dist/plugins/plugin-exports.js.map +0 -1
- package/dist/plugins/plugin-exports.mjs +0 -69
- package/dist/plugins/registry.d.ts +0 -206
- package/dist/plugins/registry.d.ts.map +0 -1
- package/dist/plugins/registry.js +0 -365
- package/dist/plugins/registry.js.map +0 -1
- package/dist/plugins/registry.mjs +0 -356
- package/dist/plugins/validator.d.ts +0 -63
- package/dist/plugins/validator.d.ts.map +0 -1
- package/dist/plugins/validator.js +0 -464
- package/dist/plugins/validator.js.map +0 -1
- package/dist/plugins/validator.mjs +0 -458
- package/dist/presets.d.ts +0 -65
- package/dist/presets.d.ts.map +0 -1
- package/dist/presets.js +0 -145
- package/dist/presets.js.map +0 -1
- package/dist/presets.mjs +0 -140
- package/dist/quantization/binary-quantization.d.ts +0 -104
- package/dist/quantization/binary-quantization.d.ts.map +0 -1
- package/dist/quantization/binary-quantization.js +0 -246
- package/dist/quantization/binary-quantization.js.map +0 -1
- package/dist/quantization/binary-quantization.mjs +0 -240
- package/dist/quantization/optimized-pq.d.ts +0 -138
- package/dist/quantization/optimized-pq.d.ts.map +0 -1
- package/dist/quantization/optimized-pq.js +0 -320
- package/dist/quantization/optimized-pq.js.map +0 -1
- package/dist/quantization/optimized-pq.mjs +0 -313
- package/dist/quantization/product-quantization.d.ts +0 -109
- package/dist/quantization/product-quantization.d.ts.map +0 -1
- package/dist/quantization/product-quantization.js +0 -287
- package/dist/quantization/product-quantization.js.map +0 -1
- package/dist/quantization/product-quantization.mjs +0 -282
- package/dist/quantization/scalar-quantization.d.ts +0 -100
- package/dist/quantization/scalar-quantization.d.ts.map +0 -1
- package/dist/quantization/scalar-quantization.js +0 -324
- package/dist/quantization/scalar-quantization.js.map +0 -1
- package/dist/quantization/scalar-quantization.mjs +0 -319
- package/dist/query/index.d.ts +0 -6
- package/dist/query/index.d.ts.map +0 -1
- package/dist/query/index.js +0 -9
- package/dist/query/index.js.map +0 -1
- package/dist/query/index.mjs +0 -4
- package/dist/query/query-builder.d.ts +0 -323
- package/dist/query/query-builder.d.ts.map +0 -1
- package/dist/query/query-builder.js +0 -524
- package/dist/query/query-builder.js.map +0 -1
- package/dist/query/query-builder.mjs +0 -519
- package/dist/reasoning/context-synthesizer.d.ts +0 -57
- package/dist/reasoning/context-synthesizer.d.ts.map +0 -1
- package/dist/reasoning/context-synthesizer.js +0 -224
- package/dist/reasoning/context-synthesizer.js.map +0 -1
- package/dist/reasoning/context-synthesizer.mjs +0 -219
- package/dist/reasoning/experience-curator.d.ts +0 -66
- package/dist/reasoning/experience-curator.d.ts.map +0 -1
- package/dist/reasoning/experience-curator.js +0 -288
- package/dist/reasoning/experience-curator.js.map +0 -1
- package/dist/reasoning/experience-curator.mjs +0 -283
- package/dist/reasoning/memory-optimizer.d.ts +0 -69
- package/dist/reasoning/memory-optimizer.d.ts.map +0 -1
- package/dist/reasoning/memory-optimizer.js +0 -331
- package/dist/reasoning/memory-optimizer.js.map +0 -1
- package/dist/reasoning/memory-optimizer.mjs +0 -326
- package/dist/reasoning/pattern-matcher.d.ts +0 -59
- package/dist/reasoning/pattern-matcher.d.ts.map +0 -1
- package/dist/reasoning/pattern-matcher.js +0 -229
- package/dist/reasoning/pattern-matcher.js.map +0 -1
- package/dist/reasoning/pattern-matcher.mjs +0 -224
- package/dist/reasoningbank/adapter/agentdb-adapter.d.ts +0 -118
- package/dist/reasoningbank/adapter/agentdb-adapter.d.ts.map +0 -1
- package/dist/reasoningbank/adapter/agentdb-adapter.js +0 -477
- package/dist/reasoningbank/adapter/agentdb-adapter.js.map +0 -1
- package/dist/reasoningbank/adapter/types.d.ts +0 -113
- package/dist/reasoningbank/adapter/types.d.ts.map +0 -1
- package/dist/reasoningbank/adapter/types.js +0 -9
- package/dist/reasoningbank/adapter/types.js.map +0 -1
- package/dist/reasoningbank/cli/commands.d.ts +0 -16
- package/dist/reasoningbank/cli/commands.d.ts.map +0 -1
- package/dist/reasoningbank/cli/commands.js +0 -272
- package/dist/reasoningbank/cli/commands.js.map +0 -1
- package/dist/reasoningbank/mcp/agentdb-tools.d.ts +0 -319
- package/dist/reasoningbank/mcp/agentdb-tools.d.ts.map +0 -1
- package/dist/reasoningbank/mcp/agentdb-tools.js +0 -301
- package/dist/reasoningbank/mcp/agentdb-tools.js.map +0 -1
- package/dist/reasoningbank/migration/migrate.d.ts +0 -25
- package/dist/reasoningbank/migration/migrate.d.ts.map +0 -1
- package/dist/reasoningbank/migration/migrate.js +0 -178
- package/dist/reasoningbank/migration/migrate.js.map +0 -1
- package/dist/reasoningbank/reasoning/context-synthesizer.d.ts +0 -37
- package/dist/reasoningbank/reasoning/context-synthesizer.d.ts.map +0 -1
- package/dist/reasoningbank/reasoning/context-synthesizer.js +0 -114
- package/dist/reasoningbank/reasoning/context-synthesizer.js.map +0 -1
- package/dist/reasoningbank/reasoning/experience-curator.d.ts +0 -39
- package/dist/reasoningbank/reasoning/experience-curator.d.ts.map +0 -1
- package/dist/reasoningbank/reasoning/experience-curator.js +0 -98
- package/dist/reasoningbank/reasoning/experience-curator.js.map +0 -1
- package/dist/reasoningbank/reasoning/memory-optimizer.d.ts +0 -44
- package/dist/reasoningbank/reasoning/memory-optimizer.d.ts.map +0 -1
- package/dist/reasoningbank/reasoning/memory-optimizer.js +0 -184
- package/dist/reasoningbank/reasoning/memory-optimizer.js.map +0 -1
- package/dist/reasoningbank/reasoning/pattern-matcher.d.ts +0 -40
- package/dist/reasoningbank/reasoning/pattern-matcher.d.ts.map +0 -1
- package/dist/reasoningbank/reasoning/pattern-matcher.js +0 -87
- package/dist/reasoningbank/reasoning/pattern-matcher.js.map +0 -1
- package/dist/reasoningbank/sync/quic-sync.d.ts +0 -77
- package/dist/reasoningbank/sync/quic-sync.d.ts.map +0 -1
- package/dist/reasoningbank/sync/quic-sync.js +0 -165
- package/dist/reasoningbank/sync/quic-sync.js.map +0 -1
- package/dist/sync/conflict.d.ts +0 -78
- package/dist/sync/conflict.d.ts.map +0 -1
- package/dist/sync/conflict.js +0 -202
- package/dist/sync/conflict.js.map +0 -1
- package/dist/sync/conflict.mjs +0 -196
- package/dist/sync/coordinator.d.ts +0 -111
- package/dist/sync/coordinator.d.ts.map +0 -1
- package/dist/sync/coordinator.js +0 -256
- package/dist/sync/coordinator.js.map +0 -1
- package/dist/sync/coordinator.mjs +0 -250
- package/dist/sync/delta.d.ts +0 -81
- package/dist/sync/delta.d.ts.map +0 -1
- package/dist/sync/delta.js +0 -245
- package/dist/sync/delta.js.map +0 -1
- package/dist/sync/delta.mjs +0 -238
- package/dist/sync/index.d.ts +0 -11
- package/dist/sync/index.d.ts.map +0 -1
- package/dist/sync/index.js +0 -22
- package/dist/sync/index.js.map +0 -1
- package/dist/sync/index.mjs +0 -9
- package/dist/sync/quic-sync.d.ts +0 -81
- package/dist/sync/quic-sync.d.ts.map +0 -1
- package/dist/sync/quic-sync.js +0 -329
- package/dist/sync/quic-sync.js.map +0 -1
- package/dist/sync/quic-sync.mjs +0 -323
- package/dist/sync/types.d.ts +0 -168
- package/dist/sync/types.d.ts.map +0 -1
- package/dist/sync/types.js +0 -8
- package/dist/sync/types.js.map +0 -1
- package/dist/sync/types.mjs +0 -6
- package/dist/types/index.d.ts +0 -117
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -6
- package/dist/types/index.js.map +0 -1
- package/dist/types/index.mjs +0 -4
- package/dist/wasm/sql-wasm-debug.js +0 -6989
- package/dist/wasm/sql-wasm-debug.wasm +0 -0
- package/dist/wasm/sql-wasm.js +0 -188
- package/dist/wasm/sql-wasm.wasm +0 -0
- package/dist/wasm-loader.d.ts +0 -32
- package/dist/wasm-loader.d.ts.map +0 -1
- package/dist/wasm-loader.js +0 -78
- package/dist/wasm-loader.js.map +0 -1
- package/dist/wasm-loader.mjs +0 -67
- package/examples/adaptive-learning.ts +0 -284
- package/examples/browser/README.md +0 -732
- package/examples/browser/adaptive-recommendations/index.html +0 -427
- package/examples/browser/collaborative-filtering/index.html +0 -310
- package/examples/browser/continual-learning/index.html +0 -736
- package/examples/browser/experience-replay/index.html +0 -616
- package/examples/browser/index.html +0 -369
- package/examples/browser/meta-learning/index.html +0 -789
- package/examples/browser/neuro-symbolic/index.html +0 -692
- package/examples/browser/pattern-learning/index.html +0 -620
- package/examples/browser/quantum-inspired/index.html +0 -728
- package/examples/browser/rag/index.html +0 -624
- package/examples/browser/swarm-intelligence/index.html +0 -811
- package/examples/browser-basic.html +0 -170
- package/examples/browser-wasm-real.html +0 -231
- package/examples/hnsw-example.ts +0 -148
- package/examples/mcp-learning-example.ts +0 -220
- package/examples/node-basic.js +0 -70
- package/examples/quic-sync-example.ts +0 -310
- package/examples/quick-start.js +0 -68
- package/examples/test-v1.0.7-cdn.html +0 -190
- package/examples/wasm-example.ts +0 -222
package/dist/presets.mjs
DELETED
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Database configuration presets for common use cases
|
|
3
|
-
* Provides convenient factory functions for different dataset sizes
|
|
4
|
-
*
|
|
5
|
-
* Note: Vector dimension is not part of DatabaseConfig - it's determined
|
|
6
|
-
* by the actual vectors inserted. These presets configure database behavior,
|
|
7
|
-
* caching, and optimization settings.
|
|
8
|
-
*/
|
|
9
|
-
export class Presets {
|
|
10
|
-
/**
|
|
11
|
-
* Small dataset preset (< 10K vectors)
|
|
12
|
-
* Optimized for quick initialization and small-scale testing
|
|
13
|
-
*
|
|
14
|
-
* @param dimension - Vector dimension (for backward compatibility, not used)
|
|
15
|
-
* @param path - Database file path (omit or use undefined for in-memory)
|
|
16
|
-
* @returns Database configuration optimized for small datasets
|
|
17
|
-
*/
|
|
18
|
-
static smallDataset(dimension, path) {
|
|
19
|
-
return {
|
|
20
|
-
path: path || undefined,
|
|
21
|
-
memoryMode: !path || path === ':memory:',
|
|
22
|
-
cacheSize: 100, // 100MB cache for small datasets
|
|
23
|
-
walMode: true,
|
|
24
|
-
queryCache: {
|
|
25
|
-
enabled: true,
|
|
26
|
-
maxSize: 1000,
|
|
27
|
-
ttl: 60000, // 1 minute
|
|
28
|
-
enableStats: true
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Medium dataset preset (10K - 100K vectors)
|
|
34
|
-
* Balanced configuration for moderate-scale applications
|
|
35
|
-
*
|
|
36
|
-
* @param dimension - Vector dimension (for backward compatibility, not used)
|
|
37
|
-
* @param path - Database file path (omit or use undefined for in-memory)
|
|
38
|
-
* @returns Database configuration optimized for medium datasets
|
|
39
|
-
*/
|
|
40
|
-
static mediumDataset(dimension, path) {
|
|
41
|
-
return {
|
|
42
|
-
path: path || undefined,
|
|
43
|
-
memoryMode: !path || path === ':memory:',
|
|
44
|
-
cacheSize: 500, // 500MB cache for medium datasets
|
|
45
|
-
walMode: true,
|
|
46
|
-
queryCache: {
|
|
47
|
-
enabled: true,
|
|
48
|
-
maxSize: 5000,
|
|
49
|
-
ttl: 300000, // 5 minutes
|
|
50
|
-
enableStats: true
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Large dataset preset (100K+ vectors)
|
|
56
|
-
* High-performance configuration for large-scale production use
|
|
57
|
-
*
|
|
58
|
-
* @param dimension - Vector dimension (for backward compatibility, not used)
|
|
59
|
-
* @param path - Database file path
|
|
60
|
-
* @returns Database configuration optimized for large datasets
|
|
61
|
-
*/
|
|
62
|
-
static largeDataset(dimension, path) {
|
|
63
|
-
return {
|
|
64
|
-
path: path || undefined,
|
|
65
|
-
memoryMode: !path || path === ':memory:',
|
|
66
|
-
cacheSize: 2000, // 2GB cache for large datasets
|
|
67
|
-
walMode: true,
|
|
68
|
-
mmapSize: 1073741824, // 1GB mmap
|
|
69
|
-
queryCache: {
|
|
70
|
-
enabled: true,
|
|
71
|
-
maxSize: 10000,
|
|
72
|
-
ttl: 600000, // 10 minutes
|
|
73
|
-
enableStats: true
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* In-memory preset
|
|
79
|
-
* Fast, ephemeral database for testing and temporary operations
|
|
80
|
-
*
|
|
81
|
-
* @param dimension - Vector dimension (for backward compatibility, not used)
|
|
82
|
-
* @returns Database configuration for in-memory database
|
|
83
|
-
*/
|
|
84
|
-
static inMemory(dimension) {
|
|
85
|
-
return {
|
|
86
|
-
memoryMode: true,
|
|
87
|
-
cacheSize: 100,
|
|
88
|
-
queryCache: {
|
|
89
|
-
enabled: true,
|
|
90
|
-
maxSize: 500,
|
|
91
|
-
ttl: 60000,
|
|
92
|
-
enableStats: true
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* High-accuracy preset
|
|
98
|
-
* Larger cache and longer TTL for better accuracy
|
|
99
|
-
*
|
|
100
|
-
* @param dimension - Vector dimension (for backward compatibility, not used)
|
|
101
|
-
* @param path - Database file path
|
|
102
|
-
* @returns Database configuration optimized for accuracy
|
|
103
|
-
*/
|
|
104
|
-
static highAccuracy(dimension, path) {
|
|
105
|
-
return {
|
|
106
|
-
path: path || undefined,
|
|
107
|
-
memoryMode: !path || path === ':memory:',
|
|
108
|
-
cacheSize: 1000,
|
|
109
|
-
walMode: true,
|
|
110
|
-
queryCache: {
|
|
111
|
-
enabled: true,
|
|
112
|
-
maxSize: 20000,
|
|
113
|
-
ttl: 1800000, // 30 minutes
|
|
114
|
-
enableStats: true
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Fast search preset
|
|
120
|
-
* Optimized for speed with minimal caching
|
|
121
|
-
*
|
|
122
|
-
* @param dimension - Vector dimension (for backward compatibility, not used)
|
|
123
|
-
* @param path - Database file path
|
|
124
|
-
* @returns Database configuration optimized for speed
|
|
125
|
-
*/
|
|
126
|
-
static fastSearch(dimension, path) {
|
|
127
|
-
return {
|
|
128
|
-
path: path || undefined,
|
|
129
|
-
memoryMode: !path || path === ':memory:',
|
|
130
|
-
cacheSize: 50, // Minimal cache
|
|
131
|
-
walMode: true,
|
|
132
|
-
queryCache: {
|
|
133
|
-
enabled: true,
|
|
134
|
-
maxSize: 100,
|
|
135
|
-
ttl: 10000, // 10 seconds
|
|
136
|
-
enableStats: false
|
|
137
|
-
}
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Binary Quantization for Ultra-Fast Vector Search
|
|
3
|
-
*
|
|
4
|
-
* Achieves 256x compression by packing 8 dimensions into 1 byte.
|
|
5
|
-
* Uses Hamming distance for 32x faster search compared to cosine distance.
|
|
6
|
-
*
|
|
7
|
-
* @module binary-quantization
|
|
8
|
-
*/
|
|
9
|
-
export interface BinaryQuantizationConfig {
|
|
10
|
-
/** Quantization method: 'threshold' or 'median' */
|
|
11
|
-
method: 'threshold' | 'median';
|
|
12
|
-
/** Threshold value for 'threshold' method (default: 0.0) */
|
|
13
|
-
threshold?: number;
|
|
14
|
-
/** Enable asymmetric search (query vs codes) for better quality */
|
|
15
|
-
useAsymmetric?: boolean;
|
|
16
|
-
}
|
|
17
|
-
export interface BinaryQuantizationStats {
|
|
18
|
-
/** Number of vectors trained */
|
|
19
|
-
vectorsTrained: number;
|
|
20
|
-
/** Original dimension size */
|
|
21
|
-
dimensions: number;
|
|
22
|
-
/** Compressed size in bytes */
|
|
23
|
-
compressedBytes: number;
|
|
24
|
-
/** Compression ratio (original / compressed) */
|
|
25
|
-
compressionRatio: number;
|
|
26
|
-
/** Average encoding time (ms) */
|
|
27
|
-
avgEncodeTime: number;
|
|
28
|
-
/** Average decoding time (ms) */
|
|
29
|
-
avgDecodeTime: number;
|
|
30
|
-
/** Average Hamming distance time (μs) */
|
|
31
|
-
avgHammingTime: number;
|
|
32
|
-
/** Quantization method used */
|
|
33
|
-
method: string;
|
|
34
|
-
}
|
|
35
|
-
export declare class BinaryQuantizer {
|
|
36
|
-
private config;
|
|
37
|
-
private trained;
|
|
38
|
-
private dimensions;
|
|
39
|
-
private threshold;
|
|
40
|
-
private stats;
|
|
41
|
-
constructor(config: BinaryQuantizationConfig);
|
|
42
|
-
/**
|
|
43
|
-
* Train the quantizer on a set of vectors
|
|
44
|
-
* For 'median' method, calculates per-dimension medians
|
|
45
|
-
* For 'threshold' method, uses configured threshold
|
|
46
|
-
*/
|
|
47
|
-
train(vectors: number[][]): Promise<void>;
|
|
48
|
-
/**
|
|
49
|
-
* Calculate global median across all dimensions and vectors
|
|
50
|
-
*/
|
|
51
|
-
private calculateGlobalMedian;
|
|
52
|
-
/**
|
|
53
|
-
* Encode a vector into binary codes (Uint8Array)
|
|
54
|
-
* Packs 8 dimensions into 1 byte for 256x compression
|
|
55
|
-
*/
|
|
56
|
-
encode(vector: number[]): Uint8Array;
|
|
57
|
-
/**
|
|
58
|
-
* Decode binary codes back to approximate vector
|
|
59
|
-
* Maps 0 to -1 and 1 to +1
|
|
60
|
-
*/
|
|
61
|
-
decode(codes: Uint8Array): number[];
|
|
62
|
-
/**
|
|
63
|
-
* Calculate Hamming distance between two binary codes
|
|
64
|
-
* Uses bitwise XOR and popcount for ultra-fast computation
|
|
65
|
-
*/
|
|
66
|
-
hammingDistance(a: Uint8Array, b: Uint8Array): number;
|
|
67
|
-
/**
|
|
68
|
-
* Count number of set bits in a byte (population count)
|
|
69
|
-
* Uses Brian Kernighan's algorithm for efficiency
|
|
70
|
-
*/
|
|
71
|
-
private popcount;
|
|
72
|
-
/**
|
|
73
|
-
* Asymmetric search: compare float query vector with binary codes
|
|
74
|
-
* More accurate than symmetric Hamming distance
|
|
75
|
-
*
|
|
76
|
-
* Returns a distance score (lower is better)
|
|
77
|
-
*/
|
|
78
|
-
asymmetricSearch(query: number[], codes: Uint8Array): number;
|
|
79
|
-
/**
|
|
80
|
-
* Get quantizer statistics
|
|
81
|
-
*/
|
|
82
|
-
getStats(): BinaryQuantizationStats;
|
|
83
|
-
/**
|
|
84
|
-
* Reset statistics counters
|
|
85
|
-
*/
|
|
86
|
-
resetStats(): void;
|
|
87
|
-
/**
|
|
88
|
-
* Check if quantizer is trained
|
|
89
|
-
*/
|
|
90
|
-
isTrained(): boolean;
|
|
91
|
-
/**
|
|
92
|
-
* Get dimensions
|
|
93
|
-
*/
|
|
94
|
-
getDimensions(): number;
|
|
95
|
-
/**
|
|
96
|
-
* Get threshold value
|
|
97
|
-
*/
|
|
98
|
-
getThreshold(): number;
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Helper function to create a binary quantizer
|
|
102
|
-
*/
|
|
103
|
-
export declare function createBinaryQuantizer(config: BinaryQuantizationConfig): BinaryQuantizer;
|
|
104
|
-
//# sourceMappingURL=binary-quantization.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"binary-quantization.d.ts","sourceRoot":"","sources":["../../src/quantization/binary-quantization.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,wBAAwB;IACvC,mDAAmD;IACnD,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC/B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAC;IACzB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAa;IAG9B,OAAO,CAAC,KAAK,CAQX;gBAEU,MAAM,EAAE,wBAAwB;IAQ5C;;;;OAIG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB/C;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAe7B;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU;IAkCpC;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE;IAyBnC;;;OAGG;IACH,eAAe,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM;IAsBrD;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAShB;;;;;OAKG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM;IA0B5D;;OAEG;IACH,QAAQ,IAAI,uBAAuB;IAsBnC;;OAEG;IACH,UAAU,IAAI,IAAI;IAYlB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,YAAY,IAAI,MAAM;CAGvB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,wBAAwB,GAAG,eAAe,CAEvF"}
|
|
@@ -1,246 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Binary Quantization for Ultra-Fast Vector Search
|
|
4
|
-
*
|
|
5
|
-
* Achieves 256x compression by packing 8 dimensions into 1 byte.
|
|
6
|
-
* Uses Hamming distance for 32x faster search compared to cosine distance.
|
|
7
|
-
*
|
|
8
|
-
* @module binary-quantization
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.BinaryQuantizer = void 0;
|
|
12
|
-
exports.createBinaryQuantizer = createBinaryQuantizer;
|
|
13
|
-
class BinaryQuantizer {
|
|
14
|
-
constructor(config) {
|
|
15
|
-
this.trained = false;
|
|
16
|
-
this.dimensions = 0;
|
|
17
|
-
this.threshold = 0;
|
|
18
|
-
// Statistics tracking
|
|
19
|
-
this.stats = {
|
|
20
|
-
vectorsTrained: 0,
|
|
21
|
-
totalEncodeTime: 0,
|
|
22
|
-
totalDecodeTime: 0,
|
|
23
|
-
totalHammingTime: 0,
|
|
24
|
-
encodeCount: 0,
|
|
25
|
-
decodeCount: 0,
|
|
26
|
-
hammingCount: 0,
|
|
27
|
-
};
|
|
28
|
-
this.config = {
|
|
29
|
-
method: config.method,
|
|
30
|
-
threshold: config.threshold ?? 0.0,
|
|
31
|
-
useAsymmetric: config.useAsymmetric ?? true,
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Train the quantizer on a set of vectors
|
|
36
|
-
* For 'median' method, calculates per-dimension medians
|
|
37
|
-
* For 'threshold' method, uses configured threshold
|
|
38
|
-
*/
|
|
39
|
-
async train(vectors) {
|
|
40
|
-
if (vectors.length === 0) {
|
|
41
|
-
throw new Error('Cannot train on empty vector set');
|
|
42
|
-
}
|
|
43
|
-
this.dimensions = vectors[0].length;
|
|
44
|
-
// Validate all vectors have same dimensions
|
|
45
|
-
for (const vec of vectors) {
|
|
46
|
-
if (vec.length !== this.dimensions) {
|
|
47
|
-
throw new Error(`Inconsistent vector dimensions: expected ${this.dimensions}, got ${vec.length}`);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
if (this.config.method === 'median') {
|
|
51
|
-
// Calculate median for each dimension
|
|
52
|
-
this.threshold = this.calculateGlobalMedian(vectors);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
this.threshold = this.config.threshold;
|
|
56
|
-
}
|
|
57
|
-
this.stats.vectorsTrained = vectors.length;
|
|
58
|
-
this.trained = true;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Calculate global median across all dimensions and vectors
|
|
62
|
-
*/
|
|
63
|
-
calculateGlobalMedian(vectors) {
|
|
64
|
-
const allValues = [];
|
|
65
|
-
for (const vec of vectors) {
|
|
66
|
-
allValues.push(...vec);
|
|
67
|
-
}
|
|
68
|
-
allValues.sort((a, b) => a - b);
|
|
69
|
-
const mid = Math.floor(allValues.length / 2);
|
|
70
|
-
return allValues.length % 2 === 0
|
|
71
|
-
? (allValues[mid - 1] + allValues[mid]) / 2
|
|
72
|
-
: allValues[mid];
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Encode a vector into binary codes (Uint8Array)
|
|
76
|
-
* Packs 8 dimensions into 1 byte for 256x compression
|
|
77
|
-
*/
|
|
78
|
-
encode(vector) {
|
|
79
|
-
if (!this.trained) {
|
|
80
|
-
throw new Error('Quantizer must be trained before encoding');
|
|
81
|
-
}
|
|
82
|
-
if (vector.length !== this.dimensions) {
|
|
83
|
-
throw new Error(`Vector dimension mismatch: expected ${this.dimensions}, got ${vector.length}`);
|
|
84
|
-
}
|
|
85
|
-
const startTime = performance.now();
|
|
86
|
-
// Calculate number of bytes needed (8 dimensions per byte)
|
|
87
|
-
const numBytes = Math.ceil(this.dimensions / 8);
|
|
88
|
-
const codes = new Uint8Array(numBytes);
|
|
89
|
-
// Pack 8 bits into each byte
|
|
90
|
-
for (let i = 0; i < this.dimensions; i++) {
|
|
91
|
-
const byteIndex = Math.floor(i / 8);
|
|
92
|
-
const bitIndex = i % 8;
|
|
93
|
-
if (vector[i] > this.threshold) {
|
|
94
|
-
// Set bit to 1
|
|
95
|
-
codes[byteIndex] |= (1 << bitIndex);
|
|
96
|
-
}
|
|
97
|
-
// Bit is already 0 by default, no need to clear
|
|
98
|
-
}
|
|
99
|
-
const encodeTime = performance.now() - startTime;
|
|
100
|
-
this.stats.totalEncodeTime += encodeTime;
|
|
101
|
-
this.stats.encodeCount++;
|
|
102
|
-
return codes;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Decode binary codes back to approximate vector
|
|
106
|
-
* Maps 0 to -1 and 1 to +1
|
|
107
|
-
*/
|
|
108
|
-
decode(codes) {
|
|
109
|
-
if (!this.trained) {
|
|
110
|
-
throw new Error('Quantizer must be trained before decoding');
|
|
111
|
-
}
|
|
112
|
-
const startTime = performance.now();
|
|
113
|
-
const vector = new Array(this.dimensions);
|
|
114
|
-
for (let i = 0; i < this.dimensions; i++) {
|
|
115
|
-
const byteIndex = Math.floor(i / 8);
|
|
116
|
-
const bitIndex = i % 8;
|
|
117
|
-
// Extract bit and map: 0 → -1, 1 → +1
|
|
118
|
-
const bit = (codes[byteIndex] >> bitIndex) & 1;
|
|
119
|
-
vector[i] = bit === 1 ? 1 : -1;
|
|
120
|
-
}
|
|
121
|
-
const decodeTime = performance.now() - startTime;
|
|
122
|
-
this.stats.totalDecodeTime += decodeTime;
|
|
123
|
-
this.stats.decodeCount++;
|
|
124
|
-
return vector;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Calculate Hamming distance between two binary codes
|
|
128
|
-
* Uses bitwise XOR and popcount for ultra-fast computation
|
|
129
|
-
*/
|
|
130
|
-
hammingDistance(a, b) {
|
|
131
|
-
if (a.length !== b.length) {
|
|
132
|
-
throw new Error('Binary codes must have same length');
|
|
133
|
-
}
|
|
134
|
-
const startTime = performance.now();
|
|
135
|
-
let distance = 0;
|
|
136
|
-
// XOR bytes and count set bits
|
|
137
|
-
for (let i = 0; i < a.length; i++) {
|
|
138
|
-
const xor = a[i] ^ b[i];
|
|
139
|
-
distance += this.popcount(xor);
|
|
140
|
-
}
|
|
141
|
-
const hammingTime = (performance.now() - startTime) * 1000; // Convert to μs
|
|
142
|
-
this.stats.totalHammingTime += hammingTime;
|
|
143
|
-
this.stats.hammingCount++;
|
|
144
|
-
return distance;
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Count number of set bits in a byte (population count)
|
|
148
|
-
* Uses Brian Kernighan's algorithm for efficiency
|
|
149
|
-
*/
|
|
150
|
-
popcount(byte) {
|
|
151
|
-
let count = 0;
|
|
152
|
-
while (byte) {
|
|
153
|
-
byte &= byte - 1; // Clear least significant set bit
|
|
154
|
-
count++;
|
|
155
|
-
}
|
|
156
|
-
return count;
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Asymmetric search: compare float query vector with binary codes
|
|
160
|
-
* More accurate than symmetric Hamming distance
|
|
161
|
-
*
|
|
162
|
-
* Returns a distance score (lower is better)
|
|
163
|
-
*/
|
|
164
|
-
asymmetricSearch(query, codes) {
|
|
165
|
-
if (!this.trained) {
|
|
166
|
-
throw new Error('Quantizer must be trained before search');
|
|
167
|
-
}
|
|
168
|
-
if (query.length !== this.dimensions) {
|
|
169
|
-
throw new Error(`Query dimension mismatch: expected ${this.dimensions}, got ${query.length}`);
|
|
170
|
-
}
|
|
171
|
-
let distance = 0;
|
|
172
|
-
for (let i = 0; i < this.dimensions; i++) {
|
|
173
|
-
const byteIndex = Math.floor(i / 8);
|
|
174
|
-
const bitIndex = i % 8;
|
|
175
|
-
const bit = (codes[byteIndex] >> bitIndex) & 1;
|
|
176
|
-
const codeValue = bit === 1 ? 1 : -1;
|
|
177
|
-
// Squared difference for distance
|
|
178
|
-
const diff = query[i] - codeValue;
|
|
179
|
-
distance += diff * diff;
|
|
180
|
-
}
|
|
181
|
-
return distance;
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Get quantizer statistics
|
|
185
|
-
*/
|
|
186
|
-
getStats() {
|
|
187
|
-
const compressedBytes = Math.ceil(this.dimensions / 8);
|
|
188
|
-
const originalBytes = this.dimensions * 4; // 4 bytes per float32
|
|
189
|
-
return {
|
|
190
|
-
vectorsTrained: this.stats.vectorsTrained,
|
|
191
|
-
dimensions: this.dimensions,
|
|
192
|
-
compressedBytes,
|
|
193
|
-
compressionRatio: originalBytes / compressedBytes,
|
|
194
|
-
avgEncodeTime: this.stats.encodeCount > 0
|
|
195
|
-
? this.stats.totalEncodeTime / this.stats.encodeCount
|
|
196
|
-
: 0,
|
|
197
|
-
avgDecodeTime: this.stats.decodeCount > 0
|
|
198
|
-
? this.stats.totalDecodeTime / this.stats.decodeCount
|
|
199
|
-
: 0,
|
|
200
|
-
avgHammingTime: this.stats.hammingCount > 0
|
|
201
|
-
? this.stats.totalHammingTime / this.stats.hammingCount
|
|
202
|
-
: 0,
|
|
203
|
-
method: this.config.method,
|
|
204
|
-
};
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* Reset statistics counters
|
|
208
|
-
*/
|
|
209
|
-
resetStats() {
|
|
210
|
-
this.stats = {
|
|
211
|
-
vectorsTrained: this.stats.vectorsTrained,
|
|
212
|
-
totalEncodeTime: 0,
|
|
213
|
-
totalDecodeTime: 0,
|
|
214
|
-
totalHammingTime: 0,
|
|
215
|
-
encodeCount: 0,
|
|
216
|
-
decodeCount: 0,
|
|
217
|
-
hammingCount: 0,
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* Check if quantizer is trained
|
|
222
|
-
*/
|
|
223
|
-
isTrained() {
|
|
224
|
-
return this.trained;
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* Get dimensions
|
|
228
|
-
*/
|
|
229
|
-
getDimensions() {
|
|
230
|
-
return this.dimensions;
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* Get threshold value
|
|
234
|
-
*/
|
|
235
|
-
getThreshold() {
|
|
236
|
-
return this.threshold;
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
exports.BinaryQuantizer = BinaryQuantizer;
|
|
240
|
-
/**
|
|
241
|
-
* Helper function to create a binary quantizer
|
|
242
|
-
*/
|
|
243
|
-
function createBinaryQuantizer(config) {
|
|
244
|
-
return new BinaryQuantizer(config);
|
|
245
|
-
}
|
|
246
|
-
//# sourceMappingURL=binary-quantization.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"binary-quantization.js","sourceRoot":"","sources":["../../src/quantization/binary-quantization.ts"],"names":[],"mappings":"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"}
|