@mastra/server 1.66.0 → 1.66.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/dist/{dist-BmrsK_KX.cjs → dist-B0Yl4ENo.cjs} +125 -67
- package/dist/dist-B0Yl4ENo.cjs.map +1 -0
- package/dist/{dist-4Qm6OSPJ.js → dist-DS38AI6C.js} +125 -67
- package/dist/dist-DS38AI6C.js.map +1 -0
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/server/handlers/agent-builder.cjs +1 -1
- package/dist/server/handlers/agent-builder.js +1 -1
- package/package.json +5 -5
- package/dist/dist-4Qm6OSPJ.js.map +0 -1
- package/dist/dist-BmrsK_KX.cjs.map +0 -1
|
@@ -4693,7 +4693,7 @@ function splitLines(text) {
|
|
|
4693
4693
|
return result;
|
|
4694
4694
|
}
|
|
4695
4695
|
//#endregion
|
|
4696
|
-
//#region ../memory/dist/src-
|
|
4696
|
+
//#region ../memory/dist/src-C4x5Wx9t.js
|
|
4697
4697
|
var __defProp$3 = Object.defineProperty;
|
|
4698
4698
|
var __exportAll = (all, no_symbols) => {
|
|
4699
4699
|
let target = {};
|
|
@@ -22474,6 +22474,44 @@ async function applyExtractorHooks(opts) {
|
|
|
22474
22474
|
failures: mergeExtractionFailures(failures)
|
|
22475
22475
|
};
|
|
22476
22476
|
}
|
|
22477
|
+
function isRecord$4(value) {
|
|
22478
|
+
return typeof value === "object" && value !== null;
|
|
22479
|
+
}
|
|
22480
|
+
/** Keep provider diagnostics in streamed/persisted markers, not whole API request/response objects. */
|
|
22481
|
+
function formatOmError(error) {
|
|
22482
|
+
const details = /* @__PURE__ */ new Set();
|
|
22483
|
+
const visited = /* @__PURE__ */ new Set();
|
|
22484
|
+
const add = (value) => {
|
|
22485
|
+
if (typeof value === "string" && value.trim()) details.add(value.trim().slice(0, 2e3));
|
|
22486
|
+
};
|
|
22487
|
+
function collectErrorDetails(value, depth) {
|
|
22488
|
+
if (depth > 5) return;
|
|
22489
|
+
if (!isRecord$4(value)) {
|
|
22490
|
+
if (value !== void 0) add(String(value));
|
|
22491
|
+
return;
|
|
22492
|
+
}
|
|
22493
|
+
if (visited.has(value)) return;
|
|
22494
|
+
visited.add(value);
|
|
22495
|
+
add(value.message);
|
|
22496
|
+
if (typeof value.statusCode === "number") add(`HTTP ${value.statusCode}`);
|
|
22497
|
+
if (typeof value.responseBody === "string") try {
|
|
22498
|
+
const body = JSON.parse(value.responseBody);
|
|
22499
|
+
if (isRecord$4(body)) {
|
|
22500
|
+
add(body.message);
|
|
22501
|
+
add(body.detail);
|
|
22502
|
+
if (isRecord$4(body.error)) add(body.error.message);
|
|
22503
|
+
else add(body.error);
|
|
22504
|
+
}
|
|
22505
|
+
} catch {}
|
|
22506
|
+
if (value.cause !== void 0) collectErrorDetails(value.cause, depth + 1);
|
|
22507
|
+
if (value.error !== void 0) collectErrorDetails(value.error, depth + 1);
|
|
22508
|
+
}
|
|
22509
|
+
try {
|
|
22510
|
+
collectErrorDetails(error, 0);
|
|
22511
|
+
} catch {}
|
|
22512
|
+
const message = [...details].join(": ") || "Unknown error";
|
|
22513
|
+
return message.length > 2e3 ? `${message.slice(0, 1997)}...` : message;
|
|
22514
|
+
}
|
|
22477
22515
|
function isAbortError$1(error, abortSignal) {
|
|
22478
22516
|
return abortSignal?.aborted === true || error instanceof DOMException && error.name === "AbortError" || error instanceof Error && error.name === "AbortError";
|
|
22479
22517
|
}
|
|
@@ -23463,11 +23501,11 @@ function formatObserverAttachmentPlaceholder(part, counter) {
|
|
|
23463
23501
|
const label = resolveObserverAttachmentLabel(part);
|
|
23464
23502
|
return label ? `[${attachmentType} #${attachmentId}: ${label}]` : `[${attachmentType} #${attachmentId}]`;
|
|
23465
23503
|
}
|
|
23466
|
-
function isRecord$
|
|
23504
|
+
function isRecord$3(value) {
|
|
23467
23505
|
return !!value && typeof value === "object";
|
|
23468
23506
|
}
|
|
23469
23507
|
function mapToolResultBlockToAttachment(block) {
|
|
23470
|
-
if (!isRecord$
|
|
23508
|
+
if (!isRecord$3(block) || typeof block.type !== "string") return;
|
|
23471
23509
|
const mediaType = typeof block.mediaType === "string" ? block.mediaType : void 0;
|
|
23472
23510
|
const filename = typeof block.filename === "string" ? block.filename : void 0;
|
|
23473
23511
|
switch (block.type) {
|
|
@@ -23528,7 +23566,7 @@ function mapToolResultBlockToAttachment(block) {
|
|
|
23528
23566
|
}
|
|
23529
23567
|
}
|
|
23530
23568
|
function extractToolResultAttachments(result, counter, attachmentFilter) {
|
|
23531
|
-
if (!isRecord$
|
|
23569
|
+
if (!isRecord$3(result) || result.type !== "content" || !Array.isArray(result.value)) return {
|
|
23532
23570
|
resultWithoutAttachments: result,
|
|
23533
23571
|
attachments: []
|
|
23534
23572
|
};
|
|
@@ -23542,7 +23580,7 @@ function extractToolResultAttachments(result, counter, attachmentFilter) {
|
|
|
23542
23580
|
if (shouldIncludeObserverAttachment(attachment, attachmentFilter)) attachments.push(toObserverInputAttachmentPart(attachment));
|
|
23543
23581
|
const placeholder = formatObserverAttachmentPlaceholder(attachment, counter);
|
|
23544
23582
|
return {
|
|
23545
|
-
type: isRecord$
|
|
23583
|
+
type: isRecord$3(block) ? block.type : void 0,
|
|
23546
23584
|
placeholder
|
|
23547
23585
|
};
|
|
23548
23586
|
});
|
|
@@ -24161,17 +24199,17 @@ const TRANSIENT_MESSAGE_SUBSTRINGS = [
|
|
|
24161
24199
|
"connection reset",
|
|
24162
24200
|
"connection closed"
|
|
24163
24201
|
];
|
|
24164
|
-
function isRecord$
|
|
24202
|
+
function isRecord$2(value) {
|
|
24165
24203
|
return typeof value === "object" && value !== null;
|
|
24166
24204
|
}
|
|
24167
24205
|
function isAbortError$5(error) {
|
|
24168
|
-
if (!isRecord$
|
|
24206
|
+
if (!isRecord$2(error)) return false;
|
|
24169
24207
|
if (error.name === "AbortError") return true;
|
|
24170
24208
|
if (typeof error.code === "string" && error.code === "ABORT_ERR") return true;
|
|
24171
24209
|
return false;
|
|
24172
24210
|
}
|
|
24173
24211
|
function hasTransientMessage(value) {
|
|
24174
|
-
if (!isRecord$
|
|
24212
|
+
if (!isRecord$2(value)) return false;
|
|
24175
24213
|
const message = typeof value.message === "string" ? value.message.toLowerCase() : "";
|
|
24176
24214
|
if (message && TRANSIENT_MESSAGE_SUBSTRINGS.some((sub) => message.includes(sub))) return true;
|
|
24177
24215
|
if (typeof value.code === "string" && value.code.toUpperCase().startsWith("UND_ERR_")) return true;
|
|
@@ -24182,13 +24220,13 @@ function isRetryableHttpStatus(status) {
|
|
|
24182
24220
|
return status >= 500 && status <= 599;
|
|
24183
24221
|
}
|
|
24184
24222
|
function hasRetryableHttpStatus(value) {
|
|
24185
|
-
if (!isRecord$
|
|
24223
|
+
if (!isRecord$2(value)) return false;
|
|
24186
24224
|
if (typeof value.statusCode === "number" && isRetryableHttpStatus(value.statusCode)) return true;
|
|
24187
24225
|
if (typeof value.code === "number" && isRetryableHttpStatus(value.code)) return true;
|
|
24188
24226
|
return false;
|
|
24189
24227
|
}
|
|
24190
24228
|
function hasIsRetryableFlag(value) {
|
|
24191
|
-
if (!isRecord$
|
|
24229
|
+
if (!isRecord$2(value)) return false;
|
|
24192
24230
|
return value.isRetryable === true;
|
|
24193
24231
|
}
|
|
24194
24232
|
/**
|
|
@@ -24206,14 +24244,14 @@ function isTransientLLMError(error) {
|
|
|
24206
24244
|
if (isAbortError$5(error)) return false;
|
|
24207
24245
|
const visited = /* @__PURE__ */ new WeakSet();
|
|
24208
24246
|
function visit(candidate) {
|
|
24209
|
-
if (isRecord$
|
|
24247
|
+
if (isRecord$2(candidate)) {
|
|
24210
24248
|
if (visited.has(candidate)) return false;
|
|
24211
24249
|
visited.add(candidate);
|
|
24212
24250
|
}
|
|
24213
24251
|
if (hasTransientMessage(candidate)) return true;
|
|
24214
24252
|
if (hasRetryableHttpStatus(candidate)) return true;
|
|
24215
24253
|
if (hasIsRetryableFlag(candidate)) return true;
|
|
24216
|
-
if (isRecord$
|
|
24254
|
+
if (isRecord$2(candidate)) {
|
|
24217
24255
|
if (visit(candidate.cause)) return true;
|
|
24218
24256
|
if (visit(candidate.error)) return true;
|
|
24219
24257
|
}
|
|
@@ -24478,7 +24516,19 @@ var ObserverRunner = class {
|
|
|
24478
24516
|
}
|
|
24479
24517
|
async callObserver(existingObservations, messagesToObserve, abortSignal, options) {
|
|
24480
24518
|
const inputTokens = this.tokenCounter.countMessages(messagesToObserve);
|
|
24481
|
-
const resolvedModel =
|
|
24519
|
+
const resolvedModel = (() => {
|
|
24520
|
+
try {
|
|
24521
|
+
return options?.model ? { model: options.model } : this.resolveModel(inputTokens);
|
|
24522
|
+
} catch (error) {
|
|
24523
|
+
this.mastra?.getLogger?.().error("OM observer model resolution failed", {
|
|
24524
|
+
diagnostic: formatOmError(error),
|
|
24525
|
+
inputTokens,
|
|
24526
|
+
threadId: messagesToObserve[0]?.threadId,
|
|
24527
|
+
hasRequestContext: Boolean(options?.requestContext)
|
|
24528
|
+
});
|
|
24529
|
+
throw error;
|
|
24530
|
+
}
|
|
24531
|
+
})();
|
|
24482
24532
|
const activeExtractors = await resolveExtractors(filterObserverExtractors(this.observationConfig.extractors, options?.skipContinuationHints), {
|
|
24483
24533
|
source: "observer",
|
|
24484
24534
|
threadId: messagesToObserve[0]?.threadId,
|
|
@@ -24516,14 +24566,28 @@ var ObserverRunner = class {
|
|
|
24516
24566
|
...resolvedModel.routingThresholds ? { omRoutingThresholds: resolvedModel.routingThresholds } : {}
|
|
24517
24567
|
},
|
|
24518
24568
|
callback: (childObservabilityContext) => this.withAbortCheck(async () => {
|
|
24519
|
-
|
|
24520
|
-
|
|
24521
|
-
|
|
24522
|
-
|
|
24523
|
-
|
|
24524
|
-
|
|
24525
|
-
|
|
24526
|
-
|
|
24569
|
+
try {
|
|
24570
|
+
return await (await agent.stream(observerMessages, {
|
|
24571
|
+
modelSettings: { ...this.observationConfig.modelSettings },
|
|
24572
|
+
providerOptions: this.observationConfig.providerOptions,
|
|
24573
|
+
...temporaryMemory ? { memory: temporaryMemory.options } : {},
|
|
24574
|
+
...abortSignal ? { abortSignal } : {},
|
|
24575
|
+
...internalRequestContext ? { requestContext: internalRequestContext } : {},
|
|
24576
|
+
...childObservabilityContext
|
|
24577
|
+
})).getFullOutput();
|
|
24578
|
+
} catch (error) {
|
|
24579
|
+
this.mastra?.getLogger?.().error("OM observer provider call failed", {
|
|
24580
|
+
diagnostic: formatOmError(error),
|
|
24581
|
+
model: typeof resolvedModel.model === "function" ? "(dynamic-model)" : this.extractModelRouterId(resolvedModel.model, internalRequestContext),
|
|
24582
|
+
inputTokens,
|
|
24583
|
+
threadId: messagesToObserve[0]?.threadId,
|
|
24584
|
+
observedMessageCount: messagesToObserve.length,
|
|
24585
|
+
providerOptionProviders: Object.keys(this.observationConfig.providerOptions ?? {}),
|
|
24586
|
+
hasRequestContext: Boolean(internalRequestContext),
|
|
24587
|
+
aborted: abortSignal?.aborted ?? false
|
|
24588
|
+
});
|
|
24589
|
+
throw error;
|
|
24590
|
+
}
|
|
24527
24591
|
}, abortSignal)
|
|
24528
24592
|
}), {
|
|
24529
24593
|
label: "observer",
|
|
@@ -24620,7 +24684,22 @@ var ObserverRunner = class {
|
|
|
24620
24684
|
async callMultiThreadObserver(existingObservations, messagesByThread, threadOrder, abortSignal, requestContext, priorMetadataByThread, observabilityContext, model) {
|
|
24621
24685
|
if (threadOrder.length === 0) return { results: /* @__PURE__ */ new Map() };
|
|
24622
24686
|
const inputTokens = Array.from(messagesByThread.values()).reduce((total, messages) => total + this.tokenCounter.countMessages(messages), 0);
|
|
24623
|
-
const resolvedModel =
|
|
24687
|
+
const resolvedModel = (() => {
|
|
24688
|
+
try {
|
|
24689
|
+
return model ? { model } : this.resolveModel(inputTokens);
|
|
24690
|
+
} catch (error) {
|
|
24691
|
+
this.mastra?.getLogger?.().error("OM multi-thread observer model resolution failed", {
|
|
24692
|
+
diagnostic: formatOmError(error),
|
|
24693
|
+
inputTokens,
|
|
24694
|
+
threadIds: {
|
|
24695
|
+
sample: threadOrder.slice(0, 10).map((threadId) => threadId.slice(0, 128)),
|
|
24696
|
+
total: threadOrder.length
|
|
24697
|
+
},
|
|
24698
|
+
hasRequestContext: Boolean(requestContext)
|
|
24699
|
+
});
|
|
24700
|
+
throw error;
|
|
24701
|
+
}
|
|
24702
|
+
})();
|
|
24624
24703
|
const firstThreadMessages = messagesByThread.get(threadOrder[0] ?? "") ?? [];
|
|
24625
24704
|
const activeExtractors = await resolveExtractors(this.observationConfig.extractors ?? [], {
|
|
24626
24705
|
source: "observer",
|
|
@@ -24690,13 +24769,29 @@ var ObserverRunner = class {
|
|
|
24690
24769
|
...resolvedModel.routingThresholds ? { omRoutingThresholds: resolvedModel.routingThresholds } : {}
|
|
24691
24770
|
},
|
|
24692
24771
|
callback: (childObservabilityContext) => this.withAbortCheck(async () => {
|
|
24693
|
-
|
|
24694
|
-
|
|
24695
|
-
|
|
24696
|
-
|
|
24697
|
-
|
|
24698
|
-
|
|
24699
|
-
|
|
24772
|
+
try {
|
|
24773
|
+
return await (await agent.stream(observerMessages, {
|
|
24774
|
+
modelSettings: { ...this.observationConfig.modelSettings },
|
|
24775
|
+
providerOptions: this.observationConfig.providerOptions,
|
|
24776
|
+
...abortSignal ? { abortSignal } : {},
|
|
24777
|
+
...internalRequestContext ? { requestContext: internalRequestContext } : {},
|
|
24778
|
+
...childObservabilityContext
|
|
24779
|
+
})).getFullOutput();
|
|
24780
|
+
} catch (error) {
|
|
24781
|
+
this.mastra?.getLogger?.().error("OM multi-thread observer provider call failed", {
|
|
24782
|
+
diagnostic: formatOmError(error),
|
|
24783
|
+
model: typeof resolvedModel.model === "function" ? "(dynamic-model)" : this.extractModelRouterId(resolvedModel.model, internalRequestContext),
|
|
24784
|
+
inputTokens,
|
|
24785
|
+
threadIds: {
|
|
24786
|
+
sample: threadOrder.slice(0, 10).map((threadId) => threadId.slice(0, 128)),
|
|
24787
|
+
total: threadOrder.length
|
|
24788
|
+
},
|
|
24789
|
+
providerOptionProviders: Object.keys(this.observationConfig.providerOptions ?? {}),
|
|
24790
|
+
hasRequestContext: Boolean(internalRequestContext),
|
|
24791
|
+
aborted: abortSignal?.aborted ?? false
|
|
24792
|
+
});
|
|
24793
|
+
throw error;
|
|
24794
|
+
}
|
|
24700
24795
|
}, abortSignal)
|
|
24701
24796
|
}), {
|
|
24702
24797
|
label: "observer-multi-thread",
|
|
@@ -27945,43 +28040,6 @@ function didProviderChange(actorModel, lastModel) {
|
|
|
27945
28040
|
if (actorContext.provider && lastContext.provider) return actorContext.provider !== lastContext.provider;
|
|
27946
28041
|
return false;
|
|
27947
28042
|
}
|
|
27948
|
-
function isRecord$2(value) {
|
|
27949
|
-
return typeof value === "object" && value !== null;
|
|
27950
|
-
}
|
|
27951
|
-
/** Keep provider diagnostics in streamed/persisted markers, not whole API request/response objects. */
|
|
27952
|
-
function formatOmError(error) {
|
|
27953
|
-
const details = /* @__PURE__ */ new Set();
|
|
27954
|
-
const visited = /* @__PURE__ */ new Set();
|
|
27955
|
-
const add = (value) => {
|
|
27956
|
-
if (typeof value === "string" && value.trim()) details.add(value.trim().slice(0, 2e3));
|
|
27957
|
-
};
|
|
27958
|
-
function collectErrorDetails(value, depth) {
|
|
27959
|
-
if (depth > 5) return;
|
|
27960
|
-
if (!isRecord$2(value)) {
|
|
27961
|
-
if (value !== void 0) add(String(value));
|
|
27962
|
-
return;
|
|
27963
|
-
}
|
|
27964
|
-
if (visited.has(value)) return;
|
|
27965
|
-
visited.add(value);
|
|
27966
|
-
add(value.message);
|
|
27967
|
-
if (typeof value.statusCode === "number") add(`HTTP ${value.statusCode}`);
|
|
27968
|
-
if (typeof value.responseBody === "string") try {
|
|
27969
|
-
const body = JSON.parse(value.responseBody);
|
|
27970
|
-
if (isRecord$2(body)) {
|
|
27971
|
-
add(body.message);
|
|
27972
|
-
if (isRecord$2(body.error)) add(body.error.message);
|
|
27973
|
-
else add(body.error);
|
|
27974
|
-
}
|
|
27975
|
-
} catch {}
|
|
27976
|
-
if (value.cause !== void 0) collectErrorDetails(value.cause, depth + 1);
|
|
27977
|
-
if (value.error !== void 0) collectErrorDetails(value.error, depth + 1);
|
|
27978
|
-
}
|
|
27979
|
-
try {
|
|
27980
|
-
collectErrorDetails(error, 0);
|
|
27981
|
-
} catch {}
|
|
27982
|
-
const message = [...details].join(": ") || "Unknown error";
|
|
27983
|
-
return message.length > 2e3 ? `${message.slice(0, 1997)}...` : message;
|
|
27984
|
-
}
|
|
27985
28043
|
/**
|
|
27986
28044
|
* Create a start marker for when observation begins.
|
|
27987
28045
|
*/
|
|
@@ -46979,4 +47037,4 @@ const agentBuilderWorkflows = {
|
|
|
46979
47037
|
//#endregion
|
|
46980
47038
|
export { agentBuilderWorkflows };
|
|
46981
47039
|
|
|
46982
|
-
//# sourceMappingURL=dist-
|
|
47040
|
+
//# sourceMappingURL=dist-DS38AI6C.js.map
|