agentfootprint 8.7.0 → 8.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +12 -4
- package/CLAUDE.md +4 -2
- package/ai-instructions/claude-code/SKILL.md +1 -1
- package/ai-instructions/setup.sh +0 -0
- package/bin/agentfootprint-lint-tools.mjs +0 -0
- package/dist/core/agent/buildAgentChart.js +12 -1
- package/dist/core/agent/buildAgentChart.js.map +1 -1
- package/dist/core/agent/buildDynamicAgentChart.js +12 -1
- package/dist/core/agent/buildDynamicAgentChart.js.map +1 -1
- package/dist/core/agent/memoryRecallInjections.js +100 -10
- package/dist/core/agent/memoryRecallInjections.js.map +1 -1
- package/dist/core/agent/stages/deliver.js.map +1 -1
- package/dist/core/slots/buildSystemPromptSlot.js +10 -0
- package/dist/core/slots/buildSystemPromptSlot.js.map +1 -1
- package/dist/core/slots/helpers.js +12 -10
- package/dist/core/slots/helpers.js.map +1 -1
- package/dist/esm/core/agent/buildAgentChart.js +13 -2
- package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
- package/dist/esm/core/agent/buildDynamicAgentChart.js +13 -2
- package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -1
- package/dist/esm/core/agent/memoryRecallInjections.d.ts +13 -3
- package/dist/esm/core/agent/memoryRecallInjections.js +101 -11
- package/dist/esm/core/agent/memoryRecallInjections.js.map +1 -1
- package/dist/esm/core/agent/stages/deliver.d.ts +6 -3
- package/dist/esm/core/agent/stages/deliver.js.map +1 -1
- package/dist/esm/core/slots/buildSystemPromptSlot.js +10 -0
- package/dist/esm/core/slots/buildSystemPromptSlot.js.map +1 -1
- package/dist/esm/core/slots/helpers.d.ts +11 -2
- package/dist/esm/core/slots/helpers.js +11 -9
- package/dist/esm/core/slots/helpers.js.map +1 -1
- package/dist/esm/events/payloads.d.ts +63 -0
- package/dist/esm/events/registry.d.ts +3 -1
- package/dist/esm/events/registry.js +2 -0
- package/dist/esm/events/registry.js.map +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.js +6 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/fnv1a.d.ts +16 -0
- package/dist/esm/lib/fnv1a.js +24 -0
- package/dist/esm/lib/fnv1a.js.map +1 -0
- package/dist/esm/lib/injection-engine/types.d.ts +17 -0
- package/dist/esm/lib/injection-engine/types.js.map +1 -1
- package/dist/esm/lib/rag/defineRAG.d.ts +126 -26
- package/dist/esm/lib/rag/defineRAG.js +112 -25
- package/dist/esm/lib/rag/defineRAG.js.map +1 -1
- package/dist/esm/lib/rag/index.d.ts +1 -1
- package/dist/esm/lib/rag/index.js +1 -1
- package/dist/esm/lib/rag/index.js.map +1 -1
- package/dist/esm/memory/define.js +38 -2
- package/dist/esm/memory/define.js.map +1 -1
- package/dist/esm/memory/define.types.d.ts +93 -1
- package/dist/esm/memory/define.types.js +18 -0
- package/dist/esm/memory/define.types.js.map +1 -1
- package/dist/esm/memory/embedding/loadRelevant.d.ts +49 -15
- package/dist/esm/memory/embedding/loadRelevant.js +136 -7
- package/dist/esm/memory/embedding/loadRelevant.js.map +1 -1
- package/dist/esm/memory/index.d.ts +2 -1
- package/dist/esm/memory/index.js +2 -1
- package/dist/esm/memory/index.js.map +1 -1
- package/dist/esm/memory/pipeline/semantic.d.ts +15 -0
- package/dist/esm/memory/pipeline/semantic.js +3 -1
- package/dist/esm/memory/pipeline/semantic.js.map +1 -1
- package/dist/esm/memory/retrieval/index.d.ts +10 -0
- package/dist/esm/memory/retrieval/index.js +3 -0
- package/dist/esm/memory/retrieval/index.js.map +1 -0
- package/dist/esm/memory/retrieval/provenance.d.ts +43 -0
- package/dist/esm/memory/retrieval/provenance.js +60 -0
- package/dist/esm/memory/retrieval/provenance.js.map +1 -0
- package/dist/esm/memory/retrieval/topK.d.ts +67 -0
- package/dist/esm/memory/retrieval/topK.js +53 -0
- package/dist/esm/memory/retrieval/topK.js.map +1 -0
- package/dist/esm/memory/retrieval/types.d.ts +189 -0
- package/dist/esm/memory/retrieval/types.js +2 -0
- package/dist/esm/memory/retrieval/types.js.map +1 -0
- package/dist/esm/memory/stages/formatDefault.d.ts +52 -26
- package/dist/esm/memory/stages/formatDefault.js +118 -28
- package/dist/esm/memory/stages/formatDefault.js.map +1 -1
- package/dist/esm/memory/stages/pickByBudget.js +53 -3
- package/dist/esm/memory/stages/pickByBudget.js.map +1 -1
- package/dist/esm/memory/stages/types.d.ts +15 -0
- package/dist/esm/memory/wire/mountMemoryPipeline.d.ts +25 -0
- package/dist/esm/memory/wire/mountMemoryPipeline.js +11 -2
- package/dist/esm/memory/wire/mountMemoryPipeline.js.map +1 -1
- package/dist/events/registry.js +2 -0
- package/dist/events/registry.js.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/fnv1a.js +28 -0
- package/dist/lib/fnv1a.js.map +1 -0
- package/dist/lib/injection-engine/types.js.map +1 -1
- package/dist/lib/rag/defineRAG.js +113 -26
- package/dist/lib/rag/defineRAG.js.map +1 -1
- package/dist/lib/rag/index.js +2 -1
- package/dist/lib/rag/index.js.map +1 -1
- package/dist/memory/define.js +38 -2
- package/dist/memory/define.js.map +1 -1
- package/dist/memory/define.types.js +21 -1
- package/dist/memory/define.types.js.map +1 -1
- package/dist/memory/embedding/loadRelevant.js +138 -8
- package/dist/memory/embedding/loadRelevant.js.map +1 -1
- package/dist/memory/index.js +5 -1
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/pipeline/semantic.js +2 -0
- package/dist/memory/pipeline/semantic.js.map +1 -1
- package/dist/memory/retrieval/index.js +9 -0
- package/dist/memory/retrieval/index.js.map +1 -0
- package/dist/memory/retrieval/provenance.js +65 -0
- package/dist/memory/retrieval/provenance.js.map +1 -0
- package/dist/memory/retrieval/topK.js +57 -0
- package/dist/memory/retrieval/topK.js.map +1 -0
- package/dist/memory/retrieval/types.js +3 -0
- package/dist/memory/retrieval/types.js.map +1 -0
- package/dist/memory/stages/formatDefault.js +118 -28
- package/dist/memory/stages/formatDefault.js.map +1 -1
- package/dist/memory/stages/pickByBudget.js +53 -3
- package/dist/memory/stages/pickByBudget.js.map +1 -1
- package/dist/memory/wire/mountMemoryPipeline.js +11 -2
- package/dist/memory/wire/mountMemoryPipeline.js.map +1 -1
- package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
- package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -1
- package/dist/types/core/agent/memoryRecallInjections.d.ts +13 -3
- package/dist/types/core/agent/memoryRecallInjections.d.ts.map +1 -1
- package/dist/types/core/agent/stages/deliver.d.ts +6 -3
- package/dist/types/core/agent/stages/deliver.d.ts.map +1 -1
- package/dist/types/core/slots/buildSystemPromptSlot.d.ts.map +1 -1
- package/dist/types/core/slots/helpers.d.ts +11 -2
- package/dist/types/core/slots/helpers.d.ts.map +1 -1
- package/dist/types/events/payloads.d.ts +63 -0
- package/dist/types/events/payloads.d.ts.map +1 -1
- package/dist/types/events/registry.d.ts +3 -1
- package/dist/types/events/registry.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/fnv1a.d.ts +17 -0
- package/dist/types/lib/fnv1a.d.ts.map +1 -0
- package/dist/types/lib/injection-engine/types.d.ts +17 -0
- package/dist/types/lib/injection-engine/types.d.ts.map +1 -1
- package/dist/types/lib/rag/defineRAG.d.ts +126 -26
- package/dist/types/lib/rag/defineRAG.d.ts.map +1 -1
- package/dist/types/lib/rag/index.d.ts +1 -1
- package/dist/types/lib/rag/index.d.ts.map +1 -1
- package/dist/types/memory/define.d.ts.map +1 -1
- package/dist/types/memory/define.types.d.ts +93 -1
- package/dist/types/memory/define.types.d.ts.map +1 -1
- package/dist/types/memory/embedding/loadRelevant.d.ts +49 -15
- package/dist/types/memory/embedding/loadRelevant.d.ts.map +1 -1
- package/dist/types/memory/index.d.ts +2 -1
- package/dist/types/memory/index.d.ts.map +1 -1
- package/dist/types/memory/pipeline/semantic.d.ts +15 -0
- package/dist/types/memory/pipeline/semantic.d.ts.map +1 -1
- package/dist/types/memory/retrieval/index.d.ts +11 -0
- package/dist/types/memory/retrieval/index.d.ts.map +1 -0
- package/dist/types/memory/retrieval/provenance.d.ts +44 -0
- package/dist/types/memory/retrieval/provenance.d.ts.map +1 -0
- package/dist/types/memory/retrieval/topK.d.ts +68 -0
- package/dist/types/memory/retrieval/topK.d.ts.map +1 -0
- package/dist/types/memory/retrieval/types.d.ts +190 -0
- package/dist/types/memory/retrieval/types.d.ts.map +1 -0
- package/dist/types/memory/stages/formatDefault.d.ts +52 -26
- package/dist/types/memory/stages/formatDefault.d.ts.map +1 -1
- package/dist/types/memory/stages/pickByBudget.d.ts.map +1 -1
- package/dist/types/memory/stages/types.d.ts +15 -0
- package/dist/types/memory/stages/types.d.ts.map +1 -1
- package/dist/types/memory/wire/mountMemoryPipeline.d.ts +25 -0
- package/dist/types/memory/wire/mountMemoryPipeline.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/memory/index.js
CHANGED
|
@@ -21,7 +21,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
21
21
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
22
22
|
};
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
-
exports.defineMemory = exports.isMemoryInjectionKey = exports.memoryInjectionKey = exports.isSnapshotProjection = exports.isMemoryTiming = exports.isMemoryStrategyKind = exports.isMemoryType = exports.MEMORY_INJECTION_KEY_PREFIX = exports.SNAPSHOT_PROJECTIONS = exports.MEMORY_TIMING = exports.MEMORY_STRATEGIES = exports.MEMORY_TYPES = void 0;
|
|
24
|
+
exports.defineMemory = exports.isRetrievalEvidenceKey = exports.retrievalEvidenceKey = exports.isMemoryInjectionKey = exports.memoryInjectionKey = exports.isSnapshotProjection = exports.isMemoryTiming = exports.isMemoryStrategyKind = exports.isMemoryType = exports.RETRIEVAL_EVIDENCE_KEY_PREFIX = exports.MEMORY_INJECTION_KEY_PREFIX = exports.SNAPSHOT_PROJECTIONS = exports.MEMORY_TIMING = exports.MEMORY_STRATEGIES = exports.MEMORY_TYPES = void 0;
|
|
25
25
|
__exportStar(require("./beats/index.js"), exports);
|
|
26
26
|
__exportStar(require("./causal/index.js"), exports);
|
|
27
27
|
__exportStar(require("./embedding/index.js"), exports);
|
|
@@ -32,6 +32,7 @@ __exportStar(require("./pipeline/index.js"), exports);
|
|
|
32
32
|
__exportStar(require("./stages/index.js"), exports);
|
|
33
33
|
__exportStar(require("./store/index.js"), exports);
|
|
34
34
|
__exportStar(require("./wire/index.js"), exports);
|
|
35
|
+
__exportStar(require("./retrieval/index.js"), exports);
|
|
35
36
|
// Consumer-facing factory + const-objects for memory configuration.
|
|
36
37
|
var define_types_js_1 = require("./define.types.js");
|
|
37
38
|
Object.defineProperty(exports, "MEMORY_TYPES", { enumerable: true, get: function () { return define_types_js_1.MEMORY_TYPES; } });
|
|
@@ -39,12 +40,15 @@ Object.defineProperty(exports, "MEMORY_STRATEGIES", { enumerable: true, get: fun
|
|
|
39
40
|
Object.defineProperty(exports, "MEMORY_TIMING", { enumerable: true, get: function () { return define_types_js_1.MEMORY_TIMING; } });
|
|
40
41
|
Object.defineProperty(exports, "SNAPSHOT_PROJECTIONS", { enumerable: true, get: function () { return define_types_js_1.SNAPSHOT_PROJECTIONS; } });
|
|
41
42
|
Object.defineProperty(exports, "MEMORY_INJECTION_KEY_PREFIX", { enumerable: true, get: function () { return define_types_js_1.MEMORY_INJECTION_KEY_PREFIX; } });
|
|
43
|
+
Object.defineProperty(exports, "RETRIEVAL_EVIDENCE_KEY_PREFIX", { enumerable: true, get: function () { return define_types_js_1.RETRIEVAL_EVIDENCE_KEY_PREFIX; } });
|
|
42
44
|
Object.defineProperty(exports, "isMemoryType", { enumerable: true, get: function () { return define_types_js_1.isMemoryType; } });
|
|
43
45
|
Object.defineProperty(exports, "isMemoryStrategyKind", { enumerable: true, get: function () { return define_types_js_1.isMemoryStrategyKind; } });
|
|
44
46
|
Object.defineProperty(exports, "isMemoryTiming", { enumerable: true, get: function () { return define_types_js_1.isMemoryTiming; } });
|
|
45
47
|
Object.defineProperty(exports, "isSnapshotProjection", { enumerable: true, get: function () { return define_types_js_1.isSnapshotProjection; } });
|
|
46
48
|
Object.defineProperty(exports, "memoryInjectionKey", { enumerable: true, get: function () { return define_types_js_1.memoryInjectionKey; } });
|
|
47
49
|
Object.defineProperty(exports, "isMemoryInjectionKey", { enumerable: true, get: function () { return define_types_js_1.isMemoryInjectionKey; } });
|
|
50
|
+
Object.defineProperty(exports, "retrievalEvidenceKey", { enumerable: true, get: function () { return define_types_js_1.retrievalEvidenceKey; } });
|
|
51
|
+
Object.defineProperty(exports, "isRetrievalEvidenceKey", { enumerable: true, get: function () { return define_types_js_1.isRetrievalEvidenceKey; } });
|
|
48
52
|
var define_js_1 = require("./define.js");
|
|
49
53
|
Object.defineProperty(exports, "defineMemory", { enumerable: true, get: function () { return define_js_1.defineMemory; } });
|
|
50
54
|
//# sourceMappingURL=index.js.map
|
package/dist/memory/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;AAEH,mDAAiC;AACjC,oDAAkC;AAClC,uDAAqC;AACrC,mDAAiC;AACjC,mDAAiC;AACjC,sDAAoC;AACpC,sDAAoC;AACpC,oDAAkC;AAClC,mDAAiC;AACjC,kDAAgC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;AAEH,mDAAiC;AACjC,oDAAkC;AAClC,uDAAqC;AACrC,mDAAiC;AACjC,mDAAiC;AACjC,sDAAoC;AACpC,sDAAoC;AACpC,oDAAkC;AAClC,mDAAiC;AACjC,kDAAgC;AAChC,uDAAqC;AAErC,oEAAoE;AACpE,qDAqC2B;AApCzB,+GAAA,YAAY,OAAA;AACZ,oHAAA,iBAAiB,OAAA;AACjB,gHAAA,aAAa,OAAA;AACb,uHAAA,oBAAoB,OAAA;AACpB,8HAAA,2BAA2B,OAAA;AAC3B,gIAAA,6BAA6B,OAAA;AAC7B,+GAAA,YAAY,OAAA;AACZ,uHAAA,oBAAoB,OAAA;AACpB,iHAAA,cAAc,OAAA;AACd,uHAAA,oBAAoB,OAAA;AACpB,qHAAA,kBAAkB,OAAA;AAClB,uHAAA,oBAAoB,OAAA;AACpB,uHAAA,oBAAoB,OAAA;AACpB,yHAAA,sBAAsB,OAAA;AAmCxB,yCAA2C;AAAlC,yGAAA,YAAY,OAAA"}
|
|
@@ -60,6 +60,7 @@ function semanticPipeline(config) {
|
|
|
60
60
|
...(config.k !== undefined && { k: config.k }),
|
|
61
61
|
...(config.minScore !== undefined && { minScore: config.minScore }),
|
|
62
62
|
...(config.tiers && { tiers: config.tiers }),
|
|
63
|
+
...(config.retrieval !== undefined && { retrieval: config.retrieval }),
|
|
63
64
|
};
|
|
64
65
|
const pickConfig = {
|
|
65
66
|
...(config.reserveTokens !== undefined && { reserveTokens: config.reserveTokens }),
|
|
@@ -69,6 +70,7 @@ function semanticPipeline(config) {
|
|
|
69
70
|
const formatConfig = {
|
|
70
71
|
...(config.formatHeader !== undefined && { header: config.formatHeader }),
|
|
71
72
|
...(config.formatFooter !== undefined && { footer: config.formatFooter }),
|
|
73
|
+
...(config.flavor !== undefined && { flavor: config.flavor }),
|
|
72
74
|
};
|
|
73
75
|
const embedConfig = {
|
|
74
76
|
embedder: config.embedder,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic.js","sourceRoot":"","sources":["../../../src/memory/pipeline/semantic.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,6CAAwC;AAExC,+DAAkF;AAClF,
|
|
1
|
+
{"version":3,"file":"semantic.js","sourceRoot":"","sources":["../../../src/memory/pipeline/semantic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.chunkText = exports.chunkProvenance = exports.topK = void 0;
|
|
4
|
+
var topK_js_1 = require("./topK.js");
|
|
5
|
+
Object.defineProperty(exports, "topK", { enumerable: true, get: function () { return topK_js_1.topK; } });
|
|
6
|
+
var provenance_js_1 = require("./provenance.js");
|
|
7
|
+
Object.defineProperty(exports, "chunkProvenance", { enumerable: true, get: function () { return provenance_js_1.chunkProvenance; } });
|
|
8
|
+
Object.defineProperty(exports, "chunkText", { enumerable: true, get: function () { return provenance_js_1.chunkText; } });
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/memory/retrieval/index.ts"],"names":[],"mappings":";;;AAeA,qCAAmD;AAA1C,+FAAA,IAAI,OAAA;AACb,iDAAmF;AAA1E,gHAAA,eAAe,OAAA;AAAE,0GAAA,SAAS,OAAA"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* provenance — read a stored entry's coordinates back out of it.
|
|
4
|
+
*
|
|
5
|
+
* Pattern: pure projection.
|
|
6
|
+
* Role: memory/ layer. One place that knows which metadata keys mean
|
|
7
|
+
* "which document", "which page", "which section", so the
|
|
8
|
+
* retrieval record and the citation the model sees can never
|
|
9
|
+
* disagree about a chunk's origin.
|
|
10
|
+
* Emits: N/A.
|
|
11
|
+
*
|
|
12
|
+
* The keys are the ones `indexDocuments` already accepts on
|
|
13
|
+
* `RagDocument.metadata`, and the ones a document splitter will write.
|
|
14
|
+
* Nothing is invented: an entry that carries no metadata simply has no
|
|
15
|
+
* coordinates, and the record says so by omitting the fields rather than
|
|
16
|
+
* by guessing a filename from an id.
|
|
17
|
+
*/
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.chunkText = exports.chunkProvenance = void 0;
|
|
20
|
+
function asRecord(value) {
|
|
21
|
+
return typeof value === 'object' && value !== null
|
|
22
|
+
? value
|
|
23
|
+
: undefined;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Pull the coordinates out of a stored value.
|
|
27
|
+
*
|
|
28
|
+
* Accepts metadata at the value's `metadata` key (where `indexDocuments`
|
|
29
|
+
* puts it) or directly on the value, so a hand-built entry works too.
|
|
30
|
+
*/
|
|
31
|
+
function chunkProvenance(value) {
|
|
32
|
+
const root = asRecord(value);
|
|
33
|
+
if (!root)
|
|
34
|
+
return {};
|
|
35
|
+
const meta = asRecord(root['metadata']) ?? root;
|
|
36
|
+
const rawDoc = meta['docUri'] ?? meta['source'];
|
|
37
|
+
const docUri = typeof rawDoc === 'string' && rawDoc.length > 0 ? rawDoc : undefined;
|
|
38
|
+
const rawPage = meta['page'];
|
|
39
|
+
const page = typeof rawPage === 'number' && Number.isFinite(rawPage) ? rawPage : undefined;
|
|
40
|
+
const rawHeading = meta['heading'];
|
|
41
|
+
const heading = typeof rawHeading === 'string' && rawHeading.length > 0 ? rawHeading : undefined;
|
|
42
|
+
return {
|
|
43
|
+
...(docUri !== undefined && { docUri }),
|
|
44
|
+
...(page !== undefined && { page }),
|
|
45
|
+
...(heading !== undefined && { heading }),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
exports.chunkProvenance = chunkProvenance;
|
|
49
|
+
/**
|
|
50
|
+
* The text a stored value carries.
|
|
51
|
+
*
|
|
52
|
+
* Two shapes reach the formatter through the same pipeline: a chat
|
|
53
|
+
* `Message` (`{ role, content }`) from conversation memory, and a
|
|
54
|
+
* document (`{ id, content, metadata }`) from `indexDocuments`. Both
|
|
55
|
+
* keep their text on `content`, which is why one accessor serves both —
|
|
56
|
+
* but only the message shape has a meaningful `role`, which is why the
|
|
57
|
+
* corpus formatter does not print one.
|
|
58
|
+
*/
|
|
59
|
+
function chunkText(value) {
|
|
60
|
+
const root = asRecord(value);
|
|
61
|
+
const content = root?.['content'];
|
|
62
|
+
return typeof content === 'string' ? content : '';
|
|
63
|
+
}
|
|
64
|
+
exports.chunkText = chunkText;
|
|
65
|
+
//# sourceMappingURL=provenance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../../src/memory/retrieval/provenance.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAYH,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAChD,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,KAAc;IAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC;IAEhD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAEpF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3F,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAEjG,OAAO;QACL,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;QACvC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC;QACnC,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;KAC1C,CAAC;AACJ,CAAC;AAnBD,0CAmBC;AAED;;;;;;;;;GASG;AACH,SAAgB,SAAS,CAAC,KAAc;IACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;IAClC,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AACpD,CAAC;AAJD,8BAIC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.topK = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Build the top-K strategy.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { defineRAG } from 'agentfootprint';
|
|
10
|
+
* import { topK } from 'agentfootprint/memory';
|
|
11
|
+
*
|
|
12
|
+
* const docs = defineRAG({
|
|
13
|
+
* id: 'product-docs',
|
|
14
|
+
* store, embedder,
|
|
15
|
+
* retrieval: topK({ k: 5, threshold: 0.55 }),
|
|
16
|
+
* });
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
function topK(options = {}) {
|
|
20
|
+
const k = options.k ?? 3;
|
|
21
|
+
if (!Number.isInteger(k) || k < 1) {
|
|
22
|
+
throw new Error(`topK: \`k\` must be a positive integer — received ${String(options.k)}.`);
|
|
23
|
+
}
|
|
24
|
+
const rejectWindow = options.rejectWindow ?? 10;
|
|
25
|
+
if (!Number.isInteger(rejectWindow) || rejectWindow < 0) {
|
|
26
|
+
throw new Error(`topK: \`rejectWindow\` must be a non-negative integer — received ${String(options.rejectWindow)}.`);
|
|
27
|
+
}
|
|
28
|
+
const threshold = options.threshold === null ? undefined : options.threshold ?? 0.7;
|
|
29
|
+
if (threshold !== undefined && !Number.isFinite(threshold)) {
|
|
30
|
+
throw new Error(`topK: \`threshold\` must be a finite number or null — received ${String(options.threshold)}.`);
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
name: 'topK',
|
|
34
|
+
k,
|
|
35
|
+
...(threshold !== undefined && { threshold }),
|
|
36
|
+
rejectWindow,
|
|
37
|
+
select(pool) {
|
|
38
|
+
const verdicts = [];
|
|
39
|
+
let admitted = 0;
|
|
40
|
+
for (const candidate of pool) {
|
|
41
|
+
if (threshold !== undefined && candidate.score < threshold) {
|
|
42
|
+
verdicts.push({ admitted: false, reason: 'below-threshold' });
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (admitted >= k) {
|
|
46
|
+
verdicts.push({ admitted: false, reason: 'over-max-entries' });
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
admitted += 1;
|
|
50
|
+
verdicts.push({ admitted: true });
|
|
51
|
+
}
|
|
52
|
+
return verdicts;
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
exports.topK = topK;
|
|
57
|
+
//# sourceMappingURL=topK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"topK.js","sourceRoot":"","sources":["../../../src/memory/retrieval/topK.ts"],"names":[],"mappings":";;;AAqDA;;;;;;;;;;;;;;GAcG;AACH,SAAgB,IAAI,CAAC,UAAuB,EAAE;IAC5C,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;IACzB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,qDAAqD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7F,CAAC;IACD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,oEAAoE,MAAM,CACxE,OAAO,CAAC,YAAY,CACrB,GAAG,CACL,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC;IACpF,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CACb,kEAAkE,MAAM,CACtE,OAAO,CAAC,SAAS,CAClB,GAAG,CACL,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,CAAC;QACD,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7C,YAAY;QACZ,MAAM,CAAC,IAAgC;YACrC,MAAM,QAAQ,GAAuB,EAAE,CAAC;YACxC,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,KAAK,MAAM,SAAS,IAAI,IAAI,EAAE,CAAC;gBAC7B,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC;oBAC3D,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;oBAC9D,SAAS;gBACX,CAAC;gBACD,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;oBAClB,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;oBAC/D,SAAS;gBACX,CAAC;gBACD,QAAQ,IAAI,CAAC,CAAC;gBACd,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC;AA7CD,oBA6CC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/memory/retrieval/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,18 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.formatDefault = void 0;
|
|
4
|
+
const provenance_js_1 = require("../retrieval/provenance.js");
|
|
4
5
|
const DEFAULT_HEADER = 'Relevant context from prior conversations. Use when it helps answer the current turn.';
|
|
6
|
+
const RAG_HEADER = 'Relevant passages retrieved from the document corpus. Cite the source id when you use one.';
|
|
5
7
|
/**
|
|
6
|
-
* Escape any
|
|
7
|
-
* surrounding citation block prematurely. Without this guard,
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* Escape any closing tag in user-controlled content so it can't close the
|
|
9
|
+
* surrounding citation block prematurely. Without this guard, content
|
|
10
|
+
* containing the literal close tag could trick the LLM into treating
|
|
11
|
+
* subsequent text as "outside memory" — a small but real prompt-injection
|
|
12
|
+
* vector. We insert a zero-width-joiner after the first character of the
|
|
13
|
+
* tag name so the sequence survives tokenization but does NOT parse as a
|
|
12
14
|
* closing tag.
|
|
13
15
|
*/
|
|
14
|
-
function
|
|
15
|
-
|
|
16
|
+
function escapeCloseTag(text, tag) {
|
|
17
|
+
const head = tag[0] ?? '';
|
|
18
|
+
const rest = tag.slice(1);
|
|
19
|
+
// U+200D ZERO WIDTH JOINER — invisible, survives tokenization, and
|
|
20
|
+
// breaks the literal tag match. Same byte the memory formatter has
|
|
21
|
+
// used since 7.x; keeping it identical keeps that output byte-stable.
|
|
22
|
+
return text.replace(new RegExp(`</${tag}>`, 'gi'), `</${head}${rest}>`);
|
|
23
|
+
}
|
|
24
|
+
/** Escape a value for an XML-ish attribute. Corpus metadata is not trusted input. */
|
|
25
|
+
function attr(value) {
|
|
26
|
+
return value.replace(/&/g, '&').replace(/"/g, '"').replace(/</g, '<');
|
|
16
27
|
}
|
|
17
28
|
function defaultRenderEntry(entry) {
|
|
18
29
|
const msg = entry.value;
|
|
@@ -20,12 +31,46 @@ function defaultRenderEntry(entry) {
|
|
|
20
31
|
const updatedAttr = entry.updatedAt !== undefined ? ` updated="${new Date(entry.updatedAt).toISOString()}"` : '';
|
|
21
32
|
const text = msg.content ?? '';
|
|
22
33
|
const role = msg.role ?? 'unknown';
|
|
23
|
-
return `<memory role="${role}"${turnAttr}${updatedAttr}>\n${
|
|
34
|
+
return `<memory role="${role}"${turnAttr}${updatedAttr}>\n${escapeCloseTag(text, 'memory')}\n</memory>`;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Corpus rendering — the chunk's own coordinates, and the score that put
|
|
38
|
+
* it here. Every attribute is omitted when it is not known, because a
|
|
39
|
+
* fabricated page number is worse than a missing one.
|
|
40
|
+
*/
|
|
41
|
+
function ragRenderEntry(entry, candidate) {
|
|
42
|
+
const prov = (0, provenance_js_1.chunkProvenance)(entry.value);
|
|
43
|
+
const docUri = candidate?.docUri ?? prov.docUri;
|
|
44
|
+
const page = candidate?.page ?? prov.page;
|
|
45
|
+
const heading = candidate?.heading ?? prov.heading;
|
|
46
|
+
const parts = [`id="${attr(entry.id)}"`];
|
|
47
|
+
if (docUri !== undefined)
|
|
48
|
+
parts.push(`doc="${attr(docUri)}"`);
|
|
49
|
+
if (page !== undefined)
|
|
50
|
+
parts.push(`page="${page}"`);
|
|
51
|
+
if (heading !== undefined)
|
|
52
|
+
parts.push(`heading="${attr(heading)}"`);
|
|
53
|
+
if (candidate?.score !== undefined)
|
|
54
|
+
parts.push(`score="${candidate.score.toFixed(2)}"`);
|
|
55
|
+
// `chunkText` reads `.content`, which both shapes carry — a document
|
|
56
|
+
// from `indexDocuments` and a chat message keep their text there.
|
|
57
|
+
const text = (0, provenance_js_1.chunkText)(entry.value);
|
|
58
|
+
return `<source ${parts.join(' ')}>\n${escapeCloseTag(text, 'source')}\n</source>`;
|
|
59
|
+
}
|
|
60
|
+
/** Emit through the scope's emit channel when there is one. */
|
|
61
|
+
function emit(scope, type, payload) {
|
|
62
|
+
const emitter = scope.$emit;
|
|
63
|
+
if (typeof emitter === 'function')
|
|
64
|
+
emitter.call(scope, type, payload);
|
|
65
|
+
}
|
|
66
|
+
function summarize(text, n = 80) {
|
|
67
|
+
return text.length <= n ? text : text.slice(0, n - 1) + '…';
|
|
24
68
|
}
|
|
25
69
|
function formatDefault(config = {}) {
|
|
26
|
-
const
|
|
70
|
+
const flavor = config.flavor ?? 'memory';
|
|
71
|
+
const header = config.header ?? (flavor === 'rag' ? RAG_HEADER : DEFAULT_HEADER);
|
|
27
72
|
const footer = config.footer ?? '';
|
|
28
|
-
const renderEntry = config.renderEntry ?? defaultRenderEntry;
|
|
73
|
+
const renderEntry = config.renderEntry ?? (flavor === 'rag' ? ragRenderEntry : defaultRenderEntry);
|
|
29
74
|
const emitWhenEmpty = config.emitWhenEmpty ?? false;
|
|
30
75
|
return async (scope) => {
|
|
31
76
|
const selected = scope.selected ?? [];
|
|
@@ -33,9 +78,56 @@ function formatDefault(config = {}) {
|
|
|
33
78
|
scope.formatted = [];
|
|
34
79
|
return;
|
|
35
80
|
}
|
|
36
|
-
const
|
|
37
|
-
const
|
|
81
|
+
const evidence = scope.retrieved;
|
|
82
|
+
const byId = new Map((evidence?.candidates ?? []).map((c) => [c.id, c]));
|
|
83
|
+
const blocks = selected.map((entry) => renderEntry(entry, byId.get(entry.id)));
|
|
84
|
+
const content = (header ? `${header}\n\n` : '') + blocks.join('\n\n') + (footer ? `\n\n${footer}` : '');
|
|
38
85
|
scope.formatted = [{ role: 'system', content }];
|
|
86
|
+
// ── Per-chunk prompt bytes ──────────────────────────────────────
|
|
87
|
+
// The header rides the FIRST fragment and the footer the LAST, so
|
|
88
|
+
// that `fragments.join('\n\n')` is byte-identical to `content` above.
|
|
89
|
+
// That identity is what lets one retrieval become one InjectionRecord
|
|
90
|
+
// per chunk without changing a single byte the model sees — and it is
|
|
91
|
+
// pinned by test, because it is the whole blast radius of the change.
|
|
92
|
+
//
|
|
93
|
+
// `promptPosition` rides along because the record is stored in SCORE
|
|
94
|
+
// order while the prompt is assembled in the PICKER's order: without
|
|
95
|
+
// it, rejoining the fragments reproduces the right bytes in the wrong
|
|
96
|
+
// sequence, which is a prompt the model never saw.
|
|
97
|
+
if (evidence) {
|
|
98
|
+
const fragments = blocks.map((block, i) => {
|
|
99
|
+
const withHeader = i === 0 && header ? `${header}\n\n${block}` : block;
|
|
100
|
+
return i === blocks.length - 1 && footer ? `${withHeader}\n\n${footer}` : withHeader;
|
|
101
|
+
});
|
|
102
|
+
const placed = new Map(selected.map((entry, i) => [entry.id, { fragment: fragments[i] ?? '', position: i }]));
|
|
103
|
+
scope.retrieved = {
|
|
104
|
+
...evidence,
|
|
105
|
+
...(evidence.candidates && {
|
|
106
|
+
candidates: evidence.candidates.map((c) => {
|
|
107
|
+
const slot = placed.get(c.id);
|
|
108
|
+
return slot === undefined
|
|
109
|
+
? c
|
|
110
|
+
: { ...c, promptFragment: slot.fragment, promptPosition: slot.position };
|
|
111
|
+
}),
|
|
112
|
+
}),
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
// ── Per-chunk attachment telemetry ──────────────────────────────
|
|
116
|
+
// `agentfootprint.memory.attached` has been declared since 2.x and was
|
|
117
|
+
// never emitted by anything. It is emitted here, once per chunk that
|
|
118
|
+
// actually reached the prompt, because that is the event a consumer
|
|
119
|
+
// needs to answer "which passages did this turn read". The memory
|
|
120
|
+
// bridge is attached on every Agent run, so no extra wiring exists.
|
|
121
|
+
for (const entry of selected) {
|
|
122
|
+
const candidate = byId.get(entry.id);
|
|
123
|
+
emit(scope, 'agentfootprint.memory.attached', {
|
|
124
|
+
memoryId: entry.id,
|
|
125
|
+
contentSummary: summarize((0, provenance_js_1.chunkText)(entry.value)),
|
|
126
|
+
...(candidate?.score !== undefined && { score: candidate.score }),
|
|
127
|
+
...(candidate?.rank !== undefined && { rank: candidate.rank }),
|
|
128
|
+
source: 'store',
|
|
129
|
+
});
|
|
130
|
+
}
|
|
39
131
|
// Context-engineering emit: memory formatted N entries into one
|
|
40
132
|
// system-role message.
|
|
41
133
|
//
|
|
@@ -51,21 +143,19 @@ function formatDefault(config = {}) {
|
|
|
51
143
|
// Until 7.20.0 this said `'messages'`, which was never true of this
|
|
52
144
|
// stage — `scope.formatted` above is unconditionally role `'system'`.
|
|
53
145
|
// A consumer branching on the old value was branching on a lie.
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
});
|
|
68
|
-
}
|
|
146
|
+
emit(scope, 'agentfootprint.context.memory.injected', {
|
|
147
|
+
slot: 'system-prompt',
|
|
148
|
+
// Memory injects ONE system-role message containing every selected
|
|
149
|
+
// entry as a citation block (see the headers + renderEntry).
|
|
150
|
+
// The downstream delta is therefore +1 system fragment, regardless
|
|
151
|
+
// of how many memory entries it carries.
|
|
152
|
+
role: 'system',
|
|
153
|
+
deltaCount: { system: 1 },
|
|
154
|
+
count: selected.length,
|
|
155
|
+
// Tiers present in the injection — lets the UI show "working / long-term"
|
|
156
|
+
// differentiation later without a schema change.
|
|
157
|
+
tiers: Array.from(new Set(selected.map((e) => e.tier).filter(Boolean))),
|
|
158
|
+
});
|
|
69
159
|
};
|
|
70
160
|
}
|
|
71
161
|
exports.formatDefault = formatDefault;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatDefault.js","sourceRoot":"","sources":["../../../src/memory/stages/formatDefault.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"formatDefault.js","sourceRoot":"","sources":["../../../src/memory/stages/formatDefault.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,10 +28,47 @@ function buildPickDecider(config) {
|
|
|
28
28
|
},
|
|
29
29
|
], 'pick');
|
|
30
30
|
}
|
|
31
|
-
/**
|
|
31
|
+
/**
|
|
32
|
+
* Both skip branches share the same body — no entries survive.
|
|
33
|
+
*
|
|
34
|
+
* When a retrieval record is present, every candidate that had been
|
|
35
|
+
* admitted by the retrieval strategy is re-marked as rejected here, with
|
|
36
|
+
* the budget as the reason. A record that still claimed those chunks were
|
|
37
|
+
* admitted, after a branch that injected nothing, would be a record that
|
|
38
|
+
* disagrees with the prompt.
|
|
39
|
+
*/
|
|
32
40
|
const skipStage = (scope) => {
|
|
33
41
|
scope.selected = [];
|
|
42
|
+
reviseAdmitted(scope, () => false);
|
|
34
43
|
};
|
|
44
|
+
/**
|
|
45
|
+
* Re-mark the retrieval record against what the budget picker actually
|
|
46
|
+
* kept. `keptIds` is consulted only for candidates the strategy already
|
|
47
|
+
* admitted — a below-threshold candidate keeps its own reason, because
|
|
48
|
+
* the budget never got the chance to reject it.
|
|
49
|
+
*/
|
|
50
|
+
function reviseAdmitted(scope, wasKept, overCap) {
|
|
51
|
+
const evidence = scope.retrieved;
|
|
52
|
+
if (!evidence?.candidates)
|
|
53
|
+
return;
|
|
54
|
+
let admittedCount = 0;
|
|
55
|
+
const candidates = evidence.candidates.map((c) => {
|
|
56
|
+
if (!c.admitted)
|
|
57
|
+
return c;
|
|
58
|
+
if (wasKept(c.id)) {
|
|
59
|
+
admittedCount += 1;
|
|
60
|
+
return c;
|
|
61
|
+
}
|
|
62
|
+
const reason = overCap?.(c.id) ? 'over-max-entries' : 'over-budget';
|
|
63
|
+
return { ...c, admitted: false, reason };
|
|
64
|
+
});
|
|
65
|
+
scope.retrieved = {
|
|
66
|
+
...evidence,
|
|
67
|
+
candidates,
|
|
68
|
+
admittedCount,
|
|
69
|
+
rejectedCount: candidates.length - admittedCount,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
35
72
|
/** The `pick` branch: greedy newest-first selection within budget. */
|
|
36
73
|
function buildPickStage(config) {
|
|
37
74
|
const reserveTokens = config.reserveTokens ?? DEFAULT_RESERVE;
|
|
@@ -51,10 +88,21 @@ function buildPickStage(config) {
|
|
|
51
88
|
return a.id < b.id ? -1 : a.id > b.id ? 1 : 0;
|
|
52
89
|
});
|
|
53
90
|
const picked = [];
|
|
91
|
+
const overCap = new Set();
|
|
54
92
|
let used = 0;
|
|
55
93
|
for (const entry of byNewest) {
|
|
56
|
-
if (maxEntries !== undefined && picked.length >= maxEntries)
|
|
57
|
-
|
|
94
|
+
if (maxEntries !== undefined && picked.length >= maxEntries) {
|
|
95
|
+
// Everything from here on is refused by the cap, not by the
|
|
96
|
+
// budget. The two reasons are not interchangeable: one is fixed
|
|
97
|
+
// by shortening the corpus, the other by raising `maxEntries`.
|
|
98
|
+
//
|
|
99
|
+
// This was a `break` before 8.8.0. It is a `continue` so the
|
|
100
|
+
// remaining entries can be NAMED as cap-rejected — and it cannot
|
|
101
|
+
// change what is picked, because once the cap is reached the
|
|
102
|
+
// condition stays true for every later iteration.
|
|
103
|
+
overCap.add(entry.id);
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
58
106
|
const cost = (0, tokenize_js_1.countMessageTokens)(entry.value, countTokens);
|
|
59
107
|
if (used + cost > budget)
|
|
60
108
|
continue; // skip this entry, try smaller ones
|
|
@@ -63,6 +111,8 @@ function buildPickStage(config) {
|
|
|
63
111
|
}
|
|
64
112
|
// Emit in chronological order — `picked` is newest-first; reverse.
|
|
65
113
|
scope.selected = picked.reverse();
|
|
114
|
+
const kept = new Set(picked.map((e) => e.id));
|
|
115
|
+
reviseAdmitted(scope, (id) => kept.has(id), (id) => overCap.has(id));
|
|
66
116
|
};
|
|
67
117
|
}
|
|
68
118
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pickByBudget.js","sourceRoot":"","sources":["../../../src/memory/stages/pickByBudget.ts"],"names":[],"mappings":";;;AA4CA,6CAAqC;AAKrC,+CAA+F;AAsD/F,MAAM,eAAe,GAAG,GAAG,CAAC;AAC5B,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,MAA0B;IAClD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,eAAe,CAAC;IAC9D,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,eAAe,CAAC;IAC9D,OAAO,CAAC,KAA8B,EAAE,EAAE,CACxC,IAAA,oBAAM,EACJ,KAAK,EACL;QACE;YACE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC;YAC1C,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,qCAAqC;SAC7C;QACD;YACE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,sBAAsB,IAAI,CAAC,CAAC,GAAG,aAAa,GAAG,aAAa;YAC5E,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,iDAAiD;SACzD;KACF,EACD,MAAM,CACP,CAAC;AACN,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"pickByBudget.js","sourceRoot":"","sources":["../../../src/memory/stages/pickByBudget.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,9 +34,11 @@ function mountMemoryRead(builder, config) {
|
|
|
34
34
|
const contextTokensKey = config.contextTokensKey ?? DEFAULTS.contextTokensKey;
|
|
35
35
|
const injectionKey = config.injectionKey ?? DEFAULTS.injectionKey;
|
|
36
36
|
const readSubflowId = config.readSubflowId ?? DEFAULTS.readSubflowId;
|
|
37
|
+
const evidenceKey = config.evidenceKey;
|
|
38
|
+
const identityOverride = config.identityOverride;
|
|
37
39
|
return builder.addSubFlowChartNext(readSubflowId, config.pipeline.read, 'Load Memory', {
|
|
38
40
|
inputMapper: (parentState) => ({
|
|
39
|
-
identity: parentState[identityKey],
|
|
41
|
+
identity: identityOverride ?? parentState[identityKey],
|
|
40
42
|
turnNumber: parentState[turnNumberKey],
|
|
41
43
|
contextTokensRemaining: parentState[contextTokensKey],
|
|
42
44
|
// Pass the current turn's messages through — semantic read stages
|
|
@@ -52,6 +54,12 @@ function mountMemoryRead(builder, config) {
|
|
|
52
54
|
}),
|
|
53
55
|
outputMapper: (subflowState) => ({
|
|
54
56
|
[injectionKey]: subflowState.formatted,
|
|
57
|
+
// The retrieval record, lifted to the parent so it lands in the ROOT
|
|
58
|
+
// commit log. Only present for pipelines that actually retrieve.
|
|
59
|
+
...(evidenceKey !== undefined &&
|
|
60
|
+
subflowState.retrieved !== undefined && {
|
|
61
|
+
[evidenceKey]: subflowState.retrieved,
|
|
62
|
+
}),
|
|
55
63
|
}),
|
|
56
64
|
});
|
|
57
65
|
}
|
|
@@ -68,9 +76,10 @@ function mountMemoryWrite(builder, config) {
|
|
|
68
76
|
const contextTokensKey = config.contextTokensKey ?? DEFAULTS.contextTokensKey;
|
|
69
77
|
const newMessagesKey = config.newMessagesKey ?? DEFAULTS.newMessagesKey;
|
|
70
78
|
const writeSubflowId = config.writeSubflowId ?? DEFAULTS.writeSubflowId;
|
|
79
|
+
const identityOverride = config.identityOverride;
|
|
71
80
|
return builder.addSubFlowChartNext(writeSubflowId, config.pipeline.write, 'Save Memory', {
|
|
72
81
|
inputMapper: (parentState) => ({
|
|
73
|
-
identity: parentState[identityKey],
|
|
82
|
+
identity: identityOverride ?? parentState[identityKey],
|
|
74
83
|
turnNumber: parentState[turnNumberKey],
|
|
75
84
|
contextTokensRemaining: parentState[contextTokensKey] ?? 0,
|
|
76
85
|
newMessages: parentState[newMessagesKey] ?? [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mountMemoryPipeline.js","sourceRoot":"","sources":["../../../src/memory/wire/mountMemoryPipeline.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"mountMemoryPipeline.js","sourceRoot":"","sources":["../../../src/memory/wire/mountMemoryPipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildAgentChart.d.ts","sourceRoot":"","sources":["../../../../src/core/agent/buildAgentChart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAc,MAAM,aAAa,CAAC;AAE5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAOxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAQrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAE/C;;;8DAG0D;IAC1D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,OAAO,yCAAyC,EAAE,WAAW,CAAC;IAEpG;uEACmE;IACnE,QAAQ,CAAC,uBAAuB,EAAE,WAAW,CAAC;IAE9C;kDAC8C;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAG/B,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,QAAQ,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5E,QAAQ,CAAC,gBAAgB,EAAE,OAAO,aAAa,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;IACxE;;;;;;;;;OASG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAGnD,QAAQ,CAAC,sBAAsB,EAAE,SAAS,CAAC;IAC3C;;yDAEqD;IACrD,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE;QACrB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC/C,CAAC;IACF;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC;IAMrC,QAAQ,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEzD;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAE5B;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAG3C;;;;0CAIsC;IACtC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAC5D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"buildAgentChart.d.ts","sourceRoot":"","sources":["../../../../src/core/agent/buildAgentChart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAc,MAAM,aAAa,CAAC;AAE5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAOxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAQrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAE/C;;;8DAG0D;IAC1D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,OAAO,yCAAyC,EAAE,WAAW,CAAC;IAEpG;uEACmE;IACnE,QAAQ,CAAC,uBAAuB,EAAE,WAAW,CAAC;IAE9C;kDAC8C;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAG/B,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,QAAQ,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5E,QAAQ,CAAC,gBAAgB,EAAE,OAAO,aAAa,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;IACxE;;;;;;;;;OASG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAGnD,QAAQ,CAAC,sBAAsB,EAAE,SAAS,CAAC;IAC3C;;yDAEqD;IACrD,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE;QACrB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC/C,CAAC;IACF;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC;IAMrC,QAAQ,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEzD;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAE5B;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAG3C;;;;0CAIsC;IACtC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAC5D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,CAwb/D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildDynamicAgentChart.d.ts","sourceRoot":"","sources":["../../../../src/core/agent/buildDynamicAgentChart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,aAAa,CAAC;AAezD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA4D3D;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"buildDynamicAgentChart.d.ts","sourceRoot":"","sources":["../../../../src/core/agent/buildDynamicAgentChart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,aAAa,CAAC;AAezD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA4D3D;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,CA0dtE"}
|