@cogitator-ai/memory 0.6.14 → 0.6.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/adapters/index.d.ts +2 -2
- package/dist/adapters/index.js +8 -8
- package/dist/adapters/memory-embedding.js +1 -1
- package/dist/adapters/memory.d.ts +1 -1
- package/dist/adapters/memory.js +1 -1
- package/dist/adapters/mongodb.d.ts +1 -1
- package/dist/adapters/mongodb.js +1 -1
- package/dist/adapters/postgres.d.ts +1 -1
- package/dist/adapters/postgres.js +1 -1
- package/dist/adapters/qdrant.d.ts.map +1 -1
- package/dist/adapters/qdrant.js.map +1 -1
- package/dist/adapters/redis.d.ts +1 -1
- package/dist/adapters/redis.js +1 -1
- package/dist/adapters/sqlite.d.ts +1 -1
- package/dist/adapters/sqlite.js +1 -1
- package/dist/compaction.d.ts +16 -0
- package/dist/compaction.d.ts.map +1 -0
- package/dist/compaction.js +89 -0
- package/dist/compaction.js.map +1 -0
- package/dist/context-builder.d.ts +2 -0
- package/dist/context-builder.d.ts.map +1 -1
- package/dist/context-builder.js +40 -3
- package/dist/context-builder.js.map +1 -1
- package/dist/core-facts.d.ts +43 -0
- package/dist/core-facts.d.ts.map +1 -0
- package/dist/core-facts.js +99 -0
- package/dist/core-facts.js.map +1 -0
- package/dist/embedding/factory.js +3 -3
- package/dist/embedding/index.d.ts +4 -4
- package/dist/embedding/index.js +4 -4
- package/dist/index.d.ts +19 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -13
- package/dist/index.js.map +1 -1
- package/dist/knowledge-graph/entity-extractor.js +1 -1
- package/dist/knowledge-graph/graph-adapter.d.ts.map +1 -1
- package/dist/knowledge-graph/graph-adapter.js +1 -1
- package/dist/knowledge-graph/graph-adapter.js.map +1 -1
- package/dist/knowledge-graph/index.d.ts +10 -8
- package/dist/knowledge-graph/index.d.ts.map +1 -1
- package/dist/knowledge-graph/index.js +6 -5
- package/dist/knowledge-graph/index.js.map +1 -1
- package/dist/knowledge-graph/inference-engine.d.ts.map +1 -1
- package/dist/knowledge-graph/inference-engine.js +23 -6
- package/dist/knowledge-graph/inference-engine.js.map +1 -1
- package/dist/knowledge-graph/schema.d.ts +15 -15
- package/dist/knowledge-graph/sqlite-graph-adapter.d.ts +48 -0
- package/dist/knowledge-graph/sqlite-graph-adapter.d.ts.map +1 -0
- package/dist/knowledge-graph/sqlite-graph-adapter.js +694 -0
- package/dist/knowledge-graph/sqlite-graph-adapter.js.map +1 -0
- package/dist/schema.d.ts +4 -4
- package/dist/search/bm25.d.ts +1 -1
- package/dist/search/bm25.js +1 -1
- package/dist/search/hybrid-search.js +2 -2
- package/dist/search/index.d.ts +4 -4
- package/dist/search/index.js +4 -4
- package/dist/session-manager.d.ts +19 -0
- package/dist/session-manager.d.ts.map +1 -0
- package/dist/session-manager.js +167 -0
- package/dist/session-manager.js.map +1 -0
- package/package.json +14 -14
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Cogitator Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/adapters/index.d.ts
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Memory adapter exports and factory
|
|
3
3
|
*/
|
|
4
4
|
import type { MemoryAdapter, EmbeddingAdapter, InMemoryAdapterConfig, RedisAdapterConfig, PostgresAdapterConfig, SQLiteAdapterConfig, MongoDBAdapterConfig, QdrantAdapterConfig } from '@cogitator-ai/types';
|
|
5
|
-
export { BaseMemoryAdapter } from './base';
|
|
6
|
-
export { InMemoryAdapter } from './memory';
|
|
5
|
+
export { BaseMemoryAdapter } from './base.js';
|
|
6
|
+
export { InMemoryAdapter } from './memory.js';
|
|
7
7
|
export type MemoryAdapterConfigUnion = InMemoryAdapterConfig | RedisAdapterConfig | PostgresAdapterConfig | SQLiteAdapterConfig | MongoDBAdapterConfig;
|
|
8
8
|
export type EmbeddingAdapterConfigUnion = QdrantAdapterConfig;
|
|
9
9
|
export declare function createMemoryAdapter(config: MemoryAdapterConfigUnion): Promise<MemoryAdapter>;
|
package/dist/adapters/index.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Memory adapter exports and factory
|
|
3
3
|
*/
|
|
4
|
-
import { InMemoryAdapter } from './memory';
|
|
5
|
-
export { BaseMemoryAdapter } from './base';
|
|
6
|
-
export { InMemoryAdapter } from './memory';
|
|
4
|
+
import { InMemoryAdapter } from './memory.js';
|
|
5
|
+
export { BaseMemoryAdapter } from './base.js';
|
|
6
|
+
export { InMemoryAdapter } from './memory.js';
|
|
7
7
|
export async function createMemoryAdapter(config) {
|
|
8
8
|
switch (config.provider) {
|
|
9
9
|
case 'memory':
|
|
10
10
|
return new InMemoryAdapter(config);
|
|
11
11
|
case 'redis': {
|
|
12
|
-
const { RedisAdapter } = await import('./redis');
|
|
12
|
+
const { RedisAdapter } = await import('./redis.js');
|
|
13
13
|
return new RedisAdapter(config);
|
|
14
14
|
}
|
|
15
15
|
case 'postgres': {
|
|
16
|
-
const { PostgresAdapter } = await import('./postgres');
|
|
16
|
+
const { PostgresAdapter } = await import('./postgres.js');
|
|
17
17
|
return new PostgresAdapter(config);
|
|
18
18
|
}
|
|
19
19
|
case 'sqlite': {
|
|
20
|
-
const { SQLiteAdapter } = await import('./sqlite');
|
|
20
|
+
const { SQLiteAdapter } = await import('./sqlite.js');
|
|
21
21
|
return new SQLiteAdapter(config);
|
|
22
22
|
}
|
|
23
23
|
case 'mongodb': {
|
|
24
|
-
const { MongoDBAdapter } = await import('./mongodb');
|
|
24
|
+
const { MongoDBAdapter } = await import('./mongodb.js');
|
|
25
25
|
return new MongoDBAdapter(config);
|
|
26
26
|
}
|
|
27
27
|
default: {
|
|
@@ -33,7 +33,7 @@ export async function createMemoryAdapter(config) {
|
|
|
33
33
|
export async function createEmbeddingAdapter(config) {
|
|
34
34
|
switch (config.provider) {
|
|
35
35
|
case 'qdrant': {
|
|
36
|
-
const { QdrantAdapter } = await import('./qdrant');
|
|
36
|
+
const { QdrantAdapter } = await import('./qdrant.js');
|
|
37
37
|
return new QdrantAdapter(config);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* In-memory adapter - default, zero dependencies
|
|
3
3
|
*/
|
|
4
4
|
import type { Thread, MemoryEntry, MemoryQueryOptions, MemoryResult, InMemoryAdapterConfig, MemoryProvider } from '@cogitator-ai/types';
|
|
5
|
-
import { BaseMemoryAdapter } from './base';
|
|
5
|
+
import { BaseMemoryAdapter } from './base.js';
|
|
6
6
|
export declare class InMemoryAdapter extends BaseMemoryAdapter {
|
|
7
7
|
readonly provider: MemoryProvider;
|
|
8
8
|
private threads;
|
package/dist/adapters/memory.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Thread, MemoryEntry, MemoryQueryOptions, MemoryResult, MongoDBAdapterConfig, MemoryProvider } from '@cogitator-ai/types';
|
|
2
|
-
import { BaseMemoryAdapter } from './base';
|
|
2
|
+
import { BaseMemoryAdapter } from './base.js';
|
|
3
3
|
export declare class MongoDBAdapter extends BaseMemoryAdapter {
|
|
4
4
|
readonly provider: MemoryProvider;
|
|
5
5
|
private client;
|
package/dist/adapters/mongodb.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* - Embeddings with pgvector (EmbeddingAdapter)
|
|
8
8
|
*/
|
|
9
9
|
import type { Thread, MemoryEntry, MemoryQueryOptions, MemoryResult, PostgresAdapterConfig, MemoryProvider, Fact, Embedding, SemanticSearchOptions, FactAdapter, EmbeddingAdapter, KeywordSearchAdapter, KeywordSearchOptions, SearchResult } from '@cogitator-ai/types';
|
|
10
|
-
import { BaseMemoryAdapter } from './base';
|
|
10
|
+
import { BaseMemoryAdapter } from './base.js';
|
|
11
11
|
export declare class PostgresAdapter extends BaseMemoryAdapter implements FactAdapter, EmbeddingAdapter, KeywordSearchAdapter {
|
|
12
12
|
readonly provider: MemoryProvider;
|
|
13
13
|
private pool;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* - Facts (FactAdapter)
|
|
7
7
|
* - Embeddings with pgvector (EmbeddingAdapter)
|
|
8
8
|
*/
|
|
9
|
-
import { BaseMemoryAdapter } from './base';
|
|
9
|
+
import { BaseMemoryAdapter } from './base.js';
|
|
10
10
|
export class PostgresAdapter extends BaseMemoryAdapter {
|
|
11
11
|
provider = 'postgres';
|
|
12
12
|
pool = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qdrant.d.ts","sourceRoot":"","sources":["../../src/adapters/qdrant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"qdrant.d.ts","sourceRoot":"","sources":["../../src/adapters/qdrant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAsC7B,qBAAa,aAAc,YAAW,gBAAgB;IACpD,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,mBAAmB;IAOjC,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAkCtC,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAKzC,YAAY,CAChB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,WAAW,CAAC,GAC7C,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAgC7B,MAAM,CACV,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,YAAY,CAAC,CAAC,SAAS,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC,CAAC;IA8CrD,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAajE,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAanE,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;CAGhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qdrant.js","sourceRoot":"","sources":["../../src/adapters/qdrant.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"qdrant.js","sourceRoot":"","sources":["../../src/adapters/qdrant.ts"],"names":[],"mappings":"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"}
|
package/dist/adapters/redis.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* Supports both standalone Redis and Redis Cluster modes via @cogitator-ai/redis.
|
|
7
7
|
*/
|
|
8
8
|
import type { Thread, MemoryEntry, MemoryQueryOptions, MemoryResult, RedisAdapterConfig, MemoryProvider } from '@cogitator-ai/types';
|
|
9
|
-
import { BaseMemoryAdapter } from './base';
|
|
9
|
+
import { BaseMemoryAdapter } from './base.js';
|
|
10
10
|
export declare class RedisAdapter extends BaseMemoryAdapter {
|
|
11
11
|
readonly provider: MemoryProvider;
|
|
12
12
|
private client;
|
package/dist/adapters/redis.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* Supports both standalone Redis and Redis Cluster modes via @cogitator-ai/redis.
|
|
7
7
|
*/
|
|
8
8
|
import { createRedisClient } from '@cogitator-ai/redis';
|
|
9
|
-
import { BaseMemoryAdapter } from './base';
|
|
9
|
+
import { BaseMemoryAdapter } from './base.js';
|
|
10
10
|
export class RedisAdapter extends BaseMemoryAdapter {
|
|
11
11
|
provider = 'redis';
|
|
12
12
|
client = null;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Thread, MemoryEntry, MemoryQueryOptions, MemoryResult, SQLiteAdapterConfig, MemoryProvider } from '@cogitator-ai/types';
|
|
2
|
-
import { BaseMemoryAdapter } from './base';
|
|
2
|
+
import { BaseMemoryAdapter } from './base.js';
|
|
3
3
|
export declare class SQLiteAdapter extends BaseMemoryAdapter {
|
|
4
4
|
readonly provider: MemoryProvider;
|
|
5
5
|
private db;
|
package/dist/adapters/sqlite.js
CHANGED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { MemoryAdapter, MemoryEntry, CompactionConfig, CompactionResult, Message } from '@cogitator-ai/types';
|
|
2
|
+
export type SummarizeFn = (messages: Message[]) => Promise<string>;
|
|
3
|
+
export interface CompactionServiceConfig {
|
|
4
|
+
adapter: MemoryAdapter;
|
|
5
|
+
summarize: SummarizeFn;
|
|
6
|
+
}
|
|
7
|
+
export declare class CompactionService {
|
|
8
|
+
private readonly adapter;
|
|
9
|
+
private readonly summarize;
|
|
10
|
+
constructor(config: CompactionServiceConfig);
|
|
11
|
+
compact(sessionId: string, config: CompactionConfig): Promise<CompactionResult>;
|
|
12
|
+
applySummary(sessionId: string, entriesToRemove: MemoryEntry[], summary: string): Promise<number>;
|
|
13
|
+
getSummarizeFn(): SummarizeFn;
|
|
14
|
+
getAdapter(): MemoryAdapter;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=compaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../src/compaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAEhB,OAAO,EACR,MAAM,qBAAqB,CAAC;AAG7B,MAAM,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEnE,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,WAAW,CAAC;CACxB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;gBAE5B,MAAM,EAAE,uBAAuB;IAKrC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoB/E,YAAY,CAChB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,WAAW,EAAE,EAC9B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAsBlB,cAAc,IAAI,WAAW;IAI7B,UAAU,IAAI,aAAa;CAG5B"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { countMessagesTokens } from './token-counter.js';
|
|
2
|
+
export class CompactionService {
|
|
3
|
+
adapter;
|
|
4
|
+
summarize;
|
|
5
|
+
constructor(config) {
|
|
6
|
+
this.adapter = config.adapter;
|
|
7
|
+
this.summarize = config.summarize;
|
|
8
|
+
}
|
|
9
|
+
async compact(sessionId, config) {
|
|
10
|
+
const entriesResult = await this.adapter.getEntries({ threadId: sessionId });
|
|
11
|
+
if (!entriesResult.success) {
|
|
12
|
+
throw new Error(`Failed to load entries: ${entriesResult.error}`);
|
|
13
|
+
}
|
|
14
|
+
const entries = entriesResult.data;
|
|
15
|
+
if (entries.length <= config.keepRecent) {
|
|
16
|
+
return {
|
|
17
|
+
sessionId,
|
|
18
|
+
originalMessages: entries.length,
|
|
19
|
+
compactedMessages: entries.length,
|
|
20
|
+
summaryTokens: 0,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
const strategy = strategies[config.strategy];
|
|
24
|
+
return strategy(this, sessionId, entries, config);
|
|
25
|
+
}
|
|
26
|
+
async applySummary(sessionId, entriesToRemove, summary) {
|
|
27
|
+
for (const entry of entriesToRemove) {
|
|
28
|
+
await this.adapter.deleteEntry(entry.id);
|
|
29
|
+
}
|
|
30
|
+
const summaryMessage = {
|
|
31
|
+
role: 'system',
|
|
32
|
+
content: `[Conversation summary]\n${summary}`,
|
|
33
|
+
};
|
|
34
|
+
const summaryTokens = countMessagesTokens([summaryMessage]);
|
|
35
|
+
await this.adapter.addEntry({
|
|
36
|
+
threadId: sessionId,
|
|
37
|
+
message: summaryMessage,
|
|
38
|
+
tokenCount: summaryTokens,
|
|
39
|
+
metadata: { compactionSummary: true, compactedAt: new Date().toISOString() },
|
|
40
|
+
});
|
|
41
|
+
return summaryTokens;
|
|
42
|
+
}
|
|
43
|
+
getSummarizeFn() {
|
|
44
|
+
return this.summarize;
|
|
45
|
+
}
|
|
46
|
+
getAdapter() {
|
|
47
|
+
return this.adapter;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const summaryStrategy = async (service, sessionId, entries, config) => {
|
|
51
|
+
const splitAt = entries.length - config.keepRecent;
|
|
52
|
+
const oldEntries = entries.slice(0, splitAt);
|
|
53
|
+
const oldMessages = oldEntries.map((e) => e.message);
|
|
54
|
+
const summary = await service.getSummarizeFn()(oldMessages);
|
|
55
|
+
const summaryTokens = await service.applySummary(sessionId, oldEntries, summary);
|
|
56
|
+
return {
|
|
57
|
+
sessionId,
|
|
58
|
+
originalMessages: entries.length,
|
|
59
|
+
compactedMessages: config.keepRecent + 1,
|
|
60
|
+
summaryTokens,
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
const slidingWindowStrategy = async (service, sessionId, entries, config) => {
|
|
64
|
+
const splitAt = entries.length - config.keepRecent;
|
|
65
|
+
const oldEntries = entries.slice(0, splitAt);
|
|
66
|
+
for (const entry of oldEntries) {
|
|
67
|
+
await service.getAdapter().deleteEntry(entry.id);
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
sessionId,
|
|
71
|
+
originalMessages: entries.length,
|
|
72
|
+
compactedMessages: config.keepRecent,
|
|
73
|
+
summaryTokens: 0,
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
const hybridStrategy = async (service, sessionId, entries, config) => {
|
|
77
|
+
const splitAt = entries.length - config.keepRecent;
|
|
78
|
+
const oldEntries = entries.slice(0, splitAt);
|
|
79
|
+
if (oldEntries.length <= 5) {
|
|
80
|
+
return slidingWindowStrategy(service, sessionId, entries, config);
|
|
81
|
+
}
|
|
82
|
+
return summaryStrategy(service, sessionId, entries, config);
|
|
83
|
+
};
|
|
84
|
+
const strategies = {
|
|
85
|
+
summary: summaryStrategy,
|
|
86
|
+
'sliding-window': slidingWindowStrategy,
|
|
87
|
+
hybrid: hybridStrategy,
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=compaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compaction.js","sourceRoot":"","sources":["../src/compaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,13 @@
|
|
|
4
4
|
* Builds conversation context from memory while respecting token limits.
|
|
5
5
|
*/
|
|
6
6
|
import type { ContextBuilderConfig, BuiltContext, MemoryAdapter, FactAdapter, EmbeddingAdapter, EmbeddingService } from '@cogitator-ai/types';
|
|
7
|
+
import type { GraphContextBuilder } from './knowledge-graph/graph-context-builder.js';
|
|
7
8
|
export interface ContextBuilderDeps {
|
|
8
9
|
memoryAdapter: MemoryAdapter;
|
|
9
10
|
factAdapter?: FactAdapter;
|
|
10
11
|
embeddingAdapter?: EmbeddingAdapter;
|
|
11
12
|
embeddingService?: EmbeddingService;
|
|
13
|
+
graphContextBuilder?: GraphContextBuilder;
|
|
12
14
|
}
|
|
13
15
|
export interface BuildContextOptions {
|
|
14
16
|
threadId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-builder.d.ts","sourceRoot":"","sources":["../src/context-builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"context-builder.d.ts","sourceRoot":"","sources":["../src/context-builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAMV,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAGnF,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,IAAI,CAAqB;gBAErB,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,kBAAkB;IAe5D,KAAK,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IAsMhE,OAAO,CAAC,mBAAmB;YAiBb,mBAAmB;IAqDjC,OAAO,CAAC,gBAAgB;CAgBzB"}
|
package/dist/context-builder.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Builds conversation context from memory while respecting token limits.
|
|
5
5
|
*/
|
|
6
|
-
import { countMessageTokens, countTokens } from './token-counter';
|
|
6
|
+
import { countMessageTokens, countTokens } from './token-counter.js';
|
|
7
7
|
export class ContextBuilder {
|
|
8
8
|
config;
|
|
9
9
|
deps;
|
|
@@ -27,6 +27,7 @@ export class ContextBuilder {
|
|
|
27
27
|
const messages = [];
|
|
28
28
|
const facts = [];
|
|
29
29
|
const semanticResults = [];
|
|
30
|
+
let graphContext;
|
|
30
31
|
if (this.config.includeSystemPrompt && options.systemPrompt) {
|
|
31
32
|
const systemMsg = { role: 'system', content: options.systemPrompt };
|
|
32
33
|
const tokens = countMessageTokens(systemMsg);
|
|
@@ -103,6 +104,41 @@ export class ContextBuilder {
|
|
|
103
104
|
}
|
|
104
105
|
}
|
|
105
106
|
}
|
|
107
|
+
if (this.config.includeGraphContext && this.deps.graphContextBuilder && options.currentInput) {
|
|
108
|
+
const gc = await this.deps.graphContextBuilder.buildContext(options.agentId, options.currentInput, this.config.graphContextOptions);
|
|
109
|
+
if (gc.nodes.length > 0) {
|
|
110
|
+
const graphTokenBudget = Math.floor(availableTokens * 0.15);
|
|
111
|
+
if (gc.tokenCount <= graphTokenBudget) {
|
|
112
|
+
graphContext = gc;
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
const ratio = graphTokenBudget / gc.tokenCount;
|
|
116
|
+
const limitedNodes = gc.nodes.slice(0, Math.max(1, Math.floor(gc.nodes.length * ratio)));
|
|
117
|
+
const limitedNodeIds = new Set(limitedNodes.map((n) => n.id));
|
|
118
|
+
const limitedEdges = gc.edges.filter((e) => limitedNodeIds.has(e.sourceNodeId) && limitedNodeIds.has(e.targetNodeId));
|
|
119
|
+
graphContext = await this.deps.graphContextBuilder.buildContext(options.agentId, options.currentInput, {
|
|
120
|
+
...this.config.graphContextOptions,
|
|
121
|
+
maxNodes: limitedNodes.length,
|
|
122
|
+
maxEdges: limitedEdges.length,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
if (graphContext?.formattedContext) {
|
|
126
|
+
if (messages.length > 0 && messages[0].role === 'system') {
|
|
127
|
+
messages[0] = {
|
|
128
|
+
...messages[0],
|
|
129
|
+
content: `${messages[0].content}\n\n${graphContext.formattedContext}`,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
messages.unshift({
|
|
134
|
+
role: 'system',
|
|
135
|
+
content: graphContext.formattedContext,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
usedTokens += graphContext.tokenCount;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
106
142
|
const entriesResult = await this.deps.memoryAdapter.getEntries({
|
|
107
143
|
threadId: options.threadId,
|
|
108
144
|
includeToolCalls: true,
|
|
@@ -136,6 +172,7 @@ export class ContextBuilder {
|
|
|
136
172
|
messages,
|
|
137
173
|
facts,
|
|
138
174
|
semanticResults,
|
|
175
|
+
graphContext,
|
|
139
176
|
tokenCount: usedTokens,
|
|
140
177
|
truncated,
|
|
141
178
|
metadata: {
|
|
@@ -143,8 +180,8 @@ export class ContextBuilder {
|
|
|
143
180
|
includedMessageCount: messages.length - (this.config.includeSystemPrompt && options.systemPrompt ? 1 : 0),
|
|
144
181
|
factsIncluded: facts.length,
|
|
145
182
|
semanticResultsIncluded: semanticResults.length,
|
|
146
|
-
graphNodesIncluded: 0,
|
|
147
|
-
graphEdgesIncluded: 0,
|
|
183
|
+
graphNodesIncluded: graphContext?.nodes.length ?? 0,
|
|
184
|
+
graphEdgesIncluded: graphContext?.edges.length ?? 0,
|
|
148
185
|
},
|
|
149
186
|
};
|
|
150
187
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-builder.js","sourceRoot":"","sources":["../src/context-builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context-builder.js","sourceRoot":"","sources":["../src/context-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
interface Database {
|
|
2
|
+
prepare(sql: string): Statement;
|
|
3
|
+
exec(sql: string): void;
|
|
4
|
+
close(): void;
|
|
5
|
+
pragma(pragma: string): unknown;
|
|
6
|
+
}
|
|
7
|
+
interface Statement {
|
|
8
|
+
run(...params: unknown[]): {
|
|
9
|
+
changes: number;
|
|
10
|
+
lastInsertRowid: number | bigint;
|
|
11
|
+
};
|
|
12
|
+
get(...params: unknown[]): unknown;
|
|
13
|
+
all(...params: unknown[]): unknown[];
|
|
14
|
+
}
|
|
15
|
+
export interface FactHistoryEntry {
|
|
16
|
+
value: string;
|
|
17
|
+
setAt: Date;
|
|
18
|
+
}
|
|
19
|
+
export type CoreFactsStoreConfig = {
|
|
20
|
+
path: string;
|
|
21
|
+
db?: never;
|
|
22
|
+
} | {
|
|
23
|
+
db: Database;
|
|
24
|
+
path?: never;
|
|
25
|
+
};
|
|
26
|
+
export declare class CoreFactsStore {
|
|
27
|
+
private db;
|
|
28
|
+
private ownsDb;
|
|
29
|
+
private path;
|
|
30
|
+
private initialized;
|
|
31
|
+
constructor(config: CoreFactsStoreConfig);
|
|
32
|
+
initialize(): Promise<void>;
|
|
33
|
+
close(): Promise<void>;
|
|
34
|
+
private ensureDb;
|
|
35
|
+
set(key: string, value: string): Promise<void>;
|
|
36
|
+
get(key: string): Promise<string | null>;
|
|
37
|
+
getAll(): Promise<Record<string, string>>;
|
|
38
|
+
delete(key: string): Promise<void>;
|
|
39
|
+
getHistory(key: string): Promise<FactHistoryEntry[]>;
|
|
40
|
+
formatForPrompt(): Promise<string>;
|
|
41
|
+
}
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=core-facts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-facts.d.ts","sourceRoot":"","sources":["../src/core-facts.ts"],"names":[],"mappings":"AAAA,UAAU,QAAQ;IAChB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,UAAU,SAAS;IACjB,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACjF,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACnC,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;CACtC;AAeD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,IAAI,CAAC;CACb;AAED,MAAM,MAAM,oBAAoB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAEjG,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,oBAAoB;IAWlC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B,OAAO,CAAC,QAAQ;IAKV,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB9C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQxC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAUzC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAWpD,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;CAMzC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
export class CoreFactsStore {
|
|
2
|
+
db = null;
|
|
3
|
+
ownsDb;
|
|
4
|
+
path;
|
|
5
|
+
initialized = false;
|
|
6
|
+
constructor(config) {
|
|
7
|
+
if ('db' in config && config.db) {
|
|
8
|
+
this.db = config.db;
|
|
9
|
+
this.ownsDb = false;
|
|
10
|
+
this.path = null;
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
this.path = config.path;
|
|
14
|
+
this.ownsDb = true;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
async initialize() {
|
|
18
|
+
if (this.initialized)
|
|
19
|
+
return;
|
|
20
|
+
if (!this.db) {
|
|
21
|
+
let DatabaseCtor;
|
|
22
|
+
const betterSqlite = await import('better-sqlite3');
|
|
23
|
+
DatabaseCtor = betterSqlite.default;
|
|
24
|
+
this.db = new DatabaseCtor(this.path);
|
|
25
|
+
if (this.path !== ':memory:') {
|
|
26
|
+
this.db.pragma('journal_mode = WAL');
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
this.db.exec(`
|
|
30
|
+
CREATE TABLE IF NOT EXISTS core_facts (
|
|
31
|
+
key TEXT PRIMARY KEY,
|
|
32
|
+
value TEXT NOT NULL,
|
|
33
|
+
updated_at TEXT NOT NULL
|
|
34
|
+
);
|
|
35
|
+
CREATE TABLE IF NOT EXISTS core_facts_history (
|
|
36
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
37
|
+
key TEXT NOT NULL,
|
|
38
|
+
value TEXT NOT NULL,
|
|
39
|
+
set_at TEXT NOT NULL
|
|
40
|
+
);
|
|
41
|
+
`);
|
|
42
|
+
this.initialized = true;
|
|
43
|
+
}
|
|
44
|
+
async close() {
|
|
45
|
+
if (this.db && this.ownsDb) {
|
|
46
|
+
this.db.close();
|
|
47
|
+
this.db = null;
|
|
48
|
+
this.initialized = false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
ensureDb() {
|
|
52
|
+
if (!this.db)
|
|
53
|
+
throw new Error('Not initialized');
|
|
54
|
+
return this.db;
|
|
55
|
+
}
|
|
56
|
+
async set(key, value) {
|
|
57
|
+
const db = this.ensureDb();
|
|
58
|
+
const now = new Date().toISOString();
|
|
59
|
+
db.prepare(`INSERT INTO core_facts (key, value, updated_at) VALUES (?, ?, ?)
|
|
60
|
+
ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = excluded.updated_at`).run(key, value, now);
|
|
61
|
+
db.prepare(`INSERT INTO core_facts_history (key, value, set_at) VALUES (?, ?, ?)`).run(key, value, now);
|
|
62
|
+
}
|
|
63
|
+
async get(key) {
|
|
64
|
+
const db = this.ensureDb();
|
|
65
|
+
const row = db.prepare(`SELECT value FROM core_facts WHERE key = ?`).get(key);
|
|
66
|
+
return row?.value ?? null;
|
|
67
|
+
}
|
|
68
|
+
async getAll() {
|
|
69
|
+
const db = this.ensureDb();
|
|
70
|
+
const rows = db.prepare(`SELECT key, value FROM core_facts ORDER BY key`).all();
|
|
71
|
+
const result = {};
|
|
72
|
+
for (const row of rows) {
|
|
73
|
+
result[row.key] = row.value;
|
|
74
|
+
}
|
|
75
|
+
return result;
|
|
76
|
+
}
|
|
77
|
+
async delete(key) {
|
|
78
|
+
const db = this.ensureDb();
|
|
79
|
+
db.prepare(`DELETE FROM core_facts WHERE key = ?`).run(key);
|
|
80
|
+
}
|
|
81
|
+
async getHistory(key) {
|
|
82
|
+
const db = this.ensureDb();
|
|
83
|
+
const rows = db
|
|
84
|
+
.prepare(`SELECT value, set_at FROM core_facts_history WHERE key = ? ORDER BY id ASC`)
|
|
85
|
+
.all(key);
|
|
86
|
+
return rows.map((row) => ({
|
|
87
|
+
value: row.value,
|
|
88
|
+
setAt: new Date(row.set_at),
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
91
|
+
async formatForPrompt() {
|
|
92
|
+
const facts = await this.getAll();
|
|
93
|
+
const keys = Object.keys(facts);
|
|
94
|
+
if (keys.length === 0)
|
|
95
|
+
return '';
|
|
96
|
+
return keys.map((k) => `${k}: ${facts[k]}`).join('\n');
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=core-facts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-facts.js","sourceRoot":"","sources":["../src/core-facts.ts"],"names":[],"mappings":"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"}
|