@cogitator-ai/memory 0.1.0 → 0.3.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.
Files changed (53) hide show
  1. package/README.md +572 -21
  2. package/dist/__tests__/context-builder.test.js +2 -2
  3. package/dist/__tests__/context-builder.test.js.map +1 -1
  4. package/dist/__tests__/memory-adapter.test.js +1 -1
  5. package/dist/__tests__/memory-adapter.test.js.map +1 -1
  6. package/dist/__tests__/token-counter.test.js +1 -1
  7. package/dist/__tests__/token-counter.test.js.map +1 -1
  8. package/dist/adapters/base.d.ts.map +1 -1
  9. package/dist/adapters/base.js.map +1 -1
  10. package/dist/adapters/memory.d.ts.map +1 -1
  11. package/dist/adapters/memory.js.map +1 -1
  12. package/dist/adapters/postgres.d.ts.map +1 -1
  13. package/dist/adapters/postgres.js +11 -15
  14. package/dist/adapters/postgres.js.map +1 -1
  15. package/dist/adapters/redis.d.ts.map +1 -1
  16. package/dist/adapters/redis.js.map +1 -1
  17. package/dist/context-builder.d.ts.map +1 -1
  18. package/dist/context-builder.js +7 -15
  19. package/dist/context-builder.js.map +1 -1
  20. package/dist/embedding/factory.d.ts.map +1 -1
  21. package/dist/embedding/factory.js.map +1 -1
  22. package/dist/embedding/openai.d.ts.map +1 -1
  23. package/dist/embedding/openai.js +1 -3
  24. package/dist/embedding/openai.js.map +1 -1
  25. package/dist/index.d.ts +4 -2
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +2 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/knowledge-graph/entity-extractor.d.ts +30 -0
  30. package/dist/knowledge-graph/entity-extractor.d.ts.map +1 -0
  31. package/dist/knowledge-graph/entity-extractor.js +158 -0
  32. package/dist/knowledge-graph/entity-extractor.js.map +1 -0
  33. package/dist/knowledge-graph/graph-adapter.d.ts +56 -0
  34. package/dist/knowledge-graph/graph-adapter.d.ts.map +1 -0
  35. package/dist/knowledge-graph/graph-adapter.js +652 -0
  36. package/dist/knowledge-graph/graph-adapter.js.map +1 -0
  37. package/dist/knowledge-graph/graph-context-builder.d.ts +23 -0
  38. package/dist/knowledge-graph/graph-context-builder.d.ts.map +1 -0
  39. package/dist/knowledge-graph/graph-context-builder.js +202 -0
  40. package/dist/knowledge-graph/graph-context-builder.js.map +1 -0
  41. package/dist/knowledge-graph/index.d.ts +9 -0
  42. package/dist/knowledge-graph/index.d.ts.map +1 -0
  43. package/dist/knowledge-graph/index.js +6 -0
  44. package/dist/knowledge-graph/index.js.map +1 -0
  45. package/dist/knowledge-graph/inference-engine.d.ts +17 -0
  46. package/dist/knowledge-graph/inference-engine.d.ts.map +1 -0
  47. package/dist/knowledge-graph/inference-engine.js +270 -0
  48. package/dist/knowledge-graph/inference-engine.js.map +1 -0
  49. package/dist/knowledge-graph/schema.d.ts +854 -0
  50. package/dist/knowledge-graph/schema.d.ts.map +1 -0
  51. package/dist/knowledge-graph/schema.js +166 -0
  52. package/dist/knowledge-graph/schema.js.map +1 -0
  53. package/package.json +6 -5
package/README.md CHANGED
@@ -12,77 +12,628 @@ pnpm add ioredis # For Redis adapter
12
12
  pnpm add pg # For PostgreSQL adapter
13
13
  ```
14
14
 
15
- ## Usage
15
+ ## Features
16
+
17
+ - **Multiple Adapters** - In-memory, Redis, PostgreSQL with pgvector
18
+ - **Thread Management** - Create, update, delete conversation threads
19
+ - **Token Counting** - Estimate token usage without tiktoken dependency
20
+ - **Context Builder** - Build token-aware conversation context
21
+ - **Embedding Services** - OpenAI and Ollama embedding integration
22
+ - **Semantic Search** - Vector similarity search with pgvector
23
+ - **Facts Storage** - Store and retrieve agent knowledge
24
+ - **Zod Schemas** - Type-safe configuration validation
25
+
26
+ ---
27
+
28
+ ## Quick Start
29
+
30
+ ```typescript
31
+ import { InMemoryAdapter, ContextBuilder } from '@cogitator-ai/memory';
32
+
33
+ const memory = new InMemoryAdapter();
34
+ await memory.connect();
35
+
36
+ const threadResult = await memory.createThread('agent-1', { topic: 'greeting' });
37
+ const thread = threadResult.data!;
38
+
39
+ await memory.addEntry({
40
+ threadId: thread.id,
41
+ message: { role: 'user', content: 'Hello!' },
42
+ });
43
+
44
+ await memory.addEntry({
45
+ threadId: thread.id,
46
+ message: { role: 'assistant', content: 'Hi there!' },
47
+ });
48
+
49
+ const builder = new ContextBuilder(
50
+ { maxTokens: 4000, strategy: 'recent' },
51
+ { memoryAdapter: memory }
52
+ );
53
+
54
+ const context = await builder.build({
55
+ threadId: thread.id,
56
+ agentId: 'agent-1',
57
+ systemPrompt: 'You are helpful.',
58
+ });
59
+
60
+ console.log(context.messages);
61
+ ```
62
+
63
+ ---
64
+
65
+ ## Memory Adapters
16
66
 
17
67
  ### In-Memory Adapter
18
68
 
69
+ Fast, non-persistent storage for development and testing.
70
+
19
71
  ```typescript
20
72
  import { InMemoryAdapter } from '@cogitator-ai/memory';
21
73
 
22
- const memory = new InMemoryAdapter();
23
- await memory.saveEntry(threadId, {
24
- role: 'user',
25
- content: 'Hello!',
74
+ const memory = new InMemoryAdapter({
75
+ maxEntries: 1000,
26
76
  });
77
+
78
+ await memory.connect();
27
79
  ```
28
80
 
29
81
  ### Redis Adapter
30
82
 
83
+ Persistent short-term memory with TTL support.
84
+
31
85
  ```typescript
32
86
  import { RedisAdapter } from '@cogitator-ai/memory';
33
87
 
34
88
  const memory = new RedisAdapter({
35
89
  url: 'redis://localhost:6379',
36
- ttl: 3600, // 1 hour
90
+ keyPrefix: 'cogitator:',
91
+ ttl: 3600,
37
92
  });
93
+
94
+ await memory.connect();
38
95
  ```
39
96
 
40
97
  ### PostgreSQL Adapter
41
98
 
99
+ Long-term storage with vector search via pgvector.
100
+
42
101
  ```typescript
43
102
  import { PostgresAdapter } from '@cogitator-ai/memory';
44
103
 
45
104
  const memory = new PostgresAdapter({
46
105
  connectionString: 'postgresql://localhost:5432/cogitator',
106
+ schema: 'public',
107
+ poolSize: 10,
108
+ });
109
+
110
+ await memory.connect();
111
+ ```
112
+
113
+ ### Factory Function
114
+
115
+ ```typescript
116
+ import { createMemoryAdapter } from '@cogitator-ai/memory';
117
+
118
+ const memory = createMemoryAdapter({ provider: 'memory' });
119
+
120
+ const redis = createMemoryAdapter({
121
+ provider: 'redis',
122
+ url: 'redis://localhost:6379',
123
+ });
124
+
125
+ const postgres = createMemoryAdapter({
126
+ provider: 'postgres',
127
+ connectionString: 'postgresql://localhost:5432/db',
128
+ });
129
+ ```
130
+
131
+ ---
132
+
133
+ ## MemoryAdapter Interface
134
+
135
+ All adapters implement the `MemoryAdapter` interface:
136
+
137
+ ```typescript
138
+ interface MemoryAdapter {
139
+ readonly provider: MemoryProvider;
140
+
141
+ connect(): Promise<MemoryResult<void>>;
142
+ disconnect(): Promise<MemoryResult<void>>;
143
+
144
+ createThread(agentId: string, metadata?: Record<string, unknown>): Promise<MemoryResult<Thread>>;
145
+ getThread(threadId: string): Promise<MemoryResult<Thread | null>>;
146
+ updateThread(threadId: string, metadata: Record<string, unknown>): Promise<MemoryResult<Thread>>;
147
+ deleteThread(threadId: string): Promise<MemoryResult<void>>;
148
+
149
+ addEntry(entry: Omit<MemoryEntry, 'id' | 'createdAt'>): Promise<MemoryResult<MemoryEntry>>;
150
+ getEntries(options: MemoryQueryOptions): Promise<MemoryResult<MemoryEntry[]>>;
151
+ getEntry(entryId: string): Promise<MemoryResult<MemoryEntry | null>>;
152
+ deleteEntry(entryId: string): Promise<MemoryResult<void>>;
153
+ clearThread(threadId: string): Promise<MemoryResult<void>>;
154
+ }
155
+ ```
156
+
157
+ ### Thread Operations
158
+
159
+ ```typescript
160
+ const result = await memory.createThread('agent-1', {
161
+ topic: 'support',
162
+ user: 'user-123',
163
+ });
164
+ const thread = result.data!;
165
+
166
+ const threadResult = await memory.getThread(thread.id);
167
+
168
+ await memory.updateThread(thread.id, {
169
+ resolved: true,
47
170
  });
171
+
172
+ await memory.deleteThread(thread.id);
173
+ ```
174
+
175
+ ### Entry Operations
176
+
177
+ ```typescript
178
+ const entry = await memory.addEntry({
179
+ threadId: thread.id,
180
+ message: { role: 'user', content: 'Hello' },
181
+ tokenCount: 10,
182
+ });
183
+
184
+ const entries = await memory.getEntries({
185
+ threadId: thread.id,
186
+ limit: 50,
187
+ includeToolCalls: true,
188
+ });
189
+
190
+ const single = await memory.getEntry(entry.data!.id);
191
+
192
+ await memory.deleteEntry(entry.data!.id);
193
+
194
+ await memory.clearThread(thread.id);
48
195
  ```
49
196
 
50
- ### Context Builder
197
+ ---
51
198
 
52
- Build token-aware context from memory:
199
+ ## Context Builder
200
+
201
+ Build token-aware conversation context from memory.
202
+
203
+ ### Configuration
204
+
205
+ ```typescript
206
+ interface ContextBuilderConfig {
207
+ maxTokens: number;
208
+ reserveTokens?: number;
209
+ strategy: 'recent' | 'relevant' | 'hybrid';
210
+ includeSystemPrompt?: boolean;
211
+ includeFacts?: boolean;
212
+ includeSemanticContext?: boolean;
213
+ }
214
+ ```
215
+
216
+ ### Basic Usage
53
217
 
54
218
  ```typescript
55
219
  import { ContextBuilder } from '@cogitator-ai/memory';
56
220
 
57
- const builder = new ContextBuilder({
221
+ const builder = new ContextBuilder(
222
+ {
223
+ maxTokens: 4000,
224
+ reserveTokens: 400,
225
+ strategy: 'recent',
226
+ includeSystemPrompt: true,
227
+ },
228
+ { memoryAdapter: memory }
229
+ );
230
+
231
+ const context = await builder.build({
232
+ threadId: 'thread_123',
233
+ agentId: 'agent-1',
234
+ systemPrompt: 'You are a helpful assistant.',
235
+ });
236
+
237
+ console.log(context.messages);
238
+ console.log(context.tokenCount);
239
+ console.log(context.truncated);
240
+ ```
241
+
242
+ ### With Facts and Semantic Search
243
+
244
+ ```typescript
245
+ const builder = new ContextBuilder(
246
+ {
247
+ maxTokens: 8000,
248
+ strategy: 'recent',
249
+ includeFacts: true,
250
+ includeSemanticContext: true,
251
+ },
252
+ {
253
+ memoryAdapter: memory,
254
+ factAdapter: factStore,
255
+ embeddingAdapter: vectorStore,
256
+ embeddingService: embeddings,
257
+ }
258
+ );
259
+
260
+ const context = await builder.build({
261
+ threadId: 'thread_123',
262
+ agentId: 'agent-1',
263
+ systemPrompt: 'You are an expert.',
264
+ currentInput: 'What is machine learning?',
265
+ });
266
+
267
+ console.log(context.facts);
268
+ console.log(context.semanticResults);
269
+ ```
270
+
271
+ ### Built Context
272
+
273
+ ```typescript
274
+ interface BuiltContext {
275
+ messages: Message[];
276
+ facts: Fact[];
277
+ semanticResults: (Embedding & { score: number })[];
278
+ tokenCount: number;
279
+ truncated: boolean;
280
+ metadata: {
281
+ originalMessageCount: number;
282
+ includedMessageCount: number;
283
+ factsIncluded: number;
284
+ semanticResultsIncluded: number;
285
+ };
286
+ }
287
+ ```
288
+
289
+ ---
290
+
291
+ ## Token Counting
292
+
293
+ Simple token estimation without tiktoken dependency.
294
+
295
+ ```typescript
296
+ import {
297
+ countTokens,
298
+ countMessageTokens,
299
+ countMessagesTokens,
300
+ truncateToTokens,
301
+ } from '@cogitator-ai/memory';
302
+
303
+ const tokens = countTokens('Hello, world!');
304
+
305
+ const msgTokens = countMessageTokens({ role: 'user', content: 'Hello!' });
306
+
307
+ const totalTokens = countMessagesTokens([
308
+ { role: 'user', content: 'Hello!' },
309
+ { role: 'assistant', content: 'Hi there!' },
310
+ ]);
311
+
312
+ const truncated = truncateToTokens('Very long text...', 100);
313
+ ```
314
+
315
+ ---
316
+
317
+ ## Embedding Services
318
+
319
+ ### OpenAI Embeddings
320
+
321
+ ```typescript
322
+ import { OpenAIEmbeddingService, createEmbeddingService } from '@cogitator-ai/memory';
323
+
324
+ const embeddings = new OpenAIEmbeddingService({
325
+ apiKey: process.env.OPENAI_API_KEY!,
326
+ model: 'text-embedding-3-small',
327
+ });
328
+
329
+ const embeddings = createEmbeddingService({
330
+ provider: 'openai',
331
+ apiKey: process.env.OPENAI_API_KEY!,
332
+ });
333
+
334
+ const vector = await embeddings.embed('Hello, world!');
335
+
336
+ const vectors = await embeddings.embedBatch(['Hello', 'World']);
337
+ ```
338
+
339
+ ### Ollama Embeddings
340
+
341
+ ```typescript
342
+ import { OllamaEmbeddingService, createEmbeddingService } from '@cogitator-ai/memory';
343
+
344
+ const embeddings = new OllamaEmbeddingService({
345
+ model: 'nomic-embed-text',
346
+ baseUrl: 'http://localhost:11434',
347
+ });
348
+
349
+ const embeddings = createEmbeddingService({
350
+ provider: 'ollama',
351
+ model: 'nomic-embed-text',
352
+ });
353
+
354
+ const vector = await embeddings.embed('Hello, world!');
355
+ ```
356
+
357
+ ---
358
+
359
+ ## Zod Schemas
360
+
361
+ Type-safe configuration validation:
362
+
363
+ ```typescript
364
+ import {
365
+ MemoryProviderSchema,
366
+ InMemoryConfigSchema,
367
+ RedisConfigSchema,
368
+ PostgresConfigSchema,
369
+ MemoryAdapterConfigSchema,
370
+ ContextStrategySchema,
371
+ ContextBuilderConfigSchema,
372
+ EmbeddingProviderSchema,
373
+ OpenAIEmbeddingConfigSchema,
374
+ OllamaEmbeddingConfigSchema,
375
+ EmbeddingServiceConfigSchema,
376
+ } from '@cogitator-ai/memory';
377
+
378
+ const config = MemoryAdapterConfigSchema.parse({
379
+ provider: 'redis',
380
+ url: 'redis://localhost:6379',
381
+ ttl: 3600,
382
+ });
383
+
384
+ const builderConfig = ContextBuilderConfigSchema.parse({
58
385
  maxTokens: 4000,
59
386
  strategy: 'recent',
60
387
  });
388
+ ```
389
+
390
+ ---
391
+
392
+ ## Type Reference
393
+
394
+ ```typescript
395
+ import type {
396
+ MemoryType,
397
+ Thread,
398
+ MemoryEntry,
399
+ Fact,
400
+ Embedding,
401
+ MemoryProvider,
402
+ MemoryAdapterConfig,
403
+ RedisAdapterConfig,
404
+ PostgresAdapterConfig,
405
+ InMemoryAdapterConfig,
406
+ MemoryResult,
407
+ MemoryQueryOptions,
408
+ SemanticSearchOptions,
409
+ MemoryAdapter,
410
+ FactAdapter,
411
+ EmbeddingAdapter,
412
+ EmbeddingService,
413
+ EmbeddingProvider,
414
+ EmbeddingServiceConfig,
415
+ OpenAIEmbeddingConfig,
416
+ OllamaEmbeddingConfig,
417
+ ContextBuilderConfig,
418
+ ContextStrategy,
419
+ BuiltContext,
420
+ MemoryConfig,
421
+ } from '@cogitator-ai/memory';
422
+ ```
61
423
 
62
- const context = await builder.build(memory, threadId, {
63
- systemPrompt: 'You are a helpful assistant',
424
+ ---
425
+
426
+ ## Examples
427
+
428
+ ### Conversation History
429
+
430
+ ```typescript
431
+ import { InMemoryAdapter } from '@cogitator-ai/memory';
432
+
433
+ const memory = new InMemoryAdapter();
434
+ await memory.connect();
435
+
436
+ const thread = await memory.createThread('chatbot');
437
+
438
+ const messages = [
439
+ { role: 'user' as const, content: 'What is AI?' },
440
+ { role: 'assistant' as const, content: 'AI is artificial intelligence...' },
441
+ { role: 'user' as const, content: 'Tell me more' },
442
+ ];
443
+
444
+ for (const msg of messages) {
445
+ await memory.addEntry({
446
+ threadId: thread.data!.id,
447
+ message: msg,
448
+ });
449
+ }
450
+
451
+ const history = await memory.getEntries({
452
+ threadId: thread.data!.id,
453
+ limit: 10,
454
+ });
455
+ ```
456
+
457
+ ### Token-Limited Context
458
+
459
+ ```typescript
460
+ import { InMemoryAdapter, ContextBuilder, countMessagesTokens } from '@cogitator-ai/memory';
461
+
462
+ const memory = new InMemoryAdapter();
463
+ await memory.connect();
464
+
465
+ const builder = new ContextBuilder(
466
+ { maxTokens: 2000, strategy: 'recent' },
467
+ { memoryAdapter: memory }
468
+ );
469
+
470
+ const context = await builder.build({
471
+ threadId: 'thread_123',
472
+ agentId: 'agent-1',
473
+ systemPrompt: 'You are a concise assistant.',
64
474
  });
475
+
476
+ console.log(`Using ${context.tokenCount} tokens`);
477
+ console.log(`Truncated: ${context.truncated}`);
478
+ console.log(
479
+ `Included ${context.metadata.includedMessageCount} of ${context.metadata.originalMessageCount} messages`
480
+ );
65
481
  ```
66
482
 
67
- ### Embedding Services
483
+ ### Semantic Memory with PostgreSQL
68
484
 
69
485
  ```typescript
70
- import { createEmbeddingService } from '@cogitator-ai/memory';
486
+ import { PostgresAdapter, OpenAIEmbeddingService } from '@cogitator-ai/memory';
71
487
 
72
- // OpenAI embeddings
73
- const embeddings = createEmbeddingService('openai', {
74
- apiKey: process.env.OPENAI_API_KEY,
488
+ const memory = new PostgresAdapter({
489
+ connectionString: process.env.DATABASE_URL!,
75
490
  });
76
491
 
77
- // Ollama embeddings
78
- const embeddings = createEmbeddingService('ollama', {
79
- model: 'nomic-embed-text',
492
+ const embeddings = new OpenAIEmbeddingService({
493
+ apiKey: process.env.OPENAI_API_KEY!,
494
+ });
495
+
496
+ await memory.connect();
497
+
498
+ const content = 'Machine learning is a subset of AI...';
499
+ const vector = await embeddings.embed(content);
500
+ ```
501
+
502
+ ---
503
+
504
+ ## Knowledge Graph
505
+
506
+ Entity-relationship memory with multi-hop traversal and semantic reasoning.
507
+
508
+ ### PostgresGraphAdapter
509
+
510
+ ```typescript
511
+ import { PostgresGraphAdapter } from '@cogitator-ai/memory';
512
+
513
+ const graph = new PostgresGraphAdapter({
514
+ connectionString: process.env.DATABASE_URL!,
515
+ });
516
+
517
+ await graph.connect();
518
+
519
+ const person = await graph.addNode({
520
+ agentId: 'agent-1',
521
+ type: 'person',
522
+ name: 'Alice',
523
+ description: 'Software engineer',
524
+ properties: { role: 'developer' },
525
+ confidence: 1.0,
526
+ source: 'user',
80
527
  });
528
+
529
+ const company = await graph.addNode({
530
+ agentId: 'agent-1',
531
+ type: 'organization',
532
+ name: 'TechCorp',
533
+ confidence: 1.0,
534
+ source: 'extracted',
535
+ });
536
+
537
+ await graph.addEdge({
538
+ agentId: 'agent-1',
539
+ sourceNodeId: person.id,
540
+ targetNodeId: company.id,
541
+ type: 'works_at',
542
+ weight: 1.0,
543
+ confidence: 0.95,
544
+ source: 'extracted',
545
+ });
546
+ ```
547
+
548
+ ### Multi-hop Traversal
549
+
550
+ ```typescript
551
+ const result = await graph.traverse({
552
+ startNodeId: person.id,
553
+ maxDepth: 3,
554
+ direction: 'outgoing',
555
+ edgeTypes: ['works_at', 'knows', 'located_in'],
556
+ });
557
+
558
+ console.log('Visited nodes:', result.visitedNodes);
559
+ console.log('Paths found:', result.paths);
81
560
  ```
82
561
 
83
- ## Documentation
562
+ ### Shortest Path
563
+
564
+ ```typescript
565
+ const path = await graph.findShortestPath(startNodeId, endNodeId);
566
+ if (path) {
567
+ console.log('Path:', path.nodes.map((n) => n.name).join(' -> '));
568
+ console.log('Total weight:', path.totalWeight);
569
+ }
570
+ ```
571
+
572
+ ### Semantic Node Search
573
+
574
+ ```typescript
575
+ const similar = await graph.searchNodesSemantic({
576
+ agentId: 'agent-1',
577
+ query: 'machine learning engineer',
578
+ limit: 10,
579
+ threshold: 0.7,
580
+ });
581
+ ```
582
+
583
+ ### LLM Entity Extraction
584
+
585
+ ```typescript
586
+ import { LLMEntityExtractor } from '@cogitator-ai/memory';
587
+
588
+ const extractor = new LLMEntityExtractor(llmBackend, {
589
+ minConfidence: 0.7,
590
+ maxEntitiesPerText: 20,
591
+ });
592
+
593
+ const result = await extractor.extract(
594
+ 'Alice works at TechCorp in San Francisco. She knows Bob from the AI conference.'
595
+ );
596
+
597
+ console.log('Entities:', result.entities);
598
+ console.log('Relations:', result.relations);
599
+ ```
600
+
601
+ ### Graph Inference Engine
602
+
603
+ ```typescript
604
+ import { GraphInferenceEngine } from '@cogitator-ai/memory';
605
+
606
+ const engine = new GraphInferenceEngine(graph, {
607
+ minConfidence: 0.5,
608
+ maxInferredEdges: 100,
609
+ });
610
+
611
+ const inferred = await engine.infer('agent-1');
612
+ console.log('Inferred edges:', inferred.edges);
613
+ console.log('Rules applied:', inferred.rulesApplied);
614
+ ```
615
+
616
+ ### Graph Context Builder
617
+
618
+ ```typescript
619
+ import { GraphContextBuilder } from '@cogitator-ai/memory';
620
+
621
+ const contextBuilder = new GraphContextBuilder(graph, embeddingService, {
622
+ maxNodes: 20,
623
+ maxEdges: 50,
624
+ includeInferred: true,
625
+ });
626
+
627
+ const context = await contextBuilder.buildContext({
628
+ agentId: 'agent-1',
629
+ query: 'Tell me about Alice and her work',
630
+ });
631
+
632
+ console.log('Relevant nodes:', context.nodes);
633
+ console.log('Relationships:', context.edges);
634
+ ```
84
635
 
85
- See the [Cogitator documentation](https://github.com/eL1fe/cogitator) for full API reference.
636
+ ---
86
637
 
87
638
  ## License
88
639
 
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
- import { ContextBuilder } from '../context-builder';
3
- import { InMemoryAdapter } from '../adapters/memory';
2
+ import { ContextBuilder } from '../context-builder.js';
3
+ import { InMemoryAdapter } from '../adapters/memory.js';
4
4
  describe('ContextBuilder', () => {
5
5
  let adapter;
6
6
  let threadId;
@@ -1 +1 @@
1
- {"version":3,"file":"context-builder.test.js","sourceRoot":"","sources":["../../src/__tests__/context-builder.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-builder.test.js","sourceRoot":"","sources":["../../src/__tests__/context-builder.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
- import { InMemoryAdapter } from '../adapters/memory';
2
+ import { InMemoryAdapter } from '../adapters/memory.js';
3
3
  describe('InMemoryAdapter', () => {
4
4
  let adapter;
5
5
  beforeEach(async () => {