@mastra/server 1.72.0-alpha.1 → 1.72.0-alpha.10
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/{a2a-CwxSk6H0.cjs → a2a-CAQVpVxH.cjs} +23 -3
- package/dist/a2a-CAQVpVxH.cjs.map +1 -0
- package/dist/{a2a-DQOqoU_q.js → a2a-D2BffGsK.js} +23 -3
- package/dist/a2a-D2BffGsK.js.map +1 -0
- package/dist/{agent-builder-BGTZux5y.js → agent-builder-BlD120ac.js} +2 -2
- package/dist/{agent-builder-BGTZux5y.js.map → agent-builder-BlD120ac.js.map} +1 -1
- package/dist/{agent-builder-D-LAj4SD.cjs → agent-builder-CvwtAD7k.cjs} +2 -2
- package/dist/{agent-builder-D-LAj4SD.cjs.map → agent-builder-CvwtAD7k.cjs.map} +1 -1
- package/dist/{api-schema-manifest-Maxewnw7.cjs → api-schema-manifest-CaZU5zVt.cjs} +2 -2
- package/dist/{api-schema-manifest-Maxewnw7.cjs.map → api-schema-manifest-CaZU5zVt.cjs.map} +1 -1
- package/dist/{api-schema-manifest-DJiUahwo.js → api-schema-manifest-wF1O8MCU.js} +2 -2
- package/dist/{api-schema-manifest-DJiUahwo.js.map → api-schema-manifest-wF1O8MCU.js.map} +1 -1
- package/dist/{channels-DMw4LEA-.cjs → channels-DJkXEpTr.cjs} +18 -7
- package/dist/channels-DJkXEpTr.cjs.map +1 -0
- package/dist/{channels-xqChW6Vw.js → channels-DzaCNtXe.js} +18 -7
- package/dist/channels-DzaCNtXe.js.map +1 -0
- package/dist/{dist-Cfr6t0cK.cjs → dist-CRMvLG_8.cjs} +746 -366
- package/dist/dist-CRMvLG_8.cjs.map +1 -0
- package/dist/{dist-ABdCIqbD.js → dist-CYk5xS3y.js} +746 -366
- package/dist/dist-CYk5xS3y.js.map +1 -0
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/docs/references/reference-observability-tracing-trace-query.md +37 -16
- package/dist/{editor-builder-BrkDnCEd.js → editor-builder-DJMAKDR5.js} +3 -2
- package/dist/editor-builder-DJMAKDR5.js.map +1 -0
- package/dist/{editor-builder-DIpISGSI.cjs → editor-builder-DrDs-t9i.cjs} +3 -2
- package/dist/editor-builder-DrDs-t9i.cjs.map +1 -0
- package/dist/{observability-new-endpoints-Ct0CSLE4.cjs → observability-new-endpoints-7Zd6uEZf.cjs} +111 -3
- package/dist/observability-new-endpoints-7Zd6uEZf.cjs.map +1 -0
- package/dist/{observability-new-endpoints-DqS6dcR5.js → observability-new-endpoints-lNC3o66-.js} +107 -5
- package/dist/observability-new-endpoints-lNC3o66-.js.map +1 -0
- package/dist/route-builder-2yrD15TL.cjs.map +1 -1
- package/dist/route-builder-lBil8Cvo.js.map +1 -1
- package/dist/{routes-D6sAEgtj.js → routes-B6soWZap.js} +6 -5
- package/dist/routes-B6soWZap.js.map +1 -0
- package/dist/{routes-C9CmwhbC.cjs → routes-x4As7pym.cjs} +6 -5
- package/dist/routes-x4As7pym.cjs.map +1 -0
- package/dist/server/handlers/a2a.cjs +1 -1
- package/dist/server/handlers/a2a.d.ts.map +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.d.ts +4 -2
- package/dist/server/handlers/agent-builder.d.ts.map +1 -1
- package/dist/server/handlers/agent-builder.js +3 -3
- package/dist/server/handlers/agent-controller.cjs +2 -1
- package/dist/server/handlers/agent-controller.cjs.map +1 -1
- package/dist/server/handlers/agent-controller.d.ts.map +1 -1
- package/dist/server/handlers/agent-controller.js +2 -1
- package/dist/server/handlers/agent-controller.js.map +1 -1
- package/dist/server/handlers/agents.cjs +49 -20
- 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 +49 -20
- package/dist/server/handlers/agents.js.map +1 -1
- package/dist/server/handlers/channels.cjs +1 -1
- package/dist/server/handlers/channels.d.ts.map +1 -1
- package/dist/server/handlers/channels.js +1 -1
- package/dist/server/handlers/editor-builder.cjs +1 -1
- package/dist/server/handlers/editor-builder.d.ts.map +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/observability-new-endpoints.cjs +2 -1
- package/dist/server/handlers/observability-new-endpoints.d.ts +100 -0
- package/dist/server/handlers/observability-new-endpoints.d.ts.map +1 -1
- package/dist/server/handlers/observability-new-endpoints.js +2 -2
- package/dist/server/handlers/observability-shared.cjs +46 -0
- package/dist/server/handlers/observability-shared.cjs.map +1 -1
- package/dist/server/handlers/observability-shared.d.ts +13 -0
- package/dist/server/handlers/observability-shared.d.ts.map +1 -1
- package/dist/server/handlers/observability-shared.js +42 -1
- package/dist/server/handlers/observability-shared.js.map +1 -1
- package/dist/server/handlers/observability.cjs +3 -1
- package/dist/server/handlers/observability.cjs.map +1 -1
- package/dist/server/handlers/observability.js +3 -2
- package/dist/server/handlers/observability.js.map +1 -1
- package/dist/server/handlers/stored-agent-favorites.cjs +1 -1
- package/dist/server/handlers/stored-agent-favorites.js +1 -1
- package/dist/server/handlers/stored-agents.cjs +6 -3
- package/dist/server/handlers/stored-agents.cjs.map +1 -1
- package/dist/server/handlers/stored-agents.d.ts.map +1 -1
- package/dist/server/handlers/stored-agents.js +6 -3
- package/dist/server/handlers/stored-agents.js.map +1 -1
- package/dist/server/handlers/stored-skill-favorites.cjs +1 -1
- package/dist/server/handlers/stored-skill-favorites.js +1 -1
- package/dist/server/handlers/stored-skills.cjs +1 -1
- package/dist/server/handlers/stored-skills.js +1 -1
- package/dist/server/handlers/system.cjs +2 -2
- package/dist/server/handlers/system.d.ts +2 -0
- package/dist/server/handlers/system.d.ts.map +1 -1
- package/dist/server/handlers/system.js +2 -2
- package/dist/server/handlers/workflows.cjs +28 -4
- package/dist/server/handlers/workflows.cjs.map +1 -1
- package/dist/server/handlers/workflows.d.ts +5 -2
- package/dist/server/handlers/workflows.d.ts.map +1 -1
- package/dist/server/handlers/workflows.js +28 -4
- package/dist/server/handlers/workflows.js.map +1 -1
- package/dist/server/handlers.cjs +1 -1
- package/dist/server/handlers.js +1 -1
- package/dist/server/schemas/index.cjs +3 -3
- package/dist/server/schemas/index.js +3 -3
- package/dist/server/schemas/system.d.ts +2 -0
- package/dist/server/schemas/system.d.ts.map +1 -1
- package/dist/server/schemas/workflows.d.ts +2 -1
- package/dist/server/schemas/workflows.d.ts.map +1 -1
- package/dist/server/server-adapter/index.cjs +1 -1
- package/dist/server/server-adapter/index.js +1 -1
- package/dist/server/server-adapter/routes/agent-builder.d.ts +4 -2
- package/dist/server/server-adapter/routes/agent-builder.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/observability.d.ts +97 -0
- package/dist/server/server-adapter/routes/observability.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/system.d.ts +2 -0
- package/dist/server/server-adapter/routes/system.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/workflows.d.ts +4 -2
- package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -1
- package/dist/{system-BE5tDMHq.js → system-6qFm79mm.js} +2 -1
- package/dist/system-6qFm79mm.js.map +1 -0
- package/dist/{system-BlGYb2fu.cjs → system-CskEzH1o.cjs} +2 -1
- package/dist/system-CskEzH1o.cjs.map +1 -0
- package/dist/{workflows-CvJ4c4_p.js → workflows-BEdLrZQZ.js} +3 -2
- package/dist/workflows-BEdLrZQZ.js.map +1 -0
- package/dist/{workflows-Cv6MGw9d.cjs → workflows-BdoErlkd.cjs} +3 -2
- package/dist/workflows-BdoErlkd.cjs.map +1 -0
- package/package.json +6 -6
- package/dist/a2a-CwxSk6H0.cjs.map +0 -1
- package/dist/a2a-DQOqoU_q.js.map +0 -1
- package/dist/channels-DMw4LEA-.cjs.map +0 -1
- package/dist/channels-xqChW6Vw.js.map +0 -1
- package/dist/dist-ABdCIqbD.js.map +0 -1
- package/dist/dist-Cfr6t0cK.cjs.map +0 -1
- package/dist/editor-builder-BrkDnCEd.js.map +0 -1
- package/dist/editor-builder-DIpISGSI.cjs.map +0 -1
- package/dist/observability-new-endpoints-Ct0CSLE4.cjs.map +0 -1
- package/dist/observability-new-endpoints-DqS6dcR5.js.map +0 -1
- package/dist/routes-C9CmwhbC.cjs.map +0 -1
- package/dist/routes-D6sAEgtj.js.map +0 -1
- package/dist/system-BE5tDMHq.js.map +0 -1
- package/dist/system-BlGYb2fu.cjs.map +0 -1
- package/dist/workflows-Cv6MGw9d.cjs.map +0 -1
- package/dist/workflows-CvJ4c4_p.js.map +0 -1
|
@@ -125,10 +125,13 @@ function hasSuspendedToolCall(snapshot, toolCallId) {
|
|
|
125
125
|
};
|
|
126
126
|
return visit(snapshot.context);
|
|
127
127
|
}
|
|
128
|
-
|
|
128
|
+
function getDurableLoopWorkflowName(agent) {
|
|
129
|
+
return agent.durableLoopWorkflowName ?? _mastra_core_agent_durable.DurableStepIds.AGENTIC_LOOP;
|
|
130
|
+
}
|
|
131
|
+
async function validateDurableToolCallAccess({ mastra, agent, runId, toolCallId, requestContext, threadId }) {
|
|
129
132
|
if (!(0, _mastra_core_agent.isDurableAgentLike)(agent)) return;
|
|
130
133
|
const workflowRun = await (await mastra.getStorage()?.getStore("workflows"))?.getWorkflowRunById({
|
|
131
|
-
workflowName:
|
|
134
|
+
workflowName: getDurableLoopWorkflowName(agent),
|
|
132
135
|
runId
|
|
133
136
|
});
|
|
134
137
|
if (!workflowRun) throw new require_http_exception.HTTPException(403, { message: "Access denied: durable run belongs to a different resource" });
|
|
@@ -148,7 +151,9 @@ async function validateDurableToolCallAccess({ mastra, agent, runId, toolCallId,
|
|
|
148
151
|
const effectiveResourceId = require_utils$1.getEffectiveResourceId(requestContext, void 0);
|
|
149
152
|
const [persistedResourceId] = persistedResourceIds;
|
|
150
153
|
if (persistedResourceIds.size > 1 || persistedResourceId && persistedResourceId !== effectiveResourceId) throw new require_http_exception.HTTPException(403, { message: "Access denied: durable run belongs to a different resource" });
|
|
151
|
-
|
|
154
|
+
const persistedThreadId = input?.state?.threadId ?? input?.messageListState?.memoryInfo?.threadId;
|
|
155
|
+
if (threadId && persistedThreadId !== threadId) throw new require_http_exception.HTTPException(403, { message: "Access denied: durable run belongs to a different thread" });
|
|
156
|
+
if (!snapshot || snapshot.status !== "suspended" || input?.agentId !== agent.id || toolCallId !== void 0 && !hasSuspendedToolCall(snapshot, toolCallId)) throw new require_http_exception.HTTPException(403, { message: "Access denied: tool call is not suspended on this durable run" });
|
|
152
157
|
}
|
|
153
158
|
/**
|
|
154
159
|
* Providers whose apiKeyEnvVar entries are aliases for the same credential (any one
|
|
@@ -1095,35 +1100,43 @@ async function buildProvidersList(mastra) {
|
|
|
1095
1100
|
const blockExternalProviders = process.env.AUTO_BLOCK_EXTERNAL_PROVIDERS === "true" || process.env.AUTO_BLOCK_EXTERNAL_PROVIDERS === "1";
|
|
1096
1101
|
const defaultGatewayIds = new Set(_mastra_core_llm.defaultGateways.map((gateway) => gateway.id));
|
|
1097
1102
|
if (!blockExternalProviders) for (const [id, provider] of Object.entries(_mastra_core_llm.PROVIDER_REGISTRY)) allProviders[id] = provider;
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
if (
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
if (!(prefixedId in allProviders)) allProviders[prefixedId] = config;
|
|
1108
|
-
}
|
|
1109
|
-
} catch (error) {
|
|
1110
|
-
console.warn(`Failed to fetch providers from gateway "${gateway.id}":`, error);
|
|
1103
|
+
const gateways = mastra ? Object.values(mastra.listGateways() ?? {}) : [];
|
|
1104
|
+
for (const gateway of gateways) {
|
|
1105
|
+
if (gateway.id === "models.dev") continue;
|
|
1106
|
+
if (blockExternalProviders && defaultGatewayIds.has(gateway.id)) continue;
|
|
1107
|
+
try {
|
|
1108
|
+
const gatewayProviders = await gateway.fetchProviders();
|
|
1109
|
+
for (const [providerId, config] of Object.entries(gatewayProviders)) {
|
|
1110
|
+
const prefixedId = providerId === gateway.id ? gateway.id : `${gateway.id}/${providerId}`;
|
|
1111
|
+
if (!(prefixedId in allProviders)) allProviders[prefixedId] = config;
|
|
1111
1112
|
}
|
|
1113
|
+
} catch (error) {
|
|
1114
|
+
console.warn(`Failed to fetch providers from gateway "${gateway.id}":`, error);
|
|
1112
1115
|
}
|
|
1113
1116
|
}
|
|
1114
1117
|
return Object.entries(allProviders).map(([id, provider]) => {
|
|
1115
1118
|
return {
|
|
1116
1119
|
id,
|
|
1117
1120
|
name: provider.name,
|
|
1118
|
-
label: provider
|
|
1119
|
-
description: provider
|
|
1121
|
+
label: readStringField(provider, "label") || provider.name,
|
|
1122
|
+
description: readStringField(provider, "description") || "",
|
|
1120
1123
|
envVar: provider.apiKeyEnvVar,
|
|
1121
|
-
connected: isProviderConnected(id, allProviders),
|
|
1124
|
+
connected: isProviderConnected(id, allProviders) || isClaimedByGateway(id, provider.models, gateways),
|
|
1122
1125
|
docUrl: provider.docUrl,
|
|
1123
1126
|
models: [...provider.models]
|
|
1124
1127
|
};
|
|
1125
1128
|
});
|
|
1126
1129
|
}
|
|
1130
|
+
function isClaimedByGateway(providerId, models, gateways) {
|
|
1131
|
+
const [firstModel] = models;
|
|
1132
|
+
if (!firstModel) return false;
|
|
1133
|
+
const routerId = `${providerId}/${firstModel}`;
|
|
1134
|
+
return gateways.some((gateway) => gateway.shouldEnable?.() !== false && gateway.handlesModel?.(routerId) === true);
|
|
1135
|
+
}
|
|
1136
|
+
function readStringField(source, field) {
|
|
1137
|
+
const value = source[field];
|
|
1138
|
+
return typeof value === "string" ? value : void 0;
|
|
1139
|
+
}
|
|
1127
1140
|
const GET_PROVIDERS_ROUTE = require_route_builder.createRoute({
|
|
1128
1141
|
method: "GET",
|
|
1129
1142
|
path: "/agents/providers",
|
|
@@ -2016,6 +2029,14 @@ const RESUME_STREAM_ROUTE = require_route_builder.createRoute({
|
|
|
2016
2029
|
...effectiveResourceId ? { resource: effectiveResourceId } : {},
|
|
2017
2030
|
...effectiveThreadId ? { thread: effectiveThreadId } : {}
|
|
2018
2031
|
};
|
|
2032
|
+
await validateDurableToolCallAccess({
|
|
2033
|
+
mastra,
|
|
2034
|
+
agent,
|
|
2035
|
+
runId,
|
|
2036
|
+
toolCallId,
|
|
2037
|
+
requestContext: serverRequestContext,
|
|
2038
|
+
threadId: effectiveThreadId
|
|
2039
|
+
});
|
|
2019
2040
|
await require_utils$1.validateRunOwnership(await (await mastra.getStorage()?.getStore("workflows"))?.getWorkflowRunById({
|
|
2020
2041
|
workflowName: "agentic-loop",
|
|
2021
2042
|
runId
|
|
@@ -2068,7 +2089,7 @@ const RECOVER_ROUTE = require_route_builder.createRoute({
|
|
|
2068
2089
|
});
|
|
2069
2090
|
if (!(0, _mastra_core_agent.isDurableAgentLike)(agent)) throw new require_http_exception.HTTPException(400, { message: "Agent does not support recover. Only durable agents (createDurableAgent) can recover runs." });
|
|
2070
2091
|
await require_utils$1.validateRunOwnership(await (await mastra.getStorage()?.getStore("workflows"))?.getWorkflowRunById({
|
|
2071
|
-
workflowName:
|
|
2092
|
+
workflowName: getDurableLoopWorkflowName(agent),
|
|
2072
2093
|
runId
|
|
2073
2094
|
}), require_utils$1.getEffectiveResourceId(serverRequestContext, void 0));
|
|
2074
2095
|
return (await agent.recover(runId, { abortSignal })).fullStream;
|
|
@@ -2128,6 +2149,14 @@ const RESUME_STREAM_UNTIL_IDLE_ROUTE = require_route_builder.createRoute({
|
|
|
2128
2149
|
...effectiveResourceId ? { resource: effectiveResourceId } : {},
|
|
2129
2150
|
...effectiveThreadId ? { thread: effectiveThreadId } : {}
|
|
2130
2151
|
};
|
|
2152
|
+
await validateDurableToolCallAccess({
|
|
2153
|
+
mastra,
|
|
2154
|
+
agent,
|
|
2155
|
+
runId,
|
|
2156
|
+
toolCallId,
|
|
2157
|
+
requestContext: serverRequestContext,
|
|
2158
|
+
threadId: effectiveThreadId
|
|
2159
|
+
});
|
|
2131
2160
|
await require_utils$1.validateRunOwnership(await (await mastra.getStorage()?.getStore("workflows"))?.getWorkflowRunById({
|
|
2132
2161
|
workflowName: "agentic-loop",
|
|
2133
2162
|
runId
|