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,600 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* VectorQueryBuilder - Fluent API for building complex vector search queries
|
|
4
|
+
* Provides type-safe filtering, sorting, and pagination with SQL injection protection
|
|
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
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
43
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
44
|
+
if (ar || !(i in from)) {
|
|
45
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
46
|
+
ar[i] = from[i];
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
50
|
+
};
|
|
51
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
|
+
exports.VectorQueryBuilder = void 0;
|
|
53
|
+
/**
|
|
54
|
+
* VectorQueryBuilder - Fluent API for complex vector queries
|
|
55
|
+
*
|
|
56
|
+
* @template T - Type of metadata object
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* const results = await db.query()
|
|
61
|
+
* .similarTo(queryVector)
|
|
62
|
+
* .where('metadata.category', '=', 'tech')
|
|
63
|
+
* .whereBetween('metadata.year', 2020, 2024)
|
|
64
|
+
* .orderBySimilarity('asc')
|
|
65
|
+
* .limit(10)
|
|
66
|
+
* .execute();
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
var VectorQueryBuilder = /** @class */ (function () {
|
|
70
|
+
function VectorQueryBuilder(db) {
|
|
71
|
+
this.k = 10;
|
|
72
|
+
this.filters = [];
|
|
73
|
+
this.orders = [];
|
|
74
|
+
this.offsetValue = 0;
|
|
75
|
+
this.metric = 'cosine';
|
|
76
|
+
this.threshold = 0.0;
|
|
77
|
+
this.db = db;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Search for vectors similar to the given vector
|
|
81
|
+
*
|
|
82
|
+
* @param vector - Query vector
|
|
83
|
+
* @param k - Number of results to retrieve (default: 10)
|
|
84
|
+
* @returns this for chaining
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```typescript
|
|
88
|
+
* db.query().similarTo([0.1, 0.2, 0.3], 5)
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
VectorQueryBuilder.prototype.similarTo = function (vector, k) {
|
|
92
|
+
this.queryVector = vector;
|
|
93
|
+
if (k !== undefined) {
|
|
94
|
+
this.k = k;
|
|
95
|
+
}
|
|
96
|
+
return this;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Search for vectors similar to a vector already in the database
|
|
100
|
+
*
|
|
101
|
+
* @param id - ID of the reference vector
|
|
102
|
+
* @param k - Number of results to retrieve (default: 10)
|
|
103
|
+
* @returns this for chaining
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* db.query().similarToId('vector-123', 5)
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
VectorQueryBuilder.prototype.similarToId = function (id, k) {
|
|
111
|
+
this.queryId = id;
|
|
112
|
+
if (k !== undefined) {
|
|
113
|
+
this.k = k;
|
|
114
|
+
}
|
|
115
|
+
return this;
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* Add a filter condition
|
|
119
|
+
*
|
|
120
|
+
* @param field - Field name (use 'metadata.field' for metadata)
|
|
121
|
+
* @param op - Comparison operator
|
|
122
|
+
* @param value - Value to compare against
|
|
123
|
+
* @returns this for chaining
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```typescript
|
|
127
|
+
* db.query()
|
|
128
|
+
* .similarTo(vector)
|
|
129
|
+
* .where('metadata.category', '=', 'tech')
|
|
130
|
+
* .where('metadata.year', '>', 2020)
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
133
|
+
VectorQueryBuilder.prototype.where = function (field, op, value) {
|
|
134
|
+
var isMetadata = field.startsWith('metadata.');
|
|
135
|
+
this.filters.push({
|
|
136
|
+
field: isMetadata ? field.substring(9) : field, // Remove 'metadata.' prefix
|
|
137
|
+
operator: op,
|
|
138
|
+
value: value,
|
|
139
|
+
isMetadata: isMetadata
|
|
140
|
+
});
|
|
141
|
+
return this;
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* Filter where field is IN a set of values
|
|
145
|
+
*
|
|
146
|
+
* @param field - Field name
|
|
147
|
+
* @param values - Array of values
|
|
148
|
+
* @returns this for chaining
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```typescript
|
|
152
|
+
* db.query()
|
|
153
|
+
* .similarTo(vector)
|
|
154
|
+
* .whereIn('metadata.tags', ['typescript', 'javascript'])
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
VectorQueryBuilder.prototype.whereIn = function (field, values) {
|
|
158
|
+
return this.where(field, 'IN', values);
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* Filter where field is between min and max (inclusive)
|
|
162
|
+
*
|
|
163
|
+
* @param field - Field name
|
|
164
|
+
* @param min - Minimum value
|
|
165
|
+
* @param max - Maximum value
|
|
166
|
+
* @returns this for chaining
|
|
167
|
+
*
|
|
168
|
+
* @example
|
|
169
|
+
* ```typescript
|
|
170
|
+
* db.query()
|
|
171
|
+
* .similarTo(vector)
|
|
172
|
+
* .whereBetween('metadata.year', 2020, 2024)
|
|
173
|
+
* ```
|
|
174
|
+
*/
|
|
175
|
+
VectorQueryBuilder.prototype.whereBetween = function (field, min, max) {
|
|
176
|
+
this.where(field, '>=', min);
|
|
177
|
+
this.where(field, '<=', max);
|
|
178
|
+
return this;
|
|
179
|
+
};
|
|
180
|
+
/**
|
|
181
|
+
* Filter metadata field (alias for where with 'metadata.' prefix)
|
|
182
|
+
*
|
|
183
|
+
* @param path - Metadata field path
|
|
184
|
+
* @param op - Comparison operator
|
|
185
|
+
* @param value - Value to compare against
|
|
186
|
+
* @returns this for chaining
|
|
187
|
+
*
|
|
188
|
+
* @example
|
|
189
|
+
* ```typescript
|
|
190
|
+
* db.query()
|
|
191
|
+
* .similarTo(vector)
|
|
192
|
+
* .whereMetadata('author.verified', '=', true)
|
|
193
|
+
* ```
|
|
194
|
+
*/
|
|
195
|
+
VectorQueryBuilder.prototype.whereMetadata = function (path, op, value) {
|
|
196
|
+
return this.where("metadata.".concat(path), op, value);
|
|
197
|
+
};
|
|
198
|
+
/**
|
|
199
|
+
* Set similarity metric
|
|
200
|
+
*
|
|
201
|
+
* @param metric - Similarity metric ('cosine', 'euclidean', 'dot')
|
|
202
|
+
* @returns this for chaining
|
|
203
|
+
*
|
|
204
|
+
* @example
|
|
205
|
+
* ```typescript
|
|
206
|
+
* db.query().similarTo(vector).useSimilarityMetric('euclidean')
|
|
207
|
+
* ```
|
|
208
|
+
*/
|
|
209
|
+
VectorQueryBuilder.prototype.useSimilarityMetric = function (metric) {
|
|
210
|
+
this.metric = metric;
|
|
211
|
+
return this;
|
|
212
|
+
};
|
|
213
|
+
/**
|
|
214
|
+
* Set minimum similarity threshold
|
|
215
|
+
*
|
|
216
|
+
* @param threshold - Minimum score threshold
|
|
217
|
+
* @returns this for chaining
|
|
218
|
+
*
|
|
219
|
+
* @example
|
|
220
|
+
* ```typescript
|
|
221
|
+
* db.query().similarTo(vector).withThreshold(0.7)
|
|
222
|
+
* ```
|
|
223
|
+
*/
|
|
224
|
+
VectorQueryBuilder.prototype.withThreshold = function (threshold) {
|
|
225
|
+
this.threshold = threshold;
|
|
226
|
+
return this;
|
|
227
|
+
};
|
|
228
|
+
/**
|
|
229
|
+
* Order results by a field
|
|
230
|
+
*
|
|
231
|
+
* @param field - Field name
|
|
232
|
+
* @param direction - Sort direction ('asc' or 'desc')
|
|
233
|
+
* @returns this for chaining
|
|
234
|
+
*
|
|
235
|
+
* @example
|
|
236
|
+
* ```typescript
|
|
237
|
+
* db.query()
|
|
238
|
+
* .similarTo(vector)
|
|
239
|
+
* .orderBy('metadata.timestamp', 'desc')
|
|
240
|
+
* ```
|
|
241
|
+
*/
|
|
242
|
+
VectorQueryBuilder.prototype.orderBy = function (field, direction) {
|
|
243
|
+
if (direction === void 0) { direction = 'asc'; }
|
|
244
|
+
this.orders.push({
|
|
245
|
+
field: field,
|
|
246
|
+
direction: direction,
|
|
247
|
+
bySimilarity: false
|
|
248
|
+
});
|
|
249
|
+
return this;
|
|
250
|
+
};
|
|
251
|
+
/**
|
|
252
|
+
* Order results by similarity score
|
|
253
|
+
*
|
|
254
|
+
* @param direction - Sort direction ('asc' or 'desc', default: 'desc')
|
|
255
|
+
* @returns this for chaining
|
|
256
|
+
*
|
|
257
|
+
* @example
|
|
258
|
+
* ```typescript
|
|
259
|
+
* db.query()
|
|
260
|
+
* .similarTo(vector)
|
|
261
|
+
* .orderBySimilarity('asc') // Least similar first
|
|
262
|
+
* ```
|
|
263
|
+
*/
|
|
264
|
+
VectorQueryBuilder.prototype.orderBySimilarity = function (direction) {
|
|
265
|
+
if (direction === void 0) { direction = 'desc'; }
|
|
266
|
+
this.orders.push({
|
|
267
|
+
field: 'score',
|
|
268
|
+
direction: direction,
|
|
269
|
+
bySimilarity: true
|
|
270
|
+
});
|
|
271
|
+
return this;
|
|
272
|
+
};
|
|
273
|
+
/**
|
|
274
|
+
* Limit number of results
|
|
275
|
+
*
|
|
276
|
+
* @param n - Maximum number of results
|
|
277
|
+
* @returns this for chaining
|
|
278
|
+
*
|
|
279
|
+
* @example
|
|
280
|
+
* ```typescript
|
|
281
|
+
* db.query().similarTo(vector).limit(10)
|
|
282
|
+
* ```
|
|
283
|
+
*/
|
|
284
|
+
VectorQueryBuilder.prototype.limit = function (n) {
|
|
285
|
+
if (n < 0) {
|
|
286
|
+
throw new Error('Limit must be non-negative');
|
|
287
|
+
}
|
|
288
|
+
this.limitValue = n;
|
|
289
|
+
return this;
|
|
290
|
+
};
|
|
291
|
+
/**
|
|
292
|
+
* Skip first n results
|
|
293
|
+
*
|
|
294
|
+
* @param n - Number of results to skip
|
|
295
|
+
* @returns this for chaining
|
|
296
|
+
*
|
|
297
|
+
* @example
|
|
298
|
+
* ```typescript
|
|
299
|
+
* db.query().similarTo(vector).offset(20).limit(10) // Get results 21-30
|
|
300
|
+
* ```
|
|
301
|
+
*/
|
|
302
|
+
VectorQueryBuilder.prototype.offset = function (n) {
|
|
303
|
+
if (n < 0) {
|
|
304
|
+
throw new Error('Offset must be non-negative');
|
|
305
|
+
}
|
|
306
|
+
this.offsetValue = n;
|
|
307
|
+
return this;
|
|
308
|
+
};
|
|
309
|
+
/**
|
|
310
|
+
* Alias for offset
|
|
311
|
+
*/
|
|
312
|
+
VectorQueryBuilder.prototype.skip = function (n) {
|
|
313
|
+
return this.offset(n);
|
|
314
|
+
};
|
|
315
|
+
/**
|
|
316
|
+
* Alias for limit
|
|
317
|
+
*/
|
|
318
|
+
VectorQueryBuilder.prototype.take = function (n) {
|
|
319
|
+
return this.limit(n);
|
|
320
|
+
};
|
|
321
|
+
/**
|
|
322
|
+
* Execute raw SQL query (advanced usage)
|
|
323
|
+
*
|
|
324
|
+
* @param sql - Raw SQL query
|
|
325
|
+
* @param params - Query parameters
|
|
326
|
+
* @returns this for chaining
|
|
327
|
+
*
|
|
328
|
+
* @example
|
|
329
|
+
* ```typescript
|
|
330
|
+
* db.query()
|
|
331
|
+
* .raw('SELECT * FROM vectors WHERE metadata->>"$.category" = ?', ['tech'])
|
|
332
|
+
* .execute()
|
|
333
|
+
* ```
|
|
334
|
+
*/
|
|
335
|
+
VectorQueryBuilder.prototype.raw = function (sql, params) {
|
|
336
|
+
this.rawSQL = sql;
|
|
337
|
+
this.rawParams = params;
|
|
338
|
+
return this;
|
|
339
|
+
};
|
|
340
|
+
/**
|
|
341
|
+
* Type-safe metadata wrapper
|
|
342
|
+
*
|
|
343
|
+
* @returns QueryBuilder with typed metadata
|
|
344
|
+
*
|
|
345
|
+
* @example
|
|
346
|
+
* ```typescript
|
|
347
|
+
* interface BlogPost {
|
|
348
|
+
* title: string;
|
|
349
|
+
* author: string;
|
|
350
|
+
* }
|
|
351
|
+
*
|
|
352
|
+
* const posts = await db.query()
|
|
353
|
+
* .withMetadata<BlogPost>()
|
|
354
|
+
* .similarTo(vector)
|
|
355
|
+
* .execute();
|
|
356
|
+
*
|
|
357
|
+
* // posts[0].metadata.title is typed as string
|
|
358
|
+
* ```
|
|
359
|
+
*/
|
|
360
|
+
VectorQueryBuilder.prototype.withMetadata = function () {
|
|
361
|
+
return this;
|
|
362
|
+
};
|
|
363
|
+
/**
|
|
364
|
+
* Execute the query and return all results
|
|
365
|
+
*
|
|
366
|
+
* @returns Promise resolving to array of search results
|
|
367
|
+
*
|
|
368
|
+
* @example
|
|
369
|
+
* ```typescript
|
|
370
|
+
* const results = await db.query()
|
|
371
|
+
* .similarTo(vector)
|
|
372
|
+
* .where('metadata.category', '=', 'tech')
|
|
373
|
+
* .limit(10)
|
|
374
|
+
* .execute();
|
|
375
|
+
* ```
|
|
376
|
+
*/
|
|
377
|
+
VectorQueryBuilder.prototype.execute = function () {
|
|
378
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
379
|
+
var vector, refVector, results;
|
|
380
|
+
return __generator(this, function (_a) {
|
|
381
|
+
// If raw SQL is provided, use it (advanced usage)
|
|
382
|
+
if (this.rawSQL) {
|
|
383
|
+
return [2 /*return*/, this.executeRaw()];
|
|
384
|
+
}
|
|
385
|
+
vector = this.queryVector;
|
|
386
|
+
if (this.queryId) {
|
|
387
|
+
refVector = this.db.get(this.queryId);
|
|
388
|
+
if (!refVector) {
|
|
389
|
+
throw new Error("Vector with ID ".concat(this.queryId, " not found"));
|
|
390
|
+
}
|
|
391
|
+
vector = refVector.embedding;
|
|
392
|
+
}
|
|
393
|
+
if (!vector) {
|
|
394
|
+
throw new Error('Must specify query vector using similarTo() or similarToId()');
|
|
395
|
+
}
|
|
396
|
+
results = this.db.search(vector, this.k, this.metric, this.threshold);
|
|
397
|
+
// Apply filters
|
|
398
|
+
results = this.applyFilters(results);
|
|
399
|
+
// Apply sorting
|
|
400
|
+
results = this.applySorting(results);
|
|
401
|
+
// Apply pagination
|
|
402
|
+
results = this.applyPagination(results);
|
|
403
|
+
return [2 /*return*/, results];
|
|
404
|
+
});
|
|
405
|
+
});
|
|
406
|
+
};
|
|
407
|
+
/**
|
|
408
|
+
* Execute query and return first result
|
|
409
|
+
*
|
|
410
|
+
* @returns Promise resolving to first result or null
|
|
411
|
+
*
|
|
412
|
+
* @example
|
|
413
|
+
* ```typescript
|
|
414
|
+
* const best = await db.query()
|
|
415
|
+
* .similarTo(vector)
|
|
416
|
+
* .first();
|
|
417
|
+
* ```
|
|
418
|
+
*/
|
|
419
|
+
VectorQueryBuilder.prototype.first = function () {
|
|
420
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
421
|
+
var results;
|
|
422
|
+
return __generator(this, function (_a) {
|
|
423
|
+
switch (_a.label) {
|
|
424
|
+
case 0: return [4 /*yield*/, this.limit(1).execute()];
|
|
425
|
+
case 1:
|
|
426
|
+
results = _a.sent();
|
|
427
|
+
return [2 /*return*/, results.length > 0 ? results[0] : null];
|
|
428
|
+
}
|
|
429
|
+
});
|
|
430
|
+
});
|
|
431
|
+
};
|
|
432
|
+
/**
|
|
433
|
+
* Count results without retrieving them
|
|
434
|
+
*
|
|
435
|
+
* @returns Promise resolving to count
|
|
436
|
+
*
|
|
437
|
+
* @example
|
|
438
|
+
* ```typescript
|
|
439
|
+
* const count = await db.query()
|
|
440
|
+
* .similarTo(vector)
|
|
441
|
+
* .where('metadata.category', '=', 'tech')
|
|
442
|
+
* .count();
|
|
443
|
+
* ```
|
|
444
|
+
*/
|
|
445
|
+
VectorQueryBuilder.prototype.count = function () {
|
|
446
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
447
|
+
var results;
|
|
448
|
+
return __generator(this, function (_a) {
|
|
449
|
+
switch (_a.label) {
|
|
450
|
+
case 0: return [4 /*yield*/, this.execute()];
|
|
451
|
+
case 1:
|
|
452
|
+
results = _a.sent();
|
|
453
|
+
return [2 /*return*/, results.length];
|
|
454
|
+
}
|
|
455
|
+
});
|
|
456
|
+
});
|
|
457
|
+
};
|
|
458
|
+
/**
|
|
459
|
+
* Apply filters to results
|
|
460
|
+
*/
|
|
461
|
+
VectorQueryBuilder.prototype.applyFilters = function (results) {
|
|
462
|
+
var _this = this;
|
|
463
|
+
if (this.filters.length === 0) {
|
|
464
|
+
return results;
|
|
465
|
+
}
|
|
466
|
+
return results.filter(function (result) {
|
|
467
|
+
return _this.filters.every(function (filter) {
|
|
468
|
+
var value = filter.isMetadata
|
|
469
|
+
? _this.getNestedValue(result.metadata, filter.field)
|
|
470
|
+
: result[filter.field];
|
|
471
|
+
return _this.matchesCondition(value, filter.operator, filter.value);
|
|
472
|
+
});
|
|
473
|
+
});
|
|
474
|
+
};
|
|
475
|
+
/**
|
|
476
|
+
* Get nested object value by path
|
|
477
|
+
*/
|
|
478
|
+
VectorQueryBuilder.prototype.getNestedValue = function (obj, path) {
|
|
479
|
+
if (!obj)
|
|
480
|
+
return undefined;
|
|
481
|
+
var parts = path.split('.');
|
|
482
|
+
var current = obj;
|
|
483
|
+
for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {
|
|
484
|
+
var part = parts_1[_i];
|
|
485
|
+
if (current === undefined || current === null) {
|
|
486
|
+
return undefined;
|
|
487
|
+
}
|
|
488
|
+
current = current[part];
|
|
489
|
+
}
|
|
490
|
+
return current;
|
|
491
|
+
};
|
|
492
|
+
/**
|
|
493
|
+
* Check if value matches condition
|
|
494
|
+
*/
|
|
495
|
+
VectorQueryBuilder.prototype.matchesCondition = function (value, operator, target) {
|
|
496
|
+
if (value === undefined || value === null) {
|
|
497
|
+
return operator === '!=' && target !== undefined && target !== null;
|
|
498
|
+
}
|
|
499
|
+
switch (operator) {
|
|
500
|
+
case '=':
|
|
501
|
+
return value === target;
|
|
502
|
+
case '!=':
|
|
503
|
+
return value !== target;
|
|
504
|
+
case '>':
|
|
505
|
+
return value > target;
|
|
506
|
+
case '>=':
|
|
507
|
+
return value >= target;
|
|
508
|
+
case '<':
|
|
509
|
+
return value < target;
|
|
510
|
+
case '<=':
|
|
511
|
+
return value <= target;
|
|
512
|
+
case 'LIKE':
|
|
513
|
+
if (typeof value !== 'string' || typeof target !== 'string') {
|
|
514
|
+
return false;
|
|
515
|
+
}
|
|
516
|
+
var pattern = target.replace(/%/g, '.*').replace(/_/g, '.');
|
|
517
|
+
return new RegExp("^".concat(pattern, "$"), 'i').test(value);
|
|
518
|
+
case 'IN':
|
|
519
|
+
if (!Array.isArray(target)) {
|
|
520
|
+
throw new Error('IN operator requires array value');
|
|
521
|
+
}
|
|
522
|
+
return target.includes(value);
|
|
523
|
+
default:
|
|
524
|
+
return false;
|
|
525
|
+
}
|
|
526
|
+
};
|
|
527
|
+
/**
|
|
528
|
+
* Apply sorting to results
|
|
529
|
+
*/
|
|
530
|
+
VectorQueryBuilder.prototype.applySorting = function (results) {
|
|
531
|
+
var _this = this;
|
|
532
|
+
if (this.orders.length === 0) {
|
|
533
|
+
return results;
|
|
534
|
+
}
|
|
535
|
+
return __spreadArray([], results, true).sort(function (a, b) {
|
|
536
|
+
for (var _i = 0, _a = _this.orders; _i < _a.length; _i++) {
|
|
537
|
+
var order = _a[_i];
|
|
538
|
+
var aVal = void 0;
|
|
539
|
+
var bVal = void 0;
|
|
540
|
+
if (order.bySimilarity) {
|
|
541
|
+
aVal = a.score;
|
|
542
|
+
bVal = b.score;
|
|
543
|
+
}
|
|
544
|
+
else if (order.field.startsWith('metadata.')) {
|
|
545
|
+
var field = order.field.substring(9);
|
|
546
|
+
aVal = _this.getNestedValue(a.metadata, field);
|
|
547
|
+
bVal = _this.getNestedValue(b.metadata, field);
|
|
548
|
+
}
|
|
549
|
+
else {
|
|
550
|
+
aVal = a[order.field];
|
|
551
|
+
bVal = b[order.field];
|
|
552
|
+
}
|
|
553
|
+
// Handle null/undefined
|
|
554
|
+
if (aVal === undefined || aVal === null) {
|
|
555
|
+
return order.direction === 'asc' ? 1 : -1;
|
|
556
|
+
}
|
|
557
|
+
if (bVal === undefined || bVal === null) {
|
|
558
|
+
return order.direction === 'asc' ? -1 : 1;
|
|
559
|
+
}
|
|
560
|
+
// Compare values
|
|
561
|
+
var comparison = 0;
|
|
562
|
+
if (aVal < bVal)
|
|
563
|
+
comparison = -1;
|
|
564
|
+
else if (aVal > bVal)
|
|
565
|
+
comparison = 1;
|
|
566
|
+
if (comparison !== 0) {
|
|
567
|
+
return order.direction === 'asc' ? comparison : -comparison;
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
return 0;
|
|
571
|
+
});
|
|
572
|
+
};
|
|
573
|
+
/**
|
|
574
|
+
* Apply pagination to results
|
|
575
|
+
*/
|
|
576
|
+
VectorQueryBuilder.prototype.applyPagination = function (results) {
|
|
577
|
+
var paginated = results;
|
|
578
|
+
if (this.offsetValue > 0) {
|
|
579
|
+
paginated = paginated.slice(this.offsetValue);
|
|
580
|
+
}
|
|
581
|
+
if (this.limitValue !== undefined) {
|
|
582
|
+
paginated = paginated.slice(0, this.limitValue);
|
|
583
|
+
}
|
|
584
|
+
return paginated;
|
|
585
|
+
};
|
|
586
|
+
/**
|
|
587
|
+
* Execute raw SQL query (advanced)
|
|
588
|
+
*/
|
|
589
|
+
VectorQueryBuilder.prototype.executeRaw = function () {
|
|
590
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
591
|
+
return __generator(this, function (_a) {
|
|
592
|
+
// This would require direct database access
|
|
593
|
+
// For now, throw an error - can be implemented later with backend support
|
|
594
|
+
throw new Error('Raw SQL queries not yet implemented. Use standard query methods.');
|
|
595
|
+
});
|
|
596
|
+
});
|
|
597
|
+
};
|
|
598
|
+
return VectorQueryBuilder;
|
|
599
|
+
}());
|
|
600
|
+
exports.VectorQueryBuilder = VectorQueryBuilder;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Template library for common learning algorithms
|
|
3
|
+
*/
|
|
4
|
+
export interface Template {
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
algorithm: string;
|
|
8
|
+
useCase: string;
|
|
9
|
+
config: any;
|
|
10
|
+
}
|
|
11
|
+
export declare function getAvailableTemplates(): Promise<Template[]>;
|
|
12
|
+
export declare function getTemplateConfig(name: string): Promise<any>;
|
|
13
|
+
export declare function getTemplate(name: string): Promise<Template | undefined>;
|
|
14
|
+
//# sourceMappingURL=templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/cli/templates.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC;CACb;AAmKD,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAEjE;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAMlE;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAE7E"}
|