@mastra/server 1.23.0-alpha.7 → 1.23.0-alpha.8
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 +9 -0
- package/dist/_types/@internal_core/dist/index.d.ts +3 -1
- package/dist/{chunk-VMA5TY4H.cjs → chunk-2KF7EWOT.cjs} +314 -190
- package/dist/chunk-2KF7EWOT.cjs.map +1 -0
- package/dist/{chunk-VDHLJ6OD.cjs → chunk-3D2IBKF6.cjs} +4 -4
- package/dist/{chunk-VDHLJ6OD.cjs.map → chunk-3D2IBKF6.cjs.map} +1 -1
- package/dist/{chunk-B2OFZDJQ.cjs → chunk-4HHL4C6V.cjs} +13 -13
- package/dist/{chunk-B2OFZDJQ.cjs.map → chunk-4HHL4C6V.cjs.map} +1 -1
- package/dist/{chunk-QBXHK27Z.js → chunk-52JPWUPI.js} +3 -3
- package/dist/{chunk-QBXHK27Z.js.map → chunk-52JPWUPI.js.map} +1 -1
- package/dist/{chunk-VXBTV6LH.js → chunk-6MMZVEFC.js} +8 -3
- package/dist/chunk-6MMZVEFC.js.map +1 -0
- package/dist/{chunk-4EA2CJG4.js → chunk-A7BSSXDD.js} +3 -3
- package/dist/{chunk-4EA2CJG4.js.map → chunk-A7BSSXDD.js.map} +1 -1
- package/dist/{chunk-LRJ4LQBR.cjs → chunk-F4TKO2VD.cjs} +6 -6
- package/dist/{chunk-LRJ4LQBR.cjs.map → chunk-F4TKO2VD.cjs.map} +1 -1
- package/dist/{chunk-ZVSNY6VT.js → chunk-GMZFJZO4.js} +4 -3
- package/dist/chunk-GMZFJZO4.js.map +1 -0
- package/dist/{chunk-INKHQLVW.js → chunk-HKALCAKJ.js} +3 -3
- package/dist/{chunk-INKHQLVW.js.map → chunk-HKALCAKJ.js.map} +1 -1
- package/dist/{chunk-VOCNBP5Q.cjs → chunk-HUWHY7SC.cjs} +4 -3
- package/dist/chunk-HUWHY7SC.cjs.map +1 -0
- package/dist/{chunk-U6CWJTHH.cjs → chunk-I5FEAHJM.cjs} +29 -29
- package/dist/{chunk-U6CWJTHH.cjs.map → chunk-I5FEAHJM.cjs.map} +1 -1
- package/dist/{chunk-UVK6YXEL.cjs → chunk-IOGPYY6Z.cjs} +77 -75
- package/dist/chunk-IOGPYY6Z.cjs.map +1 -0
- package/dist/{chunk-5C535ZJO.cjs → chunk-KG5RK6PO.cjs} +4 -4
- package/dist/{chunk-5C535ZJO.cjs.map → chunk-KG5RK6PO.cjs.map} +1 -1
- package/dist/{chunk-AS6EW5BK.js → chunk-KYVNA2EN.js} +3 -3
- package/dist/{chunk-AS6EW5BK.js.map → chunk-KYVNA2EN.js.map} +1 -1
- package/dist/{chunk-FLGIOJA5.js → chunk-MO3ZKWYY.js} +80 -10
- package/dist/chunk-MO3ZKWYY.js.map +1 -0
- package/dist/{chunk-6Q6OH2XV.js → chunk-OOZYQF4U.js} +3 -2
- package/dist/chunk-OOZYQF4U.js.map +1 -0
- package/dist/{chunk-IFEMVRLI.cjs → chunk-OV2TAONK.cjs} +3 -2
- package/dist/chunk-OV2TAONK.cjs.map +1 -0
- package/dist/{chunk-DALTY2FC.js → chunk-P72YX3EY.js} +3 -3
- package/dist/{chunk-DALTY2FC.js.map → chunk-P72YX3EY.js.map} +1 -1
- package/dist/{chunk-SE5M6GC6.js → chunk-T4RZ3X4I.js} +4 -4
- package/dist/{chunk-SE5M6GC6.js.map → chunk-T4RZ3X4I.js.map} +1 -1
- package/dist/{chunk-XUIA3SIB.js → chunk-TBJHTT7B.js} +6 -4
- package/dist/chunk-TBJHTT7B.js.map +1 -0
- package/dist/{chunk-SZ2FSVP5.js → chunk-TX3IIDZN.js} +301 -177
- package/dist/chunk-TX3IIDZN.js.map +1 -0
- package/dist/{chunk-PNCR2M6Y.cjs → chunk-UHWF2UKO.cjs} +80 -10
- package/dist/chunk-UHWF2UKO.cjs.map +1 -0
- package/dist/{chunk-HHGZGERI.cjs → chunk-UI3SS2JO.cjs} +4 -4
- package/dist/{chunk-HHGZGERI.cjs.map → chunk-UI3SS2JO.cjs.map} +1 -1
- package/dist/{chunk-RNC7VEI6.cjs → chunk-WKBMLKBC.cjs} +8 -3
- package/dist/chunk-WKBMLKBC.cjs.map +1 -0
- package/dist/{chunk-SHWDJY3O.js → chunk-WZ6XPWVK.js} +3 -3
- package/dist/{chunk-SHWDJY3O.js.map → chunk-WZ6XPWVK.js.map} +1 -1
- package/dist/{chunk-SCEPRIRF.cjs → chunk-X2IFWP5E.cjs} +5 -5
- package/dist/{chunk-SCEPRIRF.cjs.map → chunk-X2IFWP5E.cjs.map} +1 -1
- package/dist/{chunk-DGS7O6Q7.js → chunk-XO5PXSFC.js} +3 -3
- package/dist/{chunk-DGS7O6Q7.js.map → chunk-XO5PXSFC.js.map} +1 -1
- package/dist/{chunk-LV4FV46S.cjs → chunk-ZWKZK4WO.cjs} +6 -6
- package/dist/{chunk-LV4FV46S.cjs.map → chunk-ZWKZK4WO.cjs.map} +1 -1
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/{observational-memory-JQ34KLFS-CNLSTXO3.cjs → observational-memory-OVRHDQRG-OCHV6RZ7.cjs} +26 -26
- package/dist/{observational-memory-JQ34KLFS-CNLSTXO3.cjs.map → observational-memory-OVRHDQRG-OCHV6RZ7.cjs.map} +1 -1
- package/dist/{observational-memory-JQ34KLFS-KLWGOGP4.js → observational-memory-OVRHDQRG-RC3PRA65.js} +3 -3
- package/dist/{observational-memory-JQ34KLFS-KLWGOGP4.js.map → observational-memory-OVRHDQRG-RC3PRA65.js.map} +1 -1
- package/dist/server/handlers/a2a.cjs +9 -9
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-builder.cjs +16 -16
- package/dist/server/handlers/agent-builder.js +1 -1
- package/dist/server/handlers/agents.cjs +35 -35
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/conversations.cjs +5 -5
- package/dist/server/handlers/conversations.js +1 -1
- package/dist/server/handlers/memory.cjs +27 -27
- package/dist/server/handlers/memory.d.ts +4 -0
- package/dist/server/handlers/memory.d.ts.map +1 -1
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/observability-new-endpoints.cjs +27 -27
- package/dist/server/handlers/observability-new-endpoints.js +1 -1
- package/dist/server/handlers/observability.cjs +33 -33
- package/dist/server/handlers/observability.js +2 -2
- package/dist/server/handlers/responses.cjs +4 -4
- package/dist/server/handlers/responses.js +1 -1
- package/dist/server/handlers/scores.cjs +7 -7
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/tools.cjs +6 -6
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/voice.cjs +8 -8
- package/dist/server/handlers/voice.js +1 -1
- package/dist/server/handlers.cjs +20 -20
- package/dist/server/handlers.js +10 -10
- package/dist/server/schemas/index.cjs +50 -50
- package/dist/server/schemas/index.js +2 -2
- package/dist/server/schemas/memory.d.ts +2 -0
- package/dist/server/schemas/memory.d.ts.map +1 -1
- package/dist/server/server-adapter/index.cjs +129 -129
- package/dist/server/server-adapter/index.js +11 -11
- package/dist/server/server-adapter/routes/memory.d.ts +4 -0
- package/dist/server/server-adapter/routes/memory.d.ts.map +1 -1
- package/package.json +5 -5
- package/dist/chunk-6Q6OH2XV.js.map +0 -1
- package/dist/chunk-FLGIOJA5.js.map +0 -1
- package/dist/chunk-IFEMVRLI.cjs.map +0 -1
- package/dist/chunk-PNCR2M6Y.cjs.map +0 -1
- package/dist/chunk-RNC7VEI6.cjs.map +0 -1
- package/dist/chunk-SZ2FSVP5.js.map +0 -1
- package/dist/chunk-UVK6YXEL.cjs.map +0 -1
- package/dist/chunk-VMA5TY4H.cjs.map +0 -1
- package/dist/chunk-VOCNBP5Q.cjs.map +0 -1
- package/dist/chunk-VXBTV6LH.js.map +0 -1
- package/dist/chunk-XUIA3SIB.js.map +0 -1
- package/dist/chunk-ZVSNY6VT.js.map +0 -1
|
@@ -7253,6 +7253,47 @@ Async buffering is enabled by default \u2014 this opt-out is only needed when us
|
|
|
7253
7253
|
}
|
|
7254
7254
|
}
|
|
7255
7255
|
}
|
|
7256
|
+
/**
|
|
7257
|
+
* Resolve the effective messageTokens for a record.
|
|
7258
|
+
* Only explicit per-record overrides (stored under `_overrides`) win;
|
|
7259
|
+
* the initial config snapshot written by getOrCreateRecord() is ignored
|
|
7260
|
+
* so that later instance-level changes still take effect.
|
|
7261
|
+
*
|
|
7262
|
+
* Overrides that fall below the instance-level buffering floor
|
|
7263
|
+
* (bufferTokens / absolute bufferActivation) are clamped to the
|
|
7264
|
+
* instance threshold to preserve buffering invariants.
|
|
7265
|
+
*/
|
|
7266
|
+
getEffectiveMessageTokens(record) {
|
|
7267
|
+
const overrides = record.config?._overrides;
|
|
7268
|
+
const recordTokens = overrides?.observation?.messageTokens;
|
|
7269
|
+
if (recordTokens) {
|
|
7270
|
+
const maxOverride = getMaxThreshold(recordTokens);
|
|
7271
|
+
const bufferTokens = this.observationConfig.bufferTokens;
|
|
7272
|
+
if (bufferTokens && maxOverride <= bufferTokens) {
|
|
7273
|
+
return this.observationConfig.messageTokens;
|
|
7274
|
+
}
|
|
7275
|
+
const bufferActivation = this.observationConfig.bufferActivation;
|
|
7276
|
+
if (bufferActivation && bufferActivation >= 1e3 && maxOverride <= bufferActivation) {
|
|
7277
|
+
return this.observationConfig.messageTokens;
|
|
7278
|
+
}
|
|
7279
|
+
return recordTokens;
|
|
7280
|
+
}
|
|
7281
|
+
return this.observationConfig.messageTokens;
|
|
7282
|
+
}
|
|
7283
|
+
/**
|
|
7284
|
+
* Resolve the effective reflection observationTokens for a record.
|
|
7285
|
+
* Only explicit per-record overrides (stored under `_overrides`) win;
|
|
7286
|
+
* the initial config snapshot is ignored so instance-level changes
|
|
7287
|
+
* still take effect for existing records.
|
|
7288
|
+
*/
|
|
7289
|
+
getEffectiveReflectionTokens(record) {
|
|
7290
|
+
const overrides = record.config?._overrides;
|
|
7291
|
+
const recordTokens = overrides?.reflection?.observationTokens;
|
|
7292
|
+
if (recordTokens) {
|
|
7293
|
+
return recordTokens;
|
|
7294
|
+
}
|
|
7295
|
+
return this.reflectionConfig.observationTokens;
|
|
7296
|
+
}
|
|
7256
7297
|
/**
|
|
7257
7298
|
* Check whether the unobserved message tokens meet the observation threshold.
|
|
7258
7299
|
*/
|
|
@@ -7260,7 +7301,7 @@ Async buffering is enabled by default \u2014 this opt-out is only needed when us
|
|
|
7260
7301
|
const { record, unobservedTokens, extraTokens = 0 } = opts;
|
|
7261
7302
|
const pendingTokens = (record.pendingMessageTokens ?? 0) + unobservedTokens + extraTokens;
|
|
7262
7303
|
const currentObservationTokens = record.observationTokenCount ?? 0;
|
|
7263
|
-
const threshold = calculateDynamicThreshold(this.
|
|
7304
|
+
const threshold = calculateDynamicThreshold(this.getEffectiveMessageTokens(record), currentObservationTokens);
|
|
7264
7305
|
return pendingTokens >= threshold;
|
|
7265
7306
|
}
|
|
7266
7307
|
/**
|
|
@@ -8409,7 +8450,7 @@ ${grouped}` : grouped;
|
|
|
8409
8450
|
const projectedMessageRemoval = calculateProjectedMessageRemoval(
|
|
8410
8451
|
bufferedChunks,
|
|
8411
8452
|
this.observationConfig.bufferActivation ?? 1,
|
|
8412
|
-
getMaxThreshold(this.
|
|
8453
|
+
getMaxThreshold(this.getEffectiveMessageTokens(record)),
|
|
8413
8454
|
pendingTokens
|
|
8414
8455
|
);
|
|
8415
8456
|
let obsBufferStatus = "idle";
|
|
@@ -8498,7 +8539,7 @@ ${grouped}` : grouped;
|
|
|
8498
8539
|
otherThreadTokens = otherContext ? this.tokenCounter.countString(otherContext) : 0;
|
|
8499
8540
|
}
|
|
8500
8541
|
const pendingTokens = Math.max(0, contextWindowTokens + otherThreadTokens);
|
|
8501
|
-
const threshold = calculateDynamicThreshold(this.
|
|
8542
|
+
const threshold = calculateDynamicThreshold(this.getEffectiveMessageTokens(record), currentObservationTokens);
|
|
8502
8543
|
const bufferedChunks = getBufferedChunks(record);
|
|
8503
8544
|
const bufferedChunkCount = bufferedChunks.length;
|
|
8504
8545
|
const bufferedChunkTokens = bufferedChunks.reduce((sum, chunk) => sum + (chunk.messageTokens ?? 0), 0);
|
|
@@ -8515,11 +8556,12 @@ ${grouped}` : grouped;
|
|
|
8515
8556
|
);
|
|
8516
8557
|
}
|
|
8517
8558
|
const shouldObserve = pendingTokens >= threshold;
|
|
8518
|
-
const reflectThreshold = getMaxThreshold(this.
|
|
8559
|
+
const reflectThreshold = getMaxThreshold(this.getEffectiveReflectionTokens(record));
|
|
8519
8560
|
const shouldReflect = currentObservationTokens >= reflectThreshold;
|
|
8520
8561
|
const canActivate = bufferedChunkCount > 0;
|
|
8521
|
-
const
|
|
8522
|
-
const
|
|
8562
|
+
const effectiveMessageTokens = this.getEffectiveMessageTokens(record);
|
|
8563
|
+
const isSharedBudget = typeof effectiveMessageTokens !== "number";
|
|
8564
|
+
const totalBudget = isSharedBudget ? effectiveMessageTokens.max : 0;
|
|
8523
8565
|
const effectiveObservationTokensThreshold = isSharedBudget ? Math.max(totalBudget - threshold, 1e3) : reflectThreshold;
|
|
8524
8566
|
const unbufferedPendingTokens = Math.max(0, pendingTokens - bufferedChunkTokens);
|
|
8525
8567
|
return {
|
|
@@ -8834,7 +8876,7 @@ ${grouped}` : grouped;
|
|
|
8834
8876
|
if (!freshChunks.length) {
|
|
8835
8877
|
return { activated: false, record };
|
|
8836
8878
|
}
|
|
8837
|
-
const messageTokensThreshold = getMaxThreshold(this.
|
|
8879
|
+
const messageTokensThreshold = getMaxThreshold(this.getEffectiveMessageTokens(freshRecord));
|
|
8838
8880
|
const bufferActivation = this.observationConfig.bufferActivation ?? 0.7;
|
|
8839
8881
|
const activationRatio = resolveActivationRatio(bufferActivation, messageTokensThreshold);
|
|
8840
8882
|
const totalChunkMessageTokens = freshChunks.reduce((sum, c) => sum + (c.messageTokens ?? 0), 0);
|
|
@@ -8983,7 +9025,7 @@ ${grouped}` : grouped;
|
|
|
8983
9025
|
await this.storage.setReflectingFlag(record.id, true);
|
|
8984
9026
|
registerOp(record.id, "reflecting");
|
|
8985
9027
|
try {
|
|
8986
|
-
const reflectThreshold = getMaxThreshold(this.
|
|
9028
|
+
const reflectThreshold = getMaxThreshold(this.getEffectiveReflectionTokens(record));
|
|
8987
9029
|
const reflectResult = await this.reflector.call(
|
|
8988
9030
|
record.activeObservations,
|
|
8989
9031
|
prompt,
|
|
@@ -9028,6 +9070,34 @@ ${grouped}` : grouped;
|
|
|
9028
9070
|
const ids = this.getStorageIds(threadId, resourceId);
|
|
9029
9071
|
return this.storage.getObservationalMemory(ids.threadId, ids.resourceId);
|
|
9030
9072
|
}
|
|
9073
|
+
/**
|
|
9074
|
+
* Update per-record config overrides for observation and/or reflection thresholds.
|
|
9075
|
+
* The provided config is deep-merged into the record's `_overrides` key,
|
|
9076
|
+
* so you only need to specify the fields you want to change.
|
|
9077
|
+
*
|
|
9078
|
+
* Overrides that violate buffering invariants (e.g. messageTokens below
|
|
9079
|
+
* bufferTokens) are silently ignored at read time — the helpers fall back
|
|
9080
|
+
* to the instance-level config.
|
|
9081
|
+
*
|
|
9082
|
+
* @example
|
|
9083
|
+
* ```ts
|
|
9084
|
+
* await om.updateRecordConfig('thread-1', undefined, {
|
|
9085
|
+
* observation: { messageTokens: 2000 },
|
|
9086
|
+
* reflection: { observationTokens: 8000 },
|
|
9087
|
+
* });
|
|
9088
|
+
* ```
|
|
9089
|
+
*/
|
|
9090
|
+
async updateRecordConfig(threadId, resourceId, config) {
|
|
9091
|
+
const ids = this.getStorageIds(threadId, resourceId);
|
|
9092
|
+
const record = await this.storage.getObservationalMemory(ids.threadId, ids.resourceId);
|
|
9093
|
+
if (!record) {
|
|
9094
|
+
throw new Error(`No observational memory record found for thread ${ids.threadId}`);
|
|
9095
|
+
}
|
|
9096
|
+
await this.storage.updateObservationalMemoryConfig({
|
|
9097
|
+
id: record.id,
|
|
9098
|
+
config: { _overrides: config }
|
|
9099
|
+
});
|
|
9100
|
+
}
|
|
9031
9101
|
/**
|
|
9032
9102
|
* Get observation history (previous generations)
|
|
9033
9103
|
*/
|
|
@@ -9602,5 +9672,5 @@ exports.stripEphemeralAnchorIds = stripEphemeralAnchorIds;
|
|
|
9602
9672
|
exports.stripObservationGroups = stripObservationGroups;
|
|
9603
9673
|
exports.truncateStringByTokens = truncateStringByTokens;
|
|
9604
9674
|
exports.wrapInObservationGroup = wrapInObservationGroup;
|
|
9605
|
-
//# sourceMappingURL=chunk-
|
|
9606
|
-
//# sourceMappingURL=chunk-
|
|
9675
|
+
//# sourceMappingURL=chunk-UHWF2UKO.cjs.map
|
|
9676
|
+
//# sourceMappingURL=chunk-UHWF2UKO.cjs.map
|