@mastra/server 1.67.0-alpha.1 → 1.67.0-alpha.4
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/_types/@internal_voice/dist/_types/@internal_core/dist/request-context/index.d.ts +21 -0
- package/dist/_types/@mastra_schema-compat/dist/schema.types.d.ts +20 -1
- package/dist/{a2a-CW4FVjHx.cjs → a2a-DQ8GeDz4.cjs} +3 -3
- package/dist/{a2a-CW4FVjHx.cjs.map → a2a-DQ8GeDz4.cjs.map} +1 -1
- package/dist/{a2a-Di7S6YaM.js → a2a-DUBjstWk.js} +3 -3
- package/dist/{a2a-Di7S6YaM.js.map → a2a-DUBjstWk.js.map} +1 -1
- package/dist/{api-schema-manifest-BkKHbFJi.js → api-schema-manifest-B8uyCfJp.js} +3 -3
- package/dist/{api-schema-manifest-BkKHbFJi.js.map → api-schema-manifest-B8uyCfJp.js.map} +1 -1
- package/dist/{api-schema-manifest-Cpw4nIVv.cjs → api-schema-manifest-nIt4xi1r.cjs} +3 -3
- package/dist/{api-schema-manifest-Cpw4nIVv.cjs.map → api-schema-manifest-nIt4xi1r.cjs.map} +1 -1
- package/dist/{background-tasks-Bl7Hn8h9.js → background-tasks-B4yoNDY_.js} +2 -2
- package/dist/{background-tasks-Bl7Hn8h9.js.map → background-tasks-B4yoNDY_.js.map} +1 -1
- package/dist/{background-tasks-BJhziawt.cjs → background-tasks-BarPeyNJ.cjs} +2 -2
- package/dist/{background-tasks-BJhziawt.cjs.map → background-tasks-BarPeyNJ.cjs.map} +1 -1
- package/dist/{builder-registry-Bcpr74BB.js → builder-registry-DI3Ysclf.js} +3 -3
- package/dist/{builder-registry-Bcpr74BB.js.map → builder-registry-DI3Ysclf.js.map} +1 -1
- package/dist/{builder-registry-BINitddV.cjs → builder-registry-r71f11_E.cjs} +3 -3
- package/dist/{builder-registry-BINitddV.cjs.map → builder-registry-r71f11_E.cjs.map} +1 -1
- package/dist/{channels-CnEljW9e.js → channels-B_K1oJ7S.js} +2 -2
- package/dist/{channels-CnEljW9e.js.map → channels-B_K1oJ7S.js.map} +1 -1
- package/dist/{channels-D8e5YDTn.cjs → channels-CGDo0Prv.cjs} +2 -2
- package/dist/{channels-D8e5YDTn.cjs.map → channels-CGDo0Prv.cjs.map} +1 -1
- package/dist/{conversations-D89Io31L.js → conversations-Bs-k9f9N.js} +2 -2
- package/dist/{conversations-D89Io31L.js.map → conversations-Bs-k9f9N.js.map} +1 -1
- package/dist/{conversations-DJybpnE5.cjs → conversations-o3AEJjRo.cjs} +2 -2
- package/dist/{conversations-DJybpnE5.cjs.map → conversations-o3AEJjRo.cjs.map} +1 -1
- package/dist/{datasets-C-_ZWnxR.cjs → datasets-BqCRJLYH.cjs} +25 -2
- package/dist/datasets-BqCRJLYH.cjs.map +1 -0
- package/dist/{datasets-B4qPHzEy.js → datasets-Dhk4CUat.js} +20 -3
- package/dist/datasets-Dhk4CUat.js.map +1 -0
- package/dist/{dist-B8gYiHIX.js → dist-8iDh9UbP.js} +185 -30
- package/dist/dist-8iDh9UbP.js.map +1 -0
- package/dist/{dist-CaVro31X.cjs → dist-CBDJtAr5.cjs} +189 -34
- package/dist/dist-CBDJtAr5.cjs.map +1 -0
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/{dynamic-workflows-Cn9MXevC.js → dynamic-workflows-C3DXgmSP.js} +2 -2
- package/dist/{dynamic-workflows-Cn9MXevC.js.map → dynamic-workflows-C3DXgmSP.js.map} +1 -1
- package/dist/{dynamic-workflows-DSg9_yec.cjs → dynamic-workflows-DeUG3lA2.cjs} +2 -2
- package/dist/{dynamic-workflows-DSg9_yec.cjs.map → dynamic-workflows-DeUG3lA2.cjs.map} +1 -1
- package/dist/{editor-builder-DeFo8Kl5.cjs → editor-builder-DFh_-7Id.cjs} +2 -2
- package/dist/{editor-builder-DeFo8Kl5.cjs.map → editor-builder-DFh_-7Id.cjs.map} +1 -1
- package/dist/{editor-builder-DzpPA6dp.js → editor-builder-QRcP8-SQ.js} +2 -2
- package/dist/{editor-builder-DzpPA6dp.js.map → editor-builder-QRcP8-SQ.js.map} +1 -1
- package/dist/{memory-CVODqy7m.cjs → memory-CE6rUGmo.cjs} +22 -1
- package/dist/memory-CE6rUGmo.cjs.map +1 -0
- package/dist/{memory-CjWJYFVI.js → memory-Cp3Yo-OX.js} +11 -2
- package/dist/{memory-CjWJYFVI.js.map → memory-Cp3Yo-OX.js.map} +1 -1
- package/dist/{observability-new-endpoints-BNPjbEXf.cjs → observability-new-endpoints-I2OxQzfY.cjs} +2 -2
- package/dist/{observability-new-endpoints-BNPjbEXf.cjs.map → observability-new-endpoints-I2OxQzfY.cjs.map} +1 -1
- package/dist/{observability-new-endpoints-CSiMF_Kf.js → observability-new-endpoints-pIq_OWa8.js} +2 -2
- package/dist/{observability-new-endpoints-CSiMF_Kf.js.map → observability-new-endpoints-pIq_OWa8.js.map} +1 -1
- package/dist/{route-builder-BveLN9LU.js → route-builder-BukcT_Kp.js} +2 -2
- package/dist/{route-builder-BveLN9LU.js.map → route-builder-BukcT_Kp.js.map} +1 -1
- package/dist/{route-builder-C8n4ugUf.cjs → route-builder-DupY8fkI.cjs} +4 -4
- package/dist/{route-builder-C8n4ugUf.cjs.map → route-builder-DupY8fkI.cjs.map} +1 -1
- package/dist/{routes-DCwOOz84.js → routes-BSAA4PVg.js} +15 -11
- package/dist/routes-BSAA4PVg.js.map +1 -0
- package/dist/{routes-Dgd2S9av.cjs → routes-D5r7qWgZ.cjs} +14 -10
- package/dist/routes-D5r7qWgZ.cjs.map +1 -0
- package/dist/{schedules-BcEUUuX_.js → schedules-BzymFGR_.js} +2 -2
- package/dist/{schedules-BcEUUuX_.js.map → schedules-BzymFGR_.js.map} +1 -1
- package/dist/{schedules-fj9U0_tA.cjs → schedules-DaEv0Usj.cjs} +2 -2
- package/dist/{schedules-fj9U0_tA.cjs.map → schedules-DaEv0Usj.cjs.map} +1 -1
- package/dist/schema-BF_cZG0Y.js +2 -0
- package/dist/schema-C7CvwM1d.cjs +1 -0
- package/dist/{schema-Bv9OdW1f-DLSJSqQv.js → schema-D_ikovK6-BzTeMhWf.js} +467 -131
- package/dist/schema-D_ikovK6-BzTeMhWf.js.map +1 -0
- package/dist/{schema-Bv9OdW1f-CxTiW8RD.cjs → schema-D_ikovK6-DQrOVw5N.cjs} +467 -131
- package/dist/schema-D_ikovK6-DQrOVw5N.cjs.map +1 -0
- package/dist/server/handlers/a2a.cjs +1 -1
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-builder.cjs +3 -3
- package/dist/server/handlers/agent-builder.js +3 -3
- package/dist/server/handlers/agent-controller.cjs +3 -3
- package/dist/server/handlers/agent-controller.js +3 -3
- package/dist/server/handlers/agent-versions.cjs +2 -2
- package/dist/server/handlers/agent-versions.js +2 -2
- package/dist/server/handlers/agents.cjs +14 -21
- package/dist/server/handlers/agents.cjs.map +1 -1
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +6 -13
- package/dist/server/handlers/agents.js.map +1 -1
- package/dist/server/handlers/auth.cjs +1 -1
- package/dist/server/handlers/auth.js +1 -1
- package/dist/server/handlers/background-tasks.cjs +1 -1
- package/dist/server/handlers/background-tasks.js +1 -1
- package/dist/server/handlers/builder-registry.cjs +1 -1
- package/dist/server/handlers/builder-registry.js +1 -1
- package/dist/server/handlers/channels.cjs +1 -1
- package/dist/server/handlers/channels.js +1 -1
- package/dist/server/handlers/conversations.cjs +3 -3
- package/dist/server/handlers/conversations.js +3 -3
- package/dist/server/handlers/datasets.cjs +18 -9
- package/dist/server/handlers/datasets.cjs.map +1 -1
- package/dist/server/handlers/datasets.d.ts +27 -0
- package/dist/server/handlers/datasets.d.ts.map +1 -1
- package/dist/server/handlers/datasets.js +18 -9
- package/dist/server/handlers/datasets.js.map +1 -1
- package/dist/server/handlers/dynamic-workflows.cjs +1 -1
- package/dist/server/handlers/dynamic-workflows.js +1 -1
- package/dist/server/handlers/editor-builder.cjs +1 -1
- package/dist/server/handlers/editor-builder.js +1 -1
- package/dist/server/handlers/favorites-enrichment.cjs +1 -1
- package/dist/server/handlers/favorites-enrichment.js +1 -1
- package/dist/server/handlers/logs.cjs +2 -2
- package/dist/server/handlers/logs.js +2 -2
- package/dist/server/handlers/mcp-client-versions.cjs +2 -2
- package/dist/server/handlers/mcp-client-versions.js +2 -2
- package/dist/server/handlers/mcp.cjs +1 -1
- package/dist/server/handlers/mcp.js +1 -1
- package/dist/server/handlers/memory.cjs +64 -3
- package/dist/server/handlers/memory.cjs.map +1 -1
- package/dist/server/handlers/memory.d.ts +47 -0
- package/dist/server/handlers/memory.d.ts.map +1 -1
- package/dist/server/handlers/memory.js +64 -4
- package/dist/server/handlers/memory.js.map +1 -1
- package/dist/server/handlers/observability-new-endpoints.cjs +1 -1
- package/dist/server/handlers/observability-new-endpoints.js +1 -1
- package/dist/server/handlers/observability-shared.cjs +1 -1
- package/dist/server/handlers/observability-shared.js +1 -1
- package/dist/server/handlers/observability.cjs +2 -2
- package/dist/server/handlers/observability.js +2 -2
- package/dist/server/handlers/plans.cjs +2 -2
- package/dist/server/handlers/plans.js +2 -2
- package/dist/server/handlers/processor-providers.cjs +1 -1
- package/dist/server/handlers/processor-providers.js +1 -1
- package/dist/server/handlers/processors.cjs +1 -1
- package/dist/server/handlers/processors.js +1 -1
- package/dist/server/handlers/prompt-block-versions.cjs +2 -2
- package/dist/server/handlers/prompt-block-versions.js +2 -2
- package/dist/server/handlers/responses.cjs +2 -2
- package/dist/server/handlers/responses.d.ts +11 -11
- package/dist/server/handlers/responses.js +2 -2
- package/dist/server/handlers/responses.storage.cjs +1 -1
- package/dist/server/handlers/responses.storage.js +1 -1
- package/dist/server/handlers/schedules.cjs +1 -1
- package/dist/server/handlers/schedules.js +1 -1
- package/dist/server/handlers/scorer-versions.cjs +2 -2
- package/dist/server/handlers/scorer-versions.js +2 -2
- package/dist/server/handlers/scores.cjs +1 -1
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/stored-agent-favorites.cjs +3 -3
- package/dist/server/handlers/stored-agent-favorites.js +3 -3
- package/dist/server/handlers/stored-agents.cjs +3 -3
- package/dist/server/handlers/stored-agents.js +3 -3
- package/dist/server/handlers/stored-mcp-clients.cjs +2 -2
- package/dist/server/handlers/stored-mcp-clients.js +2 -2
- package/dist/server/handlers/stored-prompt-blocks.cjs +2 -2
- package/dist/server/handlers/stored-prompt-blocks.js +2 -2
- package/dist/server/handlers/stored-scorers.cjs +2 -2
- package/dist/server/handlers/stored-scorers.js +2 -2
- package/dist/server/handlers/stored-skill-favorites.cjs +3 -3
- package/dist/server/handlers/stored-skill-favorites.js +3 -3
- package/dist/server/handlers/stored-skills.cjs +3 -3
- package/dist/server/handlers/stored-skills.js +3 -3
- package/dist/server/handlers/stored-workspaces.cjs +2 -2
- package/dist/server/handlers/stored-workspaces.js +2 -2
- package/dist/server/handlers/system.cjs +2 -2
- package/dist/server/handlers/system.js +2 -2
- package/dist/server/handlers/tool-providers.cjs +1 -1
- package/dist/server/handlers/tool-providers.js +1 -1
- package/dist/server/handlers/tools.cjs +6 -6
- package/dist/server/handlers/tools.js +5 -5
- package/dist/server/handlers/utils.cjs +3 -1
- package/dist/server/handlers/utils.d.ts +13 -0
- package/dist/server/handlers/utils.d.ts.map +1 -1
- package/dist/server/handlers/utils.js +2 -2
- package/dist/server/handlers/validate-agent-instructions.cjs +1 -1
- package/dist/server/handlers/validate-agent-instructions.js +1 -1
- package/dist/server/handlers/vector.cjs +1 -1
- package/dist/server/handlers/vector.js +1 -1
- package/dist/server/handlers/workflow-builder.cjs +5 -0
- package/dist/server/handlers/workflow-builder.d.ts +322 -0
- package/dist/server/handlers/workflow-builder.d.ts.map +1 -0
- package/dist/server/handlers/workflow-builder.js +2 -0
- package/dist/server/handlers/workflows.cjs +3 -3
- package/dist/server/handlers/workflows.js +3 -3
- package/dist/server/handlers/workspace.cjs +1 -1
- package/dist/server/handlers/workspace.js +1 -1
- package/dist/server/handlers.cjs +2 -2
- package/dist/server/handlers.js +2 -2
- package/dist/server/schemas/datasets.d.ts +18 -0
- package/dist/server/schemas/datasets.d.ts.map +1 -1
- package/dist/server/schemas/index.cjs +6 -3
- package/dist/server/schemas/index.js +4 -4
- package/dist/server/schemas/memory.d.ts +18 -0
- package/dist/server/schemas/memory.d.ts.map +1 -1
- package/dist/server/schemas/workflow-builder.d.ts +26 -0
- package/dist/server/schemas/workflow-builder.d.ts.map +1 -0
- package/dist/server/server-adapter/index.cjs +13 -3
- package/dist/server/server-adapter/index.cjs.map +1 -1
- package/dist/server/server-adapter/index.d.ts.map +1 -1
- package/dist/server/server-adapter/index.js +13 -3
- package/dist/server/server-adapter/index.js.map +1 -1
- package/dist/server/server-adapter/routes/conversations.d.ts +3 -3
- package/dist/server/server-adapter/routes/datasets.d.ts +27 -0
- package/dist/server/server-adapter/routes/datasets.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/editor-builder.d.ts +319 -0
- package/dist/server/server-adapter/routes/editor-builder.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/memory.d.ts +46 -0
- package/dist/server/server-adapter/routes/memory.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/workspace.d.ts +23 -23
- package/dist/{utils-B2vd77Fi.js → utils-Duk4hfT_.js} +3 -3
- package/dist/{utils-B2vd77Fi.js.map → utils-Duk4hfT_.js.map} +1 -1
- package/dist/{utils-Hz8Hc2cd.js → utils-KsERfbhc.js} +24 -3
- package/dist/utils-KsERfbhc.js.map +1 -0
- package/dist/{utils-CmYnjLcY.cjs → utils-WcR0QSUB.cjs} +5 -5
- package/dist/{utils-CmYnjLcY.cjs.map → utils-WcR0QSUB.cjs.map} +1 -1
- package/dist/{utils-DJMUhfvY.cjs → utils-aIu3gkhJ.cjs} +35 -2
- package/dist/utils-aIu3gkhJ.cjs.map +1 -0
- package/dist/workflow-builder-C9DVk9Tw.js +102 -0
- package/dist/workflow-builder-C9DVk9Tw.js.map +1 -0
- package/dist/workflow-builder-_rQWs1B6.cjs +115 -0
- package/dist/workflow-builder-_rQWs1B6.cjs.map +1 -0
- package/package.json +6 -6
- package/dist/datasets-B4qPHzEy.js.map +0 -1
- package/dist/datasets-C-_ZWnxR.cjs.map +0 -1
- package/dist/dist-B8gYiHIX.js.map +0 -1
- package/dist/dist-CaVro31X.cjs.map +0 -1
- package/dist/memory-CVODqy7m.cjs.map +0 -1
- package/dist/routes-DCwOOz84.js.map +0 -1
- package/dist/routes-Dgd2S9av.cjs.map +0 -1
- package/dist/schema-Bv9OdW1f-CxTiW8RD.cjs.map +0 -1
- package/dist/schema-Bv9OdW1f-DLSJSqQv.js.map +0 -1
- package/dist/schema-CGeYTFwm.js +0 -2
- package/dist/schema-CNKnRmv1.cjs +0 -1
- package/dist/utils-DJMUhfvY.cjs.map +0 -1
- package/dist/utils-Hz8Hc2cd.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const require_rolldown_runtime = require("./rolldown-runtime-Bd6kNlEP.cjs");
|
|
2
|
-
const
|
|
3
|
-
require("./schema-
|
|
2
|
+
const require_schema_D_ikovK6 = require("./schema-D_ikovK6-DQrOVw5N.cjs");
|
|
3
|
+
require("./schema-C7CvwM1d.cjs");
|
|
4
4
|
const require_sync$1 = require("./sync-C4LbbSKR.cjs");
|
|
5
5
|
const require_dist = require("./dist-CLQt62Pi.cjs");
|
|
6
6
|
let zod_v4 = require("zod/v4");
|
|
@@ -4694,7 +4694,7 @@ function splitLines(text) {
|
|
|
4694
4694
|
return result;
|
|
4695
4695
|
}
|
|
4696
4696
|
//#endregion
|
|
4697
|
-
//#region ../memory/dist/src-
|
|
4697
|
+
//#region ../memory/dist/src-t3Mhge0m.js
|
|
4698
4698
|
var __defProp$3 = Object.defineProperty;
|
|
4699
4699
|
var __exportAll = (all, no_symbols) => {
|
|
4700
4700
|
let target = {};
|
|
@@ -24361,19 +24361,28 @@ const PHASE_CONFIG = {
|
|
|
24361
24361
|
};
|
|
24362
24362
|
async function withOmTracingSpan({ phase, model, inputTokens, requestContext, observabilityContext, metadata, callback }) {
|
|
24363
24363
|
const config = PHASE_CONFIG[phase];
|
|
24364
|
+
const tracingContext = observabilityContext?.tracingContext ?? observabilityContext?.tracing;
|
|
24365
|
+
const callerMetadata = tracingContext?.currentSpan?.metadata;
|
|
24366
|
+
const inheritedCallerThreadId = callerMetadata?.__mastraObservationalMemoryCallerThreadId;
|
|
24367
|
+
const callerThreadId = callerMetadata?.threadId;
|
|
24368
|
+
const requestThreadId = requestContext?.get(_mastra_core_request_context.MASTRA_THREAD_ID_KEY);
|
|
24369
|
+
const omCallerThreadId = typeof inheritedCallerThreadId === "string" && inheritedCallerThreadId ? inheritedCallerThreadId : typeof callerThreadId === "string" && callerThreadId ? callerThreadId : typeof requestThreadId === "string" && requestThreadId ? requestThreadId : void 0;
|
|
24364
24370
|
const span = (0, _mastra_core_observability.getOrCreateSpan)({
|
|
24365
24371
|
type: _mastra_core_observability.SpanType.MEMORY_OPERATION,
|
|
24366
24372
|
name: config.name,
|
|
24367
24373
|
entityType: _mastra_core_observability.EntityType.MEMORY,
|
|
24368
24374
|
entityName: config.entityName,
|
|
24369
|
-
tracingContext
|
|
24375
|
+
tracingContext,
|
|
24370
24376
|
attributes: {
|
|
24371
24377
|
operationType: config.operationType,
|
|
24372
24378
|
inputTokens,
|
|
24373
24379
|
selectedModel: typeof model === "string" ? model : "(dynamic-model)",
|
|
24374
24380
|
...config.multiThread ? { multiThread: true } : {}
|
|
24375
24381
|
},
|
|
24376
|
-
metadata
|
|
24382
|
+
metadata: omCallerThreadId !== void 0 ? {
|
|
24383
|
+
...metadata,
|
|
24384
|
+
__mastraObservationalMemoryCallerThreadId: omCallerThreadId
|
|
24385
|
+
} : metadata,
|
|
24377
24386
|
requestContext
|
|
24378
24387
|
});
|
|
24379
24388
|
const childObservabilityContext = (0, _mastra_core_observability.createObservabilityContext)({ currentSpan: span });
|
|
@@ -27418,7 +27427,7 @@ const updateWorkingMemoryTool = (memoryConfig) => {
|
|
|
27418
27427
|
};
|
|
27419
27428
|
if (schema) {
|
|
27420
27429
|
const standardSchema = (0, _mastra_core_schema.isStandardSchemaWithJSON)(schema) ? schema : (0, _mastra_core_schema.toStandardSchema)(schema);
|
|
27421
|
-
const jsonSchema =
|
|
27430
|
+
const jsonSchema = require_schema_D_ikovK6.standardSchemaToJSONSchema(standardSchema, { io: "input" });
|
|
27422
27431
|
delete jsonSchema.$schema;
|
|
27423
27432
|
const wrappedJsonSchema = {
|
|
27424
27433
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
@@ -32995,7 +33004,7 @@ ${formattedMessages}
|
|
|
32995
33004
|
if (!this.buffering.isAsyncObservationEnabled()) return false;
|
|
32996
33005
|
const lockKey = this.buffering.getLockKey(opts.threadId, opts.resourceId);
|
|
32997
33006
|
const shouldTrigger = this.buffering.shouldTriggerAsyncObservation(opts.pendingTokens, lockKey, opts.record, this.storage, opts.threshold);
|
|
32998
|
-
if (shouldTrigger) this.trackBackgroundWork(this.startAsyncBufferedObservation(opts.record, opts.threadId, opts.unobservedMessages, lockKey, opts.writer, opts.unbufferedPendingTokens, opts.requestContext));
|
|
33007
|
+
if (shouldTrigger) this.trackBackgroundWork(this.startAsyncBufferedObservation(opts.record, opts.threadId, opts.unobservedMessages, lockKey, opts.writer, opts.unbufferedPendingTokens, opts.requestContext, opts.observabilityContext));
|
|
32999
33008
|
return shouldTrigger;
|
|
33000
33009
|
}
|
|
33001
33010
|
isMessageList(value) {
|
|
@@ -34739,8 +34748,35 @@ const DEFAULT_TOP_K = 4;
|
|
|
34739
34748
|
const VECTOR_DELETE_BATCH_SIZE = 100;
|
|
34740
34749
|
const DEFAULT_EMBEDDING_CACHE_MAX_SIZE = 1e3;
|
|
34741
34750
|
/**
|
|
34742
|
-
*
|
|
34743
|
-
* and
|
|
34751
|
+
* Gives Mastra agents conversation history, with optional working memory,
|
|
34752
|
+
* semantic recall, and observational memory.
|
|
34753
|
+
*
|
|
34754
|
+
* @remarks
|
|
34755
|
+
* Configure storage on this instance or its Mastra instance before use.
|
|
34756
|
+
* See the bundled docs for setup and conversation identifiers.
|
|
34757
|
+
*
|
|
34758
|
+
* @example
|
|
34759
|
+
* Attach memory to an agent; `yourModel` is your configured model.
|
|
34760
|
+
* ```typescript
|
|
34761
|
+
* import { Agent } from '@mastra/core/agent';
|
|
34762
|
+
* import { Memory } from '@mastra/memory';
|
|
34763
|
+
*
|
|
34764
|
+
* const agent = new Agent({
|
|
34765
|
+
* id: 'assistant',
|
|
34766
|
+
* name: 'Assistant',
|
|
34767
|
+
* instructions: 'You are a helpful assistant.',
|
|
34768
|
+
* model: yourModel,
|
|
34769
|
+
* memory: new Memory(),
|
|
34770
|
+
* });
|
|
34771
|
+
* ```
|
|
34772
|
+
*
|
|
34773
|
+
* @see For documentation bundled with your installed package, locate
|
|
34774
|
+
* `@mastra/memory/package.json` with your project's resolver or package-manager
|
|
34775
|
+
* tooling, then read `dist/docs/SKILL.md` from that package root and follow its
|
|
34776
|
+
* reference links. Use package-manager tools for virtual or archived packages.
|
|
34777
|
+
*
|
|
34778
|
+
* @see [Memory documentation](https://mastra.ai/docs/memory/overview)
|
|
34779
|
+
* if packaged docs are unavailable.
|
|
34744
34780
|
*/
|
|
34745
34781
|
var Memory = class Memory extends _mastra_core_memory.MastraMemory {
|
|
34746
34782
|
_omEngine;
|
|
@@ -35509,8 +35545,8 @@ ${workingMemory}`;
|
|
|
35509
35545
|
if (config.workingMemory?.schema) try {
|
|
35510
35546
|
const schema = config.workingMemory.schema;
|
|
35511
35547
|
let convertedSchema;
|
|
35512
|
-
if (
|
|
35513
|
-
else convertedSchema =
|
|
35548
|
+
if (require_schema_D_ikovK6.isStandardSchemaWithJSON(schema)) convertedSchema = schema["~standard"].jsonSchema.output({ target: "draft-07" });
|
|
35549
|
+
else convertedSchema = require_schema_D_ikovK6.toStandardSchema(schema)["~standard"].jsonSchema.output({ target: "draft-07" });
|
|
35514
35550
|
return {
|
|
35515
35551
|
format: "json",
|
|
35516
35552
|
content: JSON.stringify(convertedSchema)
|
|
@@ -36339,18 +36375,40 @@ Notes:
|
|
|
36339
36375
|
* ```
|
|
36340
36376
|
*/
|
|
36341
36377
|
async cloneThread(args, memoryConfig) {
|
|
36342
|
-
const
|
|
36343
|
-
const
|
|
36344
|
-
|
|
36345
|
-
|
|
36346
|
-
|
|
36347
|
-
|
|
36348
|
-
|
|
36349
|
-
|
|
36350
|
-
hydrateMessages: effectiveHydrate
|
|
36378
|
+
const result = await this.copyThread(args, memoryConfig);
|
|
36379
|
+
const { messages } = await (await this.getMemoryStore()).listMessages({
|
|
36380
|
+
threadId: result.thread.id,
|
|
36381
|
+
resourceId: result.thread.resourceId,
|
|
36382
|
+
perPage: false,
|
|
36383
|
+
orderBy: {
|
|
36384
|
+
field: "createdAt",
|
|
36385
|
+
direction: "ASC"
|
|
36351
36386
|
}
|
|
36352
36387
|
});
|
|
36388
|
+
return {
|
|
36389
|
+
...result,
|
|
36390
|
+
clonedMessages: messages
|
|
36391
|
+
};
|
|
36392
|
+
}
|
|
36393
|
+
/**
|
|
36394
|
+
* Copies a thread with all its messages to a new thread without returning the
|
|
36395
|
+
* message payloads. Working memory, observational memory, and semantic-recall
|
|
36396
|
+
* embeddings are carried over exactly as with `cloneThread`; the only difference
|
|
36397
|
+
* is that message content never has to be held in the Node heap at once.
|
|
36398
|
+
*
|
|
36399
|
+
* Use this instead of `cloneThread` when only the new thread id is needed
|
|
36400
|
+
* (e.g. forking a conversation for a subagent).
|
|
36401
|
+
*
|
|
36402
|
+
* @param args - Clone parameters, same as `cloneThread`
|
|
36403
|
+
* @param memoryConfig - Optional memory configuration override
|
|
36404
|
+
* @returns The newly created thread and the source→new message id map
|
|
36405
|
+
*/
|
|
36406
|
+
async copyThread(args, memoryConfig) {
|
|
36407
|
+
const memoryStore = await this.getMemoryStore();
|
|
36408
|
+
const config = this.getMergedThreadConfig(memoryConfig);
|
|
36409
|
+
const result = await memoryStore.copyThread(args);
|
|
36353
36410
|
const sourceResourceId = (await this.getThreadById({ threadId: args.sourceThreadId }))?.resourceId;
|
|
36411
|
+
let priorDestinationResourceWm;
|
|
36354
36412
|
if (config.workingMemory?.enabled) {
|
|
36355
36413
|
const scope = config.workingMemory.scope || "resource";
|
|
36356
36414
|
if (scope === "thread" || scope === "resource" && args.resourceId && args.resourceId !== sourceResourceId) {
|
|
@@ -36359,28 +36417,125 @@ Notes:
|
|
|
36359
36417
|
resourceId: sourceResourceId,
|
|
36360
36418
|
memoryConfig
|
|
36361
36419
|
});
|
|
36362
|
-
if (sourceWm)
|
|
36363
|
-
|
|
36364
|
-
|
|
36365
|
-
|
|
36366
|
-
|
|
36367
|
-
|
|
36420
|
+
if (sourceWm) {
|
|
36421
|
+
if (scope === "resource") priorDestinationResourceWm = (await memoryStore.getResourceById({ resourceId: result.thread.resourceId }))?.workingMemory ?? null;
|
|
36422
|
+
await this.updateWorkingMemory({
|
|
36423
|
+
threadId: result.thread.id,
|
|
36424
|
+
resourceId: result.thread.resourceId,
|
|
36425
|
+
workingMemory: sourceWm,
|
|
36426
|
+
memoryConfig
|
|
36427
|
+
});
|
|
36428
|
+
}
|
|
36368
36429
|
}
|
|
36369
36430
|
}
|
|
36370
36431
|
if (memoryStore.supportsObservationalMemory && sourceResourceId) try {
|
|
36371
36432
|
await this.cloneObservationalMemory(memoryStore, args.sourceThreadId, sourceResourceId, result);
|
|
36372
36433
|
} catch (error) {
|
|
36373
|
-
|
|
36374
|
-
|
|
36375
|
-
|
|
36376
|
-
|
|
36377
|
-
|
|
36434
|
+
await this.rollbackCopiedThread(memoryStore, result.thread, "OM clone", false, priorDestinationResourceWm);
|
|
36435
|
+
throw error;
|
|
36436
|
+
}
|
|
36437
|
+
if (this.vector && this.embedder && config.semanticRecall) try {
|
|
36438
|
+
await this.embedCopiedMessagesInBatches(memoryStore, result, config);
|
|
36439
|
+
} catch (error) {
|
|
36440
|
+
await this.rollbackCopiedThread(memoryStore, result.thread, "embedding", true, priorDestinationResourceWm);
|
|
36378
36441
|
throw error;
|
|
36379
36442
|
}
|
|
36380
|
-
if (this.vector && config.semanticRecall && result.clonedMessages.length > 0) await this.embedClonedMessages(result.clonedMessages, config);
|
|
36381
36443
|
return result;
|
|
36382
36444
|
}
|
|
36383
36445
|
/**
|
|
36446
|
+
* Best-effort compensation when a later step of copyThread fails after the destination thread
|
|
36447
|
+
* was persisted. deleteThread removes the thread, its messages and thread-scoped working memory.
|
|
36448
|
+
* `priorDestinationResourceWm` is the destination resource's working memory before the copy
|
|
36449
|
+
* overwrote it (`null` = none existed); when defined it is restored. When `afterOmClone` is set the OM step already succeeded, so the thread-scoped OM record and
|
|
36450
|
+
* any vectors written so far are dropped too. Resource-scoped OM is left alone: it may be
|
|
36451
|
+
* shared with a pre-existing resource and isn't safe to clear blindly.
|
|
36452
|
+
*/
|
|
36453
|
+
async rollbackCopiedThread(memoryStore, thread, failedStep, afterOmClone, priorDestinationResourceWm) {
|
|
36454
|
+
const threadId = thread.id;
|
|
36455
|
+
try {
|
|
36456
|
+
await memoryStore.deleteThread({ threadId });
|
|
36457
|
+
} catch (rollbackError) {
|
|
36458
|
+
this.logger.error(`Failed to rollback copied thread after ${failedStep} failure`, rollbackError);
|
|
36459
|
+
}
|
|
36460
|
+
if (priorDestinationResourceWm !== void 0) try {
|
|
36461
|
+
await memoryStore.updateResource({
|
|
36462
|
+
resourceId: thread.resourceId,
|
|
36463
|
+
workingMemory: priorDestinationResourceWm ?? ""
|
|
36464
|
+
});
|
|
36465
|
+
} catch (rollbackError) {
|
|
36466
|
+
this.logger.error(`Failed to restore resource working memory after ${failedStep} failure`, rollbackError);
|
|
36467
|
+
}
|
|
36468
|
+
if (!afterOmClone) return;
|
|
36469
|
+
if (memoryStore.supportsObservationalMemory) try {
|
|
36470
|
+
await memoryStore.clearObservationalMemory(threadId, thread.resourceId);
|
|
36471
|
+
} catch (rollbackError) {
|
|
36472
|
+
this.logger.error(`Failed to rollback copied thread OM after ${failedStep} failure`, rollbackError);
|
|
36473
|
+
}
|
|
36474
|
+
try {
|
|
36475
|
+
const messageIndexes = await this.getMemoryVectorIndexes([this.messageIndexPrefix]);
|
|
36476
|
+
await Promise.all(messageIndexes.map((indexName) => this.vector.deleteVectors({
|
|
36477
|
+
indexName,
|
|
36478
|
+
filter: { thread_id: threadId }
|
|
36479
|
+
})));
|
|
36480
|
+
} catch (rollbackError) {
|
|
36481
|
+
this.logger.error(`Failed to rollback copied thread vectors after ${failedStep} failure`, rollbackError);
|
|
36482
|
+
}
|
|
36483
|
+
}
|
|
36484
|
+
static CLONE_EMBED_PAGE_SIZE = 100;
|
|
36485
|
+
async embedCopiedMessagesInBatches(memoryStore, copied, config) {
|
|
36486
|
+
const size = Memory.CLONE_EMBED_PAGE_SIZE;
|
|
36487
|
+
const copiedIds = Object.values(copied.messageIdMap ?? {});
|
|
36488
|
+
if (copiedIds.length > 0) {
|
|
36489
|
+
for (let i = 0; i < copiedIds.length; i += size) {
|
|
36490
|
+
const { messages } = await memoryStore.listMessagesById({ messageIds: copiedIds.slice(i, i + size) });
|
|
36491
|
+
if (messages.length > 0) await this.embedClonedMessages(messages, config);
|
|
36492
|
+
}
|
|
36493
|
+
return;
|
|
36494
|
+
}
|
|
36495
|
+
const { messages } = await memoryStore.listMessages({
|
|
36496
|
+
threadId: copied.thread.id,
|
|
36497
|
+
resourceId: copied.thread.resourceId,
|
|
36498
|
+
perPage: false,
|
|
36499
|
+
includeTotal: false
|
|
36500
|
+
});
|
|
36501
|
+
for (let i = 0; i < messages.length; i += size) await this.embedClonedMessages(messages.slice(i, i + size), config);
|
|
36502
|
+
}
|
|
36503
|
+
async updateThreadResourceId({ threadId, resourceId, memoryConfig }) {
|
|
36504
|
+
const memoryStore = await this.getMemoryStore();
|
|
36505
|
+
const config = this.getMergedThreadConfig(memoryConfig);
|
|
36506
|
+
const migratesVectors = Boolean(this.vector && this.embedder && config.semanticRecall);
|
|
36507
|
+
if (!migratesVectors) {
|
|
36508
|
+
const existing = await memoryStore.getThreadById({ threadId });
|
|
36509
|
+
if (existing && existing.resourceId === resourceId) return existing;
|
|
36510
|
+
}
|
|
36511
|
+
const thread = await memoryStore.updateThreadResourceId({
|
|
36512
|
+
threadId,
|
|
36513
|
+
resourceId
|
|
36514
|
+
});
|
|
36515
|
+
if (migratesVectors) try {
|
|
36516
|
+
const { messages } = await memoryStore.listMessages({
|
|
36517
|
+
threadId,
|
|
36518
|
+
perPage: false
|
|
36519
|
+
});
|
|
36520
|
+
const messageIndexes = await this.getMemoryVectorIndexes([this.messageIndexPrefix]);
|
|
36521
|
+
await Promise.all(messageIndexes.map(async (indexName) => {
|
|
36522
|
+
await this.vector.deleteVectors({
|
|
36523
|
+
indexName,
|
|
36524
|
+
filter: { thread_id: threadId }
|
|
36525
|
+
});
|
|
36526
|
+
}));
|
|
36527
|
+
if (messages.length > 0) await this.embedClonedMessages(messages, config);
|
|
36528
|
+
} catch (error) {
|
|
36529
|
+
this.logger.error("Failed to migrate semantic-recall vectors during thread transfer", {
|
|
36530
|
+
threadId,
|
|
36531
|
+
resourceId,
|
|
36532
|
+
error: error instanceof Error ? error.message : String(error)
|
|
36533
|
+
});
|
|
36534
|
+
throw new Error(`Thread "${threadId}" was transferred to resource "${resourceId}", but migrating its semantic-recall vectors failed. The thread's messages may not surface under resource-scoped recall until the vectors are re-indexed. Cause: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
|
|
36535
|
+
}
|
|
36536
|
+
return thread;
|
|
36537
|
+
}
|
|
36538
|
+
/**
|
|
36384
36539
|
* Clone observational memory records when cloning a thread.
|
|
36385
36540
|
* Thread-scoped: always cloned to the new thread.
|
|
36386
36541
|
* Resource-scoped: cloned only when the resourceId changes (same resourceId shares OM naturally).
|
|
@@ -40158,7 +40313,7 @@ Return the actual exported names of the units, as well as the file names.`,
|
|
|
40158
40313
|
maxSteps: 100
|
|
40159
40314
|
});
|
|
40160
40315
|
else {
|
|
40161
|
-
const jsonSchema =
|
|
40316
|
+
const jsonSchema = require_schema_D_ikovK6.standardSchemaToJSONSchema((0, _mastra_core_schema.toStandardSchema)(output));
|
|
40162
40317
|
result = await agent.generateLegacy(prompt, {
|
|
40163
40318
|
experimental_output: jsonSchema,
|
|
40164
40319
|
maxSteps: 100
|
|
@@ -47066,4 +47221,4 @@ const agentBuilderWorkflows = {
|
|
|
47066
47221
|
//#endregion
|
|
47067
47222
|
exports.agentBuilderWorkflows = agentBuilderWorkflows;
|
|
47068
47223
|
|
|
47069
|
-
//# sourceMappingURL=dist-
|
|
47224
|
+
//# sourceMappingURL=dist-CBDJtAr5.cjs.map
|