@strands-agents/sdk 1.13.0 → 1.15.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/dist/src/agent/agent-as-tool.d.ts.map +1 -1
- package/dist/src/agent/agent-as-tool.js +8 -2
- package/dist/src/agent/agent-as-tool.js.map +1 -1
- package/dist/src/agent/agent-delegation.d.ts +9 -30
- package/dist/src/agent/agent-delegation.d.ts.map +1 -1
- package/dist/src/agent/agent-delegation.js +26 -98
- package/dist/src/agent/agent-delegation.js.map +1 -1
- package/dist/src/agent/agent.d.ts +49 -15
- package/dist/src/agent/agent.d.ts.map +1 -1
- package/dist/src/agent/agent.js +193 -60
- package/dist/src/agent/agent.js.map +1 -1
- package/dist/src/agent/continuation.d.ts +77 -0
- package/dist/src/agent/continuation.d.ts.map +1 -0
- package/dist/src/agent/continuation.js +167 -0
- package/dist/src/agent/continuation.js.map +1 -0
- package/dist/src/agent/tool-caller.d.ts.map +1 -1
- package/dist/src/agent/tool-caller.js +1 -0
- package/dist/src/agent/tool-caller.js.map +1 -1
- package/dist/src/background-tasks/errors.d.ts +8 -0
- package/dist/src/background-tasks/errors.d.ts.map +1 -0
- package/dist/src/background-tasks/errors.js +11 -0
- package/dist/src/background-tasks/errors.js.map +1 -0
- package/dist/src/background-tasks/in-process/engine.d.ts +96 -0
- package/dist/src/background-tasks/in-process/engine.d.ts.map +1 -0
- package/dist/src/background-tasks/in-process/engine.js +322 -0
- package/dist/src/background-tasks/in-process/engine.js.map +1 -0
- package/dist/src/background-tasks/in-process/types.d.ts +76 -0
- package/dist/src/background-tasks/in-process/types.d.ts.map +1 -0
- package/dist/src/background-tasks/in-process/types.js +2 -0
- package/dist/src/background-tasks/in-process/types.js.map +1 -0
- package/dist/src/context-manager/context-manager.d.ts +30 -0
- package/dist/src/context-manager/context-manager.d.ts.map +1 -0
- package/dist/src/context-manager/context-manager.js +89 -0
- package/dist/src/context-manager/context-manager.js.map +1 -0
- package/dist/src/context-manager/methods/summarize.d.ts +41 -0
- package/dist/src/context-manager/methods/summarize.d.ts.map +1 -0
- package/dist/src/context-manager/methods/summarize.js +108 -0
- package/dist/src/context-manager/methods/summarize.js.map +1 -0
- package/dist/src/context-manager/methods/truncate.d.ts +36 -0
- package/dist/src/context-manager/methods/truncate.d.ts.map +1 -0
- package/dist/src/context-manager/methods/truncate.js +86 -0
- package/dist/src/context-manager/methods/truncate.js.map +1 -0
- package/dist/src/context-manager/modes/agentic/agentic-context.d.ts +1 -2
- package/dist/src/context-manager/modes/agentic/agentic-context.d.ts.map +1 -1
- package/dist/src/context-manager/modes/agentic/agentic-context.js +6 -3
- package/dist/src/context-manager/modes/agentic/agentic-context.js.map +1 -1
- package/dist/src/context-manager/strategies/offload/base.d.ts +140 -0
- package/dist/src/context-manager/strategies/offload/base.d.ts.map +1 -0
- package/dist/src/context-manager/strategies/offload/base.js +376 -0
- package/dist/src/context-manager/strategies/offload/base.js.map +1 -0
- package/dist/src/context-manager/strategies/offload/drop.d.ts +19 -0
- package/dist/src/context-manager/strategies/offload/drop.d.ts.map +1 -0
- package/dist/src/context-manager/strategies/offload/drop.js +31 -0
- package/dist/src/context-manager/strategies/offload/drop.js.map +1 -0
- package/dist/src/context-manager/strategies/offload/index.d.ts +43 -0
- package/dist/src/context-manager/strategies/offload/index.d.ts.map +1 -0
- package/dist/src/context-manager/strategies/offload/index.js +37 -0
- package/dist/src/context-manager/strategies/offload/index.js.map +1 -0
- package/dist/src/context-manager/strategies/offload/summarize.d.ts +22 -0
- package/dist/src/context-manager/strategies/offload/summarize.d.ts.map +1 -0
- package/dist/src/context-manager/strategies/offload/summarize.js +104 -0
- package/dist/src/context-manager/strategies/offload/summarize.js.map +1 -0
- package/dist/src/context-manager/strategies/offload/truncate.d.ts +21 -0
- package/dist/src/context-manager/strategies/offload/truncate.d.ts.map +1 -0
- package/dist/src/context-manager/strategies/offload/truncate.js +66 -0
- package/dist/src/context-manager/strategies/offload/truncate.js.map +1 -0
- package/dist/src/context-manager/types.d.ts +50 -0
- package/dist/src/context-manager/types.d.ts.map +1 -0
- package/dist/src/context-manager/types.js +5 -0
- package/dist/src/context-manager/types.js.map +1 -0
- package/dist/src/hooks/events.d.ts +6 -5
- package/dist/src/hooks/events.d.ts.map +1 -1
- package/dist/src/hooks/events.js +5 -4
- package/dist/src/hooks/events.js.map +1 -1
- package/dist/src/hooks/types.d.ts +1 -0
- package/dist/src/hooks/types.d.ts.map +1 -1
- package/dist/src/hooks/types.js +1 -0
- package/dist/src/hooks/types.js.map +1 -1
- package/dist/src/index.d.ts +4 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/injection/message-injection.d.ts +12 -9
- package/dist/src/injection/message-injection.d.ts.map +1 -1
- package/dist/src/injection/message-injection.js +17 -16
- package/dist/src/injection/message-injection.js.map +1 -1
- package/dist/src/mcp/client.d.ts.map +1 -1
- package/dist/src/mcp/client.js +9 -0
- package/dist/src/mcp/client.js.map +1 -1
- package/dist/src/middleware/stages.d.ts +15 -2
- package/dist/src/middleware/stages.d.ts.map +1 -1
- package/dist/src/middleware/stages.js.map +1 -1
- package/dist/src/mime.d.ts +1 -0
- package/dist/src/mime.d.ts.map +1 -1
- package/dist/src/mime.js.map +1 -1
- package/dist/src/models/anthropic.d.ts +26 -1
- package/dist/src/models/anthropic.d.ts.map +1 -1
- package/dist/src/models/anthropic.js +178 -54
- package/dist/src/models/anthropic.js.map +1 -1
- package/dist/src/models/bedrock.d.ts +36 -17
- package/dist/src/models/bedrock.d.ts.map +1 -1
- package/dist/src/models/bedrock.js +166 -34
- package/dist/src/models/bedrock.js.map +1 -1
- package/dist/src/models/google/adapters.d.ts.map +1 -1
- package/dist/src/models/google/adapters.js +18 -4
- package/dist/src/models/google/adapters.js.map +1 -1
- package/dist/src/models/google/model.d.ts.map +1 -1
- package/dist/src/models/google/model.js +9 -7
- package/dist/src/models/google/model.js.map +1 -1
- package/dist/src/models/google/types.d.ts +2 -0
- package/dist/src/models/google/types.d.ts.map +1 -1
- package/dist/src/models/model.d.ts +72 -5
- package/dist/src/models/model.d.ts.map +1 -1
- package/dist/src/models/model.js +15 -0
- package/dist/src/models/model.js.map +1 -1
- package/dist/src/models/openai/cache.d.ts +31 -0
- package/dist/src/models/openai/cache.d.ts.map +1 -0
- package/dist/src/models/openai/cache.js +56 -0
- package/dist/src/models/openai/cache.js.map +1 -0
- package/dist/src/models/openai/chat-adapter.d.ts.map +1 -1
- package/dist/src/models/openai/chat-adapter.js +2 -0
- package/dist/src/models/openai/chat-adapter.js.map +1 -1
- package/dist/src/models/openai/model.d.ts.map +1 -1
- package/dist/src/models/openai/model.js +14 -3
- package/dist/src/models/openai/model.js.map +1 -1
- package/dist/src/models/openai/responses-adapter.d.ts.map +1 -1
- package/dist/src/models/openai/responses-adapter.js +3 -1
- package/dist/src/models/openai/responses-adapter.js.map +1 -1
- package/dist/src/models/openai/types.d.ts +5 -1
- package/dist/src/models/openai/types.d.ts.map +1 -1
- package/dist/src/models/routing/fallback-strategy.d.ts +13 -0
- package/dist/src/models/routing/fallback-strategy.d.ts.map +1 -0
- package/dist/src/models/routing/fallback-strategy.js +33 -0
- package/dist/src/models/routing/fallback-strategy.js.map +1 -0
- package/dist/src/models/routing/index.d.ts +11 -0
- package/dist/src/models/routing/index.d.ts.map +1 -0
- package/dist/src/models/routing/index.js +9 -0
- package/dist/src/models/routing/index.js.map +1 -0
- package/dist/src/models/routing/router.d.ts +161 -0
- package/dist/src/models/routing/router.d.ts.map +1 -0
- package/dist/src/models/routing/router.js +474 -0
- package/dist/src/models/routing/router.js.map +1 -0
- package/dist/src/models/routing/strategy.d.ts +53 -0
- package/dist/src/models/routing/strategy.d.ts.map +1 -0
- package/dist/src/models/routing/strategy.js +2 -0
- package/dist/src/models/routing/strategy.js.map +1 -0
- package/dist/src/models/streaming.d.ts +12 -0
- package/dist/src/models/streaming.d.ts.map +1 -1
- package/dist/src/models/streaming.js +17 -0
- package/dist/src/models/streaming.js.map +1 -1
- package/dist/src/multiagent/plugins.d.ts +3 -1
- package/dist/src/multiagent/plugins.d.ts.map +1 -1
- package/dist/src/multiagent/plugins.js +6 -1
- package/dist/src/multiagent/plugins.js.map +1 -1
- package/dist/src/plugins/registry.d.ts +3 -1
- package/dist/src/plugins/registry.d.ts.map +1 -1
- package/dist/src/plugins/registry.js +6 -1
- package/dist/src/plugins/registry.js.map +1 -1
- package/dist/src/retry/default-model-retry-strategy.d.ts +3 -8
- package/dist/src/retry/default-model-retry-strategy.d.ts.map +1 -1
- package/dist/src/retry/default-model-retry-strategy.js +3 -8
- package/dist/src/retry/default-model-retry-strategy.js.map +1 -1
- package/dist/src/retry/model-retry-strategy.d.ts +6 -9
- package/dist/src/retry/model-retry-strategy.d.ts.map +1 -1
- package/dist/src/retry/model-retry-strategy.js +8 -12
- package/dist/src/retry/model-retry-strategy.js.map +1 -1
- package/dist/src/session/session-manager.d.ts +4 -0
- package/dist/src/session/session-manager.d.ts.map +1 -1
- package/dist/src/session/session-manager.js +6 -0
- package/dist/src/session/session-manager.js.map +1 -1
- package/dist/src/storage/in-memory-storage.d.ts +8 -1
- package/dist/src/storage/in-memory-storage.d.ts.map +1 -1
- package/dist/src/storage/in-memory-storage.js +10 -0
- package/dist/src/storage/in-memory-storage.js.map +1 -1
- package/dist/src/storage/local-file-storage.d.ts +8 -1
- package/dist/src/storage/local-file-storage.d.ts.map +1 -1
- package/dist/src/storage/local-file-storage.js +10 -0
- package/dist/src/storage/local-file-storage.js.map +1 -1
- package/dist/src/storage/s3-storage.d.ts +8 -1
- package/dist/src/storage/s3-storage.d.ts.map +1 -1
- package/dist/src/storage/s3-storage.js +10 -0
- package/dist/src/storage/s3-storage.js.map +1 -1
- package/dist/src/storage/search/index.d.ts +13 -0
- package/dist/src/storage/search/index.d.ts.map +1 -0
- package/dist/src/storage/search/index.js +11 -0
- package/dist/src/storage/search/index.js.map +1 -0
- package/dist/src/storage/search/keyword.d.ts +23 -0
- package/dist/src/storage/search/keyword.d.ts.map +1 -0
- package/dist/src/storage/search/keyword.js +53 -0
- package/dist/src/storage/search/keyword.js.map +1 -0
- package/dist/src/storage/search/types.d.ts +24 -0
- package/dist/src/storage/search/types.d.ts.map +1 -0
- package/dist/src/storage/search/types.js +2 -0
- package/dist/src/storage/search/types.js.map +1 -0
- package/dist/src/storage/storage.d.ts +46 -1
- package/dist/src/storage/storage.d.ts.map +1 -1
- package/dist/src/storage/storage.js +22 -0
- package/dist/src/storage/storage.js.map +1 -1
- package/dist/src/telemetry/meter.d.ts +8 -6
- package/dist/src/telemetry/meter.d.ts.map +1 -1
- package/dist/src/telemetry/meter.js +8 -7
- package/dist/src/telemetry/meter.js.map +1 -1
- package/dist/src/telemetry/tracer.d.ts.map +1 -1
- package/dist/src/telemetry/tracer.js +9 -2
- package/dist/src/telemetry/tracer.js.map +1 -1
- package/dist/src/tools/executors/executor.d.ts +2 -0
- package/dist/src/tools/executors/executor.d.ts.map +1 -1
- package/dist/src/tools/executors/executor.js +6 -4
- package/dist/src/tools/executors/executor.js.map +1 -1
- package/dist/src/tools/executors/sequential.d.ts +1 -1
- package/dist/src/tools/executors/sequential.js +2 -2
- package/dist/src/tools/executors/sequential.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +2 -1
- package/dist/src/tools/mcp-tool.d.ts.map +1 -1
- package/dist/src/tools/mcp-tool.js +2 -1
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/tool.d.ts +2 -0
- package/dist/src/tools/tool.d.ts.map +1 -1
- package/dist/src/tools/tool.js.map +1 -1
- package/dist/src/tools/types.d.ts +8 -0
- package/dist/src/tools/types.d.ts.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types/agent.d.ts +14 -4
- package/dist/src/types/agent.d.ts.map +1 -1
- package/dist/src/types/agent.js +3 -2
- package/dist/src/types/agent.js.map +1 -1
- package/dist/src/types/media.d.ts +65 -3
- package/dist/src/types/media.d.ts.map +1 -1
- package/dist/src/types/media.js +68 -1
- package/dist/src/types/media.js.map +1 -1
- package/dist/src/types/messages.d.ts +6 -4
- package/dist/src/types/messages.d.ts.map +1 -1
- package/dist/src/types/messages.js +4 -1
- package/dist/src/types/messages.js.map +1 -1
- package/dist/src/vended-memory-stores/bedrock-knowledge-base/store.d.ts +11 -0
- package/dist/src/vended-memory-stores/bedrock-knowledge-base/store.d.ts.map +1 -1
- package/dist/src/vended-memory-stores/bedrock-knowledge-base/store.js +53 -3
- package/dist/src/vended-memory-stores/bedrock-knowledge-base/store.js.map +1 -1
- package/dist/src/vended-memory-stores/file-memory-store/index.d.ts +3 -0
- package/dist/src/vended-memory-stores/file-memory-store/index.d.ts.map +1 -0
- package/dist/src/vended-memory-stores/file-memory-store/index.js +2 -0
- package/dist/src/vended-memory-stores/file-memory-store/index.js.map +1 -0
- package/dist/src/vended-memory-stores/file-memory-store/store.d.ts +104 -0
- package/dist/src/vended-memory-stores/file-memory-store/store.d.ts.map +1 -0
- package/dist/src/vended-memory-stores/file-memory-store/store.js +237 -0
- package/dist/src/vended-memory-stores/file-memory-store/store.js.map +1 -0
- package/dist/src/vended-memory-stores/test-memory-store/store.d.ts.map +1 -1
- package/dist/src/vended-memory-stores/test-memory-store/store.js +2 -25
- package/dist/src/vended-memory-stores/test-memory-store/store.js.map +1 -1
- package/dist/src/vended-plugins/context-offloader/plugin.d.ts.map +1 -1
- package/dist/src/vended-plugins/context-offloader/plugin.js +2 -8
- package/dist/src/vended-plugins/context-offloader/plugin.js.map +1 -1
- package/dist/src/vended-tools/http-request/http-request.d.ts +1 -1
- package/dist/src/vended-tools/http-request/http-request.js +2 -2
- package/dist/src/vended-tools/http-request/http-request.js.map +1 -1
- package/dist/src/vended-tools/sleep/make-sleep.d.ts +4 -6
- package/dist/src/vended-tools/sleep/make-sleep.d.ts.map +1 -1
- package/dist/src/vended-tools/sleep/make-sleep.js +5 -7
- package/dist/src/vended-tools/sleep/make-sleep.js.map +1 -1
- package/package.json +16 -4
|
@@ -16,6 +16,35 @@ function toAttributeValue(value) {
|
|
|
16
16
|
}
|
|
17
17
|
return undefined;
|
|
18
18
|
}
|
|
19
|
+
/** Unwraps the `NumericValue` wrapper (aws/aws-sdk-js-v3#8246) to the stored number; anything else passes through. */
|
|
20
|
+
function fromAttributeValue(value) {
|
|
21
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
22
|
+
return value;
|
|
23
|
+
const { string: encoded, type } = value;
|
|
24
|
+
if (typeof encoded !== 'string' || type !== 'bigDecimal')
|
|
25
|
+
return value;
|
|
26
|
+
// Number('') and Number(' ') are 0, which would coerce a blank payload instead of preserving it.
|
|
27
|
+
if (encoded.trim() === '')
|
|
28
|
+
return value;
|
|
29
|
+
const parsed = Number(encoded);
|
|
30
|
+
return Number.isFinite(parsed) ? parsed : value;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Whether a retrieval score sits inside the configured `minScore` / `maxScore` bound.
|
|
34
|
+
*
|
|
35
|
+
* Unset bounds keep everything. A result the knowledge base did not score is also kept: there is
|
|
36
|
+
* nothing to compare it against, and a bound should not silently discard entries whose relevance is
|
|
37
|
+
* unknown.
|
|
38
|
+
*/
|
|
39
|
+
function passesScoreBound(score, minScore, maxScore) {
|
|
40
|
+
if (score == null)
|
|
41
|
+
return true;
|
|
42
|
+
if (minScore !== undefined)
|
|
43
|
+
return score >= minScore;
|
|
44
|
+
if (maxScore !== undefined)
|
|
45
|
+
return score <= maxScore;
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
19
48
|
/**
|
|
20
49
|
* A {@link MemoryStore} backed by Amazon Bedrock Knowledge Bases. Supports semantic search via
|
|
21
50
|
* Retrieve and document ingestion via IngestKnowledgeBaseDocuments for CUSTOM and S3 data sources.
|
|
@@ -48,6 +77,8 @@ export class BedrockKnowledgeBaseStore {
|
|
|
48
77
|
name;
|
|
49
78
|
description;
|
|
50
79
|
maxSearchResults;
|
|
80
|
+
minScore;
|
|
81
|
+
maxScore;
|
|
51
82
|
writable;
|
|
52
83
|
extraction;
|
|
53
84
|
_runtimeClient;
|
|
@@ -76,7 +107,7 @@ export class BedrockKnowledgeBaseStore {
|
|
|
76
107
|
/** Document-level access control entries stamped on every write, for ACL-aware data sources. */
|
|
77
108
|
accessControlList;
|
|
78
109
|
constructor(options) {
|
|
79
|
-
const { config, scope, name, description, writable, maxSearchResults, filter, extraction, accessControlList } = options;
|
|
110
|
+
const { config, scope, name, description, writable, maxSearchResults, minScore, maxScore, filter, extraction, accessControlList, } = options;
|
|
80
111
|
this.name = name;
|
|
81
112
|
if (description !== undefined)
|
|
82
113
|
this.description = description;
|
|
@@ -86,6 +117,13 @@ export class BedrockKnowledgeBaseStore {
|
|
|
86
117
|
}
|
|
87
118
|
this.maxSearchResults = maxSearchResults;
|
|
88
119
|
}
|
|
120
|
+
if (minScore !== undefined && maxScore !== undefined) {
|
|
121
|
+
throw new Error(`BedrockKnowledgeBaseStore: minScore and maxScore are mutually exclusive, but both are set (minScore=${minScore}, maxScore=${maxScore}).`);
|
|
122
|
+
}
|
|
123
|
+
if (minScore !== undefined)
|
|
124
|
+
this.minScore = minScore;
|
|
125
|
+
if (maxScore !== undefined)
|
|
126
|
+
this.maxScore = maxScore;
|
|
89
127
|
this.writable = writable ?? false;
|
|
90
128
|
if (extraction !== undefined)
|
|
91
129
|
this.extraction = extraction;
|
|
@@ -144,6 +182,11 @@ export class BedrockKnowledgeBaseStore {
|
|
|
144
182
|
* @returns Matching memory entries ordered by relevance. Each entry's `metadata` includes
|
|
145
183
|
* user-provided attributes plus two reserved synthetic keys: `_relevanceScore` (number) and
|
|
146
184
|
* `_sourceLocation` (Bedrock retrieval location object).
|
|
185
|
+
*
|
|
186
|
+
* When the store sets `minScore` or `maxScore`, results are filtered on that bound after the
|
|
187
|
+
* knowledge base retrieval, so fewer than `maxSearchResults` entries may come back, and a query
|
|
188
|
+
* the knowledge base has no good answer for can legitimately return none. A result the knowledge
|
|
189
|
+
* base did not score is kept.
|
|
147
190
|
*/
|
|
148
191
|
async search(query, options) {
|
|
149
192
|
if (options?.maxSearchResults !== undefined && options.maxSearchResults < 1) {
|
|
@@ -171,11 +214,14 @@ export class BedrockKnowledgeBaseStore {
|
|
|
171
214
|
logger.error(`store=<${this.name}>, knowledgeBaseId=<${this._knowledgeBaseId}>, error=<${error}> | knowledge base retrieve failed`, error);
|
|
172
215
|
throw error;
|
|
173
216
|
}
|
|
174
|
-
|
|
217
|
+
const results = response.retrievalResults ?? [];
|
|
218
|
+
const entries = results
|
|
219
|
+
.filter((result) => passesScoreBound(result.score, this.minScore, this.maxScore))
|
|
220
|
+
.map((result) => {
|
|
175
221
|
const metadata = {};
|
|
176
222
|
if (result.metadata) {
|
|
177
223
|
for (const [key, value] of Object.entries(result.metadata)) {
|
|
178
|
-
metadata[key] = value;
|
|
224
|
+
metadata[key] = fromAttributeValue(value);
|
|
179
225
|
}
|
|
180
226
|
}
|
|
181
227
|
if (result.location) {
|
|
@@ -189,6 +235,10 @@ export class BedrockKnowledgeBaseStore {
|
|
|
189
235
|
metadata,
|
|
190
236
|
};
|
|
191
237
|
});
|
|
238
|
+
if (this.minScore !== undefined || this.maxScore !== undefined) {
|
|
239
|
+
logger.debug(`store=<${this.name}>, minScore=<${this.minScore}>, maxScore=<${this.maxScore}>, retrieved=<${results.length}>, kept=<${entries.length}> | score bound applied`);
|
|
240
|
+
}
|
|
241
|
+
return entries;
|
|
192
242
|
}
|
|
193
243
|
/**
|
|
194
244
|
* Ingests `content` (with optional `metadata`) into the knowledge base.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/vended-memory-stores/bedrock-knowledge-base/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/vended-memory-stores/bedrock-knowledge-base/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/vended-memory-stores/file-memory-store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,YAAY,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/vended-memory-stores/file-memory-store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File-based memory store implementing the {@link MemoryStore} interface.
|
|
3
|
+
*
|
|
4
|
+
* Stores knowledge as markdown files under a `memory/` storage namespace. Provides keyword-based
|
|
5
|
+
* search via `search_memory` (registered by {@link MemoryManager}).
|
|
6
|
+
*/
|
|
7
|
+
import type { MemoryEntry, MemoryStore, MemoryStoreConfig, SearchOptions } from '../../memory/types.js';
|
|
8
|
+
import type { ExtractionConfig } from '../../memory/extraction/types.js';
|
|
9
|
+
import type { JSONValue } from '../../types/json.js';
|
|
10
|
+
import type { Storage } from '../../storage/storage.js';
|
|
11
|
+
import type { Model } from '../../models/model.js';
|
|
12
|
+
/**
|
|
13
|
+
* Configuration for {@link FileMemoryStore}.
|
|
14
|
+
*/
|
|
15
|
+
export interface FileMemoryStoreConfig extends MemoryStoreConfig {
|
|
16
|
+
/**
|
|
17
|
+
* The unified Storage backend for file operations. Defaults to LocalFileStorage at `./.strands/`.
|
|
18
|
+
* Keys are auto-scoped under `memory/<name>/` unless the provided storage is already namespaced, so
|
|
19
|
+
* stores with distinct names safely share one backend. Two stores with the same name on the same
|
|
20
|
+
* backend share storage — give them different names (or separate storage) to isolate them.
|
|
21
|
+
*/
|
|
22
|
+
storage?: Storage;
|
|
23
|
+
/**
|
|
24
|
+
* Automatic-extraction config. Accepts the shared {@link ExtractionConfig} (trigger/extractor/filter)
|
|
25
|
+
* plus `model` and `systemPrompt` knobs for the built-in key-aware extractor — see
|
|
26
|
+
* {@link FileMemoryExtractionConfig}.
|
|
27
|
+
*/
|
|
28
|
+
extraction?: boolean | FileMemoryExtractionConfig;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Extraction config for {@link FileMemoryStore}: the shared {@link ExtractionConfig} plus knobs for the
|
|
32
|
+
* store's built-in key-aware extractor. `model` and `systemPrompt` are ignored when an `extractor` is
|
|
33
|
+
* supplied — a custom extractor brings its own model and prompt.
|
|
34
|
+
*/
|
|
35
|
+
export interface FileMemoryExtractionConfig extends ExtractionConfig {
|
|
36
|
+
/** Model the built-in extractor uses to distill facts. Defaults to the agent's own model; set a cheaper one to cut cost. */
|
|
37
|
+
model?: Model;
|
|
38
|
+
/**
|
|
39
|
+
* Framing that steers what counts as a durable fact, replacing the default guidance. The store always
|
|
40
|
+
* appends its own output contract (JSON array shape and heading-first layout) after it, so extraction
|
|
41
|
+
* stays parseable and append-on-topic keeps grouping — you retune what is extracted, not its structure.
|
|
42
|
+
*/
|
|
43
|
+
systemPrompt?: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* A file-based memory store backed by the unified {@link Storage} interface.
|
|
47
|
+
*
|
|
48
|
+
* Implements {@link MemoryStore} for use with {@link MemoryManager}. Knowledge is stored as plain
|
|
49
|
+
* markdown files under a `memory/` storage namespace. Retrieval uses keyword-based token-overlap
|
|
50
|
+
* scoring against filename and body content.
|
|
51
|
+
*
|
|
52
|
+
* The storage backend defaults to {@link LocalFileStorage}. Keys are auto-scoped under
|
|
53
|
+
* `memory/<name>/` (so a store named `agent-memory` with the default backend writes to
|
|
54
|
+
* `./.strands/memory/agent-memory/`).
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* import { Agent, MemoryManager } from '@strands-agents/sdk'
|
|
59
|
+
* import { FileMemoryStore } from '@strands-agents/sdk/vended-memory-stores/file-memory-store'
|
|
60
|
+
*
|
|
61
|
+
* const memoryStore = new FileMemoryStore({ name: 'agent-memory' })
|
|
62
|
+
*
|
|
63
|
+
* const agent = new Agent({
|
|
64
|
+
* model,
|
|
65
|
+
* memoryManager: new MemoryManager({ stores: [memoryStore], injection: false }),
|
|
66
|
+
* })
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export declare class FileMemoryStore implements MemoryStore {
|
|
70
|
+
readonly name: string;
|
|
71
|
+
readonly writable: boolean;
|
|
72
|
+
readonly description?: string;
|
|
73
|
+
readonly maxSearchResults?: number;
|
|
74
|
+
readonly extraction?: boolean | ExtractionConfig;
|
|
75
|
+
private readonly _storage;
|
|
76
|
+
private readonly _writeLocks;
|
|
77
|
+
constructor(config: FileMemoryStoreConfig);
|
|
78
|
+
private _resolveExtraction;
|
|
79
|
+
private _resolveStorage;
|
|
80
|
+
/**
|
|
81
|
+
* Search knowledge files by delegating to the storage backend's `search()` when available,
|
|
82
|
+
* or falling back to a local keyword token-overlap scan.
|
|
83
|
+
*
|
|
84
|
+
* @param query - Natural-language search query
|
|
85
|
+
* @param options - Optional search configuration (e.g. maxSearchResults)
|
|
86
|
+
* @returns Top matches ranked by relevance.
|
|
87
|
+
*/
|
|
88
|
+
search(query: string, options?: SearchOptions): Promise<MemoryEntry[]>;
|
|
89
|
+
private _keywordSearch;
|
|
90
|
+
/**
|
|
91
|
+
* Add a knowledge entry to the store.
|
|
92
|
+
*
|
|
93
|
+
* The filename is derived from the first line of content (slugified, truncated to 50 chars).
|
|
94
|
+
* If a file with the same slug already exists, new facts (lines after the heading) are appended
|
|
95
|
+
* to it rather than overwriting. This keeps extraction token-cheap (only headings are injected
|
|
96
|
+
* into the prompt) while avoiding data loss on repeated topics.
|
|
97
|
+
*
|
|
98
|
+
* @param content - The knowledge content to store
|
|
99
|
+
* @param _metadata - Unused; accepted for interface compatibility with the ExtractionCoordinator
|
|
100
|
+
* @returns The canonical storage key the entry was written under
|
|
101
|
+
*/
|
|
102
|
+
add(content: string, _metadata?: Record<string, JSONValue>): Promise<string>;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/vended-memory-stores/file-memory-store/store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACvG,OAAO,KAAK,EAAE,gBAAgB,EAAiD,MAAM,kCAAkC,CAAA;AACvH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAElD;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,GAAG,0BAA0B,CAAA;CAClD;AAED;;;;GAIG;AACH,MAAM,WAAW,0BAA2B,SAAQ,gBAAgB;IAClE,4HAA4H;IAC5H,KAAK,CAAC,EAAE,KAAK,CAAA;IACb;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AA8ED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAA;IAEhD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqC;gBAErD,MAAM,EAAE,qBAAqB;IAUzC,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,eAAe;IAIvB;;;;;;;OAOG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAqB9D,cAAc;IAsC5B;;;;;;;;;;;OAWG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CAgCnF"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File-based memory store implementing the {@link MemoryStore} interface.
|
|
3
|
+
*
|
|
4
|
+
* Stores knowledge as markdown files under a `memory/` storage namespace. Provides keyword-based
|
|
5
|
+
* search via `search_memory` (registered by {@link MemoryManager}).
|
|
6
|
+
*/
|
|
7
|
+
import { LocalFileStorage } from '../../storage/local-file-storage.js';
|
|
8
|
+
import { ModelExtractor } from '../../memory/extraction/model-extractor.js';
|
|
9
|
+
import { normalizeKey, resolveNamespace } from '../../storage/storage.js';
|
|
10
|
+
import { tokenize, tokenOverlapScore } from '../../storage/search/keyword.js';
|
|
11
|
+
import { logger } from '../../logging/logger.js';
|
|
12
|
+
/** Overridable framing (via {@link FileMemoryExtractionConfig.systemPrompt}) for what to extract. */
|
|
13
|
+
const DEFAULT_EXTRACTION_GUIDANCE = `You extract durable facts worth remembering across future conversations from a transcript.`;
|
|
14
|
+
/**
|
|
15
|
+
* Output contract the store owns and always appends after the (possibly overridden) guidance: the JSON
|
|
16
|
+
* array shape {@link ModelExtractor} parses and the heading-first layout {@link FileMemoryStore.add}
|
|
17
|
+
* slugifies to group facts. Appending it lets an overridden prompt retune guidance without breaking
|
|
18
|
+
* parsing or append-on-topic.
|
|
19
|
+
*/
|
|
20
|
+
const EXTRACTION_CONTRACT = `Return ONLY a JSON array of objects: {"content": string}.
|
|
21
|
+
|
|
22
|
+
Group related facts into a single entry. The first line is a markdown heading (e.g. "# User preferences", "# Project setup", "# Team conventions"). Put each fact on its own line below the heading.
|
|
23
|
+
|
|
24
|
+
If there is nothing worth remembering, return [].`;
|
|
25
|
+
const DEFAULT_MAX_SEARCH_RESULTS = 10;
|
|
26
|
+
const STORAGE_NAMESPACE = 'memory';
|
|
27
|
+
/** Cap concurrent reads to avoid throttling on remote storage backends (e.g. S3). */
|
|
28
|
+
const BATCH_SIZE = 8;
|
|
29
|
+
const encoder = new TextEncoder();
|
|
30
|
+
const decoder = new TextDecoder();
|
|
31
|
+
/** Extract the filename stem (without `.md` extension) from a storage key. */
|
|
32
|
+
function basename(key) {
|
|
33
|
+
const filename = key.split('/').pop() ?? key;
|
|
34
|
+
return filename.replace(/\.md$/, '');
|
|
35
|
+
}
|
|
36
|
+
/** Convert text to a URL-safe kebab-case slug, truncated to 50 characters. */
|
|
37
|
+
function slugify(text) {
|
|
38
|
+
return text
|
|
39
|
+
.toLowerCase()
|
|
40
|
+
.replace(/[^a-z0-9\s-]/g, '')
|
|
41
|
+
.trim()
|
|
42
|
+
.replace(/\s+/g, '-')
|
|
43
|
+
.slice(0, 50)
|
|
44
|
+
.replace(/-+$/, '');
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Creates an {@link Extractor} that injects the store's existing topic headings into the extraction
|
|
48
|
+
* prompt so the model reuses them, keeping related facts in one entry instead of fragmenting.
|
|
49
|
+
*
|
|
50
|
+
* Headings are read via `storage.list`, so this must be the store's own namespaced storage.
|
|
51
|
+
*
|
|
52
|
+
* @param storage - Storage the entries live under, listed to derive existing headings
|
|
53
|
+
* @param model - Model used to extract facts. Defaults to the agent's own model; set a cheaper one to cut cost.
|
|
54
|
+
* @param systemPrompt - Framing for what to extract, replacing {@link DEFAULT_EXTRACTION_GUIDANCE}. The
|
|
55
|
+
* {@link EXTRACTION_CONTRACT} is always appended after it.
|
|
56
|
+
* @returns An extractor that reuses existing topic headings.
|
|
57
|
+
*/
|
|
58
|
+
function createKeyAwareExtractor(storage, model, systemPrompt) {
|
|
59
|
+
return {
|
|
60
|
+
async extract(messages, context) {
|
|
61
|
+
const existingKeys = await storage.list('');
|
|
62
|
+
const headings = existingKeys.map((key) => basename(key).replace(/-/g, ' '));
|
|
63
|
+
const framing = systemPrompt ?? DEFAULT_EXTRACTION_GUIDANCE;
|
|
64
|
+
let composedPrompt = `${framing}\n\n${EXTRACTION_CONTRACT}`;
|
|
65
|
+
if (headings.length > 0) {
|
|
66
|
+
composedPrompt += `\n\nExisting topics: ${headings.join(', ')}. Reuse an existing topic heading when new facts belong to it.`;
|
|
67
|
+
}
|
|
68
|
+
return new ModelExtractor({ systemPrompt: composedPrompt, ...(model !== undefined && { model }) }).extract(messages, context);
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* A file-based memory store backed by the unified {@link Storage} interface.
|
|
74
|
+
*
|
|
75
|
+
* Implements {@link MemoryStore} for use with {@link MemoryManager}. Knowledge is stored as plain
|
|
76
|
+
* markdown files under a `memory/` storage namespace. Retrieval uses keyword-based token-overlap
|
|
77
|
+
* scoring against filename and body content.
|
|
78
|
+
*
|
|
79
|
+
* The storage backend defaults to {@link LocalFileStorage}. Keys are auto-scoped under
|
|
80
|
+
* `memory/<name>/` (so a store named `agent-memory` with the default backend writes to
|
|
81
|
+
* `./.strands/memory/agent-memory/`).
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* import { Agent, MemoryManager } from '@strands-agents/sdk'
|
|
86
|
+
* import { FileMemoryStore } from '@strands-agents/sdk/vended-memory-stores/file-memory-store'
|
|
87
|
+
*
|
|
88
|
+
* const memoryStore = new FileMemoryStore({ name: 'agent-memory' })
|
|
89
|
+
*
|
|
90
|
+
* const agent = new Agent({
|
|
91
|
+
* model,
|
|
92
|
+
* memoryManager: new MemoryManager({ stores: [memoryStore], injection: false }),
|
|
93
|
+
* })
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export class FileMemoryStore {
|
|
97
|
+
name;
|
|
98
|
+
writable;
|
|
99
|
+
description;
|
|
100
|
+
maxSearchResults;
|
|
101
|
+
extraction;
|
|
102
|
+
_storage;
|
|
103
|
+
_writeLocks = new Map();
|
|
104
|
+
constructor(config) {
|
|
105
|
+
this.name = config.name;
|
|
106
|
+
this.writable = config.writable ?? true;
|
|
107
|
+
if (config.description !== undefined)
|
|
108
|
+
this.description = config.description;
|
|
109
|
+
if (config.maxSearchResults !== undefined)
|
|
110
|
+
this.maxSearchResults = config.maxSearchResults;
|
|
111
|
+
this._storage = this._resolveStorage(config.storage ?? new LocalFileStorage());
|
|
112
|
+
const extraction = this._resolveExtraction(config);
|
|
113
|
+
if (extraction !== undefined)
|
|
114
|
+
this.extraction = extraction;
|
|
115
|
+
}
|
|
116
|
+
_resolveExtraction(config) {
|
|
117
|
+
if (!config.extraction)
|
|
118
|
+
return config.extraction;
|
|
119
|
+
if (config.extraction === true) {
|
|
120
|
+
return { extractor: createKeyAwareExtractor(this._storage) };
|
|
121
|
+
}
|
|
122
|
+
const { model, systemPrompt, ...rest } = config.extraction;
|
|
123
|
+
if (rest.extractor)
|
|
124
|
+
return rest;
|
|
125
|
+
return { ...rest, extractor: createKeyAwareExtractor(this._storage, model, systemPrompt) };
|
|
126
|
+
}
|
|
127
|
+
_resolveStorage(storage) {
|
|
128
|
+
return resolveNamespace(storage, `${STORAGE_NAMESPACE}/${this.name}`);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Search knowledge files by delegating to the storage backend's `search()` when available,
|
|
132
|
+
* or falling back to a local keyword token-overlap scan.
|
|
133
|
+
*
|
|
134
|
+
* @param query - Natural-language search query
|
|
135
|
+
* @param options - Optional search configuration (e.g. maxSearchResults)
|
|
136
|
+
* @returns Top matches ranked by relevance.
|
|
137
|
+
*/
|
|
138
|
+
async search(query, options) {
|
|
139
|
+
const maxResults = options?.maxSearchResults ?? this.maxSearchResults ?? DEFAULT_MAX_SEARCH_RESULTS;
|
|
140
|
+
if (this._storage.search) {
|
|
141
|
+
const results = await this._storage.search(query);
|
|
142
|
+
const entries = [];
|
|
143
|
+
for (const result of results.slice(0, maxResults)) {
|
|
144
|
+
const bytes = await this._storage.read(result.key);
|
|
145
|
+
if (bytes) {
|
|
146
|
+
entries.push({
|
|
147
|
+
content: decoder.decode(bytes).trim(),
|
|
148
|
+
metadata: { path: result.key, score: result.score },
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return entries;
|
|
153
|
+
}
|
|
154
|
+
return this._keywordSearch(query, maxResults);
|
|
155
|
+
}
|
|
156
|
+
async _keywordSearch(query, maxResults) {
|
|
157
|
+
const queryTokens = tokenize(query);
|
|
158
|
+
if (queryTokens.size === 0)
|
|
159
|
+
return [];
|
|
160
|
+
const allKeys = await this._storage.list('');
|
|
161
|
+
const scored = [];
|
|
162
|
+
for (let offset = 0; offset < allKeys.length; offset += BATCH_SIZE) {
|
|
163
|
+
const batch = await Promise.all(allKeys.slice(offset, offset + BATCH_SIZE).map(async (key) => {
|
|
164
|
+
try {
|
|
165
|
+
const bytes = await this._storage.read(key);
|
|
166
|
+
if (!bytes)
|
|
167
|
+
return null;
|
|
168
|
+
const body = decoder.decode(bytes);
|
|
169
|
+
const searchable = `${basename(key)} ${body}`;
|
|
170
|
+
const relevanceScore = tokenOverlapScore(queryTokens, searchable);
|
|
171
|
+
if (relevanceScore === 0)
|
|
172
|
+
return null;
|
|
173
|
+
return {
|
|
174
|
+
entry: { content: body.trim(), metadata: { path: key, score: relevanceScore } },
|
|
175
|
+
relevanceScore,
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
logger.debug(`key=<${key}> | skipped unreadable memory entry: ${error}`);
|
|
180
|
+
return null;
|
|
181
|
+
}
|
|
182
|
+
}));
|
|
183
|
+
for (const result of batch) {
|
|
184
|
+
if (result)
|
|
185
|
+
scored.push(result);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
scored.sort((a, b) => b.relevanceScore - a.relevanceScore);
|
|
189
|
+
return scored.slice(0, maxResults).map((s) => s.entry);
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Add a knowledge entry to the store.
|
|
193
|
+
*
|
|
194
|
+
* The filename is derived from the first line of content (slugified, truncated to 50 chars).
|
|
195
|
+
* If a file with the same slug already exists, new facts (lines after the heading) are appended
|
|
196
|
+
* to it rather than overwriting. This keeps extraction token-cheap (only headings are injected
|
|
197
|
+
* into the prompt) while avoiding data loss on repeated topics.
|
|
198
|
+
*
|
|
199
|
+
* @param content - The knowledge content to store
|
|
200
|
+
* @param _metadata - Unused; accepted for interface compatibility with the ExtractionCoordinator
|
|
201
|
+
* @returns The canonical storage key the entry was written under
|
|
202
|
+
*/
|
|
203
|
+
async add(content, _metadata) {
|
|
204
|
+
const lines = content.split(/\n/);
|
|
205
|
+
const firstLine = lines[0].replace(/^#+\s*/, '');
|
|
206
|
+
const key = `${slugify(firstLine) || `entry-${Date.now()}`}.md`;
|
|
207
|
+
const canonicalKey = normalizeKey(key).toLowerCase();
|
|
208
|
+
// Serialize writes per key to prevent lost-update from concurrent read-modify-write
|
|
209
|
+
const prev = this._writeLocks.get(canonicalKey) ?? Promise.resolve('');
|
|
210
|
+
const current = prev
|
|
211
|
+
.catch(() => { })
|
|
212
|
+
.then(async () => {
|
|
213
|
+
const existing = await this._storage.read(canonicalKey);
|
|
214
|
+
let merged;
|
|
215
|
+
if (existing) {
|
|
216
|
+
const existingContent = decoder.decode(existing);
|
|
217
|
+
const newFacts = lines.slice(1).join('\n').trim();
|
|
218
|
+
merged = newFacts ? `${existingContent.trimEnd()}\n${newFacts}` : existingContent;
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
merged = content;
|
|
222
|
+
}
|
|
223
|
+
await this._storage.write(canonicalKey, encoder.encode(merged));
|
|
224
|
+
return canonicalKey;
|
|
225
|
+
});
|
|
226
|
+
this._writeLocks.set(canonicalKey, current);
|
|
227
|
+
try {
|
|
228
|
+
return await current;
|
|
229
|
+
}
|
|
230
|
+
finally {
|
|
231
|
+
if (this._writeLocks.get(canonicalKey) === current) {
|
|
232
|
+
this._writeLocks.delete(canonicalKey);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/vended-memory-stores/file-memory-store/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/vended-memory-stores/test-memory-store/store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACvG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAoBpD;;;;;GAKG;AACH,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAA;CACX;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/vended-memory-stores/test-memory-store/store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACvG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAoBpD;;;;;GAKG;AACH,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAA;CACX;AAcD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAA;IAEhD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,6GAA6G;IAC7G,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD;;;;OAIG;IACH,OAAO,CAAC,SAAS,CAA+C;IAChE,2FAA2F;IAC3F,OAAO,CAAC,WAAW,CAAsC;gBAE7C,OAAO,EAAE,qBAAqB;IAyB1C;;;;;;;;;;;;OAYG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA2B5E;;;;;;;;;;;;;;OAcG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAiC9F;;;;;OAKG;YACW,QAAQ;IAqBtB;;;;;;;OAOG;YACW,KAAK;IA4CnB;;;;OAIG;YACW,MAAM;CAKrB"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { v7 as uuidv7 } from 'uuid';
|
|
2
2
|
import { InMemoryStorage } from '../../storage/in-memory-storage.js';
|
|
3
3
|
import { LocalFileStorage } from '../../storage/local-file-storage.js';
|
|
4
|
-
|
|
4
|
+
import { tokenize, tokenOverlapScore } from '../../storage/search/keyword.js';
|
|
5
5
|
/**
|
|
6
6
|
* Metadata key holding the token-overlap relevance score on a search result.
|
|
7
7
|
*/
|
|
8
|
+
const DEFAULT_MAX_SEARCH_RESULTS = 10;
|
|
8
9
|
const RELEVANCE_SCORE_KEY = '_relevanceScore';
|
|
9
10
|
/**
|
|
10
11
|
* Sanitizes a store name into a safe single-path-segment filename.
|
|
@@ -17,30 +18,6 @@ function sanitizeName(name) {
|
|
|
17
18
|
.replace(/[/\\]/g, '_')
|
|
18
19
|
.replace(/[^\w\-.]/g, '_');
|
|
19
20
|
}
|
|
20
|
-
/**
|
|
21
|
-
* Lowercases and splits text into a set of word tokens, dropping empties. Splits on any run of
|
|
22
|
-
* characters that are not Unicode letters, numbers, or underscore. Ensures cross-SDK consistent
|
|
23
|
-
* tokenization.
|
|
24
|
-
*/
|
|
25
|
-
function tokenize(text) {
|
|
26
|
-
return new Set(text
|
|
27
|
-
.toLowerCase()
|
|
28
|
-
.split(/[^\p{L}\p{N}_]+/u)
|
|
29
|
-
.filter(Boolean));
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Lexical relevance score for one record: the number of distinct query tokens that appear in the
|
|
33
|
-
* record's content. A higher count means more of the query's words are present. Returns 0 when there
|
|
34
|
-
* is no overlap.
|
|
35
|
-
*/
|
|
36
|
-
function tokenOverlapScore(queryTokens, content) {
|
|
37
|
-
let score = 0;
|
|
38
|
-
for (const token of tokenize(content)) {
|
|
39
|
-
if (queryTokens.has(token))
|
|
40
|
-
score++;
|
|
41
|
-
}
|
|
42
|
-
return score;
|
|
43
|
-
}
|
|
44
21
|
/**
|
|
45
22
|
* A zero-infrastructure store {@link MemoryStore} that keeps entries in memory and by default
|
|
46
23
|
* persists them to a local JSON file. Use for prototyping and testing.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/vended-memory-stores/test-memory-store/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/vended-memory-stores/test-memory-store/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/vended-plugins/context-offloader/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,KAAK,EAAE,IAAI,EAAe,MAAM,qBAAqB,CAAA;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAWtD,OAAO,EAAyD,KAAK,OAAO,IAAI,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACtH,OAAO,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/vended-plugins/context-offloader/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,KAAK,EAAE,IAAI,EAAe,MAAM,qBAAqB,CAAA;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAWtD,OAAO,EAAyD,KAAK,OAAO,IAAI,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACtH,OAAO,EAAoB,KAAK,OAAO,EAAE,MAAM,0BAA0B,CAAA;AA0IzE,6DAA6D;AAC7D,MAAM,WAAW,sBAAsB;IACrC;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAA;IACpC,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mFAAmF;IACnF,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,gBAAiB,YAAW,MAAM;IAC7C,QAAQ,CAAC,IAAI,+BAA8B;IAE3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAK;IAExD,OAAO,CAAC,mBAAmB,CAAuD;IAClF,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAe;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwD;IACxF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IACzD,OAAO,CAAC,cAAc,CAAkB;gBAE5B,MAAM,EAAE,sBAAsB;IAuB1C,OAAO,CAAC,qBAAqB;IAY7B,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAoBlC,OAAO,CAAC,MAAM;IAiBd,QAAQ,IAAI,IAAI,EAAE;IAMlB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,oBAAoB;YAmDd,WAAW;IAkCzB,OAAO,CAAC,iBAAiB;YAiCX,iBAAiB;CAwEhC"}
|