agentfootprint 3.1.0 → 3.1.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/AGENTS.md +66 -47
- package/CLAUDE.md +47 -37
- package/README.md +27 -12
- package/dist/adapters/llm/createProvider.js +3 -2
- package/dist/adapters/llm/createProvider.js.map +1 -1
- package/dist/adapters/observability/agentcore.js +1 -0
- package/dist/adapters/observability/agentcore.js.map +1 -1
- package/dist/core/flowchartAsTool.js +5 -5
- package/dist/esm/adapters/llm/createProvider.js +3 -2
- package/dist/esm/adapters/llm/createProvider.js.map +1 -1
- package/dist/esm/adapters/observability/agentcore.js +1 -0
- package/dist/esm/adapters/observability/agentcore.js.map +1 -1
- package/dist/esm/core/flowchartAsTool.js +5 -5
- package/dist/esm/lib/lazyRequire.js +2 -30
- package/dist/esm/lib/lazyRequire.js.map +1 -1
- package/dist/esm/lib/rag/defineRAG.js +4 -2
- package/dist/esm/lib/rag/defineRAG.js.map +1 -1
- package/dist/esm/lib/rag/indexDocuments.js +2 -2
- package/dist/esm/locales/index.js +3 -3
- package/dist/esm/memory/beats/heuristicExtractor.js +1 -1
- package/dist/esm/memory/beats/heuristicExtractor.js.map +1 -1
- package/dist/esm/memory/beats/index.js +6 -6
- package/dist/esm/memory/beats/index.js.map +1 -1
- package/dist/esm/memory/beats/llmExtractor.js +1 -1
- package/dist/esm/memory/beats/llmExtractor.js.map +1 -1
- package/dist/esm/memory/embedding/index.js +4 -4
- package/dist/esm/memory/embedding/index.js.map +1 -1
- package/dist/esm/memory/entry/index.js +1 -1
- package/dist/esm/memory/entry/index.js.map +1 -1
- package/dist/esm/memory/facts/extractFacts.js +1 -1
- package/dist/esm/memory/facts/extractFacts.js.map +1 -1
- package/dist/esm/memory/facts/index.js +7 -7
- package/dist/esm/memory/facts/index.js.map +1 -1
- package/dist/esm/memory/facts/llmFactExtractor.js +1 -1
- package/dist/esm/memory/facts/llmFactExtractor.js.map +1 -1
- package/dist/esm/memory/facts/loadFacts.js +1 -1
- package/dist/esm/memory/facts/loadFacts.js.map +1 -1
- package/dist/esm/memory/facts/patternFactExtractor.js +1 -1
- package/dist/esm/memory/facts/patternFactExtractor.js.map +1 -1
- package/dist/esm/memory/identity/index.js +1 -1
- package/dist/esm/memory/identity/index.js.map +1 -1
- package/dist/esm/memory/pipeline/auto.js +2 -2
- package/dist/esm/memory/pipeline/auto.js.map +1 -1
- package/dist/esm/memory/pipeline/default.js +4 -4
- package/dist/esm/memory/pipeline/default.js.map +1 -1
- package/dist/esm/memory/pipeline/ephemeral.js +3 -3
- package/dist/esm/memory/pipeline/ephemeral.js.map +1 -1
- package/dist/esm/memory/pipeline/fact.js +5 -5
- package/dist/esm/memory/pipeline/fact.js.map +1 -1
- package/dist/esm/memory/pipeline/index.js +6 -6
- package/dist/esm/memory/pipeline/index.js.map +1 -1
- package/dist/esm/memory/pipeline/narrative.js +6 -6
- package/dist/esm/memory/pipeline/narrative.js.map +1 -1
- package/dist/esm/memory/pipeline/semantic.js +5 -5
- package/dist/esm/memory/pipeline/semantic.js.map +1 -1
- package/dist/esm/memory/stages/index.js +6 -6
- package/dist/esm/memory/stages/index.js.map +1 -1
- package/dist/esm/memory/stages/pickByBudget.js +1 -1
- package/dist/esm/memory/stages/pickByBudget.js.map +1 -1
- package/dist/esm/memory/store/InMemoryStore.js +2 -2
- package/dist/esm/memory/store/InMemoryStore.js.map +1 -1
- package/dist/esm/memory/store/index.js +1 -1
- package/dist/esm/memory/store/index.js.map +1 -1
- package/dist/esm/memory/wire/index.js +1 -1
- package/dist/esm/memory/wire/index.js.map +1 -1
- package/dist/esm/package.json +1 -0
- package/dist/esm/recorders/core/typedEmit.js +1 -1
- package/dist/esm/recorders/observability/BoundaryRecorder.js +3 -2
- package/dist/esm/recorders/observability/BoundaryRecorder.js.map +1 -1
- package/dist/esm/resilience/withRetry.js +3 -0
- package/dist/esm/resilience/withRetry.js.map +1 -1
- package/dist/esm/strategies/compose.js +2 -2
- package/dist/esm/tool-providers/skillScopedTools.js +3 -3
- package/dist/lib/lazyRequire.js +6 -0
- package/dist/lib/lazyRequire.js.map +1 -1
- package/dist/lib/rag/defineRAG.js +4 -2
- package/dist/lib/rag/defineRAG.js.map +1 -1
- package/dist/lib/rag/indexDocuments.js +2 -2
- package/dist/locales/index.js +3 -3
- package/dist/memory/beats/heuristicExtractor.js +4 -4
- package/dist/memory/beats/heuristicExtractor.js.map +1 -1
- package/dist/memory/beats/index.js +13 -13
- package/dist/memory/beats/index.js.map +1 -1
- package/dist/memory/beats/llmExtractor.js +2 -2
- package/dist/memory/beats/llmExtractor.js.map +1 -1
- package/dist/memory/embedding/index.js +8 -8
- package/dist/memory/embedding/index.js.map +1 -1
- package/dist/memory/entry/index.js +3 -3
- package/dist/memory/entry/index.js.map +1 -1
- package/dist/memory/facts/extractFacts.js +2 -2
- package/dist/memory/facts/extractFacts.js.map +1 -1
- package/dist/memory/facts/index.js +17 -17
- package/dist/memory/facts/index.js.map +1 -1
- package/dist/memory/facts/llmFactExtractor.js +2 -2
- package/dist/memory/facts/llmFactExtractor.js.map +1 -1
- package/dist/memory/facts/loadFacts.js +2 -2
- package/dist/memory/facts/loadFacts.js.map +1 -1
- package/dist/memory/facts/patternFactExtractor.js +2 -2
- package/dist/memory/facts/patternFactExtractor.js.map +1 -1
- package/dist/memory/identity/index.js +2 -2
- package/dist/memory/identity/index.js.map +1 -1
- package/dist/memory/pipeline/auto.js +11 -11
- package/dist/memory/pipeline/auto.js.map +1 -1
- package/dist/memory/pipeline/default.js +8 -8
- package/dist/memory/pipeline/default.js.map +1 -1
- package/dist/memory/pipeline/ephemeral.js +6 -6
- package/dist/memory/pipeline/ephemeral.js.map +1 -1
- package/dist/memory/pipeline/fact.js +11 -11
- package/dist/memory/pipeline/fact.js.map +1 -1
- package/dist/memory/pipeline/index.js +12 -12
- package/dist/memory/pipeline/index.js.map +1 -1
- package/dist/memory/pipeline/narrative.js +12 -12
- package/dist/memory/pipeline/narrative.js.map +1 -1
- package/dist/memory/pipeline/semantic.js +10 -10
- package/dist/memory/pipeline/semantic.js.map +1 -1
- package/dist/memory/stages/index.js +13 -13
- package/dist/memory/stages/index.js.map +1 -1
- package/dist/memory/stages/pickByBudget.js +3 -3
- package/dist/memory/stages/pickByBudget.js.map +1 -1
- package/dist/memory/store/InMemoryStore.js +5 -5
- package/dist/memory/store/InMemoryStore.js.map +1 -1
- package/dist/memory/store/index.js +2 -2
- package/dist/memory/store/index.js.map +1 -1
- package/dist/memory/wire/index.js +4 -4
- package/dist/memory/wire/index.js.map +1 -1
- package/dist/recorders/core/typedEmit.js +1 -1
- package/dist/recorders/observability/BoundaryRecorder.js +3 -2
- package/dist/recorders/observability/BoundaryRecorder.js.map +1 -1
- package/dist/resilience/withRetry.js +3 -0
- package/dist/resilience/withRetry.js.map +1 -1
- package/dist/strategies/compose.js +2 -2
- package/dist/tool-providers/skillScopedTools.js +3 -3
- package/dist/types/adapters/llm/createProvider.d.ts +3 -2
- package/dist/types/adapters/llm/createProvider.d.ts.map +1 -1
- package/dist/types/adapters/observability/agentcore.d.ts +1 -0
- package/dist/types/adapters/observability/agentcore.d.ts.map +1 -1
- package/dist/types/core/flowchartAsTool.d.ts +5 -5
- package/dist/types/lib/lazyRequire.d.ts.map +1 -1
- package/dist/types/lib/rag/defineRAG.d.ts +4 -2
- package/dist/types/lib/rag/defineRAG.d.ts.map +1 -1
- package/dist/types/lib/rag/indexDocuments.d.ts +2 -2
- package/dist/types/locales/index.d.ts +3 -3
- package/dist/types/memory/beats/extractBeats.d.ts +4 -4
- package/dist/types/memory/beats/extractBeats.d.ts.map +1 -1
- package/dist/types/memory/beats/extractor.d.ts +2 -2
- package/dist/types/memory/beats/extractor.d.ts.map +1 -1
- package/dist/types/memory/beats/formatAsNarrative.d.ts +1 -1
- package/dist/types/memory/beats/formatAsNarrative.d.ts.map +1 -1
- package/dist/types/memory/beats/heuristicExtractor.d.ts +1 -1
- package/dist/types/memory/beats/heuristicExtractor.d.ts.map +1 -1
- package/dist/types/memory/beats/index.d.ts +12 -12
- package/dist/types/memory/beats/index.d.ts.map +1 -1
- package/dist/types/memory/beats/llmExtractor.d.ts +2 -2
- package/dist/types/memory/beats/llmExtractor.d.ts.map +1 -1
- package/dist/types/memory/beats/writeBeats.d.ts +2 -2
- package/dist/types/memory/beats/writeBeats.d.ts.map +1 -1
- package/dist/types/memory/embedding/embedMessages.d.ts +3 -3
- package/dist/types/memory/embedding/embedMessages.d.ts.map +1 -1
- package/dist/types/memory/embedding/index.d.ts +8 -8
- package/dist/types/memory/embedding/index.d.ts.map +1 -1
- package/dist/types/memory/embedding/loadRelevant.d.ts +3 -3
- package/dist/types/memory/embedding/loadRelevant.d.ts.map +1 -1
- package/dist/types/memory/embedding/mockEmbedder.d.ts +1 -1
- package/dist/types/memory/embedding/mockEmbedder.d.ts.map +1 -1
- package/dist/types/memory/entry/decay.d.ts +1 -1
- package/dist/types/memory/entry/decay.d.ts.map +1 -1
- package/dist/types/memory/entry/index.d.ts +2 -2
- package/dist/types/memory/entry/index.d.ts.map +1 -1
- package/dist/types/memory/entry/types.d.ts +1 -1
- package/dist/types/memory/entry/types.d.ts.map +1 -1
- package/dist/types/memory/facts/extractFacts.d.ts +4 -4
- package/dist/types/memory/facts/extractFacts.d.ts.map +1 -1
- package/dist/types/memory/facts/extractor.d.ts +2 -2
- package/dist/types/memory/facts/extractor.d.ts.map +1 -1
- package/dist/types/memory/facts/formatFacts.d.ts +3 -3
- package/dist/types/memory/facts/formatFacts.d.ts.map +1 -1
- package/dist/types/memory/facts/index.d.ts +14 -14
- package/dist/types/memory/facts/index.d.ts.map +1 -1
- package/dist/types/memory/facts/llmFactExtractor.d.ts +2 -2
- package/dist/types/memory/facts/llmFactExtractor.d.ts.map +1 -1
- package/dist/types/memory/facts/loadFacts.d.ts +2 -2
- package/dist/types/memory/facts/loadFacts.d.ts.map +1 -1
- package/dist/types/memory/facts/patternFactExtractor.d.ts +1 -1
- package/dist/types/memory/facts/patternFactExtractor.d.ts.map +1 -1
- package/dist/types/memory/facts/writeFacts.d.ts +2 -2
- package/dist/types/memory/facts/writeFacts.d.ts.map +1 -1
- package/dist/types/memory/identity/index.d.ts +2 -2
- package/dist/types/memory/identity/index.d.ts.map +1 -1
- package/dist/types/memory/pipeline/auto.d.ts +6 -6
- package/dist/types/memory/pipeline/auto.d.ts.map +1 -1
- package/dist/types/memory/pipeline/default.d.ts +2 -2
- package/dist/types/memory/pipeline/default.d.ts.map +1 -1
- package/dist/types/memory/pipeline/ephemeral.d.ts +2 -2
- package/dist/types/memory/pipeline/ephemeral.d.ts.map +1 -1
- package/dist/types/memory/pipeline/fact.d.ts +3 -3
- package/dist/types/memory/pipeline/fact.d.ts.map +1 -1
- package/dist/types/memory/pipeline/index.d.ts +13 -13
- package/dist/types/memory/pipeline/index.d.ts.map +1 -1
- package/dist/types/memory/pipeline/narrative.d.ts +3 -3
- package/dist/types/memory/pipeline/narrative.d.ts.map +1 -1
- package/dist/types/memory/pipeline/semantic.d.ts +3 -3
- package/dist/types/memory/pipeline/semantic.d.ts.map +1 -1
- package/dist/types/memory/pipeline/types.d.ts +1 -1
- package/dist/types/memory/pipeline/types.d.ts.map +1 -1
- package/dist/types/memory/stages/formatDefault.d.ts +3 -3
- package/dist/types/memory/stages/formatDefault.d.ts.map +1 -1
- package/dist/types/memory/stages/index.d.ts +13 -13
- package/dist/types/memory/stages/index.d.ts.map +1 -1
- package/dist/types/memory/stages/loadRecent.d.ts +2 -2
- package/dist/types/memory/stages/loadRecent.d.ts.map +1 -1
- package/dist/types/memory/stages/pickByBudget.d.ts +2 -2
- package/dist/types/memory/stages/pickByBudget.d.ts.map +1 -1
- package/dist/types/memory/stages/summarize.d.ts +2 -2
- package/dist/types/memory/stages/summarize.d.ts.map +1 -1
- package/dist/types/memory/stages/tokenize.d.ts +1 -1
- package/dist/types/memory/stages/tokenize.d.ts.map +1 -1
- package/dist/types/memory/stages/types.d.ts +3 -3
- package/dist/types/memory/stages/types.d.ts.map +1 -1
- package/dist/types/memory/stages/writeMessages.d.ts +3 -3
- package/dist/types/memory/stages/writeMessages.d.ts.map +1 -1
- package/dist/types/memory/store/InMemoryStore.d.ts +3 -3
- package/dist/types/memory/store/InMemoryStore.d.ts.map +1 -1
- package/dist/types/memory/store/index.d.ts +2 -2
- package/dist/types/memory/store/index.d.ts.map +1 -1
- package/dist/types/memory/store/types.d.ts +2 -2
- package/dist/types/memory/store/types.d.ts.map +1 -1
- package/dist/types/memory/wire/index.d.ts +2 -2
- package/dist/types/memory/wire/index.d.ts.map +1 -1
- package/dist/types/memory/wire/mountMemoryPipeline.d.ts +1 -1
- package/dist/types/memory/wire/mountMemoryPipeline.d.ts.map +1 -1
- package/dist/types/recorders/core/typedEmit.d.ts +1 -1
- package/dist/types/recorders/observability/BoundaryRecorder.d.ts +3 -2
- package/dist/types/recorders/observability/BoundaryRecorder.d.ts.map +1 -1
- package/dist/types/recorders/observability/observeRunId.d.ts +1 -1
- package/dist/types/resilience/withRetry.d.ts +3 -0
- package/dist/types/resilience/withRetry.d.ts.map +1 -1
- package/dist/types/strategies/compose.d.ts +2 -2
- package/dist/types/tool-providers/skillScopedTools.d.ts +3 -3
- package/package.json +7 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/memory/facts/index.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/memory/facts/index.ts"],"names":[],"mappings":";;;AACA,uCAAoE;AAA3D,kGAAA,MAAM,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,kGAAA,MAAM,OAAA;AAAE,wGAAA,YAAY,OAAA;AAE/C,qEAAiE;AAAxD,+HAAA,oBAAoB,OAAA;AAC7B,6DAAyD;AAAhD,uHAAA,gBAAgB,OAAA;AAEzB,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AAErB,iDAA6C;AAApC,2GAAA,UAAU,OAAA;AAEnB,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAElB,mDAA+C;AAAtC,6GAAA,WAAW,OAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.llmFactExtractor = void 0;
|
|
4
|
-
const
|
|
4
|
+
const types_js_1 = require("./types.js");
|
|
5
5
|
const DEFAULT_SYSTEM_PROMPT = `You are an extractor that distills a turn of conversation into stable, timeless facts for long-term memory.
|
|
6
6
|
|
|
7
7
|
A "fact" is a key/value claim that is currently true — not a narration of what happened. Facts dedupe by key, so later turns overwrite earlier claims.
|
|
@@ -84,7 +84,7 @@ function parseFactsResponse(raw, onParseError) {
|
|
|
84
84
|
byKey.set(f.key, {
|
|
85
85
|
key: f.key,
|
|
86
86
|
value: f.value,
|
|
87
|
-
confidence: (0,
|
|
87
|
+
confidence: (0, types_js_1.asConfidence)(f.confidence),
|
|
88
88
|
...(category ? { category } : {}),
|
|
89
89
|
...(refs.length > 0 ? { refs } : {}),
|
|
90
90
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llmFactExtractor.js","sourceRoot":"","sources":["../../../src/memory/facts/llmFactExtractor.ts"],"names":[],"mappings":";;;AA2CA,
|
|
1
|
+
{"version":3,"file":"llmFactExtractor.js","sourceRoot":"","sources":["../../../src/memory/facts/llmFactExtractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.loadFacts = void 0;
|
|
4
|
-
const
|
|
4
|
+
const types_js_1 = require("./types.js");
|
|
5
5
|
const DEFAULT_LIMIT = 100;
|
|
6
6
|
function loadFacts(config) {
|
|
7
7
|
const limit = config.limit ?? DEFAULT_LIMIT;
|
|
@@ -15,7 +15,7 @@ function loadFacts(config) {
|
|
|
15
15
|
// keeps only the fact-shaped entries.
|
|
16
16
|
const facts = [];
|
|
17
17
|
for (const entry of entries) {
|
|
18
|
-
if ((0,
|
|
18
|
+
if ((0, types_js_1.isFactId)(entry.id))
|
|
19
19
|
facts.push(entry);
|
|
20
20
|
}
|
|
21
21
|
const existing = scope.loadedFacts ?? [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadFacts.js","sourceRoot":"","sources":["../../../src/memory/facts/loadFacts.ts"],"names":[],"mappings":";;;AA2BA,
|
|
1
|
+
{"version":3,"file":"loadFacts.js","sourceRoot":"","sources":["../../../src/memory/facts/loadFacts.ts"],"names":[],"mappings":";;;AA2BA,yCAAsC;AAsBtC,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B,SAAgB,SAAS,CAAC,MAAuB;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,aAAa,CAAC;IAE5C,OAAO,KAAK,EAAE,KAAoC,EAAiB,EAAE;QACnE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAO,KAAK,CAAC,QAAQ,EAAE;YAChE,KAAK;YACL,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;SAC7C,CAAC,CAAC;QAEH,6DAA6D;QAC7D,mEAAmE;QACnE,sCAAsC;QACtC,MAAM,KAAK,GAAwB,EAAE,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,IAAA,mBAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;QACzC,KAAK,CAAC,WAAW,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC;AACJ,CAAC;AApBD,8BAoBC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.patternFactExtractor = void 0;
|
|
4
|
-
const
|
|
4
|
+
const types_js_1 = require("./types.js");
|
|
5
5
|
/** Extract plaintext from any Message content shape. */
|
|
6
6
|
function textOf(message) {
|
|
7
7
|
return message.content ?? '';
|
|
@@ -81,7 +81,7 @@ function patternFactExtractor() {
|
|
|
81
81
|
byKey.set(rule.key, {
|
|
82
82
|
key: rule.key,
|
|
83
83
|
value,
|
|
84
|
-
confidence: (0,
|
|
84
|
+
confidence: (0, types_js_1.asConfidence)(rule.confidence),
|
|
85
85
|
category: rule.category,
|
|
86
86
|
});
|
|
87
87
|
break; // first pattern-match per rule wins for this message
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patternFactExtractor.js","sourceRoot":"","sources":["../../../src/memory/facts/patternFactExtractor.ts"],"names":[],"mappings":";;;AAuBA,
|
|
1
|
+
{"version":3,"file":"patternFactExtractor.js","sourceRoot":"","sources":["../../../src/memory/facts/patternFactExtractor.ts"],"names":[],"mappings":";;;AAuBA,yCAA0C;AAE1C,wDAAwD;AACxD,SAAS,MAAM,CAAC,OAAgB;IAC9B,OAAO,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;AAC/B,CAAC;AAkBD,MAAM,KAAK,GAAoB;IAC7B;QACE,GAAG,EAAE,WAAW;QAChB,QAAQ,EAAE,UAAU;QACpB,UAAU,EAAE,GAAG;QACf,QAAQ,EAAE;YACR,2EAA2E;YAC3E,6EAA6E;YAC7E,6EAA6E;YAC7E,0DAA0D;YAC1D,iFAAiF;YACjF,kDAAkD;SACnD;KACF;IACD;QACE,GAAG,EAAE,YAAY;QACjB,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE;YACR,wEAAwE;YACxE,sDAAsD;SACvD;KACF;IACD;QACE,GAAG,EAAE,eAAe;QACpB,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE,GAAG;QACf,QAAQ,EAAE;YACR,uEAAuE;YACvE,mEAAmE;YACnE,4EAA4E;SAC7E;KACF;IACD;QACE,GAAG,EAAE,kBAAkB;QACvB,QAAQ,EAAE,YAAY;QACtB,UAAU,EAAE,GAAG;QACf,QAAQ,EAAE;YACR,gEAAgE;YAChE,6DAA6D;YAC7D,iFAAiF;SAClF;KACF;CACF,CAAC;AAEF,sEAAsE;AACtE,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED,SAAgB,oBAAoB;IAClC,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,IAAqB;YACjC,+DAA+D;YAC/D,kEAAkE;YAClE,2BAA2B;YAC3B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAgB,CAAC;YAEtC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;oBAAE,SAAS;gBAClC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBACzB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBAEhC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBAClC,IAAI,CAAC,KAAK;4BAAE,SAAS;wBACrB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACrB,IAAI,CAAC,GAAG;4BAAE,SAAS;wBACnB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;wBAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;4BAAE,SAAS;wBACjC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE;4BAClB,GAAG,EAAE,IAAI,CAAC,GAAG;4BACb,KAAK;4BACL,UAAU,EAAE,IAAA,uBAAY,EAAC,IAAI,CAAC,UAAU,CAAC;4BACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;yBACxB,CAAC,CAAC;wBACH,MAAM,CAAC,qDAAqD;oBAC9D,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACpC,CAAC;KACF,CAAC;AACJ,CAAC;AAnCD,oDAmCC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.identityNamespace = void 0;
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "identityNamespace", { enumerable: true, get: function () { return
|
|
4
|
+
var types_js_1 = require("./types.js");
|
|
5
|
+
Object.defineProperty(exports, "identityNamespace", { enumerable: true, get: function () { return types_js_1.identityNamespace; } });
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/memory/identity/index.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/memory/identity/index.ts"],"names":[],"mappings":";;;AACA,uCAA+C;AAAtC,6GAAA,iBAAiB,OAAA"}
|
|
@@ -53,8 +53,8 @@ exports.autoPipeline = void 0;
|
|
|
53
53
|
* ```
|
|
54
54
|
*/
|
|
55
55
|
const footprintjs_1 = require("footprintjs");
|
|
56
|
-
const
|
|
57
|
-
const
|
|
56
|
+
const index_js_1 = require("../facts/index.js");
|
|
57
|
+
const index_js_2 = require("../beats/index.js");
|
|
58
58
|
const DEFAULT_FACTS_HEADER = 'Known facts about the user:';
|
|
59
59
|
const DEFAULT_LEAD_IN = 'From earlier: ';
|
|
60
60
|
const DEFAULT_LOAD_LIMIT = 200;
|
|
@@ -105,9 +105,9 @@ function renderAutoMessage(facts, beats, opts) {
|
|
|
105
105
|
}
|
|
106
106
|
function autoPipeline(config) {
|
|
107
107
|
const factExtractor = config.factExtractor ??
|
|
108
|
-
(config.provider ? (0,
|
|
108
|
+
(config.provider ? (0, index_js_1.llmFactExtractor)({ provider: config.provider }) : (0, index_js_1.patternFactExtractor)());
|
|
109
109
|
const beatExtractor = config.beatExtractor ??
|
|
110
|
-
(config.provider ? (0,
|
|
110
|
+
(config.provider ? (0, index_js_2.llmExtractor)({ provider: config.provider }) : (0, index_js_2.heuristicExtractor)());
|
|
111
111
|
const loadLimit = config.loadLimit ?? DEFAULT_LOAD_LIMIT;
|
|
112
112
|
const factsHeader = config.factsHeader ?? DEFAULT_FACTS_HEADER;
|
|
113
113
|
const leadIn = config.narrativeLeadIn ?? DEFAULT_LEAD_IN;
|
|
@@ -126,10 +126,10 @@ function autoPipeline(config) {
|
|
|
126
126
|
const loadedFacts = [];
|
|
127
127
|
const loadedBeats = [];
|
|
128
128
|
for (const entry of entries) {
|
|
129
|
-
if ((0,
|
|
129
|
+
if ((0, index_js_1.isFactId)(entry.id)) {
|
|
130
130
|
loadedFacts.push(entry);
|
|
131
131
|
}
|
|
132
|
-
else if ((0,
|
|
132
|
+
else if ((0, index_js_2.isNarrativeBeat)(entry.value)) {
|
|
133
133
|
loadedBeats.push(entry);
|
|
134
134
|
}
|
|
135
135
|
// Other payloads (raw messages) are intentionally ignored —
|
|
@@ -156,23 +156,23 @@ function autoPipeline(config) {
|
|
|
156
156
|
// LoadFacts first so the (possibly LLM-backed) fact extractor sees
|
|
157
157
|
// existing facts via scope.loadedFacts and can update rather than
|
|
158
158
|
// duplicate. Then extract+write facts, then extract+write beats.
|
|
159
|
-
const write = (0, footprintjs_1.flowChart)('LoadFacts', (0,
|
|
159
|
+
const write = (0, footprintjs_1.flowChart)('LoadFacts', (0, index_js_1.loadFacts)({
|
|
160
160
|
store: config.store,
|
|
161
161
|
limit: loadLimit,
|
|
162
162
|
...(config.tiers && { tiers: config.tiers }),
|
|
163
163
|
}), 'load-facts', { description: 'Surface existing facts for update-awareness' })
|
|
164
|
-
.addFunction('ExtractFacts', (0,
|
|
164
|
+
.addFunction('ExtractFacts', (0, index_js_1.extractFacts)({
|
|
165
165
|
extractor: factExtractor,
|
|
166
166
|
...(config.writeTier && { tier: config.writeTier }),
|
|
167
167
|
...(config.writeTtlMs !== undefined && { ttlMs: config.writeTtlMs }),
|
|
168
168
|
}), 'extract-facts', 'Distill scope.newMessages into stable Fact entries')
|
|
169
|
-
.addFunction('WriteFacts', (0,
|
|
170
|
-
.addFunction('ExtractBeats', (0,
|
|
169
|
+
.addFunction('WriteFacts', (0, index_js_1.writeFacts)({ store: config.store }), 'write-facts', 'Persist facts via store.putMany (overwrite on key collision)')
|
|
170
|
+
.addFunction('ExtractBeats', (0, index_js_2.extractBeats)({
|
|
171
171
|
extractor: beatExtractor,
|
|
172
172
|
...(config.writeTier && { tier: config.writeTier }),
|
|
173
173
|
...(config.writeTtlMs !== undefined && { ttlMs: config.writeTtlMs }),
|
|
174
174
|
}), 'extract-beats', 'Compress scope.newMessages into NarrativeBeat entries')
|
|
175
|
-
.addFunction('WriteBeats', (0,
|
|
175
|
+
.addFunction('WriteBeats', (0, index_js_2.writeBeats)({ store: config.store }), 'write-beats', 'Persist beats via store.putMany')
|
|
176
176
|
.build();
|
|
177
177
|
return { read, write };
|
|
178
178
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto.js","sourceRoot":"","sources":["../../../src/memory/pipeline/auto.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,6CAAyD;AAQzD,
|
|
1
|
+
{"version":3,"file":"auto.js","sourceRoot":"","sources":["../../../src/memory/pipeline/auto.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,10 +51,10 @@ exports.defaultPipeline = void 0;
|
|
|
51
51
|
* ```
|
|
52
52
|
*/
|
|
53
53
|
const footprintjs_1 = require("footprintjs");
|
|
54
|
-
const
|
|
55
|
-
const
|
|
56
|
-
const
|
|
57
|
-
const
|
|
54
|
+
const loadRecent_js_1 = require("../stages/loadRecent.js");
|
|
55
|
+
const pickByBudget_js_1 = require("../stages/pickByBudget.js");
|
|
56
|
+
const formatDefault_js_1 = require("../stages/formatDefault.js");
|
|
57
|
+
const writeMessages_js_1 = require("../stages/writeMessages.js");
|
|
58
58
|
/**
|
|
59
59
|
* Build the default read + write pipelines sharing a single store.
|
|
60
60
|
* Returns two FlowChart subflows ready to be mounted by the wire layer.
|
|
@@ -85,14 +85,14 @@ function defaultPipeline(config) {
|
|
|
85
85
|
// pickByBudget is a builder-extension — it appends a decider + 3
|
|
86
86
|
// branches to the pipeline so "why did / didn't we inject memory?" is
|
|
87
87
|
// answerable via FlowRecorder.onDecision evidence, not just emit events.
|
|
88
|
-
let readBuilder = (0, footprintjs_1.flowChart)('LoadRecent', (0,
|
|
88
|
+
let readBuilder = (0, footprintjs_1.flowChart)('LoadRecent', (0, loadRecent_js_1.loadRecent)(loadConfig), 'load-recent', {
|
|
89
89
|
description: 'Read N most-recent entries from storage into scope.loaded',
|
|
90
90
|
});
|
|
91
|
-
readBuilder = (0,
|
|
91
|
+
readBuilder = (0, pickByBudget_js_1.pickByBudget)(pickConfig)(readBuilder);
|
|
92
92
|
const read = readBuilder
|
|
93
|
-
.addFunction('Format', (0,
|
|
93
|
+
.addFunction('Format', (0, formatDefault_js_1.formatDefault)(formatConfig), 'format-default', 'Render selected entries as a system message; writes scope.formatted')
|
|
94
94
|
.build();
|
|
95
|
-
const write = (0, footprintjs_1.flowChart)('WriteMessages', (0,
|
|
95
|
+
const write = (0, footprintjs_1.flowChart)('WriteMessages', (0, writeMessages_js_1.writeMessages)(writeConfig), 'write-messages', { description: 'Persist new turn messages to storage' }).build();
|
|
96
96
|
return { read, write };
|
|
97
97
|
}
|
|
98
98
|
exports.defaultPipeline = defaultPipeline;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/memory/pipeline/default.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,6CAAwC;AAExC,
|
|
1
|
+
{"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/memory/pipeline/default.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,6CAAwC;AAExC,2DAA4E;AAC5E,+DAAkF;AAClF,iEAAqF;AACrF,iEAAqF;AAyDrF;;;GAGG;AACH,SAAgB,eAAe,CAAC,MAA6B;IAC3D,uEAAuE;IACvE,iEAAiE;IACjE,MAAM,UAAU,GAAqB;QACnC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAClE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;KAC7C,CAAC;IACF,MAAM,UAAU,GAAuB;QACrC,GAAG,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;QAClF,GAAG,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;QAClF,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;KAC1E,CAAC;IACF,MAAM,YAAY,GAAwB;QACxC,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;QACzE,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;KAC1E,CAAC;IACF,MAAM,WAAW,GAAwB;QACvC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QACnD,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;KACrE,CAAC;IAEF,oFAAoF;IACpF,iEAAiE;IACjE,sEAAsE;IACtE,yEAAyE;IACzE,IAAI,WAAW,GAAG,IAAA,uBAAS,EAAc,YAAY,EAAE,IAAA,0BAAU,EAAC,UAAU,CAAC,EAAE,aAAa,EAAE;QAC5F,WAAW,EAAE,2DAA2D;KACzE,CAAC,CAAC;IACH,WAAW,GAAG,IAAA,8BAAY,EAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,WAAW;SACrB,WAAW,CACV,QAAQ,EACR,IAAA,gCAAa,EAAC,YAAY,CAAC,EAC3B,gBAAgB,EAChB,qEAAqE,CACtE;SACA,KAAK,EAAE,CAAC;IAEX,MAAM,KAAK,GAAG,IAAA,uBAAS,EACrB,eAAe,EACf,IAAA,gCAAa,EAAC,WAAW,CAAC,EAC1B,gBAAgB,EAChB,EAAE,WAAW,EAAE,sCAAsC,EAAE,CACxD,CAAC,KAAK,EAAE,CAAC;IAEV,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC;AAhDD,0CAgDC"}
|
|
@@ -28,9 +28,9 @@ exports.ephemeralPipeline = void 0;
|
|
|
28
28
|
* ```
|
|
29
29
|
*/
|
|
30
30
|
const footprintjs_1 = require("footprintjs");
|
|
31
|
-
const
|
|
32
|
-
const
|
|
33
|
-
const
|
|
31
|
+
const loadRecent_js_1 = require("../stages/loadRecent.js");
|
|
32
|
+
const pickByBudget_js_1 = require("../stages/pickByBudget.js");
|
|
33
|
+
const formatDefault_js_1 = require("../stages/formatDefault.js");
|
|
34
34
|
/**
|
|
35
35
|
* Build an ephemeral (read-only) pipeline. The returned object has
|
|
36
36
|
* `write: undefined`; wire helpers no-op on it.
|
|
@@ -50,12 +50,12 @@ function ephemeralPipeline(config) {
|
|
|
50
50
|
...(config.formatHeader !== undefined && { header: config.formatHeader }),
|
|
51
51
|
...(config.formatFooter !== undefined && { footer: config.formatFooter }),
|
|
52
52
|
};
|
|
53
|
-
let readBuilder = (0, footprintjs_1.flowChart)('LoadRecent', (0,
|
|
53
|
+
let readBuilder = (0, footprintjs_1.flowChart)('LoadRecent', (0, loadRecent_js_1.loadRecent)(loadConfig), 'load-recent', {
|
|
54
54
|
description: 'Read N most-recent entries from storage into scope.loaded (read-only)',
|
|
55
55
|
});
|
|
56
|
-
readBuilder = (0,
|
|
56
|
+
readBuilder = (0, pickByBudget_js_1.pickByBudget)(pickConfig)(readBuilder);
|
|
57
57
|
const read = readBuilder
|
|
58
|
-
.addFunction('Format', (0,
|
|
58
|
+
.addFunction('Format', (0, formatDefault_js_1.formatDefault)(formatConfig), 'format-default', 'Render selected entries as a system message')
|
|
59
59
|
.build();
|
|
60
60
|
// NO write subflow — `write` is deliberately omitted. Wire helpers
|
|
61
61
|
// (`mountMemoryWrite`) check for absence and no-op. The `MemoryPipeline`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ephemeral.js","sourceRoot":"","sources":["../../../src/memory/pipeline/ephemeral.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,6CAAwC;AAExC,
|
|
1
|
+
{"version":3,"file":"ephemeral.js","sourceRoot":"","sources":["../../../src/memory/pipeline/ephemeral.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,6CAAwC;AAExC,2DAA4E;AAC5E,+DAAkF;AAClF,iEAAqF;AAkCrF;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,MAA+B;IAC/D,MAAM,UAAU,GAAqB;QACnC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAClE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;KAC7C,CAAC;IACF,MAAM,UAAU,GAAuB;QACrC,GAAG,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;QAClF,GAAG,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;QAClF,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;KAC1E,CAAC;IACF,MAAM,YAAY,GAAwB;QACxC,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;QACzE,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;KAC1E,CAAC;IAEF,IAAI,WAAW,GAAG,IAAA,uBAAS,EAAc,YAAY,EAAE,IAAA,0BAAU,EAAC,UAAU,CAAC,EAAE,aAAa,EAAE;QAC5F,WAAW,EAAE,uEAAuE;KACrF,CAAC,CAAC;IACH,WAAW,GAAG,IAAA,8BAAY,EAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,WAAW;SACrB,WAAW,CACV,QAAQ,EACR,IAAA,gCAAa,EAAC,YAAY,CAAC,EAC3B,gBAAgB,EAChB,6CAA6C,CAC9C;SACA,KAAK,EAAE,CAAC;IAEX,mEAAmE;IACnE,yEAAyE;IACzE,+DAA+D;IAC/D,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC;AAjCD,8CAiCC"}
|
|
@@ -48,13 +48,13 @@ exports.factPipeline = void 0;
|
|
|
48
48
|
* ```
|
|
49
49
|
*/
|
|
50
50
|
const footprintjs_1 = require("footprintjs");
|
|
51
|
-
const
|
|
52
|
-
const
|
|
53
|
-
const
|
|
54
|
-
const
|
|
55
|
-
const
|
|
51
|
+
const extractFacts_js_1 = require("../facts/extractFacts.js");
|
|
52
|
+
const writeFacts_js_1 = require("../facts/writeFacts.js");
|
|
53
|
+
const loadFacts_js_1 = require("../facts/loadFacts.js");
|
|
54
|
+
const formatFacts_js_1 = require("../facts/formatFacts.js");
|
|
55
|
+
const patternFactExtractor_js_1 = require("../facts/patternFactExtractor.js");
|
|
56
56
|
function factPipeline(config) {
|
|
57
|
-
const extractor = config.extractor ?? (0,
|
|
57
|
+
const extractor = config.extractor ?? (0, patternFactExtractor_js_1.patternFactExtractor)();
|
|
58
58
|
const loadConfig = {
|
|
59
59
|
store: config.store,
|
|
60
60
|
...(config.loadLimit !== undefined && { limit: config.loadLimit }),
|
|
@@ -73,17 +73,17 @@ function factPipeline(config) {
|
|
|
73
73
|
...(config.writeTtlMs !== undefined && { ttlMs: config.writeTtlMs }),
|
|
74
74
|
};
|
|
75
75
|
// ── Read subflow: LoadFacts → FormatFacts
|
|
76
|
-
const read = (0, footprintjs_1.flowChart)('LoadFacts', (0,
|
|
76
|
+
const read = (0, footprintjs_1.flowChart)('LoadFacts', (0, loadFacts_js_1.loadFacts)(loadConfig), 'load-facts', {
|
|
77
77
|
description: 'Load stored Fact entries (ids starting with `fact:`) into scope.loadedFacts',
|
|
78
78
|
})
|
|
79
|
-
.addFunction('FormatFacts', (0,
|
|
79
|
+
.addFunction('FormatFacts', (0, formatFacts_js_1.formatFacts)(formatConfig), 'format-facts', 'Render loaded facts as one system message; writes scope.formatted')
|
|
80
80
|
.build();
|
|
81
81
|
// ── Write subflow: LoadFacts → ExtractFacts → WriteFacts
|
|
82
82
|
// LoadFacts first so llmFactExtractor can see existing facts and
|
|
83
83
|
// update rather than duplicate.
|
|
84
|
-
const write = (0, footprintjs_1.flowChart)('LoadFacts', (0,
|
|
85
|
-
.addFunction('ExtractFacts', (0,
|
|
86
|
-
.addFunction('WriteFacts', (0,
|
|
84
|
+
const write = (0, footprintjs_1.flowChart)('LoadFacts', (0, loadFacts_js_1.loadFacts)(loadConfig), 'load-facts-for-extract', { description: 'Surface existing facts to the extractor for update-awareness' })
|
|
85
|
+
.addFunction('ExtractFacts', (0, extractFacts_js_1.extractFacts)(extractConfig), 'extract-facts', 'Distill scope.newMessages into Fact entries')
|
|
86
|
+
.addFunction('WriteFacts', (0, writeFacts_js_1.writeFacts)({ store: config.store }), 'write-facts', 'Batch-persist extracted facts via store.putMany (overwrite on key collision)')
|
|
87
87
|
.build();
|
|
88
88
|
return { read, write };
|
|
89
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fact.js","sourceRoot":"","sources":["../../../src/memory/pipeline/fact.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,6CAAwC;AAKxC,
|
|
1
|
+
{"version":3,"file":"fact.js","sourceRoot":"","sources":["../../../src/memory/pipeline/fact.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,6CAAwC;AAKxC,8DAIkC;AAClC,0DAAoD;AACpD,wDAAwE;AACxE,4DAA8E;AAC9E,8EAAwE;AAgCxE,SAAgB,YAAY,CAAC,MAA0B;IACrD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAA,8CAAoB,GAAE,CAAC;IAE7D,MAAM,UAAU,GAAoB;QAClC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAClE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;KAC7C,CAAC;IACF,MAAM,YAAY,GAAsB;QACtC,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;QACzE,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;QACzE,GAAG,CAAC,MAAM,CAAC,oBAAoB,KAAK,SAAS,IAAI;YAC/C,cAAc,EAAE,MAAM,CAAC,oBAAoB;SAC5C,CAAC;KACH,CAAC;IACF,MAAM,aAAa,GAAuB;QACxC,SAAS;QACT,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QACnD,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;KACrE,CAAC;IAEF,2CAA2C;IAC3C,MAAM,IAAI,GAAG,IAAA,uBAAS,EAAoB,WAAW,EAAE,IAAA,wBAAS,EAAC,UAAU,CAAC,EAAE,YAAY,EAAE;QAC1F,WAAW,EAAE,6EAA6E;KAC3F,CAAC;SACC,WAAW,CACV,aAAa,EACb,IAAA,4BAAW,EAAC,YAAY,CAAC,EACzB,cAAc,EACd,mEAAmE,CACpE;SACA,KAAK,EAAE,CAAC;IAEX,0DAA0D;IAC1D,iEAAiE;IACjE,gCAAgC;IAChC,MAAM,KAAK,GAAG,IAAA,uBAAS,EACrB,WAAW,EACX,IAAA,wBAAS,EAAC,UAAU,CAAC,EACrB,wBAAwB,EACxB,EAAE,WAAW,EAAE,8DAA8D,EAAE,CAChF;SACE,WAAW,CACV,cAAc,EACd,IAAA,8BAAY,EAAC,aAAa,CAAC,EAC3B,eAAe,EACf,6CAA6C,CAC9C;SACA,WAAW,CACV,YAAY,EACZ,IAAA,0BAAU,EAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,EACnC,aAAa,EACb,8EAA8E,CAC/E;SACA,KAAK,EAAE,CAAC;IAEX,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC;AAzDD,oCAyDC"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.autoPipeline = exports.factPipeline = exports.semanticPipeline = exports.narrativePipeline = exports.ephemeralPipeline = exports.defaultPipeline = void 0;
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "defaultPipeline", { enumerable: true, get: function () { return
|
|
6
|
-
var
|
|
7
|
-
Object.defineProperty(exports, "ephemeralPipeline", { enumerable: true, get: function () { return
|
|
8
|
-
var
|
|
9
|
-
Object.defineProperty(exports, "narrativePipeline", { enumerable: true, get: function () { return
|
|
10
|
-
var
|
|
11
|
-
Object.defineProperty(exports, "semanticPipeline", { enumerable: true, get: function () { return
|
|
12
|
-
var
|
|
13
|
-
Object.defineProperty(exports, "factPipeline", { enumerable: true, get: function () { return
|
|
14
|
-
var
|
|
15
|
-
Object.defineProperty(exports, "autoPipeline", { enumerable: true, get: function () { return
|
|
4
|
+
var default_js_1 = require("./default.js");
|
|
5
|
+
Object.defineProperty(exports, "defaultPipeline", { enumerable: true, get: function () { return default_js_1.defaultPipeline; } });
|
|
6
|
+
var ephemeral_js_1 = require("./ephemeral.js");
|
|
7
|
+
Object.defineProperty(exports, "ephemeralPipeline", { enumerable: true, get: function () { return ephemeral_js_1.ephemeralPipeline; } });
|
|
8
|
+
var narrative_js_1 = require("./narrative.js");
|
|
9
|
+
Object.defineProperty(exports, "narrativePipeline", { enumerable: true, get: function () { return narrative_js_1.narrativePipeline; } });
|
|
10
|
+
var semantic_js_1 = require("./semantic.js");
|
|
11
|
+
Object.defineProperty(exports, "semanticPipeline", { enumerable: true, get: function () { return semantic_js_1.semanticPipeline; } });
|
|
12
|
+
var fact_js_1 = require("./fact.js");
|
|
13
|
+
Object.defineProperty(exports, "factPipeline", { enumerable: true, get: function () { return fact_js_1.factPipeline; } });
|
|
14
|
+
var auto_js_1 = require("./auto.js");
|
|
15
|
+
Object.defineProperty(exports, "autoPipeline", { enumerable: true, get: function () { return auto_js_1.autoPipeline; } });
|
|
16
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/memory/pipeline/index.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/memory/pipeline/index.ts"],"names":[],"mappings":";;;AACA,2CAA+C;AAAtC,6GAAA,eAAe,OAAA;AAExB,+CAAmD;AAA1C,iHAAA,iBAAiB,OAAA;AAE1B,+CAAmD;AAA1C,iHAAA,iBAAiB,OAAA;AAE1B,6CAAiD;AAAxC,+GAAA,gBAAgB,OAAA;AAEzB,qCAAyC;AAAhC,uGAAA,YAAY,OAAA;AAErB,qCAAyC;AAAhC,uGAAA,YAAY,OAAA"}
|
|
@@ -47,18 +47,18 @@ exports.narrativePipeline = void 0;
|
|
|
47
47
|
* ```
|
|
48
48
|
*/
|
|
49
49
|
const footprintjs_1 = require("footprintjs");
|
|
50
|
-
const
|
|
51
|
-
const
|
|
52
|
-
const
|
|
53
|
-
const
|
|
54
|
-
const
|
|
55
|
-
const
|
|
50
|
+
const loadRecent_js_1 = require("../stages/loadRecent.js");
|
|
51
|
+
const pickByBudget_js_1 = require("../stages/pickByBudget.js");
|
|
52
|
+
const extractBeats_js_1 = require("../beats/extractBeats.js");
|
|
53
|
+
const writeBeats_js_1 = require("../beats/writeBeats.js");
|
|
54
|
+
const formatAsNarrative_js_1 = require("../beats/formatAsNarrative.js");
|
|
55
|
+
const heuristicExtractor_js_1 = require("../beats/heuristicExtractor.js");
|
|
56
56
|
/**
|
|
57
57
|
* Build the narrative read + write pipelines sharing a single store.
|
|
58
58
|
* Returns `{ read, write }` ready to be passed to `Agent.memory()` via the appropriate `defineMemory` config (or used directly via `mountMemoryRead`/`mountMemoryWrite`).
|
|
59
59
|
*/
|
|
60
60
|
function narrativePipeline(config) {
|
|
61
|
-
const extractor = config.extractor ?? (0,
|
|
61
|
+
const extractor = config.extractor ?? (0, heuristicExtractor_js_1.heuristicExtractor)();
|
|
62
62
|
const loadConfig = {
|
|
63
63
|
store: config.store,
|
|
64
64
|
...(config.loadCount !== undefined && { count: config.loadCount }),
|
|
@@ -81,16 +81,16 @@ function narrativePipeline(config) {
|
|
|
81
81
|
...(config.writeTtlMs !== undefined && { ttlMs: config.writeTtlMs }),
|
|
82
82
|
};
|
|
83
83
|
// ── Read subflow: LoadRecent → PickByBudget (decider + 3 branches) → FormatAsNarrative
|
|
84
|
-
let readBuilder = (0, footprintjs_1.flowChart)('LoadRecent', (0,
|
|
84
|
+
let readBuilder = (0, footprintjs_1.flowChart)('LoadRecent', (0, loadRecent_js_1.loadRecent)(loadConfig), 'load-recent', {
|
|
85
85
|
description: 'Load N most-recent beats from storage into scope.loaded',
|
|
86
86
|
});
|
|
87
|
-
readBuilder = (0,
|
|
87
|
+
readBuilder = (0, pickByBudget_js_1.pickByBudget)(pickConfig)(readBuilder);
|
|
88
88
|
const read = readBuilder
|
|
89
|
-
.addFunction('Format', (0,
|
|
89
|
+
.addFunction('Format', (0, formatAsNarrative_js_1.formatAsNarrative)(formatConfig), 'format-as-narrative', 'Compose selected beats into a story paragraph; writes scope.formatted')
|
|
90
90
|
.build();
|
|
91
91
|
// ── Write subflow: ExtractBeats → WriteBeats
|
|
92
|
-
const write = (0, footprintjs_1.flowChart)('ExtractBeats', (0,
|
|
93
|
-
.addFunction('WriteBeats', (0,
|
|
92
|
+
const write = (0, footprintjs_1.flowChart)('ExtractBeats', (0, extractBeats_js_1.extractBeats)(extractConfig), 'extract-beats', { description: 'Compress scope.newMessages into NarrativeBeat entries' })
|
|
93
|
+
.addFunction('WriteBeats', (0, writeBeats_js_1.writeBeats)({ store: config.store }), 'write-beats', 'Batch-persist extracted beats via store.putMany')
|
|
94
94
|
.build();
|
|
95
95
|
return { read, write };
|
|
96
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"narrative.js","sourceRoot":"","sources":["../../../src/memory/pipeline/narrative.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,6CAAwC;AAExC,
|
|
1
|
+
{"version":3,"file":"narrative.js","sourceRoot":"","sources":["../../../src/memory/pipeline/narrative.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,11 +39,11 @@ exports.semanticPipeline = void 0;
|
|
|
39
39
|
* ```
|
|
40
40
|
*/
|
|
41
41
|
const footprintjs_1 = require("footprintjs");
|
|
42
|
-
const
|
|
43
|
-
const
|
|
44
|
-
const
|
|
45
|
-
const
|
|
46
|
-
const
|
|
42
|
+
const pickByBudget_js_1 = require("../stages/pickByBudget.js");
|
|
43
|
+
const formatDefault_js_1 = require("../stages/formatDefault.js");
|
|
44
|
+
const writeMessages_js_1 = require("../stages/writeMessages.js");
|
|
45
|
+
const loadRelevant_js_1 = require("../embedding/loadRelevant.js");
|
|
46
|
+
const embedMessages_js_1 = require("../embedding/embedMessages.js");
|
|
47
47
|
/**
|
|
48
48
|
* Build the semantic read + write pipelines sharing a single store.
|
|
49
49
|
* Returns `{ read, write }` ready to pass to `Agent.memory()` via the appropriate `defineMemory` config (or used directly via `mountMemoryRead`/`mountMemoryWrite`).
|
|
@@ -80,14 +80,14 @@ function semanticPipeline(config) {
|
|
|
80
80
|
...(config.writeTtlMs !== undefined && { ttlMs: config.writeTtlMs }),
|
|
81
81
|
};
|
|
82
82
|
// ── Read subflow: LoadRelevant → PickByBudget → FormatDefault
|
|
83
|
-
let readBuilder = (0, footprintjs_1.flowChart)('LoadRelevant', (0,
|
|
84
|
-
readBuilder = (0,
|
|
83
|
+
let readBuilder = (0, footprintjs_1.flowChart)('LoadRelevant', (0, loadRelevant_js_1.loadRelevant)(loadConfig), 'load-relevant', { description: 'Embed the query + fetch top-k semantically similar entries' });
|
|
84
|
+
readBuilder = (0, pickByBudget_js_1.pickByBudget)(pickConfig)(readBuilder);
|
|
85
85
|
const read = readBuilder
|
|
86
|
-
.addFunction('Format', (0,
|
|
86
|
+
.addFunction('Format', (0, formatDefault_js_1.formatDefault)(formatConfig), 'format-default', 'Render selected entries as a system message')
|
|
87
87
|
.build();
|
|
88
88
|
// ── Write subflow: EmbedMessages → WriteMessages
|
|
89
|
-
const write = (0, footprintjs_1.flowChart)('EmbedMessages', (0,
|
|
90
|
-
.addFunction('WriteMessages', (0,
|
|
89
|
+
const write = (0, footprintjs_1.flowChart)('EmbedMessages', (0, embedMessages_js_1.embedMessages)(embedConfig), 'embed-messages', { description: 'Embed newMessages into per-message vectors for vector search' })
|
|
90
|
+
.addFunction('WriteMessages', (0, writeMessages_js_1.writeMessages)(writeConfig), 'write-messages', 'Batch-persist messages with embeddings via store.putMany')
|
|
91
91
|
.build();
|
|
92
92
|
return { read, write };
|
|
93
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic.js","sourceRoot":"","sources":["../../../src/memory/pipeline/semantic.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,6CAAwC;AAExC
|
|
1
|
+
{"version":3,"file":"semantic.js","sourceRoot":"","sources":["../../../src/memory/pipeline/semantic.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,6CAAwC;AAExC,+DAAkF;AAClF,iEAAqF;AACrF,iEAAqF;AAKrF,kEAAqF;AACrF,oEAIuC;AA0CvC;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,MAA8B;IAC7D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,sEAAsE;YACpE,yEAAyE,CAC5E,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAuB;QACrC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;QACzE,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,SAAS,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;QAC9C,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QACnE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;KAC7C,CAAC;IACF,MAAM,UAAU,GAAuB;QACrC,GAAG,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;QAClF,GAAG,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;QAClF,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;KAC1E,CAAC;IACF,MAAM,YAAY,GAAwB;QACxC,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;QACzE,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;KAC1E,CAAC;IACF,MAAM,WAAW,GAAwB;QACvC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;KAC1E,CAAC;IACF,MAAM,WAAW,GAAwB;QACvC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QACnD,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;KACrE,CAAC;IAEF,+DAA+D;IAC/D,IAAI,WAAW,GAAG,IAAA,uBAAS,EACzB,cAAc,EACd,IAAA,8BAAY,EAAC,UAAU,CAAC,EACxB,eAAe,EACf,EAAE,WAAW,EAAE,4DAA4D,EAAE,CAC9E,CAAC;IACF,WAAW,GAAG,IAAA,8BAAY,EAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,WAAW;SACrB,WAAW,CACV,QAAQ,EACR,IAAA,gCAAa,EAAC,YAAY,CAAC,EAC3B,gBAAgB,EAChB,6CAA6C,CAC9C;SACA,KAAK,EAAE,CAAC;IAEX,kDAAkD;IAClD,MAAM,KAAK,GAAG,IAAA,uBAAS,EACrB,eAAe,EACf,IAAA,gCAAa,EAAC,WAAW,CAAC,EAC1B,gBAAgB,EAChB,EAAE,WAAW,EAAE,8DAA8D,EAAE,CAChF;SACE,WAAW,CACV,eAAe,EACf,IAAA,gCAAa,EAAC,WAAW,CAAC,EAC1B,gBAAgB,EAChB,0DAA0D,CAC3D;SACA,KAAK,EAAE,CAAC;IAEX,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC;AApED,4CAoEC"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.summarize = exports.countMessageTokens = exports.approximateTokenCounter = exports.formatDefault = exports.pickByBudget = exports.writeMessages = exports.loadRecent = void 0;
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "loadRecent", { enumerable: true, get: function () { return
|
|
6
|
-
var
|
|
7
|
-
Object.defineProperty(exports, "writeMessages", { enumerable: true, get: function () { return
|
|
8
|
-
var
|
|
9
|
-
Object.defineProperty(exports, "pickByBudget", { enumerable: true, get: function () { return
|
|
10
|
-
var
|
|
11
|
-
Object.defineProperty(exports, "formatDefault", { enumerable: true, get: function () { return
|
|
12
|
-
var
|
|
13
|
-
Object.defineProperty(exports, "approximateTokenCounter", { enumerable: true, get: function () { return
|
|
14
|
-
Object.defineProperty(exports, "countMessageTokens", { enumerable: true, get: function () { return
|
|
15
|
-
var
|
|
16
|
-
Object.defineProperty(exports, "summarize", { enumerable: true, get: function () { return
|
|
4
|
+
var loadRecent_js_1 = require("./loadRecent.js");
|
|
5
|
+
Object.defineProperty(exports, "loadRecent", { enumerable: true, get: function () { return loadRecent_js_1.loadRecent; } });
|
|
6
|
+
var writeMessages_js_1 = require("./writeMessages.js");
|
|
7
|
+
Object.defineProperty(exports, "writeMessages", { enumerable: true, get: function () { return writeMessages_js_1.writeMessages; } });
|
|
8
|
+
var pickByBudget_js_1 = require("./pickByBudget.js");
|
|
9
|
+
Object.defineProperty(exports, "pickByBudget", { enumerable: true, get: function () { return pickByBudget_js_1.pickByBudget; } });
|
|
10
|
+
var formatDefault_js_1 = require("./formatDefault.js");
|
|
11
|
+
Object.defineProperty(exports, "formatDefault", { enumerable: true, get: function () { return formatDefault_js_1.formatDefault; } });
|
|
12
|
+
var tokenize_js_1 = require("./tokenize.js");
|
|
13
|
+
Object.defineProperty(exports, "approximateTokenCounter", { enumerable: true, get: function () { return tokenize_js_1.approximateTokenCounter; } });
|
|
14
|
+
Object.defineProperty(exports, "countMessageTokens", { enumerable: true, get: function () { return tokenize_js_1.countMessageTokens; } });
|
|
15
|
+
var summarize_js_1 = require("./summarize.js");
|
|
16
|
+
Object.defineProperty(exports, "summarize", { enumerable: true, get: function () { return summarize_js_1.summarize; } });
|
|
17
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/memory/stages/index.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/memory/stages/index.ts"],"names":[],"mappings":";;;AACA,iDAA6C;AAApC,2GAAA,UAAU,OAAA;AAEnB,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AAEtB,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AAErB,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AAEtB,6CAA4E;AAAnE,sHAAA,uBAAuB,OAAA;AAAE,iHAAA,kBAAkB,OAAA;AAEpD,+CAA2C;AAAlC,yGAAA,SAAS,OAAA"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.pickByBudget = void 0;
|
|
4
4
|
const footprintjs_1 = require("footprintjs");
|
|
5
|
-
const
|
|
5
|
+
const tokenize_js_1 = require("./tokenize.js");
|
|
6
6
|
const DEFAULT_RESERVE = 256;
|
|
7
7
|
const DEFAULT_MINIMUM = 100;
|
|
8
8
|
/**
|
|
@@ -35,7 +35,7 @@ const skipStage = (scope) => {
|
|
|
35
35
|
/** The `pick` branch: greedy newest-first selection within budget. */
|
|
36
36
|
function buildPickStage(config) {
|
|
37
37
|
const reserveTokens = config.reserveTokens ?? DEFAULT_RESERVE;
|
|
38
|
-
const countTokens = config.countTokens ??
|
|
38
|
+
const countTokens = config.countTokens ?? tokenize_js_1.approximateTokenCounter;
|
|
39
39
|
const maxEntries = config.maxEntries;
|
|
40
40
|
return (scope) => {
|
|
41
41
|
const loaded = scope.loaded ?? [];
|
|
@@ -55,7 +55,7 @@ function buildPickStage(config) {
|
|
|
55
55
|
for (const entry of byNewest) {
|
|
56
56
|
if (maxEntries !== undefined && picked.length >= maxEntries)
|
|
57
57
|
break;
|
|
58
|
-
const cost = (0,
|
|
58
|
+
const cost = (0, tokenize_js_1.countMessageTokens)(entry.value, countTokens);
|
|
59
59
|
if (used + cost > budget)
|
|
60
60
|
continue; // skip this entry, try smaller ones
|
|
61
61
|
picked.push(entry);
|