memo-grafter 0.1.1 → 0.2.1
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/.env.example +1 -0
- package/README.md +19 -41
- package/USER_GUIDE.md +329 -21
- package/dist/MemoGrafter.d.ts +3 -1
- package/dist/MemoGrafter.d.ts.map +1 -1
- package/dist/MemoGrafter.js +31 -5
- package/dist/MemoGrafter.js.map +1 -1
- package/dist/MemoGrafterAgent.d.ts +9 -1
- package/dist/MemoGrafterAgent.d.ts.map +1 -1
- package/dist/MemoGrafterAgent.js +62 -8
- package/dist/MemoGrafterAgent.js.map +1 -1
- package/dist/adapters/AnthropicAdapter.d.ts.map +1 -1
- package/dist/adapters/AnthropicAdapter.js +8 -2
- package/dist/adapters/AnthropicAdapter.js.map +1 -1
- package/dist/adapters/GeminiAdapter.d.ts +15 -0
- package/dist/adapters/GeminiAdapter.d.ts.map +1 -0
- package/dist/adapters/GeminiAdapter.js +48 -0
- package/dist/adapters/GeminiAdapter.js.map +1 -0
- package/dist/fleet/FleetStore.d.ts +1 -1
- package/dist/fleet/FleetStore.d.ts.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/pipeline/GrafterPipeline.d.ts +8 -3
- package/dist/pipeline/GrafterPipeline.d.ts.map +1 -1
- package/dist/pipeline/GrafterPipeline.js +8 -6
- package/dist/pipeline/GrafterPipeline.js.map +1 -1
- package/dist/pipeline/IngestPipeline.d.ts +19 -4
- package/dist/pipeline/IngestPipeline.d.ts.map +1 -1
- package/dist/pipeline/IngestPipeline.js +40 -6
- package/dist/pipeline/IngestPipeline.js.map +1 -1
- package/dist/pipeline/RetrieverPipeline.d.ts +24 -0
- package/dist/pipeline/RetrieverPipeline.d.ts.map +1 -0
- package/dist/pipeline/RetrieverPipeline.js +106 -0
- package/dist/pipeline/RetrieverPipeline.js.map +1 -0
- package/dist/pipeline/SegmentProcessor.d.ts +3 -2
- package/dist/pipeline/SegmentProcessor.d.ts.map +1 -1
- package/dist/pipeline/SegmentProcessor.js +50 -18
- package/dist/pipeline/SegmentProcessor.js.map +1 -1
- package/dist/pipeline/TopicDriftDetector.d.ts +21 -3
- package/dist/pipeline/TopicDriftDetector.d.ts.map +1 -1
- package/dist/pipeline/TopicDriftDetector.js +143 -17
- package/dist/pipeline/TopicDriftDetector.js.map +1 -1
- package/dist/prompts/factRetrievalPrompt.d.ts +4 -0
- package/dist/prompts/factRetrievalPrompt.d.ts.map +1 -0
- package/dist/prompts/factRetrievalPrompt.js +25 -0
- package/dist/prompts/factRetrievalPrompt.js.map +1 -0
- package/dist/prompts/historyCompressionPrompt.d.ts +3 -0
- package/dist/prompts/historyCompressionPrompt.d.ts.map +1 -0
- package/dist/prompts/historyCompressionPrompt.js +4 -0
- package/dist/prompts/historyCompressionPrompt.js.map +1 -0
- package/dist/prompts/intentShiftPrompt.d.ts +3 -0
- package/dist/prompts/intentShiftPrompt.d.ts.map +1 -0
- package/dist/prompts/intentShiftPrompt.js +11 -0
- package/dist/prompts/intentShiftPrompt.js.map +1 -0
- package/dist/prompts/segmentExtractionPrompt.d.ts.map +1 -1
- package/dist/prompts/segmentExtractionPrompt.js +68 -12
- package/dist/prompts/segmentExtractionPrompt.js.map +1 -1
- package/dist/store/GraphStore.d.ts +16 -19
- package/dist/store/GraphStore.d.ts.map +1 -1
- package/dist/store/GraphStore.js +1 -576
- package/dist/store/GraphStore.js.map +1 -1
- package/dist/store/index.d.ts +3 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +2 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/postgres-pgvector/GraphStore.d.ts +75 -0
- package/dist/store/postgres-pgvector/GraphStore.d.ts.map +1 -0
- package/dist/store/postgres-pgvector/GraphStore.js +782 -0
- package/dist/store/postgres-pgvector/GraphStore.js.map +1 -0
- package/dist/types.d.ts +79 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/drift/driftMarkers.d.ts +4 -0
- package/dist/utils/drift/driftMarkers.d.ts.map +1 -0
- package/dist/utils/drift/driftMarkers.js +31 -0
- package/dist/utils/drift/driftMarkers.js.map +1 -0
- package/dist/utils/drift/driftScore.d.ts +3 -0
- package/dist/utils/drift/driftScore.d.ts.map +1 -0
- package/dist/utils/drift/driftScore.js +12 -0
- package/dist/utils/drift/driftScore.js.map +1 -0
- package/dist/utils/drift/driftThreshold.d.ts +7 -0
- package/dist/utils/drift/driftThreshold.d.ts.map +1 -0
- package/dist/utils/drift/driftThreshold.js +21 -0
- package/dist/utils/drift/driftThreshold.js.map +1 -0
- package/dist/utils/drift/reentryMatch.d.ts +3 -0
- package/dist/utils/drift/reentryMatch.d.ts.map +1 -0
- package/dist/utils/drift/reentryMatch.js +10 -0
- package/dist/utils/drift/reentryMatch.js.map +1 -0
- package/dist/utils/extraction/segmentExtraction.d.ts +5 -0
- package/dist/utils/extraction/segmentExtraction.d.ts.map +1 -0
- package/dist/utils/extraction/segmentExtraction.js +82 -0
- package/dist/utils/extraction/segmentExtraction.js.map +1 -0
- package/dist/utils/reentry/reentryCues.d.ts +3 -0
- package/dist/utils/reentry/reentryCues.d.ts.map +1 -0
- package/dist/utils/reentry/reentryCues.js +14 -0
- package/dist/utils/reentry/reentryCues.js.map +1 -0
- package/dist/utils/reentry/reentryEdges.d.ts +16 -0
- package/dist/utils/reentry/reentryEdges.d.ts.map +1 -0
- package/dist/utils/reentry/reentryEdges.js +80 -0
- package/dist/utils/reentry/reentryEdges.js.map +1 -0
- package/dist/utils/reentry/reentrySimilarity.d.ts +5 -0
- package/dist/utils/reentry/reentrySimilarity.d.ts.map +1 -0
- package/dist/utils/reentry/reentrySimilarity.js +26 -0
- package/dist/utils/reentry/reentrySimilarity.js.map +1 -0
- package/dist/utils/reentry/reentryText.d.ts +6 -0
- package/dist/utils/reentry/reentryText.d.ts.map +1 -0
- package/dist/utils/reentry/reentryText.js +29 -0
- package/dist/utils/reentry/reentryText.js.map +1 -0
- package/dist/utils/reentry/types.d.ts +6 -0
- package/dist/utils/reentry/types.d.ts.map +1 -0
- package/dist/utils/reentry/types.js +2 -0
- package/dist/utils/reentry/types.js.map +1 -0
- package/dist/utils/text/normalizeText.d.ts +2 -0
- package/dist/utils/text/normalizeText.d.ts.map +1 -0
- package/dist/utils/text/normalizeText.js +5 -0
- package/dist/utils/text/normalizeText.js.map +1 -0
- package/dist/utils/text/terms.d.ts +3 -0
- package/dist/utils/text/terms.d.ts.map +1 -0
- package/dist/utils/text/terms.js +51 -0
- package/dist/utils/text/terms.js.map +1 -0
- package/dist/utils/text/tokenCount.d.ts +3 -0
- package/dist/utils/text/tokenCount.d.ts.map +1 -0
- package/dist/utils/text/tokenCount.js +7 -0
- package/dist/utils/text/tokenCount.js.map +1 -0
- package/dist/utils/vector/vectorLiteral.d.ts +3 -0
- package/dist/utils/vector/vectorLiteral.d.ts.map +1 -0
- package/dist/utils/vector/vectorLiteral.js +19 -0
- package/dist/utils/vector/vectorLiteral.js.map +1 -0
- package/package.json +11 -3
package/dist/MemoGrafter.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
import { Redis } from "ioredis";
|
|
1
2
|
import { GrafterPipeline } from "./pipeline/GrafterPipeline.js";
|
|
2
3
|
import { IngestPipeline } from "./pipeline/IngestPipeline.js";
|
|
3
4
|
import { IngestQueue } from "./queue/IngestQueue.js";
|
|
4
|
-
import {
|
|
5
|
+
import { PostgresGraphStore } from "./store/index.js";
|
|
5
6
|
import { MemoGrafterFleet } from "./fleet/MemoGrafterFleet.js";
|
|
6
7
|
export class MemoGrafter {
|
|
7
8
|
llm;
|
|
8
9
|
embedder;
|
|
9
10
|
store;
|
|
11
|
+
recallCache;
|
|
10
12
|
ingestPipeline;
|
|
11
13
|
grafterPipeline;
|
|
12
14
|
ingestQueue;
|
|
@@ -14,21 +16,41 @@ export class MemoGrafter {
|
|
|
14
16
|
this.assertServerEnvironment();
|
|
15
17
|
const windowSize = config.drift?.windowSize ?? 5;
|
|
16
18
|
const mode = config.drift?.mode ?? "intent";
|
|
17
|
-
const threshold = config.drift?.threshold
|
|
19
|
+
const threshold = config.drift?.threshold;
|
|
20
|
+
const driftSensitivity = config.drift?.driftSensitivity;
|
|
18
21
|
const minSegmentMessages = config.drift?.minSegmentMessages ?? 3;
|
|
22
|
+
const llmAmbiguityDetection = config.drift?.llmAmbiguityDetection;
|
|
23
|
+
const reentryDetection = config.drift?.reentryDetection;
|
|
24
|
+
const reentryThreshold = config.drift?.reentryThreshold;
|
|
19
25
|
const topK = config.graph?.topK ?? 5;
|
|
20
26
|
const hopDepth = config.graph?.hopDepth ?? 1;
|
|
21
27
|
const bufferSize = config.inject?.bufferSize ?? 1;
|
|
22
28
|
const tokenBudget = config.inject?.tokenBudget ?? 4000;
|
|
23
29
|
this.llm = config.llm;
|
|
24
30
|
this.embedder = config.embedder;
|
|
25
|
-
this.store = new
|
|
26
|
-
this.
|
|
31
|
+
this.store = new PostgresGraphStore(config.db.connectionString);
|
|
32
|
+
this.recallCache = config.cache
|
|
33
|
+
? new Redis(config.cache.connectionString, {
|
|
34
|
+
enableOfflineQueue: false,
|
|
35
|
+
maxRetriesPerRequest: 1,
|
|
36
|
+
})
|
|
37
|
+
: null;
|
|
38
|
+
this.recallCache?.on("error", (error) => {
|
|
39
|
+
console.warn("MemoGrafter recall cache Redis warning:", error.message);
|
|
40
|
+
});
|
|
41
|
+
const ingestConfig = {
|
|
27
42
|
windowSize,
|
|
28
|
-
threshold,
|
|
29
43
|
topK,
|
|
30
44
|
mode,
|
|
31
45
|
minSegmentMessages,
|
|
46
|
+
};
|
|
47
|
+
this.ingestPipeline = new IngestPipeline(this.store, config.llm, config.embedder, {
|
|
48
|
+
...ingestConfig,
|
|
49
|
+
...(threshold !== undefined ? { threshold } : {}),
|
|
50
|
+
...(driftSensitivity !== undefined ? { driftSensitivity } : {}),
|
|
51
|
+
...(llmAmbiguityDetection !== undefined ? { llmAmbiguityDetection } : {}),
|
|
52
|
+
...(reentryDetection !== undefined ? { reentryDetection } : {}),
|
|
53
|
+
...(reentryThreshold !== undefined ? { reentryThreshold } : {}),
|
|
32
54
|
});
|
|
33
55
|
this.grafterPipeline = new GrafterPipeline(this.store, {
|
|
34
56
|
hopDepth,
|
|
@@ -94,6 +116,10 @@ export class MemoGrafter {
|
|
|
94
116
|
}
|
|
95
117
|
async close() {
|
|
96
118
|
await this.ingestQueue?.close();
|
|
119
|
+
await this.recallCache?.quit().catch((error) => {
|
|
120
|
+
console.warn("MemoGrafter recall cache close warning:", error);
|
|
121
|
+
this.recallCache?.disconnect();
|
|
122
|
+
});
|
|
97
123
|
await this.store.close();
|
|
98
124
|
}
|
|
99
125
|
assertServerEnvironment() {
|
package/dist/MemoGrafter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoGrafter.js","sourceRoot":"","sources":["../src/MemoGrafter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"MemoGrafter.js","sourceRoot":"","sources":["../src/MemoGrafter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
import type { AbsorbFromAgentOptions, InjectionResult, MemoGrafterConfig, Message, TopicNode, TopicSegment } from "./types.js";
|
|
1
|
+
import type { AbsorbFromAgentOptions, InjectionResult, MemoGrafterConfig, Message, RetrievalResult, RetrieverConfig, TopicNode, TopicSegment } from "./types.js";
|
|
2
2
|
export declare class MemoGrafterAgent {
|
|
3
3
|
private readonly core;
|
|
4
4
|
private readonly sessionId;
|
|
5
5
|
private readonly history;
|
|
6
|
+
private readonly baseSystemPrompt;
|
|
7
|
+
private readonly historyTokenBudget;
|
|
8
|
+
private readonly recentWindowSize;
|
|
9
|
+
private readonly cacheConfig;
|
|
10
|
+
private pendingIngest;
|
|
6
11
|
constructor(config: MemoGrafterConfig);
|
|
7
12
|
initialize(): Promise<void>;
|
|
8
13
|
invoke(userMessage: string): Promise<string>;
|
|
@@ -12,7 +17,10 @@ export declare class MemoGrafterAgent {
|
|
|
12
17
|
getActiveSegments(): Promise<TopicSegment[]>;
|
|
13
18
|
graft(topicIds?: string[]): Promise<InjectionResult>;
|
|
14
19
|
ingestGraftedNodes(nodes: TopicNode[]): Promise<TopicNode[]>;
|
|
20
|
+
recall(query: string, options?: RetrieverConfig): Promise<RetrievalResult>;
|
|
15
21
|
absorbFromAgent(sourceAgent: MemoGrafterAgent, options?: AbsorbFromAgentOptions): Promise<TopicNode[]>;
|
|
22
|
+
private enqueueBackgroundIngest;
|
|
23
|
+
private buildHistory;
|
|
16
24
|
close(): Promise<void>;
|
|
17
25
|
}
|
|
18
26
|
//# sourceMappingURL=MemoGrafterAgent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoGrafterAgent.d.ts","sourceRoot":"","sources":["../src/MemoGrafterAgent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MemoGrafterAgent.d.ts","sourceRoot":"","sources":["../src/MemoGrafterAgent.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,OAAO,EACP,eAAe,EACf,eAAe,EACf,SAAS,EACT,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,aAAa,CAAoC;gBAE7C,MAAM,EAAE,iBAAiB;IAQrC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYlD,UAAU,IAAI,OAAO,EAAE;IAIvB,YAAY,IAAI,MAAM;IAIhB,cAAc,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAMtC,iBAAiB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAM5C,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAO1D,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAItD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,eAAe,CAAC;IAkB9E,eAAe,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAKhH,OAAO,CAAC,uBAAuB;YAUjB,YAAY;IA4B1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvB"}
|
package/dist/MemoGrafterAgent.js
CHANGED
|
@@ -1,25 +1,32 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { MemoGrafter } from "./MemoGrafter.js";
|
|
3
|
+
import { RetrieverPipeline } from "./pipeline/RetrieverPipeline.js";
|
|
4
|
+
import { countApproxTokens } from "./utils/text/tokenCount.js";
|
|
3
5
|
export class MemoGrafterAgent {
|
|
4
6
|
core;
|
|
5
7
|
sessionId = randomUUID();
|
|
6
8
|
history = [];
|
|
9
|
+
baseSystemPrompt;
|
|
10
|
+
historyTokenBudget;
|
|
11
|
+
recentWindowSize;
|
|
12
|
+
cacheConfig;
|
|
13
|
+
pendingIngest = Promise.resolve();
|
|
7
14
|
constructor(config) {
|
|
8
15
|
this.core = new MemoGrafter(config);
|
|
16
|
+
this.baseSystemPrompt = config.systemPrompt ?? "";
|
|
17
|
+
this.historyTokenBudget = config.inject?.tokenBudget ?? 4000;
|
|
18
|
+
this.recentWindowSize = config.inject?.recentWindowSize ?? 20;
|
|
19
|
+
this.cacheConfig = config.cache;
|
|
9
20
|
}
|
|
10
21
|
initialize() {
|
|
11
22
|
return this.core.initialize();
|
|
12
23
|
}
|
|
13
24
|
async invoke(userMessage) {
|
|
14
25
|
this.history.push({ role: "user", content: userMessage });
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const { systemPrompt } = await this.core.inject(this.sessionId, topicIds);
|
|
18
|
-
const response = await this.core.llm.complete(this.history, systemPrompt);
|
|
26
|
+
const messages = await this.buildHistory();
|
|
27
|
+
const response = await this.core.llm.complete(messages, this.baseSystemPrompt);
|
|
19
28
|
this.history.push({ role: "assistant", content: response });
|
|
20
|
-
|
|
21
|
-
console.warn("MemoGrafter background ingest warning:", error);
|
|
22
|
-
});
|
|
29
|
+
this.enqueueBackgroundIngest();
|
|
23
30
|
return response;
|
|
24
31
|
}
|
|
25
32
|
getHistory() {
|
|
@@ -29,14 +36,17 @@ export class MemoGrafterAgent {
|
|
|
29
36
|
return this.sessionId;
|
|
30
37
|
}
|
|
31
38
|
async getActiveNodes() {
|
|
39
|
+
await this.pendingIngest;
|
|
32
40
|
const { nodes } = await this.core.getTopics(this.sessionId);
|
|
33
41
|
return nodes;
|
|
34
42
|
}
|
|
35
43
|
async getActiveSegments() {
|
|
44
|
+
await this.pendingIngest;
|
|
36
45
|
const { segments } = await this.core.getTopics(this.sessionId);
|
|
37
46
|
return segments;
|
|
38
47
|
}
|
|
39
48
|
async graft(topicIds) {
|
|
49
|
+
await this.pendingIngest;
|
|
40
50
|
const { nodes } = await this.core.getTopics(this.sessionId);
|
|
41
51
|
const selectedTopicIds = topicIds ?? nodes.map((node) => node.id);
|
|
42
52
|
return this.core.inject(this.sessionId, selectedTopicIds);
|
|
@@ -44,12 +54,56 @@ export class MemoGrafterAgent {
|
|
|
44
54
|
ingestGraftedNodes(nodes) {
|
|
45
55
|
return this.core.ingestGraftedNodes(nodes, this.sessionId);
|
|
46
56
|
}
|
|
57
|
+
async recall(query, options = {}) {
|
|
58
|
+
const cacheConfig = options.cache ?? (this.cacheConfig
|
|
59
|
+
? {
|
|
60
|
+
...(this.cacheConfig.ttlSeconds !== undefined ? { ttlSeconds: this.cacheConfig.ttlSeconds } : {}),
|
|
61
|
+
}
|
|
62
|
+
: undefined);
|
|
63
|
+
const pipeline = new RetrieverPipeline(this.core.store, this.core.embedder, {
|
|
64
|
+
...options,
|
|
65
|
+
...(cacheConfig !== undefined ? { cache: cacheConfig } : {}),
|
|
66
|
+
}, this.core.recallCache);
|
|
67
|
+
return pipeline.run(query, this.getSessionId());
|
|
68
|
+
}
|
|
47
69
|
async absorbFromAgent(sourceAgent, options = {}) {
|
|
48
70
|
const nodes = await sourceAgent.core.selectNodesForAbsorb(sourceAgent.getSessionId(), options);
|
|
49
71
|
return this.core.absorbNodes(nodes, this.sessionId);
|
|
50
72
|
}
|
|
73
|
+
enqueueBackgroundIngest() {
|
|
74
|
+
const historySnapshot = [...this.history];
|
|
75
|
+
this.pendingIngest = this.pendingIngest
|
|
76
|
+
.then(() => this.core.enqueueIngest(historySnapshot, this.sessionId))
|
|
77
|
+
.catch((error) => {
|
|
78
|
+
console.warn("MemoGrafter background ingest warning:", error);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
async buildHistory() {
|
|
82
|
+
const tokenCount = countApproxTokens(this.history.map((message) => message.content).join("\n"));
|
|
83
|
+
const overflowThreshold = this.historyTokenBudget * 0.8;
|
|
84
|
+
if (tokenCount < overflowThreshold) {
|
|
85
|
+
return this.history;
|
|
86
|
+
}
|
|
87
|
+
const recentMessages = this.history.slice(-this.recentWindowSize);
|
|
88
|
+
const recentContext = this.history
|
|
89
|
+
.slice(-6)
|
|
90
|
+
.map((message) => message.content)
|
|
91
|
+
.join("\n");
|
|
92
|
+
try {
|
|
93
|
+
const result = await this.recall(recentContext, { limit: 5, minSimilarity: 0.65 });
|
|
94
|
+
const pinnedMessage = {
|
|
95
|
+
role: "system",
|
|
96
|
+
content: result.systemPrompt,
|
|
97
|
+
};
|
|
98
|
+
return [pinnedMessage, ...recentMessages];
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
console.warn("MemoGrafter recall warning:", error);
|
|
102
|
+
return recentMessages;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
51
105
|
close() {
|
|
52
|
-
return this.core.close();
|
|
106
|
+
return this.pendingIngest.then(() => this.core.close());
|
|
53
107
|
}
|
|
54
108
|
}
|
|
55
109
|
//# sourceMappingURL=MemoGrafterAgent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoGrafterAgent.js","sourceRoot":"","sources":["../src/MemoGrafterAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoGrafterAgent.js","sourceRoot":"","sources":["../src/MemoGrafterAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnthropicAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/AnthropicAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEvD,qBAAa,mBAAoB,YAAW,UAAU;IAIlD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAJ5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;gBAGvB,KAAK,SAAsB,EAC3B,SAAS,SAAO;IAG7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"AnthropicAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/AnthropicAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEvD,qBAAa,mBAAoB,YAAW,UAAU;IAIlD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAJ5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;gBAGvB,KAAK,SAAsB,EAC3B,SAAS,SAAO;IAG7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAwBtE"}
|
|
@@ -8,14 +8,20 @@ export class AnthropicLLMAdapter {
|
|
|
8
8
|
this.maxTokens = maxTokens;
|
|
9
9
|
}
|
|
10
10
|
async complete(messages, system) {
|
|
11
|
-
const
|
|
11
|
+
const systemMessages = messages
|
|
12
|
+
.filter((message) => message.role === "system")
|
|
13
|
+
.map((message) => message.content);
|
|
14
|
+
const anthropicMessages = messages
|
|
15
|
+
.filter((message) => message.role !== "system")
|
|
16
|
+
.map((message) => ({
|
|
12
17
|
role: message.role,
|
|
13
18
|
content: message.content,
|
|
14
19
|
}));
|
|
20
|
+
const systemPrompt = [system, ...systemMessages].filter(Boolean).join("\n\n");
|
|
15
21
|
const response = await this.client.messages.create({
|
|
16
22
|
model: this.model,
|
|
17
23
|
max_tokens: this.maxTokens,
|
|
18
|
-
...(
|
|
24
|
+
...(systemPrompt ? { system: systemPrompt } : {}),
|
|
19
25
|
messages: anthropicMessages,
|
|
20
26
|
});
|
|
21
27
|
return response.content
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnthropicAdapter.js","sourceRoot":"","sources":["../../src/adapters/AnthropicAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAI1C,MAAM,OAAO,mBAAmB;IAIX;IACA;IAJF,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IAE1C,YACmB,QAAQ,mBAAmB,EAC3B,YAAY,IAAI;QADhB,UAAK,GAAL,KAAK,CAAsB;QAC3B,cAAS,GAAT,SAAS,CAAO;IAChC,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,QAAmB,EAAE,MAAe;QACjD,MAAM,iBAAiB,GAAmB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"AnthropicAdapter.js","sourceRoot":"","sources":["../../src/adapters/AnthropicAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAI1C,MAAM,OAAO,mBAAmB;IAIX;IACA;IAJF,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IAE1C,YACmB,QAAQ,mBAAmB,EAC3B,YAAY,IAAI;QADhB,UAAK,GAAL,KAAK,CAAsB;QAC3B,cAAS,GAAT,SAAS,CAAO;IAChC,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,QAAmB,EAAE,MAAe;QACjD,MAAM,cAAc,GAAG,QAAQ;aAC5B,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC;aAC9C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,iBAAiB,GAAmB,QAAQ;aAC/C,MAAM,CAAC,CAAC,OAAO,EAAuD,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC;aACnG,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACjB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC,CAAC;QACN,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE9E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACjD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,QAAQ,EAAE,iBAAiB;SAC5B,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,OAAO;aACpB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;aACxC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;aAC1B,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { EmbedAdapter, LLMAdapter, Message } from "../types.js";
|
|
2
|
+
export declare class GeminiLLMAdapter implements LLMAdapter {
|
|
3
|
+
private readonly model;
|
|
4
|
+
private readonly client;
|
|
5
|
+
constructor(model?: string);
|
|
6
|
+
complete(messages: Message[], system?: string): Promise<string>;
|
|
7
|
+
}
|
|
8
|
+
export declare class GeminiEmbedAdapter implements EmbedAdapter {
|
|
9
|
+
private readonly model;
|
|
10
|
+
private readonly outputDimensionality;
|
|
11
|
+
private readonly client;
|
|
12
|
+
constructor(model?: string, outputDimensionality?: number);
|
|
13
|
+
embed(text: string): Promise<number[]>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=GeminiAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeminiAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/GeminiAdapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAOrE,qBAAa,gBAAiB,YAAW,UAAU;IAGrC,OAAO,CAAC,QAAQ,CAAC,KAAK;IAFlC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;gBAElB,KAAK,SAAqB;IAEjD,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAoBtE;AAED,qBAAa,kBAAmB,YAAW,YAAY;IAInD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IAJvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;gBAG5B,KAAK,SAAyB,EAC9B,oBAAoB,SAAO;IAGxC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAY7C"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { GoogleGenAI } from "@google/genai";
|
|
2
|
+
const createGeminiClient = () => new GoogleGenAI(process.env.GEMINI_API_KEY ? { apiKey: process.env.GEMINI_API_KEY } : {});
|
|
3
|
+
export class GeminiLLMAdapter {
|
|
4
|
+
model;
|
|
5
|
+
client = createGeminiClient();
|
|
6
|
+
constructor(model = "gemini-2.5-flash") {
|
|
7
|
+
this.model = model;
|
|
8
|
+
}
|
|
9
|
+
async complete(messages, system) {
|
|
10
|
+
const systemMessages = messages
|
|
11
|
+
.filter((message) => message.role === "system")
|
|
12
|
+
.map((message) => message.content);
|
|
13
|
+
const contents = messages
|
|
14
|
+
.filter((message) => message.role !== "system")
|
|
15
|
+
.map((message) => ({
|
|
16
|
+
role: message.role === "assistant" ? "model" : "user",
|
|
17
|
+
parts: [{ text: message.content }],
|
|
18
|
+
}));
|
|
19
|
+
const systemInstruction = [system, ...systemMessages].filter(Boolean).join("\n\n");
|
|
20
|
+
const response = await this.client.models.generateContent({
|
|
21
|
+
model: this.model,
|
|
22
|
+
contents,
|
|
23
|
+
...(systemInstruction ? { config: { systemInstruction } } : {}),
|
|
24
|
+
});
|
|
25
|
+
return response.text ?? "";
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export class GeminiEmbedAdapter {
|
|
29
|
+
model;
|
|
30
|
+
outputDimensionality;
|
|
31
|
+
client = createGeminiClient();
|
|
32
|
+
constructor(model = "gemini-embedding-001", outputDimensionality = 1536) {
|
|
33
|
+
this.model = model;
|
|
34
|
+
this.outputDimensionality = outputDimensionality;
|
|
35
|
+
}
|
|
36
|
+
async embed(text) {
|
|
37
|
+
const response = await this.client.models.embedContent({
|
|
38
|
+
model: this.model,
|
|
39
|
+
contents: text,
|
|
40
|
+
config: {
|
|
41
|
+
outputDimensionality: this.outputDimensionality,
|
|
42
|
+
taskType: "SEMANTIC_SIMILARITY",
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
return response.embeddings?.[0]?.values ?? [];
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=GeminiAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeminiAdapter.js","sourceRoot":"","sources":["../../src/adapters/GeminiAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,eAAe,CAAC;AAG1D,MAAM,kBAAkB,GAAG,GAAgB,EAAE,CAC3C,IAAI,WAAW,CACb,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CACzE,CAAC;AAEJ,MAAM,OAAO,gBAAgB;IAGE;IAFZ,MAAM,GAAG,kBAAkB,EAAE,CAAC;IAE/C,YAA6B,QAAQ,kBAAkB;QAA1B,UAAK,GAAL,KAAK,CAAqB;IAAG,CAAC;IAE3D,KAAK,CAAC,QAAQ,CAAC,QAAmB,EAAE,MAAe;QACjD,MAAM,cAAc,GAAG,QAAQ;aAC5B,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC;aAC9C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAc,QAAQ;aACjC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC;aAC9C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACjB,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;YACrD,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;SACnC,CAAC,CAAC,CAAC;QACN,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEnF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;YACxD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ;YACR,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChE,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,kBAAkB;IAIV;IACA;IAJF,MAAM,GAAG,kBAAkB,EAAE,CAAC;IAE/C,YACmB,QAAQ,sBAAsB,EAC9B,uBAAuB,IAAI;QAD3B,UAAK,GAAL,KAAK,CAAyB;QAC9B,yBAAoB,GAApB,oBAAoB,CAAO;IAC3C,CAAC;IAEJ,KAAK,CAAC,KAAK,CAAC,IAAY;QACtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;YACrD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE;gBACN,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;gBAC/C,QAAQ,EAAE,qBAAqB;aAChC;SACF,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;IAChD,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FleetStore.d.ts","sourceRoot":"","sources":["../../src/fleet/FleetStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"FleetStore.d.ts","sourceRoot":"","sources":["../../src/fleet/FleetStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7D,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,UAAU;IAExC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IASvE,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAYzE"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,13 @@ export { ConductorAgent } from "./fleet/ConductorAgent.js";
|
|
|
4
4
|
export { MemoGrafterFleet } from "./fleet/MemoGrafterFleet.js";
|
|
5
5
|
export { WorkerAgent } from "./fleet/WorkerAgent.js";
|
|
6
6
|
export { AnthropicLLMAdapter } from "./adapters/AnthropicAdapter.js";
|
|
7
|
+
export { GeminiEmbedAdapter, GeminiLLMAdapter } from "./adapters/GeminiAdapter.js";
|
|
7
8
|
export { OpenAIEmbedAdapter, OpenAILLMAdapter } from "./adapters/OpenAIAdapter.js";
|
|
8
|
-
export
|
|
9
|
+
export { GrafterPipeline } from "./pipeline/GrafterPipeline.js";
|
|
10
|
+
export { IngestPipeline } from "./pipeline/IngestPipeline.js";
|
|
11
|
+
export { RetrieverPipeline } from "./pipeline/RetrieverPipeline.js";
|
|
12
|
+
export { PostgresGraphStore } from "./store/index.js";
|
|
13
|
+
export type { AbsorbFromAgentOptions, DriftMode, DriftSensitivity, EmbedAdapter, ExtractedMemory, InjectionResult, LLMAdapter, MemoryEdge, MemoryNode, MemoryNodeInsert, MemorySourceType, MemoryType, MemoGrafterConfig, MemoGrafterDriftConfig, MemoGrafterGraphConfig, MemoGrafterInjectConfig, MemoGrafterQueueConfig, Message, RetrievalResult, RetrieverConfig, SegmentExtractionResult, TopicEdge, TopicNode, TopicSegment, } from "./types.js";
|
|
9
14
|
export type { ConductorGraftOptions, FleetAbsorbOptions, FleetAgentInfo, FleetGraph, FleetWorker, MemoGrafterFleetOptions, WorkerAgentConfig, } from "./fleet/types.js";
|
|
15
|
+
export type { FleetAgentRecord, GraphStore } from "./store/index.js";
|
|
10
16
|
//# 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,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACnF,YAAY,EACV,sBAAsB,EACtB,SAAS,EACT,YAAY,EACZ,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,OAAO,EACP,SAAS,EACT,SAAS,EACT,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,WAAW,EACX,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,YAAY,EACV,sBAAsB,EACtB,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,UAAU,EACV,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,OAAO,EACP,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,SAAS,EACT,SAAS,EACT,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,WAAW,EACX,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,5 +4,10 @@ export { ConductorAgent } from "./fleet/ConductorAgent.js";
|
|
|
4
4
|
export { MemoGrafterFleet } from "./fleet/MemoGrafterFleet.js";
|
|
5
5
|
export { WorkerAgent } from "./fleet/WorkerAgent.js";
|
|
6
6
|
export { AnthropicLLMAdapter } from "./adapters/AnthropicAdapter.js";
|
|
7
|
+
export { GeminiEmbedAdapter, GeminiLLMAdapter } from "./adapters/GeminiAdapter.js";
|
|
7
8
|
export { OpenAIEmbedAdapter, OpenAILLMAdapter } from "./adapters/OpenAIAdapter.js";
|
|
9
|
+
export { GrafterPipeline } from "./pipeline/GrafterPipeline.js";
|
|
10
|
+
export { IngestPipeline } from "./pipeline/IngestPipeline.js";
|
|
11
|
+
export { RetrieverPipeline } from "./pipeline/RetrieverPipeline.js";
|
|
12
|
+
export { PostgresGraphStore } from "./store/index.js";
|
|
8
13
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,15 +1,20 @@
|
|
|
1
|
-
import type { GraphStore } from "../store/
|
|
1
|
+
import type { GraphStore } from "../store/index.js";
|
|
2
2
|
import type { InjectionResult } from "../types.js";
|
|
3
3
|
export declare class GrafterPipeline {
|
|
4
|
+
/** @internal */
|
|
4
5
|
private store;
|
|
6
|
+
/** @internal */
|
|
5
7
|
private config;
|
|
6
|
-
constructor(
|
|
8
|
+
constructor(
|
|
9
|
+
/** @internal */
|
|
10
|
+
store: GraphStore,
|
|
11
|
+
/** @internal */
|
|
12
|
+
config: {
|
|
7
13
|
hopDepth: number;
|
|
8
14
|
bufferSize: number;
|
|
9
15
|
tokenBudget: number;
|
|
10
16
|
});
|
|
11
17
|
run(sessionId: string, topicIds: string[]): Promise<InjectionResult>;
|
|
12
18
|
private assemblePrompt;
|
|
13
|
-
private countTokens;
|
|
14
19
|
}
|
|
15
20
|
//# sourceMappingURL=GrafterPipeline.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GrafterPipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline/GrafterPipeline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"GrafterPipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline/GrafterPipeline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAa,MAAM,aAAa,CAAC;AAG9D,qBAAa,eAAe;IAExB,gBAAgB;IAChB,OAAO,CAAC,KAAK;IACb,gBAAgB;IAChB,OAAO,CAAC,MAAM;;IAHd,gBAAgB;IACR,KAAK,EAAE,UAAU;IACzB,gBAAgB;IACR,MAAM,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACrB;IAGG,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;YA4B5D,cAAc;CAe7B"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { buildMemoryInjectionPrompt, formatMemoryNode } from "../prompts/memoryInjectionPrompt.js";
|
|
2
|
+
import { countApproxTokens } from "../utils/text/tokenCount.js";
|
|
2
3
|
export class GrafterPipeline {
|
|
3
4
|
store;
|
|
4
5
|
config;
|
|
5
|
-
constructor(
|
|
6
|
+
constructor(
|
|
7
|
+
/** @internal */
|
|
8
|
+
store,
|
|
9
|
+
/** @internal */
|
|
10
|
+
config) {
|
|
6
11
|
this.store = store;
|
|
7
12
|
this.config = config;
|
|
8
13
|
}
|
|
@@ -16,11 +21,11 @@ export class GrafterPipeline {
|
|
|
16
21
|
|| a.topicOrder - b.topicOrder);
|
|
17
22
|
const fittedNodes = [...nodes];
|
|
18
23
|
let systemPrompt = await this.assemblePrompt(sessionId, fittedNodes);
|
|
19
|
-
let tokenCount =
|
|
24
|
+
let tokenCount = countApproxTokens(systemPrompt);
|
|
20
25
|
while (tokenCount > this.config.tokenBudget && fittedNodes.length > 0) {
|
|
21
26
|
fittedNodes.pop();
|
|
22
27
|
systemPrompt = await this.assemblePrompt(sessionId, fittedNodes);
|
|
23
|
-
tokenCount =
|
|
28
|
+
tokenCount = countApproxTokens(systemPrompt);
|
|
24
29
|
}
|
|
25
30
|
return {
|
|
26
31
|
systemPrompt,
|
|
@@ -40,8 +45,5 @@ export class GrafterPipeline {
|
|
|
40
45
|
}
|
|
41
46
|
return buildMemoryInjectionPrompt(blocks);
|
|
42
47
|
}
|
|
43
|
-
countTokens(prompt) {
|
|
44
|
-
return Math.ceil(prompt.length / 4);
|
|
45
|
-
}
|
|
46
48
|
}
|
|
47
49
|
//# sourceMappingURL=GrafterPipeline.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GrafterPipeline.js","sourceRoot":"","sources":["../../src/pipeline/GrafterPipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"GrafterPipeline.js","sourceRoot":"","sources":["../../src/pipeline/GrafterPipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAGnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,MAAM,OAAO,eAAe;IAGhB;IAEA;IAJV;IACE,gBAAgB;IACR,KAAiB;IACzB,gBAAgB;IACR,MAIP;QANO,UAAK,GAAL,KAAK,CAAY;QAEjB,WAAM,GAAN,MAAM,CAIb;IACA,CAAC;IAEJ,KAAK,CAAC,GAAG,CAAC,SAAiB,EAAE,QAAkB;QAC7C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;QACxD,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAChG,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACxC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;eAClC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;eACrC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAC/B,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QAC/B,IAAI,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACrE,IAAI,UAAU,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAEjD,OAAO,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtE,WAAW,CAAC,GAAG,EAAE,CAAC;YAClB,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACjE,UAAU,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO;YACL,YAAY;YACZ,KAAK,EAAE,WAAW;YAClB,UAAU;SACX,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,KAAkB;QAChE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAElC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACzE,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YAC1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAC3E,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;CAEF"}
|
|
@@ -1,17 +1,32 @@
|
|
|
1
|
-
import type { GraphStore } from "../store/
|
|
2
|
-
import type { EmbedAdapter, LLMAdapter, Message, TopicNode } from "../types.js";
|
|
1
|
+
import type { GraphStore } from "../store/index.js";
|
|
2
|
+
import type { DriftSensitivity, EmbedAdapter, LLMAdapter, Message, TopicNode } from "../types.js";
|
|
3
3
|
export declare class IngestPipeline {
|
|
4
|
+
/** @internal */
|
|
4
5
|
private readonly store;
|
|
6
|
+
/** @internal */
|
|
5
7
|
private readonly embedder;
|
|
8
|
+
/** @internal */
|
|
6
9
|
private readonly config;
|
|
7
10
|
private readonly driftDetector;
|
|
8
11
|
private readonly segmentProcessor;
|
|
9
|
-
constructor(
|
|
12
|
+
constructor(
|
|
13
|
+
/** @internal */
|
|
14
|
+
store: GraphStore,
|
|
15
|
+
/** @internal */
|
|
16
|
+
llm: LLMAdapter,
|
|
17
|
+
/** @internal */
|
|
18
|
+
embedder: EmbedAdapter,
|
|
19
|
+
/** @internal */
|
|
20
|
+
config: {
|
|
10
21
|
windowSize: number;
|
|
11
|
-
threshold
|
|
22
|
+
threshold?: number;
|
|
23
|
+
driftSensitivity?: DriftSensitivity;
|
|
12
24
|
topK: number;
|
|
13
25
|
mode: "window" | "intent";
|
|
14
26
|
minSegmentMessages: number;
|
|
27
|
+
llmAmbiguityDetection?: boolean;
|
|
28
|
+
reentryDetection?: boolean;
|
|
29
|
+
reentryThreshold?: number;
|
|
15
30
|
});
|
|
16
31
|
run(messages: Message[], sessionId: string): Promise<TopicNode[]>;
|
|
17
32
|
private embedMessage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IngestPipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline/IngestPipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"IngestPipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline/IngestPipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAOlG,qBAAa,cAAc;IAKvB,gBAAgB;IAChB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAGtB,gBAAgB;IAChB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,gBAAgB;IAChB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAXzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;;IAGlD,gBAAgB;IACC,KAAK,EAAE,UAAU;IAClC,gBAAgB;IAChB,GAAG,EAAE,UAAU;IACf,gBAAgB;IACC,QAAQ,EAAE,YAAY;IACvC,gBAAgB;IACC,MAAM,EAAE;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QACpC,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAC1B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B;IAoBG,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YA8CzD,YAAY;CAI3B"}
|