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
|
@@ -1,15 +1,26 @@
|
|
|
1
|
+
import { chunkProvenance, chunkText } from '../retrieval/provenance.js';
|
|
1
2
|
const DEFAULT_HEADER = 'Relevant context from prior conversations. Use when it helps answer the current turn.';
|
|
3
|
+
const RAG_HEADER = 'Relevant passages retrieved from the document corpus. Cite the source id when you use one.';
|
|
2
4
|
/**
|
|
3
|
-
* Escape any
|
|
4
|
-
* surrounding citation block prematurely. Without this guard,
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* Escape any closing tag in user-controlled content so it can't close the
|
|
6
|
+
* surrounding citation block prematurely. Without this guard, content
|
|
7
|
+
* containing the literal close tag could trick the LLM into treating
|
|
8
|
+
* subsequent text as "outside memory" — a small but real prompt-injection
|
|
9
|
+
* vector. We insert a zero-width-joiner after the first character of the
|
|
10
|
+
* tag name so the sequence survives tokenization but does NOT parse as a
|
|
9
11
|
* closing tag.
|
|
10
12
|
*/
|
|
11
|
-
function
|
|
12
|
-
|
|
13
|
+
function escapeCloseTag(text, tag) {
|
|
14
|
+
const head = tag[0] ?? '';
|
|
15
|
+
const rest = tag.slice(1);
|
|
16
|
+
// U+200D ZERO WIDTH JOINER — invisible, survives tokenization, and
|
|
17
|
+
// breaks the literal tag match. Same byte the memory formatter has
|
|
18
|
+
// used since 7.x; keeping it identical keeps that output byte-stable.
|
|
19
|
+
return text.replace(new RegExp(`</${tag}>`, 'gi'), `</${head}${rest}>`);
|
|
20
|
+
}
|
|
21
|
+
/** Escape a value for an XML-ish attribute. Corpus metadata is not trusted input. */
|
|
22
|
+
function attr(value) {
|
|
23
|
+
return value.replace(/&/g, '&').replace(/"/g, '"').replace(/</g, '<');
|
|
13
24
|
}
|
|
14
25
|
function defaultRenderEntry(entry) {
|
|
15
26
|
const msg = entry.value;
|
|
@@ -17,12 +28,46 @@ function defaultRenderEntry(entry) {
|
|
|
17
28
|
const updatedAttr = entry.updatedAt !== undefined ? ` updated="${new Date(entry.updatedAt).toISOString()}"` : '';
|
|
18
29
|
const text = msg.content ?? '';
|
|
19
30
|
const role = msg.role ?? 'unknown';
|
|
20
|
-
return `<memory role="${role}"${turnAttr}${updatedAttr}>\n${
|
|
31
|
+
return `<memory role="${role}"${turnAttr}${updatedAttr}>\n${escapeCloseTag(text, 'memory')}\n</memory>`;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Corpus rendering — the chunk's own coordinates, and the score that put
|
|
35
|
+
* it here. Every attribute is omitted when it is not known, because a
|
|
36
|
+
* fabricated page number is worse than a missing one.
|
|
37
|
+
*/
|
|
38
|
+
function ragRenderEntry(entry, candidate) {
|
|
39
|
+
const prov = chunkProvenance(entry.value);
|
|
40
|
+
const docUri = candidate?.docUri ?? prov.docUri;
|
|
41
|
+
const page = candidate?.page ?? prov.page;
|
|
42
|
+
const heading = candidate?.heading ?? prov.heading;
|
|
43
|
+
const parts = [`id="${attr(entry.id)}"`];
|
|
44
|
+
if (docUri !== undefined)
|
|
45
|
+
parts.push(`doc="${attr(docUri)}"`);
|
|
46
|
+
if (page !== undefined)
|
|
47
|
+
parts.push(`page="${page}"`);
|
|
48
|
+
if (heading !== undefined)
|
|
49
|
+
parts.push(`heading="${attr(heading)}"`);
|
|
50
|
+
if (candidate?.score !== undefined)
|
|
51
|
+
parts.push(`score="${candidate.score.toFixed(2)}"`);
|
|
52
|
+
// `chunkText` reads `.content`, which both shapes carry — a document
|
|
53
|
+
// from `indexDocuments` and a chat message keep their text there.
|
|
54
|
+
const text = chunkText(entry.value);
|
|
55
|
+
return `<source ${parts.join(' ')}>\n${escapeCloseTag(text, 'source')}\n</source>`;
|
|
56
|
+
}
|
|
57
|
+
/** Emit through the scope's emit channel when there is one. */
|
|
58
|
+
function emit(scope, type, payload) {
|
|
59
|
+
const emitter = scope.$emit;
|
|
60
|
+
if (typeof emitter === 'function')
|
|
61
|
+
emitter.call(scope, type, payload);
|
|
62
|
+
}
|
|
63
|
+
function summarize(text, n = 80) {
|
|
64
|
+
return text.length <= n ? text : text.slice(0, n - 1) + '…';
|
|
21
65
|
}
|
|
22
66
|
export function formatDefault(config = {}) {
|
|
23
|
-
const
|
|
67
|
+
const flavor = config.flavor ?? 'memory';
|
|
68
|
+
const header = config.header ?? (flavor === 'rag' ? RAG_HEADER : DEFAULT_HEADER);
|
|
24
69
|
const footer = config.footer ?? '';
|
|
25
|
-
const renderEntry = config.renderEntry ?? defaultRenderEntry;
|
|
70
|
+
const renderEntry = config.renderEntry ?? (flavor === 'rag' ? ragRenderEntry : defaultRenderEntry);
|
|
26
71
|
const emitWhenEmpty = config.emitWhenEmpty ?? false;
|
|
27
72
|
return async (scope) => {
|
|
28
73
|
const selected = scope.selected ?? [];
|
|
@@ -30,9 +75,56 @@ export function formatDefault(config = {}) {
|
|
|
30
75
|
scope.formatted = [];
|
|
31
76
|
return;
|
|
32
77
|
}
|
|
33
|
-
const
|
|
34
|
-
const
|
|
78
|
+
const evidence = scope.retrieved;
|
|
79
|
+
const byId = new Map((evidence?.candidates ?? []).map((c) => [c.id, c]));
|
|
80
|
+
const blocks = selected.map((entry) => renderEntry(entry, byId.get(entry.id)));
|
|
81
|
+
const content = (header ? `${header}\n\n` : '') + blocks.join('\n\n') + (footer ? `\n\n${footer}` : '');
|
|
35
82
|
scope.formatted = [{ role: 'system', content }];
|
|
83
|
+
// ── Per-chunk prompt bytes ──────────────────────────────────────
|
|
84
|
+
// The header rides the FIRST fragment and the footer the LAST, so
|
|
85
|
+
// that `fragments.join('\n\n')` is byte-identical to `content` above.
|
|
86
|
+
// That identity is what lets one retrieval become one InjectionRecord
|
|
87
|
+
// per chunk without changing a single byte the model sees — and it is
|
|
88
|
+
// pinned by test, because it is the whole blast radius of the change.
|
|
89
|
+
//
|
|
90
|
+
// `promptPosition` rides along because the record is stored in SCORE
|
|
91
|
+
// order while the prompt is assembled in the PICKER's order: without
|
|
92
|
+
// it, rejoining the fragments reproduces the right bytes in the wrong
|
|
93
|
+
// sequence, which is a prompt the model never saw.
|
|
94
|
+
if (evidence) {
|
|
95
|
+
const fragments = blocks.map((block, i) => {
|
|
96
|
+
const withHeader = i === 0 && header ? `${header}\n\n${block}` : block;
|
|
97
|
+
return i === blocks.length - 1 && footer ? `${withHeader}\n\n${footer}` : withHeader;
|
|
98
|
+
});
|
|
99
|
+
const placed = new Map(selected.map((entry, i) => [entry.id, { fragment: fragments[i] ?? '', position: i }]));
|
|
100
|
+
scope.retrieved = {
|
|
101
|
+
...evidence,
|
|
102
|
+
...(evidence.candidates && {
|
|
103
|
+
candidates: evidence.candidates.map((c) => {
|
|
104
|
+
const slot = placed.get(c.id);
|
|
105
|
+
return slot === undefined
|
|
106
|
+
? c
|
|
107
|
+
: { ...c, promptFragment: slot.fragment, promptPosition: slot.position };
|
|
108
|
+
}),
|
|
109
|
+
}),
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
// ── Per-chunk attachment telemetry ──────────────────────────────
|
|
113
|
+
// `agentfootprint.memory.attached` has been declared since 2.x and was
|
|
114
|
+
// never emitted by anything. It is emitted here, once per chunk that
|
|
115
|
+
// actually reached the prompt, because that is the event a consumer
|
|
116
|
+
// needs to answer "which passages did this turn read". The memory
|
|
117
|
+
// bridge is attached on every Agent run, so no extra wiring exists.
|
|
118
|
+
for (const entry of selected) {
|
|
119
|
+
const candidate = byId.get(entry.id);
|
|
120
|
+
emit(scope, 'agentfootprint.memory.attached', {
|
|
121
|
+
memoryId: entry.id,
|
|
122
|
+
contentSummary: summarize(chunkText(entry.value)),
|
|
123
|
+
...(candidate?.score !== undefined && { score: candidate.score }),
|
|
124
|
+
...(candidate?.rank !== undefined && { rank: candidate.rank }),
|
|
125
|
+
source: 'store',
|
|
126
|
+
});
|
|
127
|
+
}
|
|
36
128
|
// Context-engineering emit: memory formatted N entries into one
|
|
37
129
|
// system-role message.
|
|
38
130
|
//
|
|
@@ -48,21 +140,19 @@ export function formatDefault(config = {}) {
|
|
|
48
140
|
// Until 7.20.0 this said `'messages'`, which was never true of this
|
|
49
141
|
// stage — `scope.formatted` above is unconditionally role `'system'`.
|
|
50
142
|
// A consumer branching on the old value was branching on a lie.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
});
|
|
65
|
-
}
|
|
143
|
+
emit(scope, 'agentfootprint.context.memory.injected', {
|
|
144
|
+
slot: 'system-prompt',
|
|
145
|
+
// Memory injects ONE system-role message containing every selected
|
|
146
|
+
// entry as a citation block (see the headers + renderEntry).
|
|
147
|
+
// The downstream delta is therefore +1 system fragment, regardless
|
|
148
|
+
// of how many memory entries it carries.
|
|
149
|
+
role: 'system',
|
|
150
|
+
deltaCount: { system: 1 },
|
|
151
|
+
count: selected.length,
|
|
152
|
+
// Tiers present in the injection — lets the UI show "working / long-term"
|
|
153
|
+
// differentiation later without a schema change.
|
|
154
|
+
tiers: Array.from(new Set(selected.map((e) => e.tier).filter(Boolean))),
|
|
155
|
+
});
|
|
66
156
|
};
|
|
67
157
|
}
|
|
68
158
|
//# sourceMappingURL=formatDefault.js.map
|
|
@@ -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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"}
|
|
@@ -25,10 +25,47 @@ function buildPickDecider(config) {
|
|
|
25
25
|
},
|
|
26
26
|
], 'pick');
|
|
27
27
|
}
|
|
28
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* Both skip branches share the same body — no entries survive.
|
|
30
|
+
*
|
|
31
|
+
* When a retrieval record is present, every candidate that had been
|
|
32
|
+
* admitted by the retrieval strategy is re-marked as rejected here, with
|
|
33
|
+
* the budget as the reason. A record that still claimed those chunks were
|
|
34
|
+
* admitted, after a branch that injected nothing, would be a record that
|
|
35
|
+
* disagrees with the prompt.
|
|
36
|
+
*/
|
|
29
37
|
const skipStage = (scope) => {
|
|
30
38
|
scope.selected = [];
|
|
39
|
+
reviseAdmitted(scope, () => false);
|
|
31
40
|
};
|
|
41
|
+
/**
|
|
42
|
+
* Re-mark the retrieval record against what the budget picker actually
|
|
43
|
+
* kept. `keptIds` is consulted only for candidates the strategy already
|
|
44
|
+
* admitted — a below-threshold candidate keeps its own reason, because
|
|
45
|
+
* the budget never got the chance to reject it.
|
|
46
|
+
*/
|
|
47
|
+
function reviseAdmitted(scope, wasKept, overCap) {
|
|
48
|
+
const evidence = scope.retrieved;
|
|
49
|
+
if (!evidence?.candidates)
|
|
50
|
+
return;
|
|
51
|
+
let admittedCount = 0;
|
|
52
|
+
const candidates = evidence.candidates.map((c) => {
|
|
53
|
+
if (!c.admitted)
|
|
54
|
+
return c;
|
|
55
|
+
if (wasKept(c.id)) {
|
|
56
|
+
admittedCount += 1;
|
|
57
|
+
return c;
|
|
58
|
+
}
|
|
59
|
+
const reason = overCap?.(c.id) ? 'over-max-entries' : 'over-budget';
|
|
60
|
+
return { ...c, admitted: false, reason };
|
|
61
|
+
});
|
|
62
|
+
scope.retrieved = {
|
|
63
|
+
...evidence,
|
|
64
|
+
candidates,
|
|
65
|
+
admittedCount,
|
|
66
|
+
rejectedCount: candidates.length - admittedCount,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
32
69
|
/** The `pick` branch: greedy newest-first selection within budget. */
|
|
33
70
|
function buildPickStage(config) {
|
|
34
71
|
const reserveTokens = config.reserveTokens ?? DEFAULT_RESERVE;
|
|
@@ -48,10 +85,21 @@ function buildPickStage(config) {
|
|
|
48
85
|
return a.id < b.id ? -1 : a.id > b.id ? 1 : 0;
|
|
49
86
|
});
|
|
50
87
|
const picked = [];
|
|
88
|
+
const overCap = new Set();
|
|
51
89
|
let used = 0;
|
|
52
90
|
for (const entry of byNewest) {
|
|
53
|
-
if (maxEntries !== undefined && picked.length >= maxEntries)
|
|
54
|
-
|
|
91
|
+
if (maxEntries !== undefined && picked.length >= maxEntries) {
|
|
92
|
+
// Everything from here on is refused by the cap, not by the
|
|
93
|
+
// budget. The two reasons are not interchangeable: one is fixed
|
|
94
|
+
// by shortening the corpus, the other by raising `maxEntries`.
|
|
95
|
+
//
|
|
96
|
+
// This was a `break` before 8.8.0. It is a `continue` so the
|
|
97
|
+
// remaining entries can be NAMED as cap-rejected — and it cannot
|
|
98
|
+
// change what is picked, because once the cap is reached the
|
|
99
|
+
// condition stays true for every later iteration.
|
|
100
|
+
overCap.add(entry.id);
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
55
103
|
const cost = countMessageTokens(entry.value, countTokens);
|
|
56
104
|
if (used + cost > budget)
|
|
57
105
|
continue; // skip this entry, try smaller ones
|
|
@@ -60,6 +108,8 @@ function buildPickStage(config) {
|
|
|
60
108
|
}
|
|
61
109
|
// Emit in chronological order — `picked` is newest-first; reverse.
|
|
62
110
|
scope.selected = picked.reverse();
|
|
111
|
+
const kept = new Set(picked.map((e) => e.id));
|
|
112
|
+
reviseAdmitted(scope, (id) => kept.has(id), (id) => overCap.has(id));
|
|
63
113
|
};
|
|
64
114
|
}
|
|
65
115
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pickByBudget.js","sourceRoot":"","sources":["../../../../src/memory/stages/pickByBudget.ts"],"names":[],"mappings":"AA4CA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAKrC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAqB,MAAM,eAAe,CAAC;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,MAAM,CACJ,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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"}
|
|
@@ -57,6 +57,21 @@ export interface MemoryState {
|
|
|
57
57
|
* messages array (typically as `system` messages before the user turn).
|
|
58
58
|
*/
|
|
59
59
|
formatted: Message[];
|
|
60
|
+
/**
|
|
61
|
+
* Retrieval record (8.8.0) — what the search considered, what it
|
|
62
|
+
* admitted, and why about each candidate.
|
|
63
|
+
*
|
|
64
|
+
* Written by `loadRelevant`, refined by `pickByBudget` (budget
|
|
65
|
+
* rejections) and `formatDefault` (the prompt bytes each admitted chunk
|
|
66
|
+
* contributed), and lifted to the PARENT scope by `mountMemoryRead` so
|
|
67
|
+
* it reaches the root commit log — a subflow's own scope never does,
|
|
68
|
+
* which is why a slice could not previously see past the mount.
|
|
69
|
+
*
|
|
70
|
+
* Absent for pipelines that do no retrieval (recency load, fact
|
|
71
|
+
* extraction). Absence means "this pipeline does not rank", never
|
|
72
|
+
* "this pipeline ranked and found nothing".
|
|
73
|
+
*/
|
|
74
|
+
retrieved?: import('../retrieval/types.js').RetrievalEvidence;
|
|
60
75
|
/**
|
|
61
76
|
* Write-side input: messages to persist at the end of this turn. The
|
|
62
77
|
* wire layer populates from the agent's final message state;
|
|
@@ -72,6 +72,31 @@ export interface MountMemoryPipelineConfig<ParentState> {
|
|
|
72
72
|
readonly readSubflowId?: string;
|
|
73
73
|
/** Subflow id for the write mount. Default `'sf-memory-write'`. */
|
|
74
74
|
readonly writeSubflowId?: string;
|
|
75
|
+
/**
|
|
76
|
+
* Read and write under THIS namespace instead of whatever the parent
|
|
77
|
+
* scope's identity key holds (8.8.0).
|
|
78
|
+
*
|
|
79
|
+
* A conversation memory wants the run's identity — that is how each
|
|
80
|
+
* conversation remembers its own turns. A shared document corpus does
|
|
81
|
+
* not: it belongs to the application, not to a conversation, and
|
|
82
|
+
* scoping it per run is what made `defineRAG`'s documented example
|
|
83
|
+
* retrieve nothing at all. `MemoryDefinition.corpus` feeds this.
|
|
84
|
+
*/
|
|
85
|
+
readonly identityOverride?: import('../identity/index.js').MemoryIdentity;
|
|
86
|
+
/**
|
|
87
|
+
* Scope field the read subflow writes its retrieval record to (8.8.0).
|
|
88
|
+
*
|
|
89
|
+
* The record has to be lifted OUT of the subflow to be worth anything:
|
|
90
|
+
* a subflow's own scope never reaches the root commit log, which is why
|
|
91
|
+
* a backward slice from the answer used to bottom out at "the memory
|
|
92
|
+
* mount wrote it" with no way to ask which passage. Lifted here, the
|
|
93
|
+
* per-chunk ids and scores are ordinary root state, and `sliceForKey`
|
|
94
|
+
* / `backtrack` / `who_wrote` reach them like any other value.
|
|
95
|
+
*
|
|
96
|
+
* Omitted → nothing is lifted, and pipelines that do no retrieval are
|
|
97
|
+
* unaffected (they never write the record in the first place).
|
|
98
|
+
*/
|
|
99
|
+
readonly evidenceKey?: keyof ParentState & string;
|
|
75
100
|
/**
|
|
76
101
|
* Evidence source for CAUSAL pipelines (the evidence bridge, backlog #5).
|
|
77
102
|
* Called by the write mount's inputMapper at write time; its result lands on
|
|
@@ -31,9 +31,11 @@ export function mountMemoryRead(builder, config) {
|
|
|
31
31
|
const contextTokensKey = config.contextTokensKey ?? DEFAULTS.contextTokensKey;
|
|
32
32
|
const injectionKey = config.injectionKey ?? DEFAULTS.injectionKey;
|
|
33
33
|
const readSubflowId = config.readSubflowId ?? DEFAULTS.readSubflowId;
|
|
34
|
+
const evidenceKey = config.evidenceKey;
|
|
35
|
+
const identityOverride = config.identityOverride;
|
|
34
36
|
return builder.addSubFlowChartNext(readSubflowId, config.pipeline.read, 'Load Memory', {
|
|
35
37
|
inputMapper: (parentState) => ({
|
|
36
|
-
identity: parentState[identityKey],
|
|
38
|
+
identity: identityOverride ?? parentState[identityKey],
|
|
37
39
|
turnNumber: parentState[turnNumberKey],
|
|
38
40
|
contextTokensRemaining: parentState[contextTokensKey],
|
|
39
41
|
// Pass the current turn's messages through — semantic read stages
|
|
@@ -49,6 +51,12 @@ export function mountMemoryRead(builder, config) {
|
|
|
49
51
|
}),
|
|
50
52
|
outputMapper: (subflowState) => ({
|
|
51
53
|
[injectionKey]: subflowState.formatted,
|
|
54
|
+
// The retrieval record, lifted to the parent so it lands in the ROOT
|
|
55
|
+
// commit log. Only present for pipelines that actually retrieve.
|
|
56
|
+
...(evidenceKey !== undefined &&
|
|
57
|
+
subflowState.retrieved !== undefined && {
|
|
58
|
+
[evidenceKey]: subflowState.retrieved,
|
|
59
|
+
}),
|
|
52
60
|
}),
|
|
53
61
|
});
|
|
54
62
|
}
|
|
@@ -64,9 +72,10 @@ export function mountMemoryWrite(builder, config) {
|
|
|
64
72
|
const contextTokensKey = config.contextTokensKey ?? DEFAULTS.contextTokensKey;
|
|
65
73
|
const newMessagesKey = config.newMessagesKey ?? DEFAULTS.newMessagesKey;
|
|
66
74
|
const writeSubflowId = config.writeSubflowId ?? DEFAULTS.writeSubflowId;
|
|
75
|
+
const identityOverride = config.identityOverride;
|
|
67
76
|
return builder.addSubFlowChartNext(writeSubflowId, config.pipeline.write, 'Save Memory', {
|
|
68
77
|
inputMapper: (parentState) => ({
|
|
69
|
-
identity: parentState[identityKey],
|
|
78
|
+
identity: identityOverride ?? parentState[identityKey],
|
|
70
79
|
turnNumber: parentState[turnNumberKey],
|
|
71
80
|
contextTokensRemaining: parentState[contextTokensKey] ?? 0,
|
|
72
81
|
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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"}
|
package/dist/events/registry.js
CHANGED
|
@@ -62,6 +62,7 @@ exports.EVENT_NAMES = {
|
|
|
62
62
|
memory: {
|
|
63
63
|
strategyApplied: 'agentfootprint.memory.strategy_applied',
|
|
64
64
|
attached: 'agentfootprint.memory.attached',
|
|
65
|
+
retrieved: 'agentfootprint.memory.retrieved',
|
|
65
66
|
detached: 'agentfootprint.memory.detached',
|
|
66
67
|
written: 'agentfootprint.memory.written',
|
|
67
68
|
},
|
|
@@ -170,6 +171,7 @@ exports.ALL_EVENT_TYPES = [
|
|
|
170
171
|
'agentfootprint.context.evaluated',
|
|
171
172
|
'agentfootprint.memory.strategy_applied',
|
|
172
173
|
'agentfootprint.memory.attached',
|
|
174
|
+
'agentfootprint.memory.retrieved',
|
|
173
175
|
'agentfootprint.memory.detached',
|
|
174
176
|
'agentfootprint.memory.written',
|
|
175
177
|
'agentfootprint.tools.offered',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/events/registry.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/events/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -22,7 +22,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
22
22
|
};
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
24
|
exports.isDropNotice = exports.isCompactedSummary = exports.foldedSpanFor = exports.foldedMessages = exports.DROP_NOTICE_PREFIX = exports.COMPACTED_FRAME_PREFIX = exports.CompactionUnmeasurableError = exports.AgentBuilder = exports.Agent = exports.buildAgentMessageApiChart = exports.LLMCallBuilder = exports.LLMCall = exports.selectCommentaryKey = exports.renderCommentary = exports.extractCommentaryVars = exports.extractAgentName = exports.defaultCommentaryTemplates = exports.CheckInRecorder = exports.minimalEvidenceAssembler = exports.standardEvidenceAssembler = exports.lexicalDriverScorer = exports.isCheckInDecision = exports.checkInDeclined = exports.checkInApproved = exports.ACT_KEYS = exports.actKeyFor = exports.LOOP_MOMENTS = exports.MessageDeniedError = exports.deny = exports.ask = exports.allow = exports.isAskPause = exports.isCheckInPause = exports.isPaused = exports.isPauseRequest = exports.askHuman = exports.pauseHere = exports.makeRunId = exports.RunnerBase = exports.BASELINE_SOURCES = exports.ENGINEERED_SOURCES = exports.isBaselineSource = exports.isEngineeredSource = exports.contextEngineering = exports.COMPOSITION_KEYS = exports.milestoneFor = exports.stageRole = exports.isInjectionKey = exports.injectionKeyForSlot = exports.INJECTION_KEYS = void 0;
|
|
25
|
-
exports.indexDocuments = exports.defineRAG = exports.providerFromEnv = exports.Graph = exports.graph = exports.Workflow = exports.workflow = exports.LoopBuilder = exports.Loop = exports.ConditionalBuilder = exports.Conditional = exports.ParallelBuilder = exports.Parallel = exports.SequenceBuilder = exports.Sequence = exports.formatToolContractCheckup = exports.toolContractCheckup = exports.warnIfInvalidToolName = exports.assertValidToolName = exports.defineTool = exports.flowchartAsTool = exports.RunCheckpointError = exports.isSchemaCheckMessage = exports.SCHEMA_TOOL_NAME = exports.SCHEMA_CHECK_FRAME_PREFIX = exports.applyOutputSchema = exports.OutputSchemaError = exports.tokenBudget = exports.summarizeOldest = exports.slidingWindow = void 0;
|
|
25
|
+
exports.topK = exports.indexDocuments = exports.DEFAULT_CORPUS_IDENTITY = exports.defineRAG = exports.providerFromEnv = exports.Graph = exports.graph = exports.Workflow = exports.workflow = exports.LoopBuilder = exports.Loop = exports.ConditionalBuilder = exports.Conditional = exports.ParallelBuilder = exports.Parallel = exports.SequenceBuilder = exports.Sequence = exports.formatToolContractCheckup = exports.toolContractCheckup = exports.warnIfInvalidToolName = exports.assertValidToolName = exports.defineTool = exports.flowchartAsTool = exports.RunCheckpointError = exports.isSchemaCheckMessage = exports.SCHEMA_TOOL_NAME = exports.SCHEMA_CHECK_FRAME_PREFIX = exports.applyOutputSchema = exports.OutputSchemaError = exports.tokenBudget = exports.summarizeOldest = exports.slidingWindow = void 0;
|
|
26
26
|
// Side-effect imports — auto-register v2.6+ cache strategies in the
|
|
27
27
|
// strategy registry. Without these, only the wildcard NoOp is
|
|
28
28
|
// registered and `Agent.create({ provider: browserAnthropic({...}) })`
|
|
@@ -268,7 +268,14 @@ __exportStar(require("./patterns/index.js"), exports);
|
|
|
268
268
|
// plus the `indexDocuments` helper for seeding the corpus at startup.
|
|
269
269
|
var index_js_3 = require("./lib/rag/index.js");
|
|
270
270
|
Object.defineProperty(exports, "defineRAG", { enumerable: true, get: function () { return index_js_3.defineRAG; } });
|
|
271
|
+
Object.defineProperty(exports, "DEFAULT_CORPUS_IDENTITY", { enumerable: true, get: function () { return index_js_3.DEFAULT_CORPUS_IDENTITY; } });
|
|
271
272
|
Object.defineProperty(exports, "indexDocuments", { enumerable: true, get: function () { return index_js_3.indexDocuments; } });
|
|
273
|
+
// The retrieval seam (8.8.0) — what a retrieval considered, and the rule
|
|
274
|
+
// that decided what it kept. `topK` is the rule every release before this
|
|
275
|
+
// one applied without naming it. The record types are here because a
|
|
276
|
+
// consumer reading `agentfootprint.memory.retrieved` needs them.
|
|
277
|
+
var index_js_4 = require("./memory/retrieval/index.js");
|
|
278
|
+
Object.defineProperty(exports, "topK", { enumerable: true, get: function () { return index_js_4.topK; } });
|
|
272
279
|
// MCP + tool dispatch. Tool sources — `mcpClient` / `mockMcpClient`,
|
|
273
280
|
// which connect to a Model Context Protocol server and expose its tools
|
|
274
281
|
// as agentfootprint `Tool[]` for `agent.tools(...)` — and the dispatch
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;AAEH,oEAAoE;AACpE,8DAA8D;AAC9D,uEAAuE;AACvE,kEAAkE;AAClE,sEAAsE;AACtE,sDAAsD;AACtD,wDAAsD;AACtD,qDAAmD;AACnD,sDAAoD;AAsCpD,6BAA6B;AAC7B,sDAAoC;AAEpC,yEAAyE;AACzE,uDAAuD;AACvD,mDAkB0B;AAjBxB,gHAAA,cAAc,OAAA;AACd,qHAAA,mBAAmB,OAAA;AACnB,gHAAA,cAAc,OAAA;AAEd,yEAAyE;AACzE,wEAAwE;AACxE,yEAAyE;AACzE,gBAAgB;AAChB,2GAAA,SAAS,OAAA;AAET,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,6DAA6D;AAC7D,8GAAA,YAAY,OAAA;AAId,oEAAoE;AACpE,yEAAyE;AACzE,wEAAwE;AACxE,qEAAqE;AACrE,kDAAkD;AAClD,sDAOmC;AANjC,4GAAA,gBAAgB,OAAA;AAWlB,yCAAyC;AACzC,EAAE;AACF,yEAAyE;AACzE,kEAAkE;AAClE,oEAAoE;AACpE,qEAAqE;AACrE,2EAA2E;AAC3E,8EAA8E;AAC9E,0DAA0D;AAC1D,gFAUgD;AAT9C,2HAAA,kBAAkB,OAAA;AAClB,2HAAA,kBAAkB,OAAA;AAClB,yHAAA,gBAAgB,OAAA;AAChB,2HAAA,kBAAkB,OAAA;AAClB,yHAAA,gBAAgB,OAAA;AASlB,sDAA6D;AAApD,2GAAA,UAAU,OAAA;AAAE,0GAAA,SAAS,OAAA;AAO9B,sEAAsE;AACtE,wEAAwE;AACxE,iEAAiE;AACjE,sEAAsE;AACtE,uEAAuE;AACvE,4CASyB;AARvB,qGAAA,SAAS,OAAA;AACT,oGAAA,QAAQ,OAAA;AACR,0GAAA,cAAc,OAAA;AACd,oGAAA,QAAQ,OAAA;AACR,0GAAA,cAAc,OAAA;AACd,sGAAA,UAAU,OAAA;AAKZ,mEAAmE;AACnE,wDAAwD;AACxD,2EAA2E;AAC3E,iCAAiC;AACjC,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,0EAA0E;AAC1E,6EAA6E;AAC7E,8EAA8E;AAC9E,8BAA8B;AAC9B,6DAqB0C;AApBxC,iGAAA,KAAK,OAAA;AACL,+FAAA,GAAG,OAAA;AACH,gGAAA,IAAI,OAAA;AACJ,8GAAA,kBAAkB,OAAA;AAmBpB,8EAA8E;AAC9E,4EAA4E;AAC5E,+EAA+E;AAC/E,6EAA6E;AAC7E,mBAAmB;AACnB,sDAAgG;AAAvF,0GAAA,YAAY,OAAA;AAAE,uGAAA,SAAS,OAAA;AAChC,8CAAgE;AAAvD,kGAAA,QAAQ,OAAA;AAcjB,uEAAuE;AACvE,6EAA6E;AAC7E,mEAAmE;AACnE,0EAA0E;AAC1E,oFAAoF;AACpF,gDAsB2B;AArBzB,6GAAA,eAAe,OAAA;AACf,6GAAA,eAAe,OAAA;AACf,+GAAA,iBAAiB,OAAA;AACjB,iHAAA,mBAAmB,OAAA;AACnB,uHAAA,yBAAyB,OAAA;AACzB,sHAAA,wBAAwB,OAAA;AAsB1B,6EAA6E;AAC7E,0EAK6C;AAJ3C,qHAAA,eAAe,OAAA;AAgBjB,qEAAqE;AACrE,kEAAkE;AAClE,kEAAkE;AAClE,sGAWqE;AAVnE,oIAAA,0BAA0B,OAAA;AAC1B,kEAAkE;AAClE,mEAAmE;AACnE,oDAAoD;AACpD,0HAAA,gBAAgB,OAAA;AAChB,+HAAA,qBAAqB,OAAA;AACrB,0HAAA,gBAAgB,OAAA;AAChB,6HAAA,mBAAmB,OAAA;AAKrB,gEAAgE;AAChE,sEAAsE;AACtE,uDAAuD;AACvD,sEAAsE;AACtE,+DAA+D;AAC/D,gEAAgE;AAChE,wEAAwE;AACxE,mCAAmC;AAEnC,qBAAqB;AACrB,gDAM2B;AALzB,qGAAA,OAAO,OAAA;AACP,4GAAA,cAAc,OAAA;AAWhB,2EAA2E;AAC3E,gFAAgF;AAChF,4EAA4E;AAC5E,2EAA2E;AAC3E,0FAGmD;AAFjD,yIAAA,yBAAyB,OAAA;AAG3B,4CAOyB;AANvB,iGAAA,KAAK,OAAA;AACL,wGAAA,YAAY,OAAA;AAMd,8EAA8E;AAC9E,8EAA8E;AAC9E,+EAA+E;AAC/E,oEAAoE;AACpE,EAAE;AACF,iEAAiE;AACjE,oFAAoF;AACpF,4DAA4D;AAC5D,sEAAsE;AACtE,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,8EAA8E;AAC9E,2BAA2B;AAC3B,yDAgCsC;AA/BpC,uHAAA,2BAA2B,OAAA;AAC3B,kHAAA,sBAAsB,OAAA;AACtB,8GAAA,kBAAkB,OAAA;AAClB,0GAAA,cAAc,OAAA;AACd,yGAAA,aAAa,OAAA;AACb,8GAAA,kBAAkB,OAAA;AAClB,wGAAA,YAAY,OAAA;AACZ,yGAAA,aAAa,OAAA;AACb,2GAAA,eAAe,OAAA;AACf,uGAAA,WAAW,OAAA;AA4Cb,0DAMgC;AAL9B,oHAAA,iBAAiB,OAAA;AACjB,oHAAA,iBAAiB,OAAA;AAKnB,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,0EAA0E;AAC1E,0EAK2C;AAJzC,iIAAA,yBAAyB,OAAA;AACzB,wHAAA,gBAAgB,OAAA;AAChB,4HAAA,oBAAoB,OAAA;AAItB,4DAAsF;AAA7E,sHAAA,kBAAkB,OAAA;AAC3B,gEAKmC;AAJjC,qHAAA,eAAe,OAAA;AAWjB,4CAAyF;AAAhF,sGAAA,UAAU,OAAA;AAAE,+GAAA,mBAAmB,OAAA;AAAE,iHAAA,qBAAqB,OAAA;AAC/D,0DAOgC;AAN9B,sHAAA,mBAAmB,OAAA;AACnB,4HAAA,yBAAyB,OAAA;AAO3B,iEAAiE;AACjE,yDAAyD;AACzD,kEAAkE;AAClE,6DAA6D;AAC7D,wEAAwE;AACxE,kEAAkE;AAClE,2DAA2D;AAC3D,sEAAsE;AAEtE,4BAA4B;AAC5B,uDAMiC;AAL/B,uGAAA,QAAQ,OAAA;AACR,8GAAA,eAAe,OAAA;AAKjB,uDAWiC;AAV/B,uGAAA,QAAQ,OAAA;AACR,8GAAA,eAAe,OAAA;AAUjB,6DAOoC;AANlC,6GAAA,WAAW,OAAA;AACX,oHAAA,kBAAkB,OAAA;AAMpB,+CAO6B;AAN3B,+FAAA,IAAI,OAAA;AACJ,sGAAA,WAAW,OAAA;AAMb,uDAKiC;AAJ/B,uGAAA,QAAQ,OAAA;AACR,uGAAA,QAAQ,OAAA;AAIV,iDAQ8B;AAP5B,iGAAA,KAAK,OAAA;AACL,iGAAA,KAAK,OAAA;AAQP,2BAA2B;AAC3B,8EAA8E;AAC9E,wEAAwE;AACxE,mEAAmE;AACnE,qEAAqE;AACrE,EAAE;AACF,kEAAkE;AAClE,qEAAqE;AACrE,wEAAwE;AACxE,gEAAgE;AAChE,gEAAgE;AAChE,6CAA6C;AAC7C,EAAE;AACF,2FAA2F;AAC3F,wFAAwF;AAExF,sEAK0C;AAJxC,oHAAA,eAAe,OAAA;AAMjB,+DAA+D;AAE/D,oEAAoE;AACpE,gEAAgE;AAEhE,qEAAqE;AACrE,0DAA0D;AAC1D,sDAAoC;AAEpC,uEAAuE;AACvE,uEAAuE;AACvE,oEAAoE;AACpE,sEAAsE;AACtE,8CAA8C;AAE9C,wEAAwE;AACxE,sEAAsE;AACtE,sEAAsE;AACtE,+CAO4B;AAN1B,qGAAA,SAAS,OAAA;AACT,mHAAA,uBAAuB,OAAA;AAEvB,0GAAA,cAAc,OAAA;AAKhB,yEAAyE;AACzE,0EAA0E;AAC1E,qEAAqE;AACrE,iEAAiE;AACjE,wDAOqC;AANnC,gGAAA,IAAI,OAAA;AAQN,qEAAqE;AACrE,wEAAwE;AACxE,uEAAuE;AACvE,oEAAoE;AACpE,8DAA8D;AAC9D,wEAAwE;AACxE,gDAAgD;AAChD,wEAAwE;AACxE,gEAAgE;AAEhE,wEAAwE;AACxE,wEAAwE;AACxE,uDAAuD;AAEvD,mEAAmE;AACnE,oEAAoE;AACpE,sDAAsD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fnv1a = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* fnv1a — the one 32-bit content hash this library uses.
|
|
6
|
+
*
|
|
7
|
+
* Pattern: leaf utility (imports nothing).
|
|
8
|
+
* Role: shared by the slot composers (`core/slots/helpers.ts`, which
|
|
9
|
+
* re-exports it under the same name) and by the memory layer's
|
|
10
|
+
* retrieval record. It lives here rather than in either of them
|
|
11
|
+
* because `memory/` must not import `core/` — `core/` already
|
|
12
|
+
* imports `memory/`, and a second hash implementation is how two
|
|
13
|
+
* recordings of the same bytes end up disagreeing about their id.
|
|
14
|
+
* Emits: N/A.
|
|
15
|
+
*
|
|
16
|
+
* Not cryptographic and not meant to be: this identifies content for
|
|
17
|
+
* dedup and correlation inside one recording, never for authentication.
|
|
18
|
+
*/
|
|
19
|
+
function fnv1a(input) {
|
|
20
|
+
let h = 2166136261;
|
|
21
|
+
for (let i = 0; i < input.length; i++) {
|
|
22
|
+
h ^= input.charCodeAt(i);
|
|
23
|
+
h = Math.imul(h, 16777619);
|
|
24
|
+
}
|
|
25
|
+
return (h >>> 0).toString(16);
|
|
26
|
+
}
|
|
27
|
+
exports.fnv1a = fnv1a;
|
|
28
|
+
//# sourceMappingURL=fnv1a.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fnv1a.js","sourceRoot":"","sources":["../../src/lib/fnv1a.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;GAcG;AACH,SAAgB,KAAK,CAAC,KAAa;IACjC,IAAI,CAAC,GAAG,UAAU,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC;AAPD,sBAOC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/injection-engine/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/injection-engine/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;AA8SH,wEAAwE;AACxE,SAAgB,sBAAsB,CAAC,GAAc;IACnD,qEAAqE;IACrE,yEAAyE;IACzE,uEAAuE;IACvE,MAAM,IAAI,GAAG,GAAG,CAAC,QAEJ,CAAC;IACd,MAAM,GAAG,GAAoB;QAC3B,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;QACxD,GAAG,CAAC,IAAI,EAAE,WAAW,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAA6C,EAAE,CAAC;QAC7F,GAAG,CAAC,IAAI,EAAE,YAAY,IAAI;YACxB,YAAY,EAAE,IAAI,CAAC,YAA+C;SACnE,CAAC;QACF,0EAA0E;QAC1E,2EAA2E;QAC3E,yEAAyE;QACzE,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK,SAAS,IAAI;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAiC;SAC9C,CAAC;QACF,MAAM,EAAE;YACN,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YACzE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACpF,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI;gBACtB,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAClC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE;oBACvB,WAAW,EAAE,GAAG,CAAC,EAAE;iBACpB,CAAC,CAAC;aACJ,CAAC;SACH;KACF,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAjCD,wDAiCC"}
|