@mastra/memory 1.28.0 → 1.28.1-alpha.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/CHANGELOG.md +11 -0
- package/LICENSE.md +6 -4
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/docs/references/docs-agents-human-in-the-loop.md +2 -0
- package/dist/docs/references/docs-agents-networks.md +2 -0
- package/dist/docs/references/docs-evals-evals-with-memory.md +2 -0
- package/dist/docs/references/docs-guides-context-engineering.md +2 -0
- package/dist/docs/references/docs-harness-background-tasks.md +2 -0
- package/dist/docs/references/docs-harness-goals.md +2 -0
- package/dist/docs/references/docs-memory-memory-processors.md +2 -0
- package/dist/docs/references/docs-memory-message-history.md +2 -0
- package/dist/docs/references/docs-memory-multi-user-threads.md +2 -0
- package/dist/docs/references/docs-memory-observational-memory.md +2 -0
- package/dist/docs/references/docs-memory-overview.md +2 -0
- package/dist/docs/references/docs-memory-semantic-recall.md +2 -0
- package/dist/docs/references/docs-memory-working-memory.md +2 -0
- package/dist/docs/references/docs-storage.md +2 -0
- package/dist/docs/references/docs-subagents.md +2 -0
- package/dist/docs/references/integrations-channels-github.md +2 -0
- package/dist/docs/references/integrations-databases-aurora-dsql.md +2 -0
- package/dist/docs/references/integrations-databases-dynamodb.md +2 -0
- package/dist/docs/references/integrations-databases-elasticsearch.md +2 -0
- package/dist/docs/references/integrations-databases-libsql.md +2 -0
- package/dist/docs/references/integrations-databases-mongodb.md +2 -0
- package/dist/docs/references/integrations-databases-oracledb.md +2 -0
- package/dist/docs/references/integrations-databases-postgresql.md +2 -0
- package/dist/docs/references/integrations-databases-redis.md +2 -0
- package/dist/docs/references/integrations-databases-upstash.md +2 -0
- package/dist/docs/references/integrations-databases-valkey.md +2 -0
- package/dist/docs/references/reference-core-getMemory.md +2 -0
- package/dist/docs/references/reference-core-listMemory.md +2 -0
- package/dist/docs/references/reference-file-based-agents-memory.md +2 -0
- package/dist/docs/references/reference-memory-clone-utilities.md +2 -0
- package/dist/docs/references/reference-memory-cloneThread.md +2 -0
- package/dist/docs/references/reference-memory-createThread.md +2 -0
- package/dist/docs/references/reference-memory-getThreadById.md +2 -0
- package/dist/docs/references/reference-memory-listThreads.md +2 -0
- package/dist/docs/references/reference-memory-memory-class.md +2 -0
- package/dist/docs/references/reference-memory-observational-memory.md +2 -0
- package/dist/docs/references/reference-memory-settled.md +2 -0
- package/dist/docs/references/reference-memory-summarizeConversation.md +2 -0
- package/dist/docs/references/reference-memory-summarizeThread.md +2 -0
- package/dist/docs/references/reference-migrations-agentnetwork.md +2 -0
- package/dist/docs/references/reference-migrations-upgrade-to-v1-memory.md +2 -0
- package/dist/docs/references/reference-processors-token-limiter-processor.md +2 -0
- package/dist/docs/references/reference-vectors-libsql.md +2 -0
- package/dist/docs/references/reference-vectors-mongodb.md +2 -0
- package/dist/docs/references/reference-vectors-oracledb.md +2 -0
- package/dist/docs/references/reference-vectors-pg.md +2 -0
- package/dist/docs/references/reference-vectors-upstash.md +2 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/processors/index.cjs +1 -1
- package/dist/processors/index.js +1 -1
- package/dist/processors/observational-memory/subconscious/curate.d.ts.map +1 -1
- package/dist/processors/observational-memory/subconscious/index.d.ts.map +1 -1
- package/dist/processors/observational-memory/subconscious/knowledge-write-tools.d.ts.map +1 -1
- package/dist/processors/observational-memory/subconscious/learn.d.ts.map +1 -1
- package/dist/{src-C7Ozl6Pf.cjs → src-BWo0fcaP.cjs} +24 -9
- package/dist/src-BWo0fcaP.cjs.map +1 -0
- package/dist/{src-BATJenuZ.js → src-BsEVZAdq.js} +24 -9
- package/dist/src-BsEVZAdq.js.map +1 -0
- package/package.json +7 -7
- package/dist/src-BATJenuZ.js.map +0 -1
- package/dist/src-C7Ozl6Pf.cjs.map +0 -1
|
@@ -16144,7 +16144,7 @@ function createKnowledgeWriteTools(memory, options) {
|
|
|
16144
16144
|
}),
|
|
16145
16145
|
knowledge_update_node: createTool({
|
|
16146
16146
|
id: "knowledge_update_node",
|
|
16147
|
-
description: "Update a visible node name or kind using optimistic concurrency.",
|
|
16147
|
+
description: "Update a visible node name or kind using optimistic concurrency. Provide at least one of name or kind.",
|
|
16148
16148
|
inputSchema: {
|
|
16149
16149
|
type: "object",
|
|
16150
16150
|
properties: {
|
|
@@ -16166,11 +16166,11 @@ function createKnowledgeWriteTools(memory, options) {
|
|
|
16166
16166
|
}
|
|
16167
16167
|
},
|
|
16168
16168
|
required: ["node", "expectedVersion"],
|
|
16169
|
-
anyOf: [{ required: ["name"] }, { required: ["kind"] }],
|
|
16170
16169
|
additionalProperties: false
|
|
16171
16170
|
},
|
|
16172
16171
|
execute: async (input) => {
|
|
16173
16172
|
const value = input;
|
|
16173
|
+
if (value.name === void 0 && value.kind === void 0) throw new Error("knowledge_update_node requires at least one of: name, kind.");
|
|
16174
16174
|
const store = await getStore(memory);
|
|
16175
16175
|
const node = await store.getNode(value.node);
|
|
16176
16176
|
if (!node || node.mergedInto) throw new Error(`Knowledge node not found: ${value.node}`);
|
|
@@ -16526,7 +16526,14 @@ var subconscious_exports = /* @__PURE__ */ __exportAll({
|
|
|
16526
16526
|
});
|
|
16527
16527
|
const BUILT_IN_OBSERVATION = /* @__PURE__ */ new Set(["capture", "remind"]);
|
|
16528
16528
|
const BUILT_IN_REFLECTION = /* @__PURE__ */ new Set(["curate", "learn"]);
|
|
16529
|
-
const DEFAULT_MAX_STEPS =
|
|
16529
|
+
const DEFAULT_MAX_STEPS = 50;
|
|
16530
|
+
/**
|
|
16531
|
+
* Curation walks a worklist that can reach hundreds of records, and its completion marker is
|
|
16532
|
+
* fail-closed: a curator that runs out of steps advances no cursor at all. It gets a much larger
|
|
16533
|
+
* default budget than the other agents, which each handle a single bounded prompt.
|
|
16534
|
+
*/
|
|
16535
|
+
const DEFAULT_MAX_STEPS_BY_AGENT = { curate: 200 };
|
|
16536
|
+
const MAX_MAX_STEPS = 500;
|
|
16530
16537
|
const DEFAULT_RECENT_UPDATES = 10;
|
|
16531
16538
|
const MAX_RECENT_UPDATES = 100;
|
|
16532
16539
|
function entryName(entry) {
|
|
@@ -16543,7 +16550,7 @@ function assertUniqueNames(entries, phase) {
|
|
|
16543
16550
|
}
|
|
16544
16551
|
function boundedSteps(entry, fallback) {
|
|
16545
16552
|
const steps = entry?.maxSteps ?? fallback;
|
|
16546
|
-
if (!Number.isInteger(steps) || steps < 1 || steps >
|
|
16553
|
+
if (!Number.isInteger(steps) || steps < 1 || steps > MAX_MAX_STEPS) throw new Error(`Subconscious maxSteps must be an integer between 1 and ${MAX_MAX_STEPS}.`);
|
|
16547
16554
|
return steps;
|
|
16548
16555
|
}
|
|
16549
16556
|
function resolveExtractor(entry) {
|
|
@@ -16558,12 +16565,13 @@ function resolveExtractor(entry) {
|
|
|
16558
16565
|
function resolveAgent(entry, builtIns, globalModel, globalMaxSteps) {
|
|
16559
16566
|
const config = typeof entry === "string" ? void 0 : entry;
|
|
16560
16567
|
const name = entryName(entry);
|
|
16568
|
+
const fallbackMaxSteps = globalMaxSteps ?? DEFAULT_MAX_STEPS_BY_AGENT[name] ?? DEFAULT_MAX_STEPS;
|
|
16561
16569
|
return {
|
|
16562
16570
|
name,
|
|
16563
16571
|
instructions: config?.instructions,
|
|
16564
16572
|
model: config?.model ?? globalModel,
|
|
16565
16573
|
agent: config?.agent,
|
|
16566
|
-
maxSteps: boundedSteps(config,
|
|
16574
|
+
maxSteps: boundedSteps(config, fallbackMaxSteps),
|
|
16567
16575
|
builtIn: builtIns.has(name)
|
|
16568
16576
|
};
|
|
16569
16577
|
}
|
|
@@ -16580,7 +16588,7 @@ var Subconscious = class {
|
|
|
16580
16588
|
const reflection = config.reflection ?? ["curate", "learn"];
|
|
16581
16589
|
assertUniqueNames(observation, "observation");
|
|
16582
16590
|
assertUniqueNames(reflection, "reflection");
|
|
16583
|
-
const maxSteps = boundedSteps(config, DEFAULT_MAX_STEPS);
|
|
16591
|
+
const maxSteps = config.maxSteps === void 0 ? void 0 : boundedSteps(config, DEFAULT_MAX_STEPS);
|
|
16584
16592
|
for (const entry of observation) this.#validateObservationEntry(entry);
|
|
16585
16593
|
for (const entry of reflection) this.#validateReflectionEntry(entry);
|
|
16586
16594
|
const recentUpdates = config.activity === false ? false : config.activity?.recentUpdates ?? DEFAULT_RECENT_UPDATES;
|
|
@@ -16685,6 +16693,11 @@ function resolveScope$1(context) {
|
|
|
16685
16693
|
`thread:${context.parentThreadId}`
|
|
16686
16694
|
]);
|
|
16687
16695
|
}
|
|
16696
|
+
/**
|
|
16697
|
+
* Upper bound on records pulled into a single reflection prompt. `hasMore` tells the agent the
|
|
16698
|
+
* worklist was truncated; the cursor it advances lets the next cycle pick up the remainder.
|
|
16699
|
+
*/
|
|
16700
|
+
const MAX_WORKLIST_RECORDS$1 = 1e3;
|
|
16688
16701
|
async function readWorklist$1(store, sourceThreadId, scope, after) {
|
|
16689
16702
|
const records = [];
|
|
16690
16703
|
let cursor = after;
|
|
@@ -16698,7 +16711,7 @@ async function readWorklist$1(store, sourceThreadId, scope, after) {
|
|
|
16698
16711
|
});
|
|
16699
16712
|
records.push(...page.records);
|
|
16700
16713
|
cursor = page.nextCursor;
|
|
16701
|
-
} while (cursor && records.length <
|
|
16714
|
+
} while (cursor && records.length < MAX_WORKLIST_RECORDS$1);
|
|
16702
16715
|
return {
|
|
16703
16716
|
records,
|
|
16704
16717
|
hasMore: Boolean(cursor)
|
|
@@ -16820,6 +16833,8 @@ function resolveScope(context) {
|
|
|
16820
16833
|
`thread:${context.parentThreadId}`
|
|
16821
16834
|
]);
|
|
16822
16835
|
}
|
|
16836
|
+
/** Upper bound on records pulled into a single reflection prompt; `hasMore` signals truncation. */
|
|
16837
|
+
const MAX_WORKLIST_RECORDS = 1e3;
|
|
16823
16838
|
async function readWorklist(store, sourceThreadId, scope, after) {
|
|
16824
16839
|
const records = [];
|
|
16825
16840
|
let cursor = after;
|
|
@@ -16832,7 +16847,7 @@ async function readWorklist(store, sourceThreadId, scope, after) {
|
|
|
16832
16847
|
});
|
|
16833
16848
|
records.push(...page.records);
|
|
16834
16849
|
cursor = page.nextCursor;
|
|
16835
|
-
} while (cursor && records.length <
|
|
16850
|
+
} while (cursor && records.length < MAX_WORKLIST_RECORDS);
|
|
16836
16851
|
return {
|
|
16837
16852
|
records,
|
|
16838
16853
|
hasMore: Boolean(cursor)
|
|
@@ -31495,4 +31510,4 @@ Notes:
|
|
|
31495
31510
|
//#endregion
|
|
31496
31511
|
export { formatMessagesForObserver as A, OBSERVATION_CONTINUATION_HINT as B, SUMMARIZE_THREAD_DEFAULTS as C, buildObserverPrompt as D, OBSERVER_SYSTEM_PROMPT as E, parseAnchorId as F, ModelByInputTokens as G, KnowledgeSemanticIndexCoordinator as H, stripEphemeralAnchorIds as I, SUBCONSCIOUS_ACTIVITY_STATE_ID as J, SubconsciousCaptureExtractor as K, OBSERVATIONAL_MEMORY_DEFAULTS as L, optimizeObservationsForContext as M, parseObserverOutput as N, buildObserverSystemPrompt as O, injectAnchorIds as P, Extractor as Q, OBSERVATION_CONTEXT_INSTRUCTIONS as R, WorkingMemoryExtractor as S, TokenCounter as T, StaleKnowledgeSemanticIndexError as U, Subconscious as V, SubconsciousRemindExtractor as W, publishSubconsciousActivity as X, buildSubconsciousActivitySnapshot as Y, renderSubconsciousActivity as Z, wrapInObservationGroup as _, extractWorkingMemoryContent as a, WorkingMemoryStateProcessor as b, getObservationsAsOf as c, combineObservationGroupRanges as d, deriveObservationGroupProvenance as f, stripObservationGroups as g, renderObservationGroupsForReflection as h, WorkingMemory as i, hasCurrentTaskSection as j, extractCurrentTask as k, ObservationalMemoryProcessor as l, reconcileObservationGroupsFromReflection as m, MessageHistory$1 as n, extractWorkingMemoryTags as o, parseObservationGroups as p, subconsciousCaptureSchema as q, SemanticRecall as r, removeWorkingMemoryTags as s, Memory as t, ObservationalMemory as u, WORKING_MEMORY_STATE_ID as v, summarizeConversation as w, deepMergeWorkingMemory as x, WORKING_MEMORY_STATE_PROCESSOR_ID as y, OBSERVATION_CONTEXT_PROMPT as z };
|
|
31497
31512
|
|
|
31498
|
-
//# sourceMappingURL=src-
|
|
31513
|
+
//# sourceMappingURL=src-BsEVZAdq.js.map
|