agentdb 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +38 -0
- package/LICENSE-APACHE +190 -0
- package/LICENSE-MIT +21 -0
- package/README.md +953 -0
- package/bin/agentdb.js +485 -0
- package/bin/plugin-cli-wrapper.mjs +21 -0
- package/dist/cache/query-cache.d.ts +105 -0
- package/dist/cache/query-cache.d.ts.map +1 -0
- package/dist/cache/query-cache.js +224 -0
- package/dist/cache/query-cache.js.map +1 -0
- package/dist/cache/query-cache.mjs +219 -0
- package/dist/cli/cache/query-cache.d.ts +104 -0
- package/dist/cli/cache/query-cache.js +244 -0
- package/dist/cli/cli/db-commands.d.ts +48 -0
- package/dist/cli/cli/db-commands.js +613 -0
- package/dist/cli/commands.d.ts +7 -0
- package/dist/cli/commands.d.ts.map +1 -0
- package/dist/cli/commands.js +113 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/commands.mjs +104 -0
- package/dist/cli/core/backend-interface.d.ts +70 -0
- package/dist/cli/core/backend-interface.js +15 -0
- package/dist/cli/core/native-backend.d.ts +140 -0
- package/dist/cli/core/native-backend.js +432 -0
- package/dist/cli/core/vector-db.d.ts +126 -0
- package/dist/cli/core/vector-db.js +338 -0
- package/dist/cli/core/wasm-backend.d.ts +95 -0
- package/dist/cli/core/wasm-backend.js +418 -0
- package/dist/cli/db-commands.d.ts +49 -0
- package/dist/cli/db-commands.d.ts.map +1 -0
- package/dist/cli/db-commands.js +533 -0
- package/dist/cli/db-commands.js.map +1 -0
- package/dist/cli/db-commands.mjs +522 -0
- package/dist/cli/generator.d.ts +11 -0
- package/dist/cli/generator.d.ts.map +1 -0
- package/dist/cli/generator.js +567 -0
- package/dist/cli/generator.js.map +1 -0
- package/dist/cli/generator.mjs +527 -0
- package/dist/cli/help.d.ts +18 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +676 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/help.mjs +667 -0
- package/dist/cli/index/hnsw.d.ts +164 -0
- package/dist/cli/index/hnsw.js +558 -0
- package/dist/cli/plugin-cli.d.ts +7 -0
- package/dist/cli/plugin-cli.d.ts.map +1 -0
- package/dist/cli/plugin-cli.js +295 -0
- package/dist/cli/plugin-cli.js.map +1 -0
- package/dist/cli/plugin-cli.mjs +289 -0
- package/dist/cli/quantization/product-quantization.d.ts +108 -0
- package/dist/cli/quantization/product-quantization.js +350 -0
- package/dist/cli/query/query-builder.d.ts +322 -0
- package/dist/cli/query/query-builder.js +600 -0
- package/dist/cli/templates.d.ts +14 -0
- package/dist/cli/templates.d.ts.map +1 -0
- package/dist/cli/templates.js +182 -0
- package/dist/cli/templates.js.map +1 -0
- package/dist/cli/templates.mjs +176 -0
- package/dist/cli/types/index.d.ts +116 -0
- package/dist/cli/types/index.js +5 -0
- package/dist/cli/types.d.ts +91 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +6 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli/types.mjs +4 -0
- package/dist/cli/wizard/index.d.ts +6 -0
- package/dist/cli/wizard/index.d.ts.map +1 -0
- package/dist/cli/wizard/index.js +138 -0
- package/dist/cli/wizard/index.js.map +1 -0
- package/dist/cli/wizard/index.mjs +131 -0
- package/dist/cli/wizard/prompts.d.ts +11 -0
- package/dist/cli/wizard/prompts.d.ts.map +1 -0
- package/dist/cli/wizard/prompts.js +482 -0
- package/dist/cli/wizard/prompts.js.map +1 -0
- package/dist/cli/wizard/prompts.mjs +470 -0
- package/dist/cli/wizard/validator.d.ts +13 -0
- package/dist/cli/wizard/validator.d.ts.map +1 -0
- package/dist/cli/wizard/validator.js +234 -0
- package/dist/cli/wizard/validator.js.map +1 -0
- package/dist/cli/wizard/validator.mjs +224 -0
- package/dist/core/backend-interface.d.ts +71 -0
- package/dist/core/backend-interface.d.ts.map +1 -0
- package/dist/core/backend-interface.js +16 -0
- package/dist/core/backend-interface.js.map +1 -0
- package/dist/core/backend-interface.mjs +12 -0
- package/dist/core/native-backend.d.ts +141 -0
- package/dist/core/native-backend.d.ts.map +1 -0
- package/dist/core/native-backend.js +457 -0
- package/dist/core/native-backend.js.map +1 -0
- package/dist/core/native-backend.mjs +449 -0
- package/dist/core/vector-db.d.ts +127 -0
- package/dist/core/vector-db.d.ts.map +1 -0
- package/dist/core/vector-db.js +266 -0
- package/dist/core/vector-db.js.map +1 -0
- package/dist/core/vector-db.mjs +261 -0
- package/dist/core/wasm-backend.d.ts +96 -0
- package/dist/core/wasm-backend.d.ts.map +1 -0
- package/dist/core/wasm-backend.js +393 -0
- package/dist/core/wasm-backend.js.map +1 -0
- package/dist/core/wasm-backend.mjs +385 -0
- package/dist/index/hnsw-optimized.d.ts +75 -0
- package/dist/index/hnsw-optimized.d.ts.map +1 -0
- package/dist/index/hnsw-optimized.js +412 -0
- package/dist/index/hnsw-optimized.js.map +1 -0
- package/dist/index/hnsw-optimized.mjs +407 -0
- package/dist/index/hnsw.d.ts +165 -0
- package/dist/index/hnsw.d.ts.map +1 -0
- package/dist/index/hnsw.js +521 -0
- package/dist/index/hnsw.js.map +1 -0
- package/dist/index/hnsw.mjs +516 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +82 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +63 -0
- package/dist/mcp-server.d.ts +27 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +789 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/mcp-server.mjs +784 -0
- package/dist/plugins/base-plugin.d.ts +114 -0
- package/dist/plugins/base-plugin.d.ts.map +1 -0
- package/dist/plugins/base-plugin.js +313 -0
- package/dist/plugins/base-plugin.js.map +1 -0
- package/dist/plugins/base-plugin.mjs +275 -0
- package/dist/plugins/implementations/active-learning.d.ts +135 -0
- package/dist/plugins/implementations/active-learning.d.ts.map +1 -0
- package/dist/plugins/implementations/active-learning.js +372 -0
- package/dist/plugins/implementations/active-learning.js.map +1 -0
- package/dist/plugins/implementations/active-learning.mjs +367 -0
- package/dist/plugins/implementations/actor-critic.d.ts +64 -0
- package/dist/plugins/implementations/actor-critic.d.ts.map +1 -0
- package/dist/plugins/implementations/actor-critic.js +363 -0
- package/dist/plugins/implementations/actor-critic.js.map +1 -0
- package/dist/plugins/implementations/actor-critic.mjs +358 -0
- package/dist/plugins/implementations/adversarial-training.d.ts +133 -0
- package/dist/plugins/implementations/adversarial-training.d.ts.map +1 -0
- package/dist/plugins/implementations/adversarial-training.js +409 -0
- package/dist/plugins/implementations/adversarial-training.js.map +1 -0
- package/dist/plugins/implementations/adversarial-training.mjs +404 -0
- package/dist/plugins/implementations/curriculum-learning.d.ts +132 -0
- package/dist/plugins/implementations/curriculum-learning.d.ts.map +1 -0
- package/dist/plugins/implementations/curriculum-learning.js +354 -0
- package/dist/plugins/implementations/curriculum-learning.js.map +1 -0
- package/dist/plugins/implementations/curriculum-learning.mjs +349 -0
- package/dist/plugins/implementations/decision-transformer.d.ts +77 -0
- package/dist/plugins/implementations/decision-transformer.d.ts.map +1 -0
- package/dist/plugins/implementations/decision-transformer.js +422 -0
- package/dist/plugins/implementations/decision-transformer.js.map +1 -0
- package/dist/plugins/implementations/decision-transformer.mjs +417 -0
- package/dist/plugins/implementations/federated-learning.d.ts +126 -0
- package/dist/plugins/implementations/federated-learning.d.ts.map +1 -0
- package/dist/plugins/implementations/federated-learning.js +436 -0
- package/dist/plugins/implementations/federated-learning.js.map +1 -0
- package/dist/plugins/implementations/federated-learning.mjs +431 -0
- package/dist/plugins/implementations/index.d.ts +30 -0
- package/dist/plugins/implementations/index.d.ts.map +1 -0
- package/dist/plugins/implementations/index.js +45 -0
- package/dist/plugins/implementations/index.js.map +1 -0
- package/dist/plugins/implementations/index.mjs +31 -0
- package/dist/plugins/implementations/multi-task-learning.d.ts +115 -0
- package/dist/plugins/implementations/multi-task-learning.d.ts.map +1 -0
- package/dist/plugins/implementations/multi-task-learning.js +369 -0
- package/dist/plugins/implementations/multi-task-learning.js.map +1 -0
- package/dist/plugins/implementations/multi-task-learning.mjs +364 -0
- package/dist/plugins/implementations/neural-architecture-search.d.ts +148 -0
- package/dist/plugins/implementations/neural-architecture-search.d.ts.map +1 -0
- package/dist/plugins/implementations/neural-architecture-search.js +379 -0
- package/dist/plugins/implementations/neural-architecture-search.js.map +1 -0
- package/dist/plugins/implementations/neural-architecture-search.mjs +374 -0
- package/dist/plugins/implementations/q-learning.d.ts +98 -0
- package/dist/plugins/implementations/q-learning.d.ts.map +1 -0
- package/dist/plugins/implementations/q-learning.js +435 -0
- package/dist/plugins/implementations/q-learning.js.map +1 -0
- package/dist/plugins/implementations/q-learning.mjs +430 -0
- package/dist/plugins/implementations/sarsa.d.ts +103 -0
- package/dist/plugins/implementations/sarsa.d.ts.map +1 -0
- package/dist/plugins/implementations/sarsa.js +347 -0
- package/dist/plugins/implementations/sarsa.js.map +1 -0
- package/dist/plugins/implementations/sarsa.mjs +342 -0
- package/dist/plugins/index.d.ts +107 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +179 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/index.mjs +168 -0
- package/dist/plugins/interface.d.ts +439 -0
- package/dist/plugins/interface.d.ts.map +1 -0
- package/dist/plugins/interface.js +12 -0
- package/dist/plugins/interface.js.map +1 -0
- package/dist/plugins/interface.mjs +10 -0
- package/dist/plugins/learning-plugin.interface.d.ts +257 -0
- package/dist/plugins/learning-plugin.interface.d.ts.map +1 -0
- package/dist/plugins/learning-plugin.interface.js +7 -0
- package/dist/plugins/learning-plugin.interface.js.map +1 -0
- package/dist/plugins/learning-plugin.interface.mjs +5 -0
- package/dist/plugins/plugin-exports.d.ts +71 -0
- package/dist/plugins/plugin-exports.d.ts.map +1 -0
- package/dist/plugins/plugin-exports.js +78 -0
- package/dist/plugins/plugin-exports.js.map +1 -0
- package/dist/plugins/plugin-exports.mjs +69 -0
- package/dist/plugins/registry.d.ts +206 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +365 -0
- package/dist/plugins/registry.js.map +1 -0
- package/dist/plugins/registry.mjs +356 -0
- package/dist/plugins/validator.d.ts +63 -0
- package/dist/plugins/validator.d.ts.map +1 -0
- package/dist/plugins/validator.js +464 -0
- package/dist/plugins/validator.js.map +1 -0
- package/dist/plugins/validator.mjs +458 -0
- package/dist/quantization/binary-quantization.d.ts +104 -0
- package/dist/quantization/binary-quantization.d.ts.map +1 -0
- package/dist/quantization/binary-quantization.js +246 -0
- package/dist/quantization/binary-quantization.js.map +1 -0
- package/dist/quantization/binary-quantization.mjs +240 -0
- package/dist/quantization/optimized-pq.d.ts +138 -0
- package/dist/quantization/optimized-pq.d.ts.map +1 -0
- package/dist/quantization/optimized-pq.js +320 -0
- package/dist/quantization/optimized-pq.js.map +1 -0
- package/dist/quantization/optimized-pq.mjs +313 -0
- package/dist/quantization/product-quantization.d.ts +109 -0
- package/dist/quantization/product-quantization.d.ts.map +1 -0
- package/dist/quantization/product-quantization.js +287 -0
- package/dist/quantization/product-quantization.js.map +1 -0
- package/dist/quantization/product-quantization.mjs +282 -0
- package/dist/quantization/scalar-quantization.d.ts +100 -0
- package/dist/quantization/scalar-quantization.d.ts.map +1 -0
- package/dist/quantization/scalar-quantization.js +324 -0
- package/dist/quantization/scalar-quantization.js.map +1 -0
- package/dist/quantization/scalar-quantization.mjs +319 -0
- package/dist/query/index.d.ts +6 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +9 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/index.mjs +4 -0
- package/dist/query/query-builder.d.ts +323 -0
- package/dist/query/query-builder.d.ts.map +1 -0
- package/dist/query/query-builder.js +524 -0
- package/dist/query/query-builder.js.map +1 -0
- package/dist/query/query-builder.mjs +519 -0
- package/dist/reasoning/context-synthesizer.d.ts +57 -0
- package/dist/reasoning/context-synthesizer.d.ts.map +1 -0
- package/dist/reasoning/context-synthesizer.js +224 -0
- package/dist/reasoning/context-synthesizer.js.map +1 -0
- package/dist/reasoning/context-synthesizer.mjs +219 -0
- package/dist/reasoning/experience-curator.d.ts +66 -0
- package/dist/reasoning/experience-curator.d.ts.map +1 -0
- package/dist/reasoning/experience-curator.js +288 -0
- package/dist/reasoning/experience-curator.js.map +1 -0
- package/dist/reasoning/experience-curator.mjs +283 -0
- package/dist/reasoning/memory-optimizer.d.ts +69 -0
- package/dist/reasoning/memory-optimizer.d.ts.map +1 -0
- package/dist/reasoning/memory-optimizer.js +331 -0
- package/dist/reasoning/memory-optimizer.js.map +1 -0
- package/dist/reasoning/memory-optimizer.mjs +326 -0
- package/dist/reasoning/pattern-matcher.d.ts +59 -0
- package/dist/reasoning/pattern-matcher.d.ts.map +1 -0
- package/dist/reasoning/pattern-matcher.js +229 -0
- package/dist/reasoning/pattern-matcher.js.map +1 -0
- package/dist/reasoning/pattern-matcher.mjs +224 -0
- package/dist/reasoningbank/adapter/agentdb-adapter.d.ts +118 -0
- package/dist/reasoningbank/adapter/agentdb-adapter.d.ts.map +1 -0
- package/dist/reasoningbank/adapter/agentdb-adapter.js +477 -0
- package/dist/reasoningbank/adapter/agentdb-adapter.js.map +1 -0
- package/dist/reasoningbank/adapter/types.d.ts +113 -0
- package/dist/reasoningbank/adapter/types.d.ts.map +1 -0
- package/dist/reasoningbank/adapter/types.js +9 -0
- package/dist/reasoningbank/adapter/types.js.map +1 -0
- package/dist/reasoningbank/cli/commands.d.ts +16 -0
- package/dist/reasoningbank/cli/commands.d.ts.map +1 -0
- package/dist/reasoningbank/cli/commands.js +272 -0
- package/dist/reasoningbank/cli/commands.js.map +1 -0
- package/dist/reasoningbank/mcp/agentdb-tools.d.ts +319 -0
- package/dist/reasoningbank/mcp/agentdb-tools.d.ts.map +1 -0
- package/dist/reasoningbank/mcp/agentdb-tools.js +301 -0
- package/dist/reasoningbank/mcp/agentdb-tools.js.map +1 -0
- package/dist/reasoningbank/migration/migrate.d.ts +25 -0
- package/dist/reasoningbank/migration/migrate.d.ts.map +1 -0
- package/dist/reasoningbank/migration/migrate.js +178 -0
- package/dist/reasoningbank/migration/migrate.js.map +1 -0
- package/dist/reasoningbank/reasoning/context-synthesizer.d.ts +37 -0
- package/dist/reasoningbank/reasoning/context-synthesizer.d.ts.map +1 -0
- package/dist/reasoningbank/reasoning/context-synthesizer.js +114 -0
- package/dist/reasoningbank/reasoning/context-synthesizer.js.map +1 -0
- package/dist/reasoningbank/reasoning/experience-curator.d.ts +39 -0
- package/dist/reasoningbank/reasoning/experience-curator.d.ts.map +1 -0
- package/dist/reasoningbank/reasoning/experience-curator.js +98 -0
- package/dist/reasoningbank/reasoning/experience-curator.js.map +1 -0
- package/dist/reasoningbank/reasoning/memory-optimizer.d.ts +44 -0
- package/dist/reasoningbank/reasoning/memory-optimizer.d.ts.map +1 -0
- package/dist/reasoningbank/reasoning/memory-optimizer.js +184 -0
- package/dist/reasoningbank/reasoning/memory-optimizer.js.map +1 -0
- package/dist/reasoningbank/reasoning/pattern-matcher.d.ts +40 -0
- package/dist/reasoningbank/reasoning/pattern-matcher.d.ts.map +1 -0
- package/dist/reasoningbank/reasoning/pattern-matcher.js +87 -0
- package/dist/reasoningbank/reasoning/pattern-matcher.js.map +1 -0
- package/dist/reasoningbank/sync/quic-sync.d.ts +77 -0
- package/dist/reasoningbank/sync/quic-sync.d.ts.map +1 -0
- package/dist/reasoningbank/sync/quic-sync.js +165 -0
- package/dist/reasoningbank/sync/quic-sync.js.map +1 -0
- package/dist/sync/conflict.d.ts +78 -0
- package/dist/sync/conflict.d.ts.map +1 -0
- package/dist/sync/conflict.js +202 -0
- package/dist/sync/conflict.js.map +1 -0
- package/dist/sync/conflict.mjs +196 -0
- package/dist/sync/coordinator.d.ts +111 -0
- package/dist/sync/coordinator.d.ts.map +1 -0
- package/dist/sync/coordinator.js +256 -0
- package/dist/sync/coordinator.js.map +1 -0
- package/dist/sync/coordinator.mjs +250 -0
- package/dist/sync/delta.d.ts +81 -0
- package/dist/sync/delta.d.ts.map +1 -0
- package/dist/sync/delta.js +245 -0
- package/dist/sync/delta.js.map +1 -0
- package/dist/sync/delta.mjs +238 -0
- package/dist/sync/index.d.ts +11 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +22 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/index.mjs +9 -0
- package/dist/sync/quic-sync.d.ts +81 -0
- package/dist/sync/quic-sync.d.ts.map +1 -0
- package/dist/sync/quic-sync.js +329 -0
- package/dist/sync/quic-sync.js.map +1 -0
- package/dist/sync/quic-sync.mjs +323 -0
- package/dist/sync/types.d.ts +168 -0
- package/dist/sync/types.d.ts.map +1 -0
- package/dist/sync/types.js +8 -0
- package/dist/sync/types.js.map +1 -0
- package/dist/sync/types.mjs +6 -0
- package/dist/types/index.d.ts +117 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/index.mjs +4 -0
- package/dist/wasm-loader.d.ts +32 -0
- package/dist/wasm-loader.d.ts.map +1 -0
- package/dist/wasm-loader.js +75 -0
- package/dist/wasm-loader.js.map +1 -0
- package/dist/wasm-loader.mjs +64 -0
- package/examples/adaptive-learning.ts +284 -0
- package/examples/browser/README.md +732 -0
- package/examples/browser/adaptive-recommendations/index.html +427 -0
- package/examples/browser/collaborative-filtering/index.html +310 -0
- package/examples/browser/continual-learning/index.html +736 -0
- package/examples/browser/experience-replay/index.html +616 -0
- package/examples/browser/index.html +369 -0
- package/examples/browser/meta-learning/index.html +789 -0
- package/examples/browser/neuro-symbolic/index.html +692 -0
- package/examples/browser/pattern-learning/index.html +620 -0
- package/examples/browser/quantum-inspired/index.html +728 -0
- package/examples/browser/rag/index.html +624 -0
- package/examples/browser/swarm-intelligence/index.html +811 -0
- package/examples/browser-basic.html +170 -0
- package/examples/hnsw-example.ts +148 -0
- package/examples/node-basic.js +70 -0
- package/examples/quic-sync-example.ts +310 -0
- package/examples/quick-start.js +68 -0
- package/examples/wasm-example.ts +222 -0
- package/package.json +118 -0
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Core SQLiteVector database implementation with backend abstraction
|
|
4
|
+
* Supports both native (better-sqlite3) and WASM (sql.js) backends
|
|
5
|
+
*/
|
|
6
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
7
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
8
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
9
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
10
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
11
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
12
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
16
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
17
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
18
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
19
|
+
function step(op) {
|
|
20
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
21
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
22
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
23
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
24
|
+
switch (op[0]) {
|
|
25
|
+
case 0: case 1: t = op; break;
|
|
26
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
27
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
28
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
29
|
+
default:
|
|
30
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
31
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
32
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
33
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
34
|
+
if (t[2]) _.ops.pop();
|
|
35
|
+
_.trys.pop(); continue;
|
|
36
|
+
}
|
|
37
|
+
op = body.call(thisArg, _);
|
|
38
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
39
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.SQLiteVectorDB = void 0;
|
|
44
|
+
var backend_interface_1 = require("./backend-interface");
|
|
45
|
+
var native_backend_1 = require("./native-backend");
|
|
46
|
+
var wasm_backend_1 = require("./wasm-backend");
|
|
47
|
+
var query_cache_1 = require("../cache/query-cache");
|
|
48
|
+
var product_quantization_1 = require("../quantization/product-quantization");
|
|
49
|
+
var query_builder_1 = require("../query/query-builder");
|
|
50
|
+
var SQLiteVectorDB = /** @class */ (function () {
|
|
51
|
+
function SQLiteVectorDB(config) {
|
|
52
|
+
if (config === void 0) { config = {}; }
|
|
53
|
+
var _a, _b;
|
|
54
|
+
// If path is provided but memoryMode not specified, default to file mode
|
|
55
|
+
if (config.path && config.memoryMode === undefined) {
|
|
56
|
+
config.memoryMode = false;
|
|
57
|
+
}
|
|
58
|
+
// Determine backend type
|
|
59
|
+
this.backendType = this.detectBackend(config);
|
|
60
|
+
// Create appropriate backend
|
|
61
|
+
this.backend = this.createBackend(this.backendType);
|
|
62
|
+
// Initialize query cache if enabled
|
|
63
|
+
if (((_a = config.queryCache) === null || _a === void 0 ? void 0 : _a.enabled) !== false) {
|
|
64
|
+
this.queryCache = new query_cache_1.QueryCache(config.queryCache);
|
|
65
|
+
}
|
|
66
|
+
// Initialize quantizer if enabled
|
|
67
|
+
if ((_b = config.quantization) === null || _b === void 0 ? void 0 : _b.enabled) {
|
|
68
|
+
this.quantizer = new product_quantization_1.ProductQuantizer(config.quantization);
|
|
69
|
+
}
|
|
70
|
+
// Initialize backend
|
|
71
|
+
if (this.backendType === backend_interface_1.BackendType.WASM) {
|
|
72
|
+
// WASM backend requires async initialization
|
|
73
|
+
// Store config for later async init
|
|
74
|
+
this.backend._pendingConfig = config;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
// Native backend can initialize synchronously
|
|
78
|
+
this.backend.initialize(config);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Detect appropriate backend based on environment and configuration
|
|
83
|
+
*/
|
|
84
|
+
SQLiteVectorDB.prototype.detectBackend = function (config) {
|
|
85
|
+
// Explicit backend selection
|
|
86
|
+
if (config.backend) {
|
|
87
|
+
return config.backend;
|
|
88
|
+
}
|
|
89
|
+
// Auto-detect based on environment
|
|
90
|
+
if (typeof window !== 'undefined' || typeof process === 'undefined') {
|
|
91
|
+
// Browser environment
|
|
92
|
+
return backend_interface_1.BackendType.WASM;
|
|
93
|
+
}
|
|
94
|
+
// Node.js environment - check if better-sqlite3 is available
|
|
95
|
+
try {
|
|
96
|
+
require.resolve('better-sqlite3');
|
|
97
|
+
return backend_interface_1.BackendType.NATIVE;
|
|
98
|
+
}
|
|
99
|
+
catch (_a) {
|
|
100
|
+
return backend_interface_1.BackendType.WASM;
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Create backend instance
|
|
105
|
+
*/
|
|
106
|
+
SQLiteVectorDB.prototype.createBackend = function (type) {
|
|
107
|
+
switch (type) {
|
|
108
|
+
case backend_interface_1.BackendType.NATIVE:
|
|
109
|
+
return new native_backend_1.NativeBackend();
|
|
110
|
+
case backend_interface_1.BackendType.WASM:
|
|
111
|
+
return new wasm_backend_1.WasmBackend();
|
|
112
|
+
default:
|
|
113
|
+
throw new Error("Unsupported backend type: ".concat(type));
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* Async initialization for WASM backend
|
|
118
|
+
* Must be called after constructor if using WASM backend
|
|
119
|
+
*/
|
|
120
|
+
SQLiteVectorDB.prototype.initializeAsync = function (config) {
|
|
121
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
122
|
+
var wasmBackend, finalConfig;
|
|
123
|
+
return __generator(this, function (_a) {
|
|
124
|
+
switch (_a.label) {
|
|
125
|
+
case 0:
|
|
126
|
+
if (!(this.backendType === backend_interface_1.BackendType.WASM)) return [3 /*break*/, 2];
|
|
127
|
+
wasmBackend = this.backend;
|
|
128
|
+
finalConfig = config || wasmBackend._pendingConfig || {};
|
|
129
|
+
return [4 /*yield*/, wasmBackend.initializeAsync(finalConfig)];
|
|
130
|
+
case 1:
|
|
131
|
+
_a.sent();
|
|
132
|
+
delete wasmBackend._pendingConfig;
|
|
133
|
+
_a.label = 2;
|
|
134
|
+
case 2: return [2 /*return*/];
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Get backend type
|
|
141
|
+
*/
|
|
142
|
+
SQLiteVectorDB.prototype.getBackendType = function () {
|
|
143
|
+
return this.backendType;
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Check if backend is initialized
|
|
147
|
+
*/
|
|
148
|
+
SQLiteVectorDB.prototype.isInitialized = function () {
|
|
149
|
+
if (this.backendType === backend_interface_1.BackendType.WASM) {
|
|
150
|
+
return this.backend.isInitialized();
|
|
151
|
+
}
|
|
152
|
+
return this.backend.isInitialized();
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* Insert a single vector
|
|
156
|
+
*/
|
|
157
|
+
SQLiteVectorDB.prototype.insert = function (vector) {
|
|
158
|
+
return this.backend.insert(vector);
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* Insert multiple vectors in a transaction
|
|
162
|
+
*/
|
|
163
|
+
SQLiteVectorDB.prototype.insertBatch = function (vectors) {
|
|
164
|
+
return this.backend.insertBatch(vectors);
|
|
165
|
+
};
|
|
166
|
+
/**
|
|
167
|
+
* Search for k-nearest neighbors with optional caching
|
|
168
|
+
*/
|
|
169
|
+
SQLiteVectorDB.prototype.search = function (queryEmbedding, k, metric, threshold) {
|
|
170
|
+
if (k === void 0) { k = 5; }
|
|
171
|
+
if (metric === void 0) { metric = 'cosine'; }
|
|
172
|
+
if (threshold === void 0) { threshold = 0.0; }
|
|
173
|
+
// Check cache if enabled
|
|
174
|
+
if (this.queryCache) {
|
|
175
|
+
var cacheKey = query_cache_1.QueryCache.generateKey(queryEmbedding, k, metric, threshold);
|
|
176
|
+
var cached = this.queryCache.get(cacheKey);
|
|
177
|
+
if (cached) {
|
|
178
|
+
return cached;
|
|
179
|
+
}
|
|
180
|
+
// Cache miss - perform search and cache result
|
|
181
|
+
var results = this.backend.search(queryEmbedding, k, metric, threshold);
|
|
182
|
+
this.queryCache.set(cacheKey, results);
|
|
183
|
+
return results;
|
|
184
|
+
}
|
|
185
|
+
// No cache - perform search directly
|
|
186
|
+
return this.backend.search(queryEmbedding, k, metric, threshold);
|
|
187
|
+
};
|
|
188
|
+
/**
|
|
189
|
+
* Get vector by ID
|
|
190
|
+
*/
|
|
191
|
+
SQLiteVectorDB.prototype.get = function (id) {
|
|
192
|
+
return this.backend.get(id);
|
|
193
|
+
};
|
|
194
|
+
/**
|
|
195
|
+
* Delete vector by ID
|
|
196
|
+
*/
|
|
197
|
+
SQLiteVectorDB.prototype.delete = function (id) {
|
|
198
|
+
return this.backend.delete(id);
|
|
199
|
+
};
|
|
200
|
+
/**
|
|
201
|
+
* Get database statistics
|
|
202
|
+
*/
|
|
203
|
+
SQLiteVectorDB.prototype.stats = function () {
|
|
204
|
+
return this.backend.stats();
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* Close database connection
|
|
208
|
+
*/
|
|
209
|
+
SQLiteVectorDB.prototype.close = function () {
|
|
210
|
+
this.backend.close();
|
|
211
|
+
};
|
|
212
|
+
/**
|
|
213
|
+
* Export database to binary format (WASM only)
|
|
214
|
+
*/
|
|
215
|
+
SQLiteVectorDB.prototype.export = function () {
|
|
216
|
+
if (this.backend.export) {
|
|
217
|
+
return this.backend.export();
|
|
218
|
+
}
|
|
219
|
+
throw new Error('Export not supported by current backend');
|
|
220
|
+
};
|
|
221
|
+
/**
|
|
222
|
+
* Import database from binary format (WASM only)
|
|
223
|
+
*/
|
|
224
|
+
SQLiteVectorDB.prototype.importAsync = function (data) {
|
|
225
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
226
|
+
return __generator(this, function (_a) {
|
|
227
|
+
switch (_a.label) {
|
|
228
|
+
case 0:
|
|
229
|
+
if (!(this.backendType === backend_interface_1.BackendType.WASM)) return [3 /*break*/, 2];
|
|
230
|
+
return [4 /*yield*/, this.backend.importAsync(data)];
|
|
231
|
+
case 1:
|
|
232
|
+
_a.sent();
|
|
233
|
+
return [3 /*break*/, 3];
|
|
234
|
+
case 2: throw new Error('Import not supported by native backend');
|
|
235
|
+
case 3: return [2 /*return*/];
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
});
|
|
239
|
+
};
|
|
240
|
+
/**
|
|
241
|
+
* Get raw backend instance (for advanced usage)
|
|
242
|
+
*/
|
|
243
|
+
SQLiteVectorDB.prototype.getBackend = function () {
|
|
244
|
+
return this.backend;
|
|
245
|
+
};
|
|
246
|
+
/**
|
|
247
|
+
* Get raw database instance (for advanced usage with native backend)
|
|
248
|
+
* @deprecated Use getBackend() instead for cross-backend compatibility
|
|
249
|
+
*/
|
|
250
|
+
SQLiteVectorDB.prototype.getDatabase = function () {
|
|
251
|
+
if (this.backendType === backend_interface_1.BackendType.NATIVE) {
|
|
252
|
+
return this.backend.getDatabase();
|
|
253
|
+
}
|
|
254
|
+
throw new Error('getDatabase() only supported on native backend. Use getBackend() instead.');
|
|
255
|
+
};
|
|
256
|
+
/**
|
|
257
|
+
* Get query cache instance
|
|
258
|
+
*/
|
|
259
|
+
SQLiteVectorDB.prototype.getQueryCache = function () {
|
|
260
|
+
return this.queryCache;
|
|
261
|
+
};
|
|
262
|
+
/**
|
|
263
|
+
* Get query cache statistics
|
|
264
|
+
*/
|
|
265
|
+
SQLiteVectorDB.prototype.getCacheStats = function () {
|
|
266
|
+
var _a;
|
|
267
|
+
return (_a = this.queryCache) === null || _a === void 0 ? void 0 : _a.getStats();
|
|
268
|
+
};
|
|
269
|
+
/**
|
|
270
|
+
* Clear query cache
|
|
271
|
+
*/
|
|
272
|
+
SQLiteVectorDB.prototype.clearCache = function () {
|
|
273
|
+
var _a;
|
|
274
|
+
(_a = this.queryCache) === null || _a === void 0 ? void 0 : _a.clear();
|
|
275
|
+
};
|
|
276
|
+
/**
|
|
277
|
+
* Get quantizer instance
|
|
278
|
+
*/
|
|
279
|
+
SQLiteVectorDB.prototype.getQuantizer = function () {
|
|
280
|
+
return this.quantizer;
|
|
281
|
+
};
|
|
282
|
+
/**
|
|
283
|
+
* Train quantizer with existing vectors
|
|
284
|
+
*/
|
|
285
|
+
SQLiteVectorDB.prototype.trainQuantizer = function () {
|
|
286
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
287
|
+
var allStats, vectors;
|
|
288
|
+
return __generator(this, function (_a) {
|
|
289
|
+
switch (_a.label) {
|
|
290
|
+
case 0:
|
|
291
|
+
if (!this.quantizer) {
|
|
292
|
+
throw new Error('Quantization not enabled');
|
|
293
|
+
}
|
|
294
|
+
allStats = this.stats();
|
|
295
|
+
if (allStats.count === 0) {
|
|
296
|
+
throw new Error('No vectors to train quantizer');
|
|
297
|
+
}
|
|
298
|
+
vectors = [];
|
|
299
|
+
// Note: This would need backend support to efficiently fetch all embeddings
|
|
300
|
+
console.log('Training quantizer with existing vectors...');
|
|
301
|
+
return [4 /*yield*/, this.quantizer.train(vectors)];
|
|
302
|
+
case 1:
|
|
303
|
+
_a.sent();
|
|
304
|
+
console.log('Quantizer training complete');
|
|
305
|
+
return [2 /*return*/];
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
});
|
|
309
|
+
};
|
|
310
|
+
/**
|
|
311
|
+
* Get compression statistics (if quantization enabled)
|
|
312
|
+
*/
|
|
313
|
+
SQLiteVectorDB.prototype.getCompressionStats = function () {
|
|
314
|
+
var _a;
|
|
315
|
+
return (_a = this.quantizer) === null || _a === void 0 ? void 0 : _a.getStats();
|
|
316
|
+
};
|
|
317
|
+
/**
|
|
318
|
+
* Create a fluent query builder for complex queries
|
|
319
|
+
*
|
|
320
|
+
* @returns VectorQueryBuilder instance
|
|
321
|
+
*
|
|
322
|
+
* @example
|
|
323
|
+
* ```typescript
|
|
324
|
+
* const results = await db.query()
|
|
325
|
+
* .similarTo(queryVector)
|
|
326
|
+
* .where('metadata.category', '=', 'tech')
|
|
327
|
+
* .whereBetween('metadata.year', 2020, 2024)
|
|
328
|
+
* .orderBySimilarity('desc')
|
|
329
|
+
* .limit(10)
|
|
330
|
+
* .execute();
|
|
331
|
+
* ```
|
|
332
|
+
*/
|
|
333
|
+
SQLiteVectorDB.prototype.query = function () {
|
|
334
|
+
return new query_builder_1.VectorQueryBuilder(this);
|
|
335
|
+
};
|
|
336
|
+
return SQLiteVectorDB;
|
|
337
|
+
}());
|
|
338
|
+
exports.SQLiteVectorDB = SQLiteVectorDB;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WASM backend implementation using sql.js
|
|
3
|
+
* Provides browser-compatible vector database operations
|
|
4
|
+
*/
|
|
5
|
+
import { Vector, SearchResult, SimilarityMetric, DatabaseConfig } from '../types';
|
|
6
|
+
import { VectorBackend } from './backend-interface';
|
|
7
|
+
/**
|
|
8
|
+
* WASM backend using sql.js
|
|
9
|
+
* Runs in both Node.js and browser environments
|
|
10
|
+
*/
|
|
11
|
+
export declare class WasmBackend implements VectorBackend {
|
|
12
|
+
private SQL;
|
|
13
|
+
private db;
|
|
14
|
+
private initialized;
|
|
15
|
+
/**
|
|
16
|
+
* Initialize the WASM backend
|
|
17
|
+
*/
|
|
18
|
+
initializeAsync(config?: DatabaseConfig): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Synchronous initialization (throws if not already initialized)
|
|
21
|
+
*/
|
|
22
|
+
initialize(config?: DatabaseConfig): void;
|
|
23
|
+
/**
|
|
24
|
+
* Initialize database schema
|
|
25
|
+
*/
|
|
26
|
+
private initializeSchema;
|
|
27
|
+
/**
|
|
28
|
+
* Register custom SQL functions for similarity calculations
|
|
29
|
+
*/
|
|
30
|
+
private registerCustomFunctions;
|
|
31
|
+
/**
|
|
32
|
+
* Calculate L2 norm of a vector
|
|
33
|
+
*/
|
|
34
|
+
private calculateNorm;
|
|
35
|
+
/**
|
|
36
|
+
* Serialize embedding to Uint8Array (binary format)
|
|
37
|
+
*/
|
|
38
|
+
private serializeEmbedding;
|
|
39
|
+
/**
|
|
40
|
+
* Deserialize embedding from Uint8Array
|
|
41
|
+
*/
|
|
42
|
+
private deserializeEmbedding;
|
|
43
|
+
/**
|
|
44
|
+
* Generate unique ID
|
|
45
|
+
*/
|
|
46
|
+
private generateId;
|
|
47
|
+
/**
|
|
48
|
+
* Insert a single vector
|
|
49
|
+
*/
|
|
50
|
+
insert(vector: Vector): string;
|
|
51
|
+
/**
|
|
52
|
+
* Insert multiple vectors in a transaction with optimized batch processing
|
|
53
|
+
* Performance improvements:
|
|
54
|
+
* - Single transaction for all inserts
|
|
55
|
+
* - Prepared statement created once and reused
|
|
56
|
+
* - No wrapper function overhead
|
|
57
|
+
* - Chunked processing for large batches
|
|
58
|
+
*/
|
|
59
|
+
insertBatch(vectors: Vector[]): string[];
|
|
60
|
+
/**
|
|
61
|
+
* Search for k-nearest neighbors
|
|
62
|
+
*/
|
|
63
|
+
search(queryEmbedding: number[], k?: number, metric?: SimilarityMetric, threshold?: number): SearchResult[];
|
|
64
|
+
/**
|
|
65
|
+
* Get vector by ID
|
|
66
|
+
*/
|
|
67
|
+
get(id: string): Vector | null;
|
|
68
|
+
/**
|
|
69
|
+
* Delete vector by ID
|
|
70
|
+
*/
|
|
71
|
+
delete(id: string): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Get database statistics
|
|
74
|
+
*/
|
|
75
|
+
stats(): {
|
|
76
|
+
count: number;
|
|
77
|
+
size: number;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Export database to binary format (for persistence)
|
|
81
|
+
*/
|
|
82
|
+
export(): Uint8Array;
|
|
83
|
+
/**
|
|
84
|
+
* Import database from binary format
|
|
85
|
+
*/
|
|
86
|
+
importAsync(data: Uint8Array): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Close database and cleanup resources
|
|
89
|
+
*/
|
|
90
|
+
close(): void;
|
|
91
|
+
/**
|
|
92
|
+
* Check if backend is initialized
|
|
93
|
+
*/
|
|
94
|
+
isInitialized(): boolean;
|
|
95
|
+
}
|