agentdb 2.0.0-alpha.2 → 2.0.0-alpha.2.2
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/dist/agentdb.min.js +4 -4
- package/dist/simulation/cli.js +0 -0
- package/dist/src/cli/agentdb-cli.d.ts.map +1 -1
- package/dist/src/cli/agentdb-cli.js +78 -0
- package/dist/src/cli/agentdb-cli.js.map +1 -1
- package/dist/src/cli/commands/init.js +3 -3
- package/dist/src/cli/commands/init.js.map +1 -1
- package/package.json +3 -3
- package/src/cli/agentdb-cli.ts +78 -0
- package/src/cli/commands/init.ts +3 -3
- package/dist/agentdb-advanced.js +0 -2110
- package/dist/agentdb-advanced.min.js +0 -1
- package/dist/backends/GraphBackend.d.ts +0 -196
- package/dist/backends/GraphBackend.d.ts.map +0 -1
- package/dist/backends/GraphBackend.js +0 -33
- package/dist/backends/GraphBackend.js.map +0 -1
- package/dist/backends/LearningBackend.d.ts +0 -148
- package/dist/backends/LearningBackend.d.ts.map +0 -1
- package/dist/backends/LearningBackend.js +0 -27
- package/dist/backends/LearningBackend.js.map +0 -1
- package/dist/backends/VectorBackend.d.ts +0 -119
- package/dist/backends/VectorBackend.d.ts.map +0 -1
- package/dist/backends/VectorBackend.js +0 -14
- package/dist/backends/VectorBackend.js.map +0 -1
- package/dist/backends/detector.d.ts +0 -81
- package/dist/backends/detector.d.ts.map +0 -1
- package/dist/backends/detector.js +0 -192
- package/dist/backends/detector.js.map +0 -1
- package/dist/backends/factory.d.ts +0 -50
- package/dist/backends/factory.d.ts.map +0 -1
- package/dist/backends/factory.js +0 -161
- package/dist/backends/factory.js.map +0 -1
- package/dist/backends/graph/GraphDatabaseAdapter.d.ts +0 -139
- package/dist/backends/graph/GraphDatabaseAdapter.d.ts.map +0 -1
- package/dist/backends/graph/GraphDatabaseAdapter.js +0 -194
- package/dist/backends/graph/GraphDatabaseAdapter.js.map +0 -1
- package/dist/backends/hnswlib/HNSWLibBackend.d.ts +0 -92
- package/dist/backends/hnswlib/HNSWLibBackend.d.ts.map +0 -1
- package/dist/backends/hnswlib/HNSWLibBackend.js +0 -316
- package/dist/backends/hnswlib/HNSWLibBackend.js.map +0 -1
- package/dist/backends/hnswlib/index.d.ts +0 -7
- package/dist/backends/hnswlib/index.d.ts.map +0 -1
- package/dist/backends/hnswlib/index.js +0 -7
- package/dist/backends/hnswlib/index.js.map +0 -1
- package/dist/backends/index.d.ts +0 -14
- package/dist/backends/index.d.ts.map +0 -1
- package/dist/backends/index.js +0 -13
- package/dist/backends/index.js.map +0 -1
- package/dist/backends/ruvector/RuVectorBackend.d.ts +0 -75
- package/dist/backends/ruvector/RuVectorBackend.d.ts.map +0 -1
- package/dist/backends/ruvector/RuVectorBackend.js +0 -198
- package/dist/backends/ruvector/RuVectorBackend.js.map +0 -1
- package/dist/backends/ruvector/RuVectorLearning.d.ts +0 -104
- package/dist/backends/ruvector/RuVectorLearning.d.ts.map +0 -1
- package/dist/backends/ruvector/RuVectorLearning.js +0 -177
- package/dist/backends/ruvector/RuVectorLearning.js.map +0 -1
- package/dist/backends/ruvector/index.d.ts +0 -9
- package/dist/backends/ruvector/index.d.ts.map +0 -1
- package/dist/backends/ruvector/index.js +0 -8
- package/dist/backends/ruvector/index.js.map +0 -1
- package/dist/benchmarks/wasm-vector-benchmark.d.ts +0 -10
- package/dist/benchmarks/wasm-vector-benchmark.d.ts.map +0 -1
- package/dist/benchmarks/wasm-vector-benchmark.js +0 -196
- package/dist/benchmarks/wasm-vector-benchmark.js.map +0 -1
- package/dist/browser/AdvancedFeatures.d.ts +0 -144
- package/dist/browser/AdvancedFeatures.d.ts.map +0 -1
- package/dist/browser/AdvancedFeatures.js +0 -430
- package/dist/browser/AdvancedFeatures.js.map +0 -1
- package/dist/browser/HNSWIndex.d.ts +0 -117
- package/dist/browser/HNSWIndex.d.ts.map +0 -1
- package/dist/browser/HNSWIndex.js +0 -402
- package/dist/browser/HNSWIndex.js.map +0 -1
- package/dist/browser/ProductQuantization.d.ts +0 -107
- package/dist/browser/ProductQuantization.d.ts.map +0 -1
- package/dist/browser/ProductQuantization.js +0 -337
- package/dist/browser/ProductQuantization.js.map +0 -1
- package/dist/browser/browser/AdvancedFeatures.d.ts +0 -144
- package/dist/browser/browser/AdvancedFeatures.d.ts.map +0 -1
- package/dist/browser/browser/AdvancedFeatures.js +0 -427
- package/dist/browser/browser/HNSWIndex.d.ts +0 -117
- package/dist/browser/browser/HNSWIndex.d.ts.map +0 -1
- package/dist/browser/browser/HNSWIndex.js +0 -402
- package/dist/browser/browser/ProductQuantization.d.ts +0 -107
- package/dist/browser/browser/ProductQuantization.d.ts.map +0 -1
- package/dist/browser/browser/ProductQuantization.js +0 -348
- package/dist/browser/browser/index.d.ts +0 -223
- package/dist/browser/browser/index.d.ts.map +0 -1
- package/dist/browser/browser/index.js +0 -233
- package/dist/browser/index.d.ts +0 -223
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/index.js +0 -225
- package/dist/browser/index.js.map +0 -1
- package/dist/cli/agentdb-cli.d.ts +0 -154
- package/dist/cli/agentdb-cli.d.ts.map +0 -1
- package/dist/cli/agentdb-cli.js +0 -2273
- package/dist/cli/agentdb-cli.js.map +0 -1
- package/dist/cli/agentdb.db +0 -0
- package/dist/cli/commands/init.d.ts +0 -12
- package/dist/cli/commands/init.d.ts.map +0 -1
- package/dist/cli/commands/init.js +0 -115
- package/dist/cli/commands/init.js.map +0 -1
- package/dist/cli/commands/install-embeddings.d.ts +0 -10
- package/dist/cli/commands/install-embeddings.d.ts.map +0 -1
- package/dist/cli/commands/install-embeddings.js +0 -68
- package/dist/cli/commands/install-embeddings.js.map +0 -1
- package/dist/cli/commands/migrate.d.ts +0 -15
- package/dist/cli/commands/migrate.d.ts.map +0 -1
- package/dist/cli/commands/migrate.js +0 -425
- package/dist/cli/commands/migrate.js.map +0 -1
- package/dist/cli/commands/status.d.ts +0 -10
- package/dist/cli/commands/status.d.ts.map +0 -1
- package/dist/cli/commands/status.js +0 -129
- package/dist/cli/commands/status.js.map +0 -1
- package/dist/controllers/CausalMemoryGraph.d.ts +0 -126
- package/dist/controllers/CausalMemoryGraph.d.ts.map +0 -1
- package/dist/controllers/CausalMemoryGraph.js +0 -323
- package/dist/controllers/CausalMemoryGraph.js.map +0 -1
- package/dist/controllers/CausalRecall.d.ts +0 -139
- package/dist/controllers/CausalRecall.d.ts.map +0 -1
- package/dist/controllers/CausalRecall.js +0 -356
- package/dist/controllers/CausalRecall.js.map +0 -1
- package/dist/controllers/ContextSynthesizer.d.ts +0 -65
- package/dist/controllers/ContextSynthesizer.d.ts.map +0 -1
- package/dist/controllers/ContextSynthesizer.js +0 -208
- package/dist/controllers/ContextSynthesizer.js.map +0 -1
- package/dist/controllers/EmbeddingService.d.ts +0 -37
- package/dist/controllers/EmbeddingService.d.ts.map +0 -1
- package/dist/controllers/EmbeddingService.js +0 -136
- package/dist/controllers/EmbeddingService.js.map +0 -1
- package/dist/controllers/EnhancedEmbeddingService.d.ts +0 -50
- package/dist/controllers/EnhancedEmbeddingService.d.ts.map +0 -1
- package/dist/controllers/EnhancedEmbeddingService.js +0 -119
- package/dist/controllers/EnhancedEmbeddingService.js.map +0 -1
- package/dist/controllers/ExplainableRecall.d.ts +0 -163
- package/dist/controllers/ExplainableRecall.d.ts.map +0 -1
- package/dist/controllers/ExplainableRecall.js +0 -485
- package/dist/controllers/ExplainableRecall.js.map +0 -1
- package/dist/controllers/HNSWIndex.d.ts +0 -128
- package/dist/controllers/HNSWIndex.d.ts.map +0 -1
- package/dist/controllers/HNSWIndex.js +0 -361
- package/dist/controllers/HNSWIndex.js.map +0 -1
- package/dist/controllers/LearningSystem.d.ts +0 -195
- package/dist/controllers/LearningSystem.d.ts.map +0 -1
- package/dist/controllers/LearningSystem.js +0 -929
- package/dist/controllers/LearningSystem.js.map +0 -1
- package/dist/controllers/MMRDiversityRanker.d.ts +0 -50
- package/dist/controllers/MMRDiversityRanker.d.ts.map +0 -1
- package/dist/controllers/MMRDiversityRanker.js +0 -130
- package/dist/controllers/MMRDiversityRanker.js.map +0 -1
- package/dist/controllers/MetadataFilter.d.ts +0 -70
- package/dist/controllers/MetadataFilter.d.ts.map +0 -1
- package/dist/controllers/MetadataFilter.js +0 -243
- package/dist/controllers/MetadataFilter.js.map +0 -1
- package/dist/controllers/NightlyLearner.d.ts +0 -114
- package/dist/controllers/NightlyLearner.d.ts.map +0 -1
- package/dist/controllers/NightlyLearner.js +0 -394
- package/dist/controllers/NightlyLearner.js.map +0 -1
- package/dist/controllers/QUICClient.d.ts +0 -109
- package/dist/controllers/QUICClient.d.ts.map +0 -1
- package/dist/controllers/QUICClient.js +0 -299
- package/dist/controllers/QUICClient.js.map +0 -1
- package/dist/controllers/QUICServer.d.ts +0 -121
- package/dist/controllers/QUICServer.d.ts.map +0 -1
- package/dist/controllers/QUICServer.js +0 -383
- package/dist/controllers/QUICServer.js.map +0 -1
- package/dist/controllers/ReasoningBank.d.ts +0 -196
- package/dist/controllers/ReasoningBank.d.ts.map +0 -1
- package/dist/controllers/ReasoningBank.js +0 -494
- package/dist/controllers/ReasoningBank.js.map +0 -1
- package/dist/controllers/ReflexionMemory.d.ts +0 -125
- package/dist/controllers/ReflexionMemory.d.ts.map +0 -1
- package/dist/controllers/ReflexionMemory.js +0 -521
- package/dist/controllers/ReflexionMemory.js.map +0 -1
- package/dist/controllers/SkillLibrary.d.ts +0 -149
- package/dist/controllers/SkillLibrary.d.ts.map +0 -1
- package/dist/controllers/SkillLibrary.js +0 -547
- package/dist/controllers/SkillLibrary.js.map +0 -1
- package/dist/controllers/SyncCoordinator.d.ts +0 -120
- package/dist/controllers/SyncCoordinator.d.ts.map +0 -1
- package/dist/controllers/SyncCoordinator.js +0 -441
- package/dist/controllers/SyncCoordinator.js.map +0 -1
- package/dist/controllers/WASMVectorSearch.d.ts +0 -89
- package/dist/controllers/WASMVectorSearch.d.ts.map +0 -1
- package/dist/controllers/WASMVectorSearch.js +0 -234
- package/dist/controllers/WASMVectorSearch.js.map +0 -1
- package/dist/controllers/frontier-index.d.ts +0 -14
- package/dist/controllers/frontier-index.d.ts.map +0 -1
- package/dist/controllers/frontier-index.js +0 -10
- package/dist/controllers/frontier-index.js.map +0 -1
- package/dist/controllers/index.d.ts +0 -30
- package/dist/controllers/index.d.ts.map +0 -1
- package/dist/controllers/index.js +0 -18
- package/dist/controllers/index.js.map +0 -1
- package/dist/db-fallback.d.ts +0 -26
- package/dist/db-fallback.d.ts.map +0 -1
- package/dist/db-fallback.js +0 -264
- package/dist/db-fallback.js.map +0 -1
- package/dist/db-test.d.ts +0 -13
- package/dist/db-test.d.ts.map +0 -1
- package/dist/db-test.js +0 -55
- package/dist/db-test.js.map +0 -1
- package/dist/db-unified.d.ts +0 -76
- package/dist/db-unified.d.ts.map +0 -1
- package/dist/db-unified.js +0 -278
- package/dist/db-unified.js.map +0 -1
- package/dist/examples/quic-sync-example.d.ts +0 -9
- package/dist/examples/quic-sync-example.d.ts.map +0 -1
- package/dist/examples/quic-sync-example.js +0 -169
- package/dist/examples/quic-sync-example.js.map +0 -1
- package/dist/examples/wasm-vector-usage.d.ts +0 -12
- package/dist/examples/wasm-vector-usage.d.ts.map +0 -1
- package/dist/examples/wasm-vector-usage.js +0 -190
- package/dist/examples/wasm-vector-usage.js.map +0 -1
- package/dist/index.d.ts +0 -28
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -35
- package/dist/index.js.map +0 -1
- package/dist/malp/core/ccc.d.ts +0 -99
- package/dist/malp/core/ccc.d.ts.map +0 -1
- package/dist/malp/core/ccc.js +0 -181
- package/dist/malp/core/ccc.js.map +0 -1
- package/dist/malp/core/index.d.ts +0 -9
- package/dist/malp/core/index.d.ts.map +0 -1
- package/dist/malp/core/index.js +0 -9
- package/dist/malp/core/index.js.map +0 -1
- package/dist/malp/core/linalg.d.ts +0 -101
- package/dist/malp/core/linalg.d.ts.map +0 -1
- package/dist/malp/core/linalg.js +0 -278
- package/dist/malp/core/linalg.js.map +0 -1
- package/dist/malp/core/optimizer.d.ts +0 -68
- package/dist/malp/core/optimizer.d.ts.map +0 -1
- package/dist/malp/core/optimizer.js +0 -160
- package/dist/malp/core/optimizer.js.map +0 -1
- package/dist/malp/index.d.ts +0 -33
- package/dist/malp/index.d.ts.map +0 -1
- package/dist/malp/index.js +0 -37
- package/dist/malp/index.js.map +0 -1
- package/dist/malp/metrics/agreement.d.ts +0 -106
- package/dist/malp/metrics/agreement.d.ts.map +0 -1
- package/dist/malp/metrics/agreement.js +0 -199
- package/dist/malp/metrics/agreement.js.map +0 -1
- package/dist/malp/metrics/comparison.d.ts +0 -93
- package/dist/malp/metrics/comparison.d.ts.map +0 -1
- package/dist/malp/metrics/comparison.js +0 -256
- package/dist/malp/metrics/comparison.js.map +0 -1
- package/dist/malp/metrics/index.d.ts +0 -8
- package/dist/malp/metrics/index.d.ts.map +0 -1
- package/dist/malp/metrics/index.js +0 -8
- package/dist/malp/metrics/index.js.map +0 -1
- package/dist/malp/metrics/performance.d.ts +0 -61
- package/dist/malp/metrics/performance.d.ts.map +0 -1
- package/dist/malp/metrics/performance.js +0 -190
- package/dist/malp/metrics/performance.js.map +0 -1
- package/dist/malp/models/index.d.ts +0 -7
- package/dist/malp/models/index.d.ts.map +0 -1
- package/dist/malp/models/index.js +0 -7
- package/dist/malp/models/index.js.map +0 -1
- package/dist/malp/models/malp.d.ts +0 -116
- package/dist/malp/models/malp.d.ts.map +0 -1
- package/dist/malp/models/malp.js +0 -206
- package/dist/malp/models/malp.js.map +0 -1
- package/dist/malp/models/regressor.d.ts +0 -80
- package/dist/malp/models/regressor.d.ts.map +0 -1
- package/dist/malp/models/regressor.js +0 -229
- package/dist/malp/models/regressor.js.map +0 -1
- package/dist/malp/reasoningbank_validator.d.ts +0 -187
- package/dist/malp/reasoningbank_validator.d.ts.map +0 -1
- package/dist/malp/reasoningbank_validator.js +0 -246
- package/dist/malp/reasoningbank_validator.js.map +0 -1
- package/dist/malp/wasm_bindings.d.ts +0 -344
- package/dist/malp/wasm_bindings.d.ts.map +0 -1
- package/dist/malp/wasm_bindings.js +0 -9
- package/dist/malp/wasm_bindings.js.map +0 -1
- package/dist/mcp/agentdb-mcp-server.d.ts +0 -8
- package/dist/mcp/agentdb-mcp-server.d.ts.map +0 -1
- package/dist/mcp/agentdb-mcp-server.js +0 -2116
- package/dist/mcp/agentdb-mcp-server.js.map +0 -1
- package/dist/mcp/learning-tools-handlers.d.ts +0 -16
- package/dist/mcp/learning-tools-handlers.d.ts.map +0 -1
- package/dist/mcp/learning-tools-handlers.js +0 -105
- package/dist/mcp/learning-tools-handlers.js.map +0 -1
- package/dist/optimizations/BatchOperations.d.ts +0 -109
- package/dist/optimizations/BatchOperations.d.ts.map +0 -1
- package/dist/optimizations/BatchOperations.js +0 -407
- package/dist/optimizations/BatchOperations.js.map +0 -1
- package/dist/optimizations/QueryOptimizer.d.ts +0 -83
- package/dist/optimizations/QueryOptimizer.d.ts.map +0 -1
- package/dist/optimizations/QueryOptimizer.js +0 -228
- package/dist/optimizations/QueryOptimizer.js.map +0 -1
- package/dist/optimizations/ToolCache.d.ts +0 -137
- package/dist/optimizations/ToolCache.d.ts.map +0 -1
- package/dist/optimizations/ToolCache.js +0 -281
- package/dist/optimizations/ToolCache.js.map +0 -1
- package/dist/optimizations/index.d.ts +0 -10
- package/dist/optimizations/index.d.ts.map +0 -1
- package/dist/optimizations/index.js +0 -8
- package/dist/optimizations/index.js.map +0 -1
- package/dist/security/input-validation.d.ts +0 -109
- package/dist/security/input-validation.d.ts.map +0 -1
- package/dist/security/input-validation.js +0 -398
- package/dist/security/input-validation.js.map +0 -1
- package/dist/security/limits.d.ts +0 -150
- package/dist/security/limits.d.ts.map +0 -1
- package/dist/security/limits.js +0 -288
- package/dist/security/limits.js.map +0 -1
- package/dist/security/path-security.d.ts +0 -100
- package/dist/security/path-security.d.ts.map +0 -1
- package/dist/security/path-security.js +0 -337
- package/dist/security/path-security.js.map +0 -1
- package/dist/security/validation.d.ts +0 -95
- package/dist/security/validation.d.ts.map +0 -1
- package/dist/security/validation.js +0 -315
- package/dist/security/validation.js.map +0 -1
- package/dist/types/quic.d.ts +0 -518
- package/dist/types/quic.d.ts.map +0 -1
- package/dist/types/quic.js +0 -272
- package/dist/types/quic.js.map +0 -1
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Advanced Features for AgentDB Browser
|
|
3
|
-
*
|
|
4
|
-
* Includes:
|
|
5
|
-
* - GNN (Graph Neural Networks) - Graph attention and message passing
|
|
6
|
-
* - MMR (Maximal Marginal Relevance) - Diversity ranking
|
|
7
|
-
* - SVD (Singular Value Decomposition) - Tensor compression
|
|
8
|
-
* - Batch operations and utilities
|
|
9
|
-
*/
|
|
10
|
-
export interface GNNNode {
|
|
11
|
-
id: number;
|
|
12
|
-
features: Float32Array;
|
|
13
|
-
neighbors: number[];
|
|
14
|
-
}
|
|
15
|
-
export interface GNNEdge {
|
|
16
|
-
from: number;
|
|
17
|
-
to: number;
|
|
18
|
-
weight: number;
|
|
19
|
-
}
|
|
20
|
-
export interface GNNConfig {
|
|
21
|
-
hiddenDim: number;
|
|
22
|
-
numHeads: number;
|
|
23
|
-
dropout: number;
|
|
24
|
-
learningRate: number;
|
|
25
|
-
attentionType: 'gat' | 'gcn' | 'sage';
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Graph Neural Network with attention mechanism
|
|
29
|
-
*/
|
|
30
|
-
export declare class GraphNeuralNetwork {
|
|
31
|
-
private config;
|
|
32
|
-
private nodes;
|
|
33
|
-
private edges;
|
|
34
|
-
private attentionWeights;
|
|
35
|
-
constructor(config?: Partial<GNNConfig>);
|
|
36
|
-
/**
|
|
37
|
-
* Add node to graph
|
|
38
|
-
*/
|
|
39
|
-
addNode(id: number, features: Float32Array): void;
|
|
40
|
-
/**
|
|
41
|
-
* Add edge to graph
|
|
42
|
-
*/
|
|
43
|
-
addEdge(from: number, to: number, weight?: number): void;
|
|
44
|
-
/**
|
|
45
|
-
* Graph Attention Network (GAT) message passing
|
|
46
|
-
*/
|
|
47
|
-
graphAttention(nodeId: number): Float32Array;
|
|
48
|
-
/**
|
|
49
|
-
* Compute attention score between two nodes
|
|
50
|
-
*/
|
|
51
|
-
private computeAttentionScore;
|
|
52
|
-
/**
|
|
53
|
-
* Message passing for all nodes
|
|
54
|
-
*/
|
|
55
|
-
messagePass(): Map<number, Float32Array>;
|
|
56
|
-
/**
|
|
57
|
-
* Update node features after message passing
|
|
58
|
-
*/
|
|
59
|
-
update(newFeatures: Map<number, Float32Array>): void;
|
|
60
|
-
/**
|
|
61
|
-
* Compute graph embeddings for query enhancement
|
|
62
|
-
*/
|
|
63
|
-
computeGraphEmbedding(nodeId: number, hops?: number): Float32Array;
|
|
64
|
-
/**
|
|
65
|
-
* Get statistics
|
|
66
|
-
*/
|
|
67
|
-
getStats(): {
|
|
68
|
-
numNodes: number;
|
|
69
|
-
numEdges: number;
|
|
70
|
-
avgDegree: number;
|
|
71
|
-
config: GNNConfig;
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
export interface MMRConfig {
|
|
75
|
-
lambda: number;
|
|
76
|
-
metric: 'cosine' | 'euclidean';
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Maximal Marginal Relevance for diversity ranking
|
|
80
|
-
*/
|
|
81
|
-
export declare class MaximalMarginalRelevance {
|
|
82
|
-
private config;
|
|
83
|
-
constructor(config?: Partial<MMRConfig>);
|
|
84
|
-
/**
|
|
85
|
-
* Rerank results for diversity
|
|
86
|
-
* @param query Query vector
|
|
87
|
-
* @param candidates Candidate vectors with scores
|
|
88
|
-
* @param k Number of results to return
|
|
89
|
-
* @returns Reranked indices
|
|
90
|
-
*/
|
|
91
|
-
rerank(query: Float32Array, candidates: Array<{
|
|
92
|
-
id: number;
|
|
93
|
-
vector: Float32Array;
|
|
94
|
-
score: number;
|
|
95
|
-
}>, k: number): number[];
|
|
96
|
-
/**
|
|
97
|
-
* Similarity computation
|
|
98
|
-
*/
|
|
99
|
-
private similarity;
|
|
100
|
-
private cosineSimilarity;
|
|
101
|
-
private euclideanDistance;
|
|
102
|
-
/**
|
|
103
|
-
* Set lambda (relevance vs diversity trade-off)
|
|
104
|
-
*/
|
|
105
|
-
setLambda(lambda: number): void;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Simple SVD implementation for dimension reduction
|
|
109
|
-
*/
|
|
110
|
-
export declare class TensorCompression {
|
|
111
|
-
/**
|
|
112
|
-
* Reduce dimensionality using truncated SVD
|
|
113
|
-
* @param vectors Array of vectors to compress
|
|
114
|
-
* @param targetDim Target dimension
|
|
115
|
-
* @returns Compressed vectors
|
|
116
|
-
*/
|
|
117
|
-
static compress(vectors: Float32Array[], targetDim: number): Float32Array[];
|
|
118
|
-
/**
|
|
119
|
-
* Compute mean vector
|
|
120
|
-
*/
|
|
121
|
-
private static computeMean;
|
|
122
|
-
/**
|
|
123
|
-
* Compute covariance matrix
|
|
124
|
-
*/
|
|
125
|
-
private static computeCovariance;
|
|
126
|
-
/**
|
|
127
|
-
* Power iteration for computing top eigenvectors
|
|
128
|
-
*/
|
|
129
|
-
private static powerIteration;
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Efficient batch processing utilities
|
|
133
|
-
*/
|
|
134
|
-
export declare class BatchProcessor {
|
|
135
|
-
/**
|
|
136
|
-
* Batch cosine similarity computation
|
|
137
|
-
*/
|
|
138
|
-
static batchCosineSimilarity(query: Float32Array, vectors: Float32Array[]): Float32Array;
|
|
139
|
-
/**
|
|
140
|
-
* Batch vector normalization
|
|
141
|
-
*/
|
|
142
|
-
static batchNormalize(vectors: Float32Array[]): Float32Array[];
|
|
143
|
-
}
|
|
144
|
-
//# sourceMappingURL=AdvancedFeatures.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AdvancedFeatures.d.ts","sourceRoot":"","sources":["../../src/browser/AdvancedFeatures.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,430 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Advanced Features for AgentDB Browser
|
|
3
|
-
*
|
|
4
|
-
* Includes:
|
|
5
|
-
* - GNN (Graph Neural Networks) - Graph attention and message passing
|
|
6
|
-
* - MMR (Maximal Marginal Relevance) - Diversity ranking
|
|
7
|
-
* - SVD (Singular Value Decomposition) - Tensor compression
|
|
8
|
-
* - Batch operations and utilities
|
|
9
|
-
*/
|
|
10
|
-
/**
|
|
11
|
-
* Graph Neural Network with attention mechanism
|
|
12
|
-
*/
|
|
13
|
-
export class GraphNeuralNetwork {
|
|
14
|
-
config;
|
|
15
|
-
nodes = new Map();
|
|
16
|
-
edges = [];
|
|
17
|
-
attentionWeights = new Map();
|
|
18
|
-
constructor(config = {}) {
|
|
19
|
-
this.config = {
|
|
20
|
-
hiddenDim: config.hiddenDim || 64,
|
|
21
|
-
numHeads: config.numHeads || 4,
|
|
22
|
-
dropout: config.dropout || 0.1,
|
|
23
|
-
learningRate: config.learningRate || 0.01,
|
|
24
|
-
attentionType: config.attentionType || 'gat'
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Add node to graph
|
|
29
|
-
*/
|
|
30
|
-
addNode(id, features) {
|
|
31
|
-
this.nodes.set(id, {
|
|
32
|
-
id,
|
|
33
|
-
features,
|
|
34
|
-
neighbors: []
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Add edge to graph
|
|
39
|
-
*/
|
|
40
|
-
addEdge(from, to, weight = 1.0) {
|
|
41
|
-
this.edges.push({ from, to, weight });
|
|
42
|
-
// Update neighbor lists
|
|
43
|
-
const fromNode = this.nodes.get(from);
|
|
44
|
-
const toNode = this.nodes.get(to);
|
|
45
|
-
if (fromNode && !fromNode.neighbors.includes(to)) {
|
|
46
|
-
fromNode.neighbors.push(to);
|
|
47
|
-
}
|
|
48
|
-
if (toNode && !toNode.neighbors.includes(from)) {
|
|
49
|
-
toNode.neighbors.push(from);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Graph Attention Network (GAT) message passing
|
|
54
|
-
*/
|
|
55
|
-
graphAttention(nodeId) {
|
|
56
|
-
const node = this.nodes.get(nodeId);
|
|
57
|
-
if (!node)
|
|
58
|
-
throw new Error(`Node ${nodeId} not found`);
|
|
59
|
-
const neighbors = node.neighbors;
|
|
60
|
-
if (neighbors.length === 0) {
|
|
61
|
-
return node.features;
|
|
62
|
-
}
|
|
63
|
-
// Multi-head attention
|
|
64
|
-
const headDim = Math.floor(this.config.hiddenDim / this.config.numHeads);
|
|
65
|
-
const aggregated = new Float32Array(this.config.hiddenDim);
|
|
66
|
-
for (let h = 0; h < this.config.numHeads; h++) {
|
|
67
|
-
let attentionSum = 0;
|
|
68
|
-
const headOutput = new Float32Array(headDim);
|
|
69
|
-
// Compute attention scores for each neighbor
|
|
70
|
-
for (const neighborId of neighbors) {
|
|
71
|
-
const neighbor = this.nodes.get(neighborId);
|
|
72
|
-
// Attention score: similarity between node and neighbor
|
|
73
|
-
const score = this.computeAttentionScore(node.features, neighbor.features, h);
|
|
74
|
-
attentionSum += score;
|
|
75
|
-
// Aggregate neighbor features weighted by attention
|
|
76
|
-
for (let i = 0; i < headDim && i < neighbor.features.length; i++) {
|
|
77
|
-
headOutput[i] += score * neighbor.features[i];
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
// Normalize by attention sum
|
|
81
|
-
if (attentionSum > 0) {
|
|
82
|
-
for (let i = 0; i < headDim; i++) {
|
|
83
|
-
headOutput[i] /= attentionSum;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
// Concatenate head outputs
|
|
87
|
-
const offset = h * headDim;
|
|
88
|
-
for (let i = 0; i < headDim; i++) {
|
|
89
|
-
aggregated[offset + i] = headOutput[i];
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
// Apply non-linearity (LeakyReLU)
|
|
93
|
-
for (let i = 0; i < aggregated.length; i++) {
|
|
94
|
-
aggregated[i] = aggregated[i] > 0 ? aggregated[i] : 0.01 * aggregated[i];
|
|
95
|
-
}
|
|
96
|
-
return aggregated;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Compute attention score between two nodes
|
|
100
|
-
*/
|
|
101
|
-
computeAttentionScore(features1, features2, head) {
|
|
102
|
-
// Simple dot-product attention
|
|
103
|
-
let score = 0;
|
|
104
|
-
const len = Math.min(features1.length, features2.length);
|
|
105
|
-
for (let i = 0; i < len; i++) {
|
|
106
|
-
score += features1[i] * features2[i];
|
|
107
|
-
}
|
|
108
|
-
// Apply softmax-like normalization
|
|
109
|
-
return Math.exp(score / Math.sqrt(len));
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Message passing for all nodes
|
|
113
|
-
*/
|
|
114
|
-
messagePass() {
|
|
115
|
-
const newFeatures = new Map();
|
|
116
|
-
for (const [nodeId] of this.nodes) {
|
|
117
|
-
newFeatures.set(nodeId, this.graphAttention(nodeId));
|
|
118
|
-
}
|
|
119
|
-
return newFeatures;
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Update node features after message passing
|
|
123
|
-
*/
|
|
124
|
-
update(newFeatures) {
|
|
125
|
-
for (const [nodeId, features] of newFeatures) {
|
|
126
|
-
const node = this.nodes.get(nodeId);
|
|
127
|
-
if (node) {
|
|
128
|
-
node.features = features;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Compute graph embeddings for query enhancement
|
|
134
|
-
*/
|
|
135
|
-
computeGraphEmbedding(nodeId, hops = 2) {
|
|
136
|
-
const features = new Map();
|
|
137
|
-
features.set(nodeId, this.nodes.get(nodeId).features);
|
|
138
|
-
// Multi-hop message passing
|
|
139
|
-
for (let h = 0; h < hops; h++) {
|
|
140
|
-
const newFeatures = this.messagePass();
|
|
141
|
-
this.update(newFeatures);
|
|
142
|
-
}
|
|
143
|
-
return this.nodes.get(nodeId).features;
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Get statistics
|
|
147
|
-
*/
|
|
148
|
-
getStats() {
|
|
149
|
-
return {
|
|
150
|
-
numNodes: this.nodes.size,
|
|
151
|
-
numEdges: this.edges.length,
|
|
152
|
-
avgDegree: this.edges.length / Math.max(this.nodes.size, 1),
|
|
153
|
-
config: this.config
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Maximal Marginal Relevance for diversity ranking
|
|
159
|
-
*/
|
|
160
|
-
export class MaximalMarginalRelevance {
|
|
161
|
-
config;
|
|
162
|
-
constructor(config = {}) {
|
|
163
|
-
this.config = {
|
|
164
|
-
lambda: config.lambda || 0.7,
|
|
165
|
-
metric: config.metric || 'cosine'
|
|
166
|
-
};
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Rerank results for diversity
|
|
170
|
-
* @param query Query vector
|
|
171
|
-
* @param candidates Candidate vectors with scores
|
|
172
|
-
* @param k Number of results to return
|
|
173
|
-
* @returns Reranked indices
|
|
174
|
-
*/
|
|
175
|
-
rerank(query, candidates, k) {
|
|
176
|
-
if (candidates.length === 0)
|
|
177
|
-
return [];
|
|
178
|
-
const selected = [];
|
|
179
|
-
const remaining = new Set(candidates.map((_, i) => i));
|
|
180
|
-
// Select first result (highest relevance)
|
|
181
|
-
let bestIdx = 0;
|
|
182
|
-
let bestScore = -Infinity;
|
|
183
|
-
for (let i = 0; i < candidates.length; i++) {
|
|
184
|
-
if (candidates[i].score > bestScore) {
|
|
185
|
-
bestScore = candidates[i].score;
|
|
186
|
-
bestIdx = i;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
selected.push(candidates[bestIdx].id);
|
|
190
|
-
remaining.delete(bestIdx);
|
|
191
|
-
// Iteratively select remaining results
|
|
192
|
-
while (selected.length < k && remaining.size > 0) {
|
|
193
|
-
let bestMMR = -Infinity;
|
|
194
|
-
let bestCandidate = -1;
|
|
195
|
-
for (const idx of remaining) {
|
|
196
|
-
const candidate = candidates[idx];
|
|
197
|
-
// Relevance to query
|
|
198
|
-
const relevance = this.similarity(query, candidate.vector);
|
|
199
|
-
// Maximum similarity to already selected
|
|
200
|
-
let maxSimilarity = -Infinity;
|
|
201
|
-
for (const selectedId of selected) {
|
|
202
|
-
const selectedCandidate = candidates.find(c => c.id === selectedId);
|
|
203
|
-
const sim = this.similarity(candidate.vector, selectedCandidate.vector);
|
|
204
|
-
maxSimilarity = Math.max(maxSimilarity, sim);
|
|
205
|
-
}
|
|
206
|
-
// MMR score
|
|
207
|
-
const mmr = this.config.lambda * relevance -
|
|
208
|
-
(1 - this.config.lambda) * maxSimilarity;
|
|
209
|
-
if (mmr > bestMMR) {
|
|
210
|
-
bestMMR = mmr;
|
|
211
|
-
bestCandidate = idx;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
if (bestCandidate !== -1) {
|
|
215
|
-
selected.push(candidates[bestCandidate].id);
|
|
216
|
-
remaining.delete(bestCandidate);
|
|
217
|
-
}
|
|
218
|
-
else {
|
|
219
|
-
break;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
return selected;
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* Similarity computation
|
|
226
|
-
*/
|
|
227
|
-
similarity(a, b) {
|
|
228
|
-
if (this.config.metric === 'cosine') {
|
|
229
|
-
return this.cosineSimilarity(a, b);
|
|
230
|
-
}
|
|
231
|
-
else {
|
|
232
|
-
// Euclidean distance converted to similarity
|
|
233
|
-
const dist = this.euclideanDistance(a, b);
|
|
234
|
-
return 1 / (1 + dist);
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
cosineSimilarity(a, b) {
|
|
238
|
-
let dotProduct = 0;
|
|
239
|
-
let normA = 0;
|
|
240
|
-
let normB = 0;
|
|
241
|
-
for (let i = 0; i < a.length; i++) {
|
|
242
|
-
dotProduct += a[i] * b[i];
|
|
243
|
-
normA += a[i] * a[i];
|
|
244
|
-
normB += b[i] * b[i];
|
|
245
|
-
}
|
|
246
|
-
return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));
|
|
247
|
-
}
|
|
248
|
-
euclideanDistance(a, b) {
|
|
249
|
-
let sum = 0;
|
|
250
|
-
for (let i = 0; i < a.length; i++) {
|
|
251
|
-
const diff = a[i] - b[i];
|
|
252
|
-
sum += diff * diff;
|
|
253
|
-
}
|
|
254
|
-
return Math.sqrt(sum);
|
|
255
|
-
}
|
|
256
|
-
/**
|
|
257
|
-
* Set lambda (relevance vs diversity trade-off)
|
|
258
|
-
*/
|
|
259
|
-
setLambda(lambda) {
|
|
260
|
-
this.config.lambda = Math.max(0, Math.min(1, lambda));
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
// ============================================================================
|
|
264
|
-
// SVD (Singular Value Decomposition) for Tensor Compression
|
|
265
|
-
// ============================================================================
|
|
266
|
-
/**
|
|
267
|
-
* Simple SVD implementation for dimension reduction
|
|
268
|
-
*/
|
|
269
|
-
export class TensorCompression {
|
|
270
|
-
/**
|
|
271
|
-
* Reduce dimensionality using truncated SVD
|
|
272
|
-
* @param vectors Array of vectors to compress
|
|
273
|
-
* @param targetDim Target dimension
|
|
274
|
-
* @returns Compressed vectors
|
|
275
|
-
*/
|
|
276
|
-
static compress(vectors, targetDim) {
|
|
277
|
-
if (vectors.length === 0)
|
|
278
|
-
return [];
|
|
279
|
-
const originalDim = vectors[0].length;
|
|
280
|
-
if (targetDim >= originalDim)
|
|
281
|
-
return vectors;
|
|
282
|
-
// Create matrix (vectors as rows)
|
|
283
|
-
const matrix = vectors.map(v => Array.from(v));
|
|
284
|
-
// Center the data (subtract mean)
|
|
285
|
-
const mean = this.computeMean(matrix);
|
|
286
|
-
const centered = matrix.map(row => row.map((val, i) => val - mean[i]));
|
|
287
|
-
// Compute covariance matrix
|
|
288
|
-
const cov = this.computeCovariance(centered);
|
|
289
|
-
// Compute top k eigenvectors using power iteration
|
|
290
|
-
const eigenvectors = this.powerIteration(cov, targetDim);
|
|
291
|
-
// Project vectors onto eigenvectors
|
|
292
|
-
const compressed = centered.map(row => {
|
|
293
|
-
const projected = new Float32Array(targetDim);
|
|
294
|
-
for (let i = 0; i < targetDim; i++) {
|
|
295
|
-
let sum = 0;
|
|
296
|
-
for (let j = 0; j < originalDim; j++) {
|
|
297
|
-
sum += row[j] * eigenvectors[i][j];
|
|
298
|
-
}
|
|
299
|
-
projected[i] = sum;
|
|
300
|
-
}
|
|
301
|
-
return projected;
|
|
302
|
-
});
|
|
303
|
-
return compressed;
|
|
304
|
-
}
|
|
305
|
-
/**
|
|
306
|
-
* Compute mean vector
|
|
307
|
-
*/
|
|
308
|
-
static computeMean(matrix) {
|
|
309
|
-
const n = matrix.length;
|
|
310
|
-
const dim = matrix[0].length;
|
|
311
|
-
const mean = new Array(dim).fill(0);
|
|
312
|
-
for (const row of matrix) {
|
|
313
|
-
for (let i = 0; i < dim; i++) {
|
|
314
|
-
mean[i] += row[i];
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
return mean.map(v => v / n);
|
|
318
|
-
}
|
|
319
|
-
/**
|
|
320
|
-
* Compute covariance matrix
|
|
321
|
-
*/
|
|
322
|
-
static computeCovariance(matrix) {
|
|
323
|
-
const n = matrix.length;
|
|
324
|
-
const dim = matrix[0].length;
|
|
325
|
-
const cov = Array.from({ length: dim }, () => new Array(dim).fill(0));
|
|
326
|
-
for (let i = 0; i < dim; i++) {
|
|
327
|
-
for (let j = 0; j <= i; j++) {
|
|
328
|
-
let sum = 0;
|
|
329
|
-
for (const row of matrix) {
|
|
330
|
-
sum += row[i] * row[j];
|
|
331
|
-
}
|
|
332
|
-
cov[i][j] = cov[j][i] = sum / n;
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
return cov;
|
|
336
|
-
}
|
|
337
|
-
/**
|
|
338
|
-
* Power iteration for computing top eigenvectors
|
|
339
|
-
*/
|
|
340
|
-
static powerIteration(matrix, k, iterations = 100) {
|
|
341
|
-
const dim = matrix.length;
|
|
342
|
-
const eigenvectors = [];
|
|
343
|
-
for (let i = 0; i < k; i++) {
|
|
344
|
-
// Random initialization
|
|
345
|
-
let v = new Array(dim).fill(0).map(() => Math.random() - 0.5);
|
|
346
|
-
// Power iteration
|
|
347
|
-
for (let iter = 0; iter < iterations; iter++) {
|
|
348
|
-
// Multiply by matrix
|
|
349
|
-
const newV = new Array(dim).fill(0);
|
|
350
|
-
for (let r = 0; r < dim; r++) {
|
|
351
|
-
for (let c = 0; c < dim; c++) {
|
|
352
|
-
newV[r] += matrix[r][c] * v[c];
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
// Orthogonalize against previous eigenvectors
|
|
356
|
-
for (const prev of eigenvectors) {
|
|
357
|
-
let dot = 0;
|
|
358
|
-
for (let j = 0; j < dim; j++) {
|
|
359
|
-
dot += newV[j] * prev[j];
|
|
360
|
-
}
|
|
361
|
-
for (let j = 0; j < dim; j++) {
|
|
362
|
-
newV[j] -= dot * prev[j];
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
// Normalize
|
|
366
|
-
let norm = 0;
|
|
367
|
-
for (const val of newV) {
|
|
368
|
-
norm += val * val;
|
|
369
|
-
}
|
|
370
|
-
norm = Math.sqrt(norm);
|
|
371
|
-
if (norm < 1e-10)
|
|
372
|
-
break;
|
|
373
|
-
v = newV.map(val => val / norm);
|
|
374
|
-
}
|
|
375
|
-
eigenvectors.push(v);
|
|
376
|
-
}
|
|
377
|
-
return eigenvectors;
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
// ============================================================================
|
|
381
|
-
// Batch Operations
|
|
382
|
-
// ============================================================================
|
|
383
|
-
/**
|
|
384
|
-
* Efficient batch processing utilities
|
|
385
|
-
*/
|
|
386
|
-
export class BatchProcessor {
|
|
387
|
-
/**
|
|
388
|
-
* Batch cosine similarity computation
|
|
389
|
-
*/
|
|
390
|
-
static batchCosineSimilarity(query, vectors) {
|
|
391
|
-
const similarities = new Float32Array(vectors.length);
|
|
392
|
-
// Precompute query norm
|
|
393
|
-
let queryNorm = 0;
|
|
394
|
-
for (let i = 0; i < query.length; i++) {
|
|
395
|
-
queryNorm += query[i] * query[i];
|
|
396
|
-
}
|
|
397
|
-
queryNorm = Math.sqrt(queryNorm);
|
|
398
|
-
// Compute similarities
|
|
399
|
-
for (let v = 0; v < vectors.length; v++) {
|
|
400
|
-
const vector = vectors[v];
|
|
401
|
-
let dotProduct = 0;
|
|
402
|
-
let vectorNorm = 0;
|
|
403
|
-
for (let i = 0; i < query.length; i++) {
|
|
404
|
-
dotProduct += query[i] * vector[i];
|
|
405
|
-
vectorNorm += vector[i] * vector[i];
|
|
406
|
-
}
|
|
407
|
-
vectorNorm = Math.sqrt(vectorNorm);
|
|
408
|
-
similarities[v] = dotProduct / (queryNorm * vectorNorm);
|
|
409
|
-
}
|
|
410
|
-
return similarities;
|
|
411
|
-
}
|
|
412
|
-
/**
|
|
413
|
-
* Batch vector normalization
|
|
414
|
-
*/
|
|
415
|
-
static batchNormalize(vectors) {
|
|
416
|
-
return vectors.map(v => {
|
|
417
|
-
let norm = 0;
|
|
418
|
-
for (let i = 0; i < v.length; i++) {
|
|
419
|
-
norm += v[i] * v[i];
|
|
420
|
-
}
|
|
421
|
-
norm = Math.sqrt(norm);
|
|
422
|
-
const normalized = new Float32Array(v.length);
|
|
423
|
-
for (let i = 0; i < v.length; i++) {
|
|
424
|
-
normalized[i] = v[i] / norm;
|
|
425
|
-
}
|
|
426
|
-
return normalized;
|
|
427
|
-
});
|
|
428
|
-
}
|
|
429
|
-
}
|
|
430
|
-
//# sourceMappingURL=AdvancedFeatures.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AdvancedFeatures.js","sourceRoot":"","sources":["../../src/browser/AdvancedFeatures.ts"],"names":[],"mappings":"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"}
|