@cogitator-ai/memory 0.5.2 → 0.6.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/dist/adapters/memory-embedding.d.ts +15 -0
- package/dist/adapters/memory-embedding.d.ts.map +1 -0
- package/dist/adapters/memory-embedding.js +97 -0
- package/dist/adapters/memory-embedding.js.map +1 -0
- package/dist/adapters/postgres.d.ts +3 -2
- package/dist/adapters/postgres.d.ts.map +1 -1
- package/dist/adapters/postgres.js +39 -0
- package/dist/adapters/postgres.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/search/bm25.d.ts +34 -0
- package/dist/search/bm25.d.ts.map +1 -0
- package/dist/search/bm25.js +115 -0
- package/dist/search/bm25.js.map +1 -0
- package/dist/search/hybrid-search.d.ts +20 -0
- package/dist/search/hybrid-search.d.ts.map +1 -0
- package/dist/search/hybrid-search.js +108 -0
- package/dist/search/hybrid-search.js.map +1 -0
- package/dist/search/index.d.ts +5 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +5 -0
- package/dist/search/index.js.map +1 -0
- package/dist/search/rrf.d.ts +13 -0
- package/dist/search/rrf.d.ts.map +1 -0
- package/dist/search/rrf.js +50 -0
- package/dist/search/rrf.js.map +1 -0
- package/dist/search/tokenizer.d.ts +8 -0
- package/dist/search/tokenizer.d.ts.map +1 -0
- package/dist/search/tokenizer.js +49 -0
- package/dist/search/tokenizer.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Embedding, EmbeddingAdapter, KeywordSearchAdapter, KeywordSearchOptions, MemoryResult, SearchResult, SemanticSearchOptions } from '@cogitator-ai/types';
|
|
2
|
+
export declare class InMemoryEmbeddingAdapter implements EmbeddingAdapter, KeywordSearchAdapter {
|
|
3
|
+
private embeddings;
|
|
4
|
+
private bm25Index;
|
|
5
|
+
addEmbedding(embedding: Omit<Embedding, 'id' | 'createdAt'>): Promise<MemoryResult<Embedding>>;
|
|
6
|
+
search(options: SemanticSearchOptions): Promise<MemoryResult<(Embedding & {
|
|
7
|
+
score: number;
|
|
8
|
+
})[]>>;
|
|
9
|
+
keywordSearch(options: KeywordSearchOptions): Promise<MemoryResult<SearchResult[]>>;
|
|
10
|
+
deleteEmbedding(embeddingId: string): Promise<MemoryResult<void>>;
|
|
11
|
+
deleteBySource(sourceId: string): Promise<MemoryResult<void>>;
|
|
12
|
+
get size(): number;
|
|
13
|
+
clear(): void;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=memory-embedding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-embedding.d.ts","sourceRoot":"","sources":["../../src/adapters/memory-embedding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AA0B7B,qBAAa,wBAAyB,YAAW,gBAAgB,EAAE,oBAAoB;IACrF,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,SAAS,CAAmB;IAE9B,YAAY,CAChB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,WAAW,CAAC,GAC7C,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAW7B,MAAM,CACV,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,YAAY,CAAC,CAAC,SAAS,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC,CAAC;IA0BrD,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC;IA2BnF,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAMjE,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAUnE,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,KAAK,IAAI,IAAI;CAId"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { BM25Index } from '../search/bm25';
|
|
2
|
+
function cosineSimilarity(a, b) {
|
|
3
|
+
if (a.length !== b.length)
|
|
4
|
+
return 0;
|
|
5
|
+
let dotProduct = 0;
|
|
6
|
+
let normA = 0;
|
|
7
|
+
let normB = 0;
|
|
8
|
+
for (let i = 0; i < a.length; i++) {
|
|
9
|
+
dotProduct += a[i] * b[i];
|
|
10
|
+
normA += a[i] * a[i];
|
|
11
|
+
normB += b[i] * b[i];
|
|
12
|
+
}
|
|
13
|
+
const magnitude = Math.sqrt(normA) * Math.sqrt(normB);
|
|
14
|
+
return magnitude === 0 ? 0 : dotProduct / magnitude;
|
|
15
|
+
}
|
|
16
|
+
let idCounter = 0;
|
|
17
|
+
function generateId() {
|
|
18
|
+
return `emb_${Date.now()}_${++idCounter}`;
|
|
19
|
+
}
|
|
20
|
+
export class InMemoryEmbeddingAdapter {
|
|
21
|
+
embeddings = new Map();
|
|
22
|
+
bm25Index = new BM25Index();
|
|
23
|
+
async addEmbedding(embedding) {
|
|
24
|
+
const id = generateId();
|
|
25
|
+
const now = new Date();
|
|
26
|
+
const full = { ...embedding, id, createdAt: now };
|
|
27
|
+
this.embeddings.set(id, full);
|
|
28
|
+
this.bm25Index.addDocument({ id, content: embedding.content });
|
|
29
|
+
return { success: true, data: full };
|
|
30
|
+
}
|
|
31
|
+
async search(options) {
|
|
32
|
+
if (!options.vector) {
|
|
33
|
+
return { success: false, error: 'vector required for semantic search' };
|
|
34
|
+
}
|
|
35
|
+
const threshold = options.threshold ?? 0.7;
|
|
36
|
+
const limit = options.limit ?? 10;
|
|
37
|
+
const results = [];
|
|
38
|
+
for (const emb of this.embeddings.values()) {
|
|
39
|
+
if (options.filter?.sourceType && emb.sourceType !== options.filter.sourceType) {
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
const score = cosineSimilarity(options.vector, emb.vector);
|
|
43
|
+
if (score >= threshold) {
|
|
44
|
+
results.push({ ...emb, score });
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
success: true,
|
|
49
|
+
data: results.sort((a, b) => b.score - a.score).slice(0, limit),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
async keywordSearch(options) {
|
|
53
|
+
const limit = options.limit ?? 10;
|
|
54
|
+
const bm25Results = this.bm25Index.search(options.query, limit * 2);
|
|
55
|
+
const results = [];
|
|
56
|
+
for (const r of bm25Results) {
|
|
57
|
+
const emb = this.embeddings.get(r.id);
|
|
58
|
+
if (!emb)
|
|
59
|
+
continue;
|
|
60
|
+
if (options.filter?.sourceType && emb.sourceType !== options.filter.sourceType) {
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
results.push({
|
|
64
|
+
id: emb.id,
|
|
65
|
+
sourceId: emb.sourceId,
|
|
66
|
+
sourceType: emb.sourceType,
|
|
67
|
+
content: emb.content,
|
|
68
|
+
score: r.score,
|
|
69
|
+
keywordScore: r.score,
|
|
70
|
+
metadata: emb.metadata,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return { success: true, data: results.slice(0, limit) };
|
|
74
|
+
}
|
|
75
|
+
async deleteEmbedding(embeddingId) {
|
|
76
|
+
this.embeddings.delete(embeddingId);
|
|
77
|
+
this.bm25Index.removeDocument(embeddingId);
|
|
78
|
+
return { success: true, data: undefined };
|
|
79
|
+
}
|
|
80
|
+
async deleteBySource(sourceId) {
|
|
81
|
+
for (const [id, emb] of this.embeddings) {
|
|
82
|
+
if (emb.sourceId === sourceId) {
|
|
83
|
+
this.embeddings.delete(id);
|
|
84
|
+
this.bm25Index.removeDocument(id);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return { success: true, data: undefined };
|
|
88
|
+
}
|
|
89
|
+
get size() {
|
|
90
|
+
return this.embeddings.size;
|
|
91
|
+
}
|
|
92
|
+
clear() {
|
|
93
|
+
this.embeddings.clear();
|
|
94
|
+
this.bm25Index.clear();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=memory-embedding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-embedding.js","sourceRoot":"","sources":["../../src/adapters/memory-embedding.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
* - Facts (FactAdapter)
|
|
7
7
|
* - Embeddings with pgvector (EmbeddingAdapter)
|
|
8
8
|
*/
|
|
9
|
-
import type { Thread, MemoryEntry, MemoryQueryOptions, MemoryResult, PostgresAdapterConfig, MemoryProvider, Fact, Embedding, SemanticSearchOptions, FactAdapter, EmbeddingAdapter } from '@cogitator-ai/types';
|
|
9
|
+
import type { Thread, MemoryEntry, MemoryQueryOptions, MemoryResult, PostgresAdapterConfig, MemoryProvider, Fact, Embedding, SemanticSearchOptions, FactAdapter, EmbeddingAdapter, KeywordSearchAdapter, KeywordSearchOptions, SearchResult } from '@cogitator-ai/types';
|
|
10
10
|
import { BaseMemoryAdapter } from './base';
|
|
11
|
-
export declare class PostgresAdapter extends BaseMemoryAdapter implements FactAdapter, EmbeddingAdapter {
|
|
11
|
+
export declare class PostgresAdapter extends BaseMemoryAdapter implements FactAdapter, EmbeddingAdapter, KeywordSearchAdapter {
|
|
12
12
|
readonly provider: MemoryProvider;
|
|
13
13
|
private pool;
|
|
14
14
|
private config;
|
|
@@ -38,6 +38,7 @@ export declare class PostgresAdapter extends BaseMemoryAdapter implements FactAd
|
|
|
38
38
|
})[]>>;
|
|
39
39
|
deleteEmbedding(embeddingId: string): Promise<MemoryResult<void>>;
|
|
40
40
|
deleteBySource(sourceId: string): Promise<MemoryResult<void>>;
|
|
41
|
+
keywordSearch(options: KeywordSearchOptions): Promise<MemoryResult<SearchResult[]>>;
|
|
41
42
|
setVectorDimensions(dimensions: number): void;
|
|
42
43
|
}
|
|
43
44
|
//# sourceMappingURL=postgres.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/adapters/postgres.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,MAAM,EACN,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,IAAI,EACJ,SAAS,EACT,qBAAqB,EACrB,WAAW,EACX,gBAAgB,
|
|
1
|
+
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/adapters/postgres.ts"],"names":[],"mappings":"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"}
|
|
@@ -105,6 +105,18 @@ export class PostgresAdapter extends BaseMemoryAdapter {
|
|
|
105
105
|
`);
|
|
106
106
|
}
|
|
107
107
|
catch { }
|
|
108
|
+
try {
|
|
109
|
+
await this.pool.query(`
|
|
110
|
+
ALTER TABLE ${this.schema}.embeddings
|
|
111
|
+
ADD COLUMN IF NOT EXISTS content_tsv tsvector
|
|
112
|
+
GENERATED ALWAYS AS (to_tsvector('english', content)) STORED
|
|
113
|
+
`);
|
|
114
|
+
await this.pool.query(`
|
|
115
|
+
CREATE INDEX IF NOT EXISTS idx_embeddings_tsv
|
|
116
|
+
ON ${this.schema}.embeddings USING GIN (content_tsv)
|
|
117
|
+
`);
|
|
118
|
+
}
|
|
119
|
+
catch { }
|
|
108
120
|
}
|
|
109
121
|
async disconnect() {
|
|
110
122
|
if (this.pool) {
|
|
@@ -439,6 +451,33 @@ export class PostgresAdapter extends BaseMemoryAdapter {
|
|
|
439
451
|
await this.pool.query(`DELETE FROM ${this.schema}.embeddings WHERE source_id = $1`, [sourceId]);
|
|
440
452
|
return this.success(undefined);
|
|
441
453
|
}
|
|
454
|
+
async keywordSearch(options) {
|
|
455
|
+
if (!this.pool)
|
|
456
|
+
return this.failure('Not connected');
|
|
457
|
+
const limit = options.limit ?? 10;
|
|
458
|
+
const params = [options.query, limit];
|
|
459
|
+
let paramIndex = 3;
|
|
460
|
+
let filterClause = '';
|
|
461
|
+
if (options.filter?.sourceType) {
|
|
462
|
+
filterClause += ` AND source_type = $${paramIndex++}`;
|
|
463
|
+
params.splice(1, 0, options.filter.sourceType);
|
|
464
|
+
}
|
|
465
|
+
const result = await this.pool.query(`SELECT id, source_id, source_type, content, metadata, created_at,
|
|
466
|
+
ts_rank(content_tsv, plainto_tsquery('english', $1)) as keyword_score
|
|
467
|
+
FROM ${this.schema}.embeddings
|
|
468
|
+
WHERE content_tsv @@ plainto_tsquery('english', $1)${filterClause}
|
|
469
|
+
ORDER BY keyword_score DESC
|
|
470
|
+
LIMIT $2`, params);
|
|
471
|
+
return this.success(result.rows.map((row) => ({
|
|
472
|
+
id: row.id,
|
|
473
|
+
sourceId: row.source_id,
|
|
474
|
+
sourceType: row.source_type,
|
|
475
|
+
content: row.content,
|
|
476
|
+
score: row.keyword_score,
|
|
477
|
+
keywordScore: row.keyword_score,
|
|
478
|
+
metadata: row.metadata,
|
|
479
|
+
})));
|
|
480
|
+
}
|
|
442
481
|
setVectorDimensions(dimensions) {
|
|
443
482
|
this.vectorDimensions = dimensions;
|
|
444
483
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/adapters/postgres.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/adapters/postgres.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,11 +9,13 @@ export { PostgresAdapter } from './adapters/postgres';
|
|
|
9
9
|
export { SQLiteAdapter } from './adapters/sqlite';
|
|
10
10
|
export { MongoDBAdapter } from './adapters/mongodb';
|
|
11
11
|
export { QdrantAdapter } from './adapters/qdrant';
|
|
12
|
+
export { InMemoryEmbeddingAdapter } from './adapters/memory-embedding';
|
|
13
|
+
export { HybridSearch, BM25Index, fuseSearchResults, reciprocalRankFusion, tokenize, getTermFrequency, type BM25Config, type BM25Document, type BM25Result, type RRFConfig, type TokenizerConfig, } from './search/index';
|
|
12
14
|
export { ContextBuilder, type ContextBuilderDeps, type BuildContextOptions, } from './context-builder';
|
|
13
15
|
export { countTokens, countMessageTokens, countMessagesTokens, truncateToTokens, } from './token-counter';
|
|
14
16
|
export { OpenAIEmbeddingService, OllamaEmbeddingService, GoogleEmbeddingService, createEmbeddingService, } from './embedding/index';
|
|
15
17
|
export { MemoryProviderSchema, InMemoryConfigSchema, RedisConfigSchema, PostgresConfigSchema, MemoryAdapterConfigSchema, ContextStrategySchema, ContextBuilderConfigSchema, EmbeddingProviderSchema, OpenAIEmbeddingConfigSchema, OllamaEmbeddingConfigSchema, GoogleEmbeddingConfigSchema, EmbeddingServiceConfigSchema, } from './schema';
|
|
16
18
|
export { PostgresGraphAdapter, LLMEntityExtractor, GraphInferenceEngine, GraphContextBuilder, EntityTypeSchema, RelationTypeSchema, NodeSourceSchema, GraphNodeSchema, GraphEdgeSchema, ExtractedEntitySchema, ExtractedRelationSchema, ExtractionResultSchema, NodeQuerySchema, EdgeQuerySchema, TraversalDirectionSchema, TraversalOptionsSchema, GraphSemanticSearchOptionsSchema, InferencePatternSchema, InferenceConclusionSchema, InferenceRuleSchema, KnowledgeGraphExtractionConfigSchema, KnowledgeGraphInferenceConfigSchema, KnowledgeGraphContextConfigSchema, KnowledgeGraphConfigSchema, } from './knowledge-graph/index';
|
|
17
19
|
export type { PostgresGraphAdapterConfig, LLMEntityExtractorConfig, LLMBackendMinimal, GraphContextBuilderConfig, } from './knowledge-graph/index';
|
|
18
|
-
export type { MemoryType, Thread, MemoryEntry, Fact, Embedding, MemoryProvider, MemoryAdapterConfig, RedisAdapterConfig, PostgresAdapterConfig, InMemoryAdapterConfig, MemoryResult, MemoryQueryOptions, SemanticSearchOptions, MemoryAdapter, FactAdapter, EmbeddingAdapter, EmbeddingService, EmbeddingProvider, EmbeddingServiceConfig, OpenAIEmbeddingConfig, OllamaEmbeddingConfig, GoogleEmbeddingConfig, ContextBuilderConfig, ContextStrategy, BuiltContext, MemoryConfig, GraphAdapter, GraphNode, GraphEdge, GraphPath, GraphStats, GraphContext, GraphContextOptions, NodeQuery, EdgeQuery, TraversalOptions, TraversalResult, TraversalDirection, GraphSemanticSearchOptions, EntityType, RelationType, NodeSource, ExtractedEntity, ExtractedRelation, ExtractionResult, ExtractionContext, EntityExtractor, InferenceEngine, InferenceRule, InferencePattern, InferenceConclusion, InferredEdge, InferenceOptions, KnowledgeGraphConfig, KnowledgeGraphExtractionConfig, KnowledgeGraphInferenceConfig, KnowledgeGraphContextConfig, } from '@cogitator-ai/types';
|
|
20
|
+
export type { MemoryType, Thread, MemoryEntry, Fact, Embedding, MemoryProvider, MemoryAdapterConfig, RedisAdapterConfig, PostgresAdapterConfig, InMemoryAdapterConfig, MemoryResult, MemoryQueryOptions, SemanticSearchOptions, MemoryAdapter, FactAdapter, EmbeddingAdapter, EmbeddingService, EmbeddingProvider, EmbeddingServiceConfig, OpenAIEmbeddingConfig, OllamaEmbeddingConfig, GoogleEmbeddingConfig, ContextBuilderConfig, ContextStrategy, BuiltContext, MemoryConfig, GraphAdapter, GraphNode, GraphEdge, GraphPath, GraphStats, GraphContext, GraphContextOptions, NodeQuery, EdgeQuery, TraversalOptions, TraversalResult, TraversalDirection, GraphSemanticSearchOptions, EntityType, RelationType, NodeSource, ExtractedEntity, ExtractedRelation, ExtractionResult, ExtractionContext, EntityExtractor, InferenceEngine, InferenceRule, InferencePattern, InferenceConclusion, InferredEdge, InferenceOptions, KnowledgeGraphConfig, KnowledgeGraphExtractionConfig, KnowledgeGraphInferenceConfig, KnowledgeGraphContextConfig, SearchStrategy, HybridSearchWeights, SearchFilter, SearchOptions, SearchResult, KeywordSearchOptions, KeywordSearchAdapter, HybridSearchConfig, } from '@cogitator-ai/types';
|
|
19
21
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EACL,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,oBAAoB,EACpB,QAAQ,EACR,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,sBAAsB,EACtB,gCAAgC,EAChC,sBAAsB,EACtB,yBAAyB,EACzB,mBAAmB,EACnB,oCAAoC,EACpC,mCAAmC,EACnC,iCAAiC,EACjC,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,UAAU,EACV,MAAM,EACN,WAAW,EACX,IAAI,EACJ,SAAS,EACT,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,SAAS,EACT,SAAS,EACT,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAC1B,UAAU,EACV,YAAY,EACZ,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,8BAA8B,EAC9B,6BAA6B,EAC7B,2BAA2B,EAC3B,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -9,6 +9,8 @@ export { PostgresAdapter } from './adapters/postgres';
|
|
|
9
9
|
export { SQLiteAdapter } from './adapters/sqlite';
|
|
10
10
|
export { MongoDBAdapter } from './adapters/mongodb';
|
|
11
11
|
export { QdrantAdapter } from './adapters/qdrant';
|
|
12
|
+
export { InMemoryEmbeddingAdapter } from './adapters/memory-embedding';
|
|
13
|
+
export { HybridSearch, BM25Index, fuseSearchResults, reciprocalRankFusion, tokenize, getTermFrequency, } from './search/index';
|
|
12
14
|
export { ContextBuilder, } from './context-builder';
|
|
13
15
|
export { countTokens, countMessageTokens, countMessagesTokens, truncateToTokens, } from './token-counter';
|
|
14
16
|
export { OpenAIEmbeddingService, OllamaEmbeddingService, GoogleEmbeddingService, createEmbeddingService, } from './embedding/index';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,mBAAmB,GAEpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,mBAAmB,GAEpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EACL,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,oBAAoB,EACpB,QAAQ,EACR,gBAAgB,GAMjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,cAAc,GAGf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,sBAAsB,EACtB,gCAAgC,EAChC,sBAAsB,EACtB,yBAAyB,EACzB,mBAAmB,EACnB,oCAAoC,EACpC,mCAAmC,EACnC,iCAAiC,EACjC,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type TokenizerConfig } from './tokenizer';
|
|
2
|
+
export interface BM25Config {
|
|
3
|
+
k1?: number;
|
|
4
|
+
b?: number;
|
|
5
|
+
tokenizer?: TokenizerConfig;
|
|
6
|
+
}
|
|
7
|
+
export interface BM25Document {
|
|
8
|
+
id: string;
|
|
9
|
+
content: string;
|
|
10
|
+
}
|
|
11
|
+
export interface BM25Result {
|
|
12
|
+
id: string;
|
|
13
|
+
content: string;
|
|
14
|
+
score: number;
|
|
15
|
+
}
|
|
16
|
+
export declare class BM25Index {
|
|
17
|
+
private documents;
|
|
18
|
+
private invertedIndex;
|
|
19
|
+
private avgDocLength;
|
|
20
|
+
private k1;
|
|
21
|
+
private b;
|
|
22
|
+
private tokenizerConfig;
|
|
23
|
+
constructor(config?: BM25Config);
|
|
24
|
+
get size(): number;
|
|
25
|
+
addDocument(doc: BM25Document): void;
|
|
26
|
+
addDocuments(docs: BM25Document[]): void;
|
|
27
|
+
removeDocument(id: string): boolean;
|
|
28
|
+
search(query: string, limit?: number): BM25Result[];
|
|
29
|
+
getDocument(id: string): BM25Document | undefined;
|
|
30
|
+
clear(): void;
|
|
31
|
+
private calculateScore;
|
|
32
|
+
private updateAvgDocLength;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=bm25.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bm25.d.ts","sourceRoot":"","sources":["../../src/search/bm25.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAE/E,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AAUD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,CAAC,CAAS;IAClB,OAAO,CAAC,eAAe,CAAkB;gBAE7B,MAAM,GAAE,UAAe;IAMnC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI;IA2BpC,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI;IAMxC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAmBnC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,UAAU,EAAE;IAmB/C,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAMjD,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,kBAAkB;CAY3B"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { tokenize, getTermFrequency } from './tokenizer';
|
|
2
|
+
export class BM25Index {
|
|
3
|
+
documents = new Map();
|
|
4
|
+
invertedIndex = new Map();
|
|
5
|
+
avgDocLength = 0;
|
|
6
|
+
k1;
|
|
7
|
+
b;
|
|
8
|
+
tokenizerConfig;
|
|
9
|
+
constructor(config = {}) {
|
|
10
|
+
this.k1 = config.k1 ?? 1.5;
|
|
11
|
+
this.b = config.b ?? 0.75;
|
|
12
|
+
this.tokenizerConfig = config.tokenizer ?? {};
|
|
13
|
+
}
|
|
14
|
+
get size() {
|
|
15
|
+
return this.documents.size;
|
|
16
|
+
}
|
|
17
|
+
addDocument(doc) {
|
|
18
|
+
if (this.documents.has(doc.id)) {
|
|
19
|
+
this.removeDocument(doc.id);
|
|
20
|
+
}
|
|
21
|
+
const tokens = tokenize(doc.content, this.tokenizerConfig);
|
|
22
|
+
const termFreq = getTermFrequency(tokens);
|
|
23
|
+
const indexed = {
|
|
24
|
+
id: doc.id,
|
|
25
|
+
content: doc.content,
|
|
26
|
+
tokens,
|
|
27
|
+
termFreq,
|
|
28
|
+
length: tokens.length,
|
|
29
|
+
};
|
|
30
|
+
this.documents.set(doc.id, indexed);
|
|
31
|
+
for (const term of termFreq.keys()) {
|
|
32
|
+
const docSet = this.invertedIndex.get(term) ?? new Set();
|
|
33
|
+
docSet.add(doc.id);
|
|
34
|
+
this.invertedIndex.set(term, docSet);
|
|
35
|
+
}
|
|
36
|
+
this.updateAvgDocLength();
|
|
37
|
+
}
|
|
38
|
+
addDocuments(docs) {
|
|
39
|
+
for (const doc of docs) {
|
|
40
|
+
this.addDocument(doc);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
removeDocument(id) {
|
|
44
|
+
const doc = this.documents.get(id);
|
|
45
|
+
if (!doc)
|
|
46
|
+
return false;
|
|
47
|
+
for (const term of doc.termFreq.keys()) {
|
|
48
|
+
const docSet = this.invertedIndex.get(term);
|
|
49
|
+
if (docSet) {
|
|
50
|
+
docSet.delete(id);
|
|
51
|
+
if (docSet.size === 0) {
|
|
52
|
+
this.invertedIndex.delete(term);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
this.documents.delete(id);
|
|
57
|
+
this.updateAvgDocLength();
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
search(query, limit = 10) {
|
|
61
|
+
if (this.documents.size === 0)
|
|
62
|
+
return [];
|
|
63
|
+
const queryTerms = tokenize(query, this.tokenizerConfig);
|
|
64
|
+
if (queryTerms.length === 0)
|
|
65
|
+
return [];
|
|
66
|
+
const scores = [];
|
|
67
|
+
const N = this.documents.size;
|
|
68
|
+
for (const [id, doc] of this.documents) {
|
|
69
|
+
const score = this.calculateScore(queryTerms, doc, N);
|
|
70
|
+
if (score > 0) {
|
|
71
|
+
scores.push({ id, content: doc.content, score });
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return scores.sort((a, b) => b.score - a.score).slice(0, limit);
|
|
75
|
+
}
|
|
76
|
+
getDocument(id) {
|
|
77
|
+
const doc = this.documents.get(id);
|
|
78
|
+
if (!doc)
|
|
79
|
+
return undefined;
|
|
80
|
+
return { id: doc.id, content: doc.content };
|
|
81
|
+
}
|
|
82
|
+
clear() {
|
|
83
|
+
this.documents.clear();
|
|
84
|
+
this.invertedIndex.clear();
|
|
85
|
+
this.avgDocLength = 0;
|
|
86
|
+
}
|
|
87
|
+
calculateScore(queryTerms, doc, N) {
|
|
88
|
+
let score = 0;
|
|
89
|
+
for (const term of queryTerms) {
|
|
90
|
+
const df = this.invertedIndex.get(term)?.size ?? 0;
|
|
91
|
+
if (df === 0)
|
|
92
|
+
continue;
|
|
93
|
+
const tf = doc.termFreq.get(term) ?? 0;
|
|
94
|
+
if (tf === 0)
|
|
95
|
+
continue;
|
|
96
|
+
const idf = Math.log((N - df + 0.5) / (df + 0.5) + 1);
|
|
97
|
+
const tfNormalized = (tf * (this.k1 + 1)) /
|
|
98
|
+
(tf + this.k1 * (1 - this.b + this.b * (doc.length / this.avgDocLength)));
|
|
99
|
+
score += idf * tfNormalized;
|
|
100
|
+
}
|
|
101
|
+
return score;
|
|
102
|
+
}
|
|
103
|
+
updateAvgDocLength() {
|
|
104
|
+
if (this.documents.size === 0) {
|
|
105
|
+
this.avgDocLength = 0;
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
let totalLength = 0;
|
|
109
|
+
for (const doc of this.documents.values()) {
|
|
110
|
+
totalLength += doc.length;
|
|
111
|
+
}
|
|
112
|
+
this.avgDocLength = totalLength / this.documents.size;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=bm25.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bm25.js","sourceRoot":"","sources":["../../src/search/bm25.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { HybridSearchConfig, MemoryResult, SearchOptions, SearchResult } from '@cogitator-ai/types';
|
|
2
|
+
export declare class HybridSearch {
|
|
3
|
+
private embeddingAdapter;
|
|
4
|
+
private embeddingService;
|
|
5
|
+
private keywordAdapter?;
|
|
6
|
+
private localBM25;
|
|
7
|
+
private defaultWeights;
|
|
8
|
+
private indexedIds;
|
|
9
|
+
constructor(config: HybridSearchConfig);
|
|
10
|
+
search(options: SearchOptions): Promise<MemoryResult<SearchResult[]>>;
|
|
11
|
+
indexDocument(id: string, content: string): void;
|
|
12
|
+
removeDocument(id: string): void;
|
|
13
|
+
clearIndex(): void;
|
|
14
|
+
get indexSize(): number;
|
|
15
|
+
private vectorSearch;
|
|
16
|
+
private keywordSearch;
|
|
17
|
+
private localBM25Search;
|
|
18
|
+
private hybridSearch;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=hybrid-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hybrid-search.d.ts","sourceRoot":"","sources":["../../src/search/hybrid-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,kBAAkB,EAGlB,YAAY,EACZ,aAAa,EACb,YAAY,EACb,MAAM,qBAAqB,CAAC;AAQ7B,qBAAa,YAAY;IACvB,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,cAAc,CAAC,CAAuB;IAC9C,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,UAAU,CAAqB;gBAE3B,MAAM,EAAE,kBAAkB;IAQhC,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC;IAc3E,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAKhD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKhC,UAAU,IAAI,IAAI;IAKlB,IAAI,SAAS,IAAI,MAAM,CAEtB;YAEa,YAAY;YA6BZ,aAAa;IAe3B,OAAO,CAAC,eAAe;YAgBT,YAAY;CAmB3B"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { BM25Index } from './bm25';
|
|
2
|
+
import { fuseSearchResults } from './rrf';
|
|
3
|
+
const DEFAULT_WEIGHTS = { bm25: 0.4, vector: 0.6 };
|
|
4
|
+
const DEFAULT_LIMIT = 10;
|
|
5
|
+
const OVERSAMPLE_FACTOR = 3;
|
|
6
|
+
export class HybridSearch {
|
|
7
|
+
embeddingAdapter;
|
|
8
|
+
embeddingService;
|
|
9
|
+
keywordAdapter;
|
|
10
|
+
localBM25;
|
|
11
|
+
defaultWeights;
|
|
12
|
+
indexedIds = new Set();
|
|
13
|
+
constructor(config) {
|
|
14
|
+
this.embeddingAdapter = config.embeddingAdapter;
|
|
15
|
+
this.embeddingService = config.embeddingService;
|
|
16
|
+
this.keywordAdapter = config.keywordAdapter;
|
|
17
|
+
this.defaultWeights = config.defaultWeights ?? DEFAULT_WEIGHTS;
|
|
18
|
+
this.localBM25 = new BM25Index();
|
|
19
|
+
}
|
|
20
|
+
async search(options) {
|
|
21
|
+
const weights = options.weights ?? this.defaultWeights;
|
|
22
|
+
const limit = options.limit ?? DEFAULT_LIMIT;
|
|
23
|
+
switch (options.strategy) {
|
|
24
|
+
case 'vector':
|
|
25
|
+
return this.vectorSearch(options, limit);
|
|
26
|
+
case 'keyword':
|
|
27
|
+
return this.keywordSearch(options, limit);
|
|
28
|
+
case 'hybrid':
|
|
29
|
+
return this.hybridSearch(options, weights, limit);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
indexDocument(id, content) {
|
|
33
|
+
this.localBM25.addDocument({ id, content });
|
|
34
|
+
this.indexedIds.add(id);
|
|
35
|
+
}
|
|
36
|
+
removeDocument(id) {
|
|
37
|
+
this.localBM25.removeDocument(id);
|
|
38
|
+
this.indexedIds.delete(id);
|
|
39
|
+
}
|
|
40
|
+
clearIndex() {
|
|
41
|
+
this.localBM25.clear();
|
|
42
|
+
this.indexedIds.clear();
|
|
43
|
+
}
|
|
44
|
+
get indexSize() {
|
|
45
|
+
return this.localBM25.size;
|
|
46
|
+
}
|
|
47
|
+
async vectorSearch(options, limit) {
|
|
48
|
+
const vector = await this.embeddingService.embed(options.query);
|
|
49
|
+
const result = await this.embeddingAdapter.search({
|
|
50
|
+
vector,
|
|
51
|
+
limit,
|
|
52
|
+
threshold: options.threshold,
|
|
53
|
+
filter: options.filter,
|
|
54
|
+
});
|
|
55
|
+
if (!result.success)
|
|
56
|
+
return result;
|
|
57
|
+
return {
|
|
58
|
+
success: true,
|
|
59
|
+
data: result.data.map((emb) => ({
|
|
60
|
+
id: emb.id,
|
|
61
|
+
sourceId: emb.sourceId,
|
|
62
|
+
sourceType: emb.sourceType,
|
|
63
|
+
content: emb.content,
|
|
64
|
+
score: emb.score,
|
|
65
|
+
vectorScore: emb.score,
|
|
66
|
+
metadata: emb.metadata,
|
|
67
|
+
})),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
async keywordSearch(options, limit) {
|
|
71
|
+
if (this.keywordAdapter) {
|
|
72
|
+
return this.keywordAdapter.keywordSearch({
|
|
73
|
+
query: options.query,
|
|
74
|
+
limit,
|
|
75
|
+
filter: options.filter,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
return this.localBM25Search(options.query, limit);
|
|
79
|
+
}
|
|
80
|
+
localBM25Search(query, limit) {
|
|
81
|
+
const results = this.localBM25.search(query, limit);
|
|
82
|
+
return {
|
|
83
|
+
success: true,
|
|
84
|
+
data: results.map((r) => ({
|
|
85
|
+
id: r.id,
|
|
86
|
+
sourceId: r.id,
|
|
87
|
+
sourceType: 'document',
|
|
88
|
+
content: r.content,
|
|
89
|
+
score: r.score,
|
|
90
|
+
keywordScore: r.score,
|
|
91
|
+
})),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
async hybridSearch(options, weights, limit) {
|
|
95
|
+
const expandedLimit = limit * OVERSAMPLE_FACTOR;
|
|
96
|
+
const [vectorResult, keywordResult] = await Promise.all([
|
|
97
|
+
this.vectorSearch({ ...options, limit: expandedLimit }, expandedLimit),
|
|
98
|
+
this.keywordSearch({ ...options, limit: expandedLimit }, expandedLimit),
|
|
99
|
+
]);
|
|
100
|
+
if (!vectorResult.success)
|
|
101
|
+
return vectorResult;
|
|
102
|
+
if (!keywordResult.success)
|
|
103
|
+
return keywordResult;
|
|
104
|
+
const fused = fuseSearchResults(vectorResult.data, keywordResult.data, weights);
|
|
105
|
+
return { success: true, data: fused.slice(0, limit) };
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=hybrid-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hybrid-search.js","sourceRoot":"","sources":["../../src/search/hybrid-search.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1C,MAAM,eAAe,GAAwB,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACxE,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B,MAAM,OAAO,YAAY;IACf,gBAAgB,CAAmB;IACnC,gBAAgB,CAAmB;IACnC,cAAc,CAAwB;IACtC,SAAS,CAAY;IACrB,cAAc,CAAsB;IACpC,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvC,YAAY,MAA0B;QACpC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAChD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAChD,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,eAAe,CAAC;QAC/D,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAsB;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC;QACvD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC;QAE7C,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;YACzB,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC3C,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5C,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,aAAa,CAAC,EAAU,EAAE,OAAe;QACvC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,cAAc,CAAC,EAAU;QACvB,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,UAAU;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,OAAsB,EACtB,KAAa;QAEb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEhE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAChD,MAAM;YACN,KAAK;YACL,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,MAAM,CAAC;QAEnC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC9B,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,WAAW,EAAE,GAAG,CAAC,KAAK;gBACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACvB,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,OAAsB,EACtB,KAAa;QAEb,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;gBACvC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,KAAK;gBACL,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAEO,eAAe,CAAC,KAAa,EAAE,KAAa;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAEpD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxB,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,QAAQ,EAAE,CAAC,CAAC,EAAE;gBACd,UAAU,EAAE,UAAmB;gBAC/B,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,YAAY,EAAE,CAAC,CAAC,KAAK;aACtB,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,OAAsB,EACtB,OAA4B,EAC5B,KAAa;QAEb,MAAM,aAAa,GAAG,KAAK,GAAG,iBAAiB,CAAC;QAEhD,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACtD,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,aAAa,CAAC;YACtE,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,aAAa,CAAC;SACxE,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,OAAO;YAAE,OAAO,YAAY,CAAC;QAC/C,IAAI,CAAC,aAAa,CAAC,OAAO;YAAE,OAAO,aAAa,CAAC;QAEjD,MAAM,KAAK,GAAG,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEhF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;IACxD,CAAC;CACF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { BM25Index, type BM25Config, type BM25Document, type BM25Result } from './bm25';
|
|
2
|
+
export { HybridSearch } from './hybrid-search';
|
|
3
|
+
export { fuseSearchResults, reciprocalRankFusion, type RRFConfig } from './rrf';
|
|
4
|
+
export { tokenize, getTermFrequency, type TokenizerConfig } from './tokenizer';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAuD,MAAM,QAAQ,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAkB,MAAM,OAAO,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAwB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { HybridSearchWeights, SearchResult } from '@cogitator-ai/types';
|
|
2
|
+
export interface RRFConfig {
|
|
3
|
+
k?: number;
|
|
4
|
+
}
|
|
5
|
+
interface RankedItem {
|
|
6
|
+
id: string;
|
|
7
|
+
rank: number;
|
|
8
|
+
score: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function reciprocalRankFusion(resultSets: RankedItem[][], weights: number[], config?: RRFConfig): Map<string, number>;
|
|
11
|
+
export declare function fuseSearchResults(vectorResults: SearchResult[], keywordResults: SearchResult[], weights: HybridSearchWeights, config?: RRFConfig): SearchResult[];
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=rrf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rrf.d.ts","sourceRoot":"","sources":["../../src/search/rrf.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE7E,MAAM,WAAW,SAAS;IACxB,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,UAAU,EAAE,EAAE,EAC1B,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,GAAE,SAAc,GACrB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBrB;AAED,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,YAAY,EAAE,EAC7B,cAAc,EAAE,YAAY,EAAE,EAC9B,OAAO,EAAE,mBAAmB,EAC5B,MAAM,GAAE,SAAc,GACrB,YAAY,EAAE,CA2ChB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export function reciprocalRankFusion(resultSets, weights, config = {}) {
|
|
2
|
+
const k = config.k ?? 60;
|
|
3
|
+
const scores = new Map();
|
|
4
|
+
for (let i = 0; i < resultSets.length; i++) {
|
|
5
|
+
const weight = weights[i] ?? 1;
|
|
6
|
+
const results = resultSets[i];
|
|
7
|
+
for (let rank = 0; rank < results.length; rank++) {
|
|
8
|
+
const item = results[rank];
|
|
9
|
+
const rrfScore = weight * (1 / (k + rank + 1));
|
|
10
|
+
scores.set(item.id, (scores.get(item.id) ?? 0) + rrfScore);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return scores;
|
|
14
|
+
}
|
|
15
|
+
export function fuseSearchResults(vectorResults, keywordResults, weights, config = {}) {
|
|
16
|
+
const vectorRanked = vectorResults.map((r, i) => ({
|
|
17
|
+
id: r.id,
|
|
18
|
+
rank: i,
|
|
19
|
+
score: r.score,
|
|
20
|
+
}));
|
|
21
|
+
const keywordRanked = keywordResults.map((r, i) => ({
|
|
22
|
+
id: r.id,
|
|
23
|
+
rank: i,
|
|
24
|
+
score: r.score,
|
|
25
|
+
}));
|
|
26
|
+
const fusedScores = reciprocalRankFusion([vectorRanked, keywordRanked], [weights.vector, weights.bm25], config);
|
|
27
|
+
const resultMap = new Map();
|
|
28
|
+
for (const r of vectorResults) {
|
|
29
|
+
resultMap.set(r.id, r);
|
|
30
|
+
}
|
|
31
|
+
for (const r of keywordResults) {
|
|
32
|
+
if (!resultMap.has(r.id)) {
|
|
33
|
+
resultMap.set(r.id, r);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const vectorScoreMap = new Map(vectorResults.map((r) => [r.id, r.score]));
|
|
37
|
+
const keywordScoreMap = new Map(keywordResults.map((r) => [r.id, r.score]));
|
|
38
|
+
return [...fusedScores.entries()]
|
|
39
|
+
.sort((a, b) => b[1] - a[1])
|
|
40
|
+
.map(([id, score]) => {
|
|
41
|
+
const original = resultMap.get(id);
|
|
42
|
+
return {
|
|
43
|
+
...original,
|
|
44
|
+
score,
|
|
45
|
+
vectorScore: vectorScoreMap.get(id),
|
|
46
|
+
keywordScore: keywordScoreMap.get(id),
|
|
47
|
+
};
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=rrf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rrf.js","sourceRoot":"","sources":["../../src/search/rrf.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface TokenizerConfig {
|
|
2
|
+
lowercase?: boolean;
|
|
3
|
+
removeStopwords?: boolean;
|
|
4
|
+
minLength?: number;
|
|
5
|
+
}
|
|
6
|
+
export declare function tokenize(text: string, config?: TokenizerConfig): string[];
|
|
7
|
+
export declare function getTermFrequency(tokens: string[]): Map<string, number>;
|
|
8
|
+
//# sourceMappingURL=tokenizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../../src/search/tokenizer.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,eAAoB,GAAG,MAAM,EAAE,CAiB7E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMtE"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
const ENGLISH_STOPWORDS = new Set([
|
|
2
|
+
'a',
|
|
3
|
+
'an',
|
|
4
|
+
'and',
|
|
5
|
+
'are',
|
|
6
|
+
'as',
|
|
7
|
+
'at',
|
|
8
|
+
'be',
|
|
9
|
+
'by',
|
|
10
|
+
'for',
|
|
11
|
+
'from',
|
|
12
|
+
'has',
|
|
13
|
+
'he',
|
|
14
|
+
'in',
|
|
15
|
+
'is',
|
|
16
|
+
'it',
|
|
17
|
+
'its',
|
|
18
|
+
'of',
|
|
19
|
+
'on',
|
|
20
|
+
'or',
|
|
21
|
+
'that',
|
|
22
|
+
'the',
|
|
23
|
+
'to',
|
|
24
|
+
'was',
|
|
25
|
+
'were',
|
|
26
|
+
'will',
|
|
27
|
+
'with',
|
|
28
|
+
]);
|
|
29
|
+
export function tokenize(text, config = {}) {
|
|
30
|
+
const { lowercase = true, removeStopwords = true, minLength = 2 } = config;
|
|
31
|
+
let normalized = text;
|
|
32
|
+
if (lowercase) {
|
|
33
|
+
normalized = normalized.toLowerCase();
|
|
34
|
+
}
|
|
35
|
+
normalized = normalized.replace(/[^\p{L}\p{N}\s]/gu, ' ');
|
|
36
|
+
const tokens = normalized.split(/\s+/).filter((t) => t.length >= minLength);
|
|
37
|
+
if (removeStopwords) {
|
|
38
|
+
return tokens.filter((t) => !ENGLISH_STOPWORDS.has(t));
|
|
39
|
+
}
|
|
40
|
+
return tokens;
|
|
41
|
+
}
|
|
42
|
+
export function getTermFrequency(tokens) {
|
|
43
|
+
const freq = new Map();
|
|
44
|
+
for (const token of tokens) {
|
|
45
|
+
freq.set(token, (freq.get(token) ?? 0) + 1);
|
|
46
|
+
}
|
|
47
|
+
return freq;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=tokenizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenizer.js","sourceRoot":"","sources":["../../src/search/tokenizer.ts"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,GAAG;IACH,IAAI;IACJ,KAAK;IACL,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,MAAM;IACN,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC,CAAC;AAQH,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,SAA0B,EAAE;IACjE,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,eAAe,GAAG,IAAI,EAAE,SAAS,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC;IAE3E,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,IAAI,SAAS,EAAE,CAAC;QACd,UAAU,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC;IAED,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAE1D,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;IAE5E,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAgB;IAC/C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cogitator-ai/memory",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Memory adapters for Cogitator AI agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"@types/pg": "^8.10.9",
|
|
20
20
|
"nanoid": "^5.0.4",
|
|
21
21
|
"zod": "^3.22.4",
|
|
22
|
-
"@cogitator-ai/
|
|
23
|
-
"@cogitator-ai/
|
|
22
|
+
"@cogitator-ai/redis": "0.2.10",
|
|
23
|
+
"@cogitator-ai/types": "0.11.0"
|
|
24
24
|
},
|
|
25
25
|
"optionalDependencies": {
|
|
26
26
|
"ioredis": "^5.3.2",
|