@mastra/server 0.0.0-netlify-no-bundle-20251127120354 → 0.0.0-partial-response-backport-20251204204441
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 +137 -656
- package/README.md +1 -1
- package/dist/{chunk-RCCWKKI3.js → chunk-2FBQWGK2.js} +31 -218
- package/dist/chunk-2FBQWGK2.js.map +1 -0
- package/dist/chunk-2S4IMB6E.cjs +130 -0
- package/dist/chunk-2S4IMB6E.cjs.map +1 -0
- package/dist/chunk-3SNGNFUJ.cjs +128 -0
- package/dist/chunk-3SNGNFUJ.cjs.map +1 -0
- package/dist/chunk-4QCXUEAT.js +25 -0
- package/dist/chunk-4QCXUEAT.js.map +1 -0
- package/dist/chunk-67GYDFSB.js +160 -0
- package/dist/chunk-67GYDFSB.js.map +1 -0
- package/dist/chunk-6ZR275MD.cjs +165 -0
- package/dist/chunk-6ZR275MD.cjs.map +1 -0
- package/dist/{chunk-64ITUOXI.cjs → chunk-7NADHFD2.cjs} +2 -2
- package/dist/{chunk-6QWQZI4Q.js.map → chunk-7NADHFD2.cjs.map} +1 -1
- package/dist/chunk-ABRFV4XP.js +83 -0
- package/dist/chunk-ABRFV4XP.js.map +1 -0
- package/dist/chunk-AHB4JCIQ.js +160 -0
- package/dist/chunk-AHB4JCIQ.js.map +1 -0
- package/dist/chunk-AW5BU3RQ.js +192 -0
- package/dist/chunk-AW5BU3RQ.js.map +1 -0
- package/dist/chunk-BATEJLED.js +124 -0
- package/dist/chunk-BATEJLED.js.map +1 -0
- package/dist/{chunk-UXGQZUYZ.js → chunk-CY4TP3FK.js} +3 -3
- package/dist/{chunk-UXGQZUYZ.js.map → chunk-CY4TP3FK.js.map} +1 -1
- package/dist/chunk-EP3JQDPD.cjs +131 -0
- package/dist/chunk-EP3JQDPD.cjs.map +1 -0
- package/dist/chunk-G4PUALCE.cjs +28 -0
- package/dist/chunk-G4PUALCE.cjs.map +1 -0
- package/dist/chunk-I3C4ODGV.cjs +335 -0
- package/dist/chunk-I3C4ODGV.cjs.map +1 -0
- package/dist/{chunk-UZ6CYAOG.cjs → chunk-JOBDMCQL.cjs} +21 -7
- package/dist/chunk-JOBDMCQL.cjs.map +1 -0
- package/dist/chunk-KPDPKARA.cjs +733 -0
- package/dist/chunk-KPDPKARA.cjs.map +1 -0
- package/dist/chunk-LLUOPR3J.js +323 -0
- package/dist/chunk-LLUOPR3J.js.map +1 -0
- package/dist/{chunk-6QWQZI4Q.js → chunk-MMROOK5J.js} +2 -2
- package/dist/chunk-MMROOK5J.js.map +1 -0
- package/dist/chunk-MYR4PVGN.js +123 -0
- package/dist/chunk-MYR4PVGN.js.map +1 -0
- package/dist/chunk-NT5XW5PI.cjs +596 -0
- package/dist/chunk-NT5XW5PI.cjs.map +1 -0
- package/dist/chunk-O5Q5JZMC.cjs +19565 -0
- package/dist/chunk-O5Q5JZMC.cjs.map +1 -0
- package/dist/chunk-PBXWFGEH.js +579 -0
- package/dist/chunk-PBXWFGEH.js.map +1 -0
- package/dist/{chunk-PDVJ2TTM.cjs → chunk-Q4WS5AH4.cjs} +31 -224
- package/dist/chunk-Q4WS5AH4.cjs.map +1 -0
- package/dist/chunk-QQXMIP6C.js +122 -0
- package/dist/chunk-QQXMIP6C.js.map +1 -0
- package/dist/{chunk-V272B7RM.cjs → chunk-QU6N55W6.cjs} +12 -11
- package/dist/chunk-QU6N55W6.cjs.map +1 -0
- package/dist/{chunk-V5WWQN7P.cjs → chunk-RE4RPXT2.cjs} +4 -4
- package/dist/{chunk-V5WWQN7P.cjs.map → chunk-RE4RPXT2.cjs.map} +1 -1
- package/dist/{chunk-YP34EWWK.js → chunk-SHWNNZBL.js} +10 -9
- package/dist/chunk-SHWNNZBL.js.map +1 -0
- package/dist/chunk-SPRRK3P7.cjs +200 -0
- package/dist/chunk-SPRRK3P7.cjs.map +1 -0
- package/dist/chunk-TM6RSSEG.js +711 -0
- package/dist/chunk-TM6RSSEG.js.map +1 -0
- package/dist/{chunk-ER3QM7DD.js → chunk-TOCYBDP2.js} +4 -4
- package/dist/{chunk-ER3QM7DD.js.map → chunk-TOCYBDP2.js.map} +1 -1
- package/dist/chunk-TRGAMKHX.cjs +167 -0
- package/dist/chunk-TRGAMKHX.cjs.map +1 -0
- package/dist/{chunk-G7BPNX2V.js → chunk-VN33BALN.js} +21 -7
- package/dist/chunk-VN33BALN.js.map +1 -0
- package/dist/chunk-VYX6MBSJ.js +909 -0
- package/dist/chunk-VYX6MBSJ.js.map +1 -0
- package/dist/chunk-VZX6AWAA.cjs +938 -0
- package/dist/chunk-VZX6AWAA.cjs.map +1 -0
- package/dist/{chunk-XQPJ63ZD.cjs → chunk-X6C7BUWN.cjs} +4 -4
- package/dist/{chunk-XQPJ63ZD.cjs.map → chunk-X6C7BUWN.cjs.map} +1 -1
- package/dist/chunk-XN74I6VW.cjs +88 -0
- package/dist/chunk-XN74I6VW.cjs.map +1 -0
- package/dist/chunk-XPQZ5C3T.js +19529 -0
- package/dist/chunk-XPQZ5C3T.js.map +1 -0
- package/dist/server/handlers/a2a.cjs +7 -15
- package/dist/server/handlers/a2a.d.ts +10 -492
- 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 +31 -43
- package/dist/server/handlers/agent-builder.d.ts +84 -598
- package/dist/server/handlers/agent-builder.d.ts.map +1 -1
- package/dist/server/handlers/agent-builder.js +1 -1
- package/dist/server/handlers/agents.cjs +41 -49
- package/dist/server/handlers/agents.d.ts +149 -3275
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/error.cjs +2 -2
- package/dist/server/handlers/error.js +1 -1
- package/dist/server/handlers/legacyWorkflows.cjs +48 -0
- package/dist/server/handlers/legacyWorkflows.cjs.map +1 -0
- package/dist/server/handlers/legacyWorkflows.d.ts +59 -0
- package/dist/server/handlers/legacyWorkflows.d.ts.map +1 -0
- package/dist/server/handlers/legacyWorkflows.js +3 -0
- package/dist/server/handlers/legacyWorkflows.js.map +1 -0
- package/dist/server/handlers/logs.cjs +7 -7
- package/dist/server/handlers/logs.d.ts +27 -135
- package/dist/server/handlers/logs.d.ts.map +1 -1
- package/dist/server/handlers/logs.js +1 -1
- package/dist/server/handlers/memory.cjs +31 -63
- package/dist/server/handlers/memory.d.ts +103 -934
- package/dist/server/handlers/memory.d.ts.map +1 -1
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/observability.cjs +8 -24
- package/dist/server/handlers/observability.d.ts +21 -128
- package/dist/server/handlers/observability.d.ts.map +1 -1
- package/dist/server/handlers/observability.js +1 -1
- package/dist/server/handlers/scores.cjs +13 -13
- package/dist/server/handlers/scores.d.ts +141 -110
- package/dist/server/handlers/scores.d.ts.map +1 -1
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/telemetry.cjs +20 -0
- package/dist/server/handlers/telemetry.cjs.map +1 -0
- package/dist/server/handlers/telemetry.d.ts +33 -0
- package/dist/server/handlers/telemetry.d.ts.map +1 -0
- package/dist/server/handlers/telemetry.js +3 -0
- package/dist/server/handlers/telemetry.js.map +1 -0
- package/dist/server/handlers/tools.cjs +11 -11
- package/dist/server/handlers/tools.d.ts +23 -69
- package/dist/server/handlers/tools.d.ts.map +1 -1
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/utils.cjs +3 -11
- package/dist/server/handlers/utils.d.ts +0 -5
- package/dist/server/handlers/utils.d.ts.map +1 -1
- package/dist/server/handlers/utils.js +1 -1
- package/dist/server/handlers/vector.cjs +7 -31
- package/dist/server/handlers/vector.d.ts +9 -93
- package/dist/server/handlers/vector.d.ts.map +1 -1
- package/dist/server/handlers/vector.js +1 -1
- package/dist/server/handlers/voice.cjs +9 -21
- package/dist/server/handlers/voice.d.ts +40 -81
- package/dist/server/handlers/voice.d.ts.map +1 -1
- package/dist/server/handlers/voice.js +1 -1
- package/dist/server/handlers/workflows.cjs +59 -51
- package/dist/server/handlers/workflows.d.ts +140 -915
- package/dist/server/handlers/workflows.d.ts.map +1 -1
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers.cjs +36 -26
- package/dist/server/handlers.d.ts +2 -0
- package/dist/server/handlers.d.ts.map +1 -1
- package/dist/server/handlers.js +13 -11
- package/dist/server/http-exception.d.ts +5 -0
- package/dist/server/http-exception.d.ts.map +1 -1
- package/dist/server/utils.d.ts +3 -4
- package/dist/server/utils.d.ts.map +1 -1
- package/dist/{token-ZOD6YIQ3.cjs → token-375W3LEI.cjs} +8 -7
- package/dist/{token-VFONFWVS.cjs.map → token-375W3LEI.cjs.map} +1 -1
- package/dist/{token-JGA3ZWAN.js → token-C3IMNCC4.js} +6 -5
- package/dist/{token-GVZ7HRD7.js.map → token-C3IMNCC4.js.map} +1 -1
- package/dist/token-util-CV3RRG6K.cjs +9 -0
- package/dist/{token-util-BLJZJDBZ.cjs.map → token-util-CV3RRG6K.cjs.map} +1 -1
- package/dist/token-util-E5QO2RCL.js +7 -0
- package/dist/{token-util-7R2ZFIXO.js.map → token-util-E5QO2RCL.js.map} +1 -1
- package/package.json +15 -26
- package/dist/chunk-2NW6POYK.cjs +0 -89
- package/dist/chunk-2NW6POYK.cjs.map +0 -1
- package/dist/chunk-4JMHKKV3.cjs +0 -201
- package/dist/chunk-4JMHKKV3.cjs.map +0 -1
- package/dist/chunk-4O2QGUW3.js +0 -354
- package/dist/chunk-4O2QGUW3.js.map +0 -1
- package/dist/chunk-4W2SM6CG.js +0 -294
- package/dist/chunk-4W2SM6CG.js.map +0 -1
- package/dist/chunk-5W4RPVTK.cjs +0 -49
- package/dist/chunk-5W4RPVTK.cjs.map +0 -1
- package/dist/chunk-64ITUOXI.cjs.map +0 -1
- package/dist/chunk-6GHJDY7R.js +0 -23157
- package/dist/chunk-6GHJDY7R.js.map +0 -1
- package/dist/chunk-6KNI7VIX.js +0 -1021
- package/dist/chunk-6KNI7VIX.js.map +0 -1
- package/dist/chunk-A6MQQTHN.js +0 -310
- package/dist/chunk-A6MQQTHN.js.map +0 -1
- package/dist/chunk-AUQBEMDP.cjs +0 -322
- package/dist/chunk-AUQBEMDP.cjs.map +0 -1
- package/dist/chunk-CBDUTSTI.js +0 -192
- package/dist/chunk-CBDUTSTI.js.map +0 -1
- package/dist/chunk-FPCGLPLJ.cjs +0 -297
- package/dist/chunk-FPCGLPLJ.cjs.map +0 -1
- package/dist/chunk-G7BPNX2V.js.map +0 -1
- package/dist/chunk-IMK7366C.cjs +0 -346
- package/dist/chunk-IMK7366C.cjs.map +0 -1
- package/dist/chunk-LGG3N3AV.js +0 -116
- package/dist/chunk-LGG3N3AV.js.map +0 -1
- package/dist/chunk-LIDPFFPK.cjs +0 -23199
- package/dist/chunk-LIDPFFPK.cjs.map +0 -1
- package/dist/chunk-LZDCXQMX.js +0 -164
- package/dist/chunk-LZDCXQMX.js.map +0 -1
- package/dist/chunk-MH3A7RDQ.cjs +0 -1064
- package/dist/chunk-MH3A7RDQ.cjs.map +0 -1
- package/dist/chunk-MWQQRVQC.cjs +0 -259
- package/dist/chunk-MWQQRVQC.cjs.map +0 -1
- package/dist/chunk-PDVJ2TTM.cjs.map +0 -1
- package/dist/chunk-PKRHEXX7.js +0 -74
- package/dist/chunk-PKRHEXX7.js.map +0 -1
- package/dist/chunk-QDOIM3G5.cjs +0 -916
- package/dist/chunk-QDOIM3G5.cjs.map +0 -1
- package/dist/chunk-QVHQZUGJ.cjs +0 -368
- package/dist/chunk-QVHQZUGJ.cjs.map +0 -1
- package/dist/chunk-R4M3BSUG.js +0 -226
- package/dist/chunk-R4M3BSUG.js.map +0 -1
- package/dist/chunk-R6ZTXNN2.cjs +0 -797
- package/dist/chunk-R6ZTXNN2.cjs.map +0 -1
- package/dist/chunk-RCCWKKI3.js.map +0 -1
- package/dist/chunk-RIYA7ZCE.js +0 -887
- package/dist/chunk-RIYA7ZCE.js.map +0 -1
- package/dist/chunk-S6DFGBDD.cjs +0 -211
- package/dist/chunk-S6DFGBDD.cjs.map +0 -1
- package/dist/chunk-SAQSK4AG.cjs +0 -167
- package/dist/chunk-SAQSK4AG.cjs.map +0 -1
- package/dist/chunk-UCRV7PD3.js +0 -773
- package/dist/chunk-UCRV7PD3.js.map +0 -1
- package/dist/chunk-UZ6CYAOG.cjs.map +0 -1
- package/dist/chunk-V272B7RM.cjs.map +0 -1
- package/dist/chunk-XWGAT2DA.js +0 -44
- package/dist/chunk-XWGAT2DA.js.map +0 -1
- package/dist/chunk-YLQHE2S5.js +0 -204
- package/dist/chunk-YLQHE2S5.js.map +0 -1
- package/dist/chunk-YP34EWWK.js.map +0 -1
- package/dist/chunk-Z7R7CFVF.cjs +0 -125
- package/dist/chunk-Z7R7CFVF.cjs.map +0 -1
- package/dist/chunk-ZPZSAJAR.js +0 -328
- package/dist/chunk-ZPZSAJAR.js.map +0 -1
- package/dist/server/handlers/test-utils.cjs +0 -15
- package/dist/server/handlers/test-utils.cjs.map +0 -1
- package/dist/server/handlers/test-utils.d.ts +0 -6
- package/dist/server/handlers/test-utils.d.ts.map +0 -1
- package/dist/server/handlers/test-utils.js +0 -13
- package/dist/server/handlers/test-utils.js.map +0 -1
- package/dist/server/schemas/a2a.d.ts +0 -786
- package/dist/server/schemas/a2a.d.ts.map +0 -1
- package/dist/server/schemas/agent-builder.d.ts +0 -195
- package/dist/server/schemas/agent-builder.d.ts.map +0 -1
- package/dist/server/schemas/agents.d.ts +0 -1375
- package/dist/server/schemas/agents.d.ts.map +0 -1
- package/dist/server/schemas/common.d.ts +0 -165
- package/dist/server/schemas/common.d.ts.map +0 -1
- package/dist/server/schemas/logs.d.ts +0 -124
- package/dist/server/schemas/logs.d.ts.map +0 -1
- package/dist/server/schemas/memory.d.ts +0 -998
- package/dist/server/schemas/memory.d.ts.map +0 -1
- package/dist/server/schemas/observability.d.ts +0 -402
- package/dist/server/schemas/observability.d.ts.map +0 -1
- package/dist/server/schemas/scores.d.ts +0 -259
- package/dist/server/schemas/scores.d.ts.map +0 -1
- package/dist/server/schemas/vectors.d.ts +0 -107
- package/dist/server/schemas/vectors.d.ts.map +0 -1
- package/dist/server/schemas/workflows.d.ts +0 -608
- package/dist/server/schemas/workflows.d.ts.map +0 -1
- package/dist/server/server-adapter/index.cjs +0 -330
- package/dist/server/server-adapter/index.cjs.map +0 -1
- package/dist/server/server-adapter/index.d.ts +0 -52
- package/dist/server/server-adapter/index.d.ts.map +0 -1
- package/dist/server/server-adapter/index.js +0 -316
- package/dist/server/server-adapter/index.js.map +0 -1
- package/dist/server/server-adapter/openapi-utils.d.ts +0 -59
- package/dist/server/server-adapter/openapi-utils.d.ts.map +0 -1
- package/dist/server/server-adapter/routes/a2a.d.ts +0 -3
- package/dist/server/server-adapter/routes/a2a.d.ts.map +0 -1
- package/dist/server/server-adapter/routes/agent-builder.d.ts +0 -3
- package/dist/server/server-adapter/routes/agent-builder.d.ts.map +0 -1
- package/dist/server/server-adapter/routes/agents.d.ts +0 -3
- package/dist/server/server-adapter/routes/agents.d.ts.map +0 -1
- package/dist/server/server-adapter/routes/index.d.ts +0 -41
- package/dist/server/server-adapter/routes/index.d.ts.map +0 -1
- package/dist/server/server-adapter/routes/legacy.d.ts +0 -7
- package/dist/server/server-adapter/routes/legacy.d.ts.map +0 -1
- package/dist/server/server-adapter/routes/logs.d.ts +0 -3
- package/dist/server/server-adapter/routes/logs.d.ts.map +0 -1
- package/dist/server/server-adapter/routes/memory.d.ts +0 -3
- package/dist/server/server-adapter/routes/memory.d.ts.map +0 -1
- package/dist/server/server-adapter/routes/observability.d.ts +0 -3
- package/dist/server/server-adapter/routes/observability.d.ts.map +0 -1
- package/dist/server/server-adapter/routes/route-builder.d.ts +0 -52
- package/dist/server/server-adapter/routes/route-builder.d.ts.map +0 -1
- package/dist/server/server-adapter/routes/scorers.d.ts +0 -3
- package/dist/server/server-adapter/routes/scorers.d.ts.map +0 -1
- package/dist/server/server-adapter/routes/stream-types.d.ts +0 -10
- package/dist/server/server-adapter/routes/stream-types.d.ts.map +0 -1
- package/dist/server/server-adapter/routes/tools.d.ts +0 -3
- package/dist/server/server-adapter/routes/tools.d.ts.map +0 -1
- package/dist/server/server-adapter/routes/vectors.d.ts +0 -3
- package/dist/server/server-adapter/routes/vectors.d.ts.map +0 -1
- package/dist/server/server-adapter/routes/workflows.d.ts +0 -3
- package/dist/server/server-adapter/routes/workflows.d.ts.map +0 -1
- package/dist/token-GVZ7HRD7.js +0 -62
- package/dist/token-JGA3ZWAN.js.map +0 -1
- package/dist/token-VFONFWVS.cjs +0 -64
- package/dist/token-ZOD6YIQ3.cjs.map +0 -1
- package/dist/token-util-7R2ZFIXO.js +0 -7
- package/dist/token-util-BLJZJDBZ.cjs +0 -9
- package/dist/token-util-VGZUWSNR.cjs +0 -9
- package/dist/token-util-VGZUWSNR.cjs.map +0 -1
- package/dist/token-util-VKTPZLSE.js +0 -7
- package/dist/token-util-VKTPZLSE.js.map +0 -1
|
@@ -1,20 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var chunkSAQSK4AG_cjs = require('./chunk-SAQSK4AG.cjs');
|
|
3
|
+
var chunkJOBDMCQL_cjs = require('./chunk-JOBDMCQL.cjs');
|
|
5
4
|
var chunkO7I5CWRX_cjs = require('./chunk-O7I5CWRX.cjs');
|
|
6
5
|
var a2a = require('@mastra/core/a2a');
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
-
|
|
11
|
-
var z__default = /*#__PURE__*/_interopDefault(z);
|
|
6
|
+
var zod = require('zod');
|
|
12
7
|
|
|
13
8
|
// src/server/handlers/a2a.ts
|
|
14
9
|
var a2a_exports = {};
|
|
15
10
|
chunkO7I5CWRX_cjs.__export(a2a_exports, {
|
|
16
|
-
AGENT_EXECUTION_ROUTE: () => AGENT_EXECUTION_ROUTE,
|
|
17
|
-
GET_AGENT_CARD_ROUTE: () => GET_AGENT_CARD_ROUTE,
|
|
18
11
|
getAgentCardByIdHandler: () => getAgentCardByIdHandler,
|
|
19
12
|
getAgentExecutionHandler: () => getAgentExecutionHandler,
|
|
20
13
|
handleMessageSend: () => handleMessageSend,
|
|
@@ -187,138 +180,24 @@ function createTaskContext({
|
|
|
187
180
|
isCancelled: () => activeCancellations.has(task.id)
|
|
188
181
|
};
|
|
189
182
|
}
|
|
190
|
-
var a2aAgentIdPathParams = z__default.default.object({
|
|
191
|
-
agentId: z__default.default.string().describe("Unique identifier for the agent")
|
|
192
|
-
});
|
|
193
|
-
a2aAgentIdPathParams.extend({
|
|
194
|
-
taskId: z__default.default.string().describe("Unique identifier for the task")
|
|
195
|
-
});
|
|
196
|
-
var pushNotificationAuthenticationInfoSchema = z__default.default.object({
|
|
197
|
-
schemes: z__default.default.array(z__default.default.string()).describe("Supported authentication schemes - e.g. Basic, Bearer"),
|
|
198
|
-
credentials: z__default.default.string().optional().describe("Optional credentials")
|
|
199
|
-
});
|
|
200
|
-
var pushNotificationConfigSchema = z__default.default.object({
|
|
201
|
-
url: z__default.default.string().describe("URL for sending the push notifications"),
|
|
202
|
-
id: z__default.default.string().optional().describe("Push Notification ID - created by server to support multiple callbacks"),
|
|
203
|
-
token: z__default.default.string().optional().describe("Token unique to this task/session"),
|
|
204
|
-
authentication: pushNotificationAuthenticationInfoSchema.optional()
|
|
205
|
-
});
|
|
206
|
-
var messageSendConfigurationSchema = z__default.default.object({
|
|
207
|
-
acceptedOutputModes: z__default.default.array(z__default.default.string()).describe("Accepted output modalities by the client"),
|
|
208
|
-
blocking: z__default.default.boolean().optional().describe("If the server should treat the client as a blocking request"),
|
|
209
|
-
historyLength: z__default.default.number().optional().describe("Number of recent messages to be retrieved"),
|
|
210
|
-
pushNotificationConfig: pushNotificationConfigSchema.optional()
|
|
211
|
-
});
|
|
212
|
-
var textPartSchema = z__default.default.object({
|
|
213
|
-
kind: z__default.default.literal("text").describe("Part type - text for TextParts"),
|
|
214
|
-
text: z__default.default.string().describe("Text content"),
|
|
215
|
-
metadata: z__default.default.record(z__default.default.unknown()).optional().describe("Optional metadata associated with the part")
|
|
216
|
-
});
|
|
217
|
-
var fileWithBytesSchema = z__default.default.object({
|
|
218
|
-
bytes: z__default.default.string().describe("base64 encoded content of the file"),
|
|
219
|
-
mimeType: z__default.default.string().optional().describe("Optional mimeType for the file"),
|
|
220
|
-
name: z__default.default.string().optional().describe("Optional name for the file")
|
|
221
|
-
});
|
|
222
|
-
var fileWithUriSchema = z__default.default.object({
|
|
223
|
-
uri: z__default.default.string().describe("URL for the File content"),
|
|
224
|
-
mimeType: z__default.default.string().optional().describe("Optional mimeType for the file"),
|
|
225
|
-
name: z__default.default.string().optional().describe("Optional name for the file")
|
|
226
|
-
});
|
|
227
|
-
var filePartSchema = z__default.default.object({
|
|
228
|
-
kind: z__default.default.literal("file").describe("Part type - file for FileParts"),
|
|
229
|
-
file: z__default.default.union([fileWithBytesSchema, fileWithUriSchema]).describe("File content either as url or bytes"),
|
|
230
|
-
metadata: z__default.default.record(z__default.default.unknown()).optional().describe("Optional metadata associated with the part")
|
|
231
|
-
});
|
|
232
|
-
var dataPartSchema = z__default.default.object({
|
|
233
|
-
kind: z__default.default.literal("data").describe("Part type - data for DataParts"),
|
|
234
|
-
data: z__default.default.record(z__default.default.unknown()).describe("Structured data content"),
|
|
235
|
-
metadata: z__default.default.record(z__default.default.unknown()).optional().describe("Optional metadata associated with the part")
|
|
236
|
-
});
|
|
237
|
-
var partSchema = z__default.default.union([textPartSchema, filePartSchema, dataPartSchema]);
|
|
238
|
-
var messageSchema = z__default.default.object({
|
|
239
|
-
kind: z__default.default.literal("message").describe("Event type"),
|
|
240
|
-
messageId: z__default.default.string().describe("Identifier created by the message creator"),
|
|
241
|
-
role: z__default.default.enum(["user", "agent"]).describe("Message sender's role"),
|
|
242
|
-
parts: z__default.default.array(partSchema).describe("Message content"),
|
|
243
|
-
contextId: z__default.default.string().optional().describe("The context the message is associated with"),
|
|
244
|
-
taskId: z__default.default.string().optional().describe("Identifier of task the message is related to"),
|
|
245
|
-
referenceTaskIds: z__default.default.array(z__default.default.string()).optional().describe("List of tasks referenced as context by this message"),
|
|
246
|
-
extensions: z__default.default.array(z__default.default.string()).optional().describe("The URIs of extensions that are present or contributed to this Message"),
|
|
247
|
-
metadata: z__default.default.record(z__default.default.unknown()).optional().describe("Extension metadata")
|
|
248
|
-
});
|
|
249
|
-
var messageSendParamsSchema = z__default.default.object({
|
|
250
|
-
message: messageSchema,
|
|
251
|
-
configuration: messageSendConfigurationSchema.optional(),
|
|
252
|
-
metadata: z__default.default.record(z__default.default.unknown()).optional().describe("Extension metadata")
|
|
253
|
-
});
|
|
254
|
-
var taskQueryParamsSchema = z__default.default.object({
|
|
255
|
-
id: z__default.default.string().describe("Task id"),
|
|
256
|
-
historyLength: z__default.default.number().optional().describe("Number of recent messages to be retrieved"),
|
|
257
|
-
metadata: z__default.default.record(z__default.default.unknown()).optional()
|
|
258
|
-
});
|
|
259
|
-
var taskIdParamsSchema = z__default.default.object({
|
|
260
|
-
id: z__default.default.string().describe("Task id"),
|
|
261
|
-
metadata: z__default.default.record(z__default.default.unknown()).optional()
|
|
262
|
-
});
|
|
263
|
-
z__default.default.object({
|
|
264
|
-
message: messageSchema,
|
|
265
|
-
metadata: z__default.default.record(z__default.default.any()).optional()
|
|
266
|
-
});
|
|
267
|
-
z__default.default.object({
|
|
268
|
-
id: z__default.default.string()
|
|
269
|
-
});
|
|
270
|
-
var agentExecutionParamsSchema = z__default.default.union([messageSendParamsSchema, taskQueryParamsSchema, taskIdParamsSchema]);
|
|
271
|
-
var agentExecutionBodySchema = z__default.default.object({
|
|
272
|
-
jsonrpc: z__default.default.literal("2.0"),
|
|
273
|
-
id: z__default.default.union([z__default.default.string(), z__default.default.number()]),
|
|
274
|
-
method: z__default.default.enum(["message/send", "message/stream", "tasks/get", "tasks/cancel"]),
|
|
275
|
-
params: agentExecutionParamsSchema
|
|
276
|
-
});
|
|
277
|
-
var agentCardResponseSchema = z__default.default.object({
|
|
278
|
-
name: z__default.default.string(),
|
|
279
|
-
description: z__default.default.string(),
|
|
280
|
-
url: z__default.default.string(),
|
|
281
|
-
provider: z__default.default.object({
|
|
282
|
-
organization: z__default.default.string(),
|
|
283
|
-
url: z__default.default.string()
|
|
284
|
-
}).optional(),
|
|
285
|
-
version: z__default.default.string(),
|
|
286
|
-
capabilities: z__default.default.object({
|
|
287
|
-
streaming: z__default.default.boolean().optional(),
|
|
288
|
-
pushNotifications: z__default.default.boolean().optional(),
|
|
289
|
-
stateTransitionHistory: z__default.default.boolean().optional()
|
|
290
|
-
}),
|
|
291
|
-
defaultInputModes: z__default.default.array(z__default.default.string()),
|
|
292
|
-
defaultOutputModes: z__default.default.array(z__default.default.string()),
|
|
293
|
-
skills: z__default.default.array(
|
|
294
|
-
z__default.default.object({
|
|
295
|
-
id: z__default.default.string(),
|
|
296
|
-
name: z__default.default.string(),
|
|
297
|
-
description: z__default.default.string(),
|
|
298
|
-
tags: z__default.default.array(z__default.default.string()).optional()
|
|
299
|
-
})
|
|
300
|
-
)
|
|
301
|
-
});
|
|
302
|
-
z__default.default.unknown();
|
|
303
|
-
var agentExecutionResponseSchema = z__default.default.unknown();
|
|
304
183
|
|
|
305
184
|
// src/server/handlers/a2a.ts
|
|
306
|
-
var
|
|
307
|
-
message:
|
|
308
|
-
role:
|
|
309
|
-
parts:
|
|
310
|
-
|
|
311
|
-
kind:
|
|
312
|
-
text:
|
|
185
|
+
var messageSendParamsSchema = zod.z.object({
|
|
186
|
+
message: zod.z.object({
|
|
187
|
+
role: zod.z.enum(["user", "agent"]),
|
|
188
|
+
parts: zod.z.array(
|
|
189
|
+
zod.z.object({
|
|
190
|
+
kind: zod.z.enum(["text"]),
|
|
191
|
+
text: zod.z.string()
|
|
313
192
|
})
|
|
314
193
|
),
|
|
315
|
-
kind:
|
|
316
|
-
messageId:
|
|
317
|
-
contextId:
|
|
318
|
-
taskId:
|
|
319
|
-
referenceTaskIds:
|
|
320
|
-
extensions:
|
|
321
|
-
metadata:
|
|
194
|
+
kind: zod.z.literal("message"),
|
|
195
|
+
messageId: zod.z.string(),
|
|
196
|
+
contextId: zod.z.string().optional(),
|
|
197
|
+
taskId: zod.z.string().optional(),
|
|
198
|
+
referenceTaskIds: zod.z.array(zod.z.string()).optional(),
|
|
199
|
+
extensions: zod.z.array(zod.z.string()).optional(),
|
|
200
|
+
metadata: zod.z.record(zod.z.any()).optional()
|
|
322
201
|
})
|
|
323
202
|
});
|
|
324
203
|
async function getAgentCardByIdHandler({
|
|
@@ -330,19 +209,19 @@ async function getAgentCardByIdHandler({
|
|
|
330
209
|
url: "https://mastra.ai"
|
|
331
210
|
},
|
|
332
211
|
version = "1.0",
|
|
333
|
-
|
|
212
|
+
runtimeContext
|
|
334
213
|
}) {
|
|
335
214
|
const agent = mastra.getAgentById(agentId);
|
|
336
215
|
if (!agent) {
|
|
337
216
|
throw new Error(`Agent with ID ${agentId} not found`);
|
|
338
217
|
}
|
|
339
218
|
const [instructions, tools] = await Promise.all([
|
|
340
|
-
agent.getInstructions({
|
|
341
|
-
agent.
|
|
219
|
+
agent.getInstructions({ runtimeContext }),
|
|
220
|
+
agent.getTools({ runtimeContext })
|
|
342
221
|
]);
|
|
343
222
|
const agentCard = {
|
|
344
223
|
name: agent.id || agentId,
|
|
345
|
-
description:
|
|
224
|
+
description: chunkJOBDMCQL_cjs.convertInstructionsToString(instructions),
|
|
346
225
|
url: executionUrl,
|
|
347
226
|
provider,
|
|
348
227
|
version,
|
|
@@ -367,9 +246,9 @@ async function getAgentCardByIdHandler({
|
|
|
367
246
|
}
|
|
368
247
|
function validateMessageSendParams(params) {
|
|
369
248
|
try {
|
|
370
|
-
|
|
249
|
+
messageSendParamsSchema.parse(params);
|
|
371
250
|
} catch (error) {
|
|
372
|
-
if (error instanceof
|
|
251
|
+
if (error instanceof zod.z.ZodError) {
|
|
373
252
|
throw a2a.MastraA2AError.invalidParams(error.errors[0].message);
|
|
374
253
|
}
|
|
375
254
|
throw error;
|
|
@@ -382,7 +261,7 @@ async function handleMessageSend({
|
|
|
382
261
|
agent,
|
|
383
262
|
agentId,
|
|
384
263
|
logger,
|
|
385
|
-
|
|
264
|
+
runtimeContext
|
|
386
265
|
}) {
|
|
387
266
|
validateMessageSendParams(params);
|
|
388
267
|
const { message, metadata } = params;
|
|
@@ -405,7 +284,7 @@ async function handleMessageSend({
|
|
|
405
284
|
try {
|
|
406
285
|
const { text } = await agent.generate([convertToCoreMessage(message)], {
|
|
407
286
|
runId: taskId,
|
|
408
|
-
|
|
287
|
+
runtimeContext
|
|
409
288
|
});
|
|
410
289
|
currentData = applyUpdateToTask(currentData, {
|
|
411
290
|
state: "completed",
|
|
@@ -466,7 +345,7 @@ async function* handleMessageStream({
|
|
|
466
345
|
agent,
|
|
467
346
|
agentId,
|
|
468
347
|
logger,
|
|
469
|
-
|
|
348
|
+
runtimeContext
|
|
470
349
|
}) {
|
|
471
350
|
yield createSuccessResponse(requestId, {
|
|
472
351
|
state: "working",
|
|
@@ -485,7 +364,7 @@ async function* handleMessageStream({
|
|
|
485
364
|
taskStore,
|
|
486
365
|
agent,
|
|
487
366
|
agentId,
|
|
488
|
-
|
|
367
|
+
runtimeContext,
|
|
489
368
|
logger
|
|
490
369
|
});
|
|
491
370
|
} catch (err) {
|
|
@@ -534,7 +413,7 @@ async function getAgentExecutionHandler({
|
|
|
534
413
|
requestId,
|
|
535
414
|
mastra,
|
|
536
415
|
agentId,
|
|
537
|
-
|
|
416
|
+
runtimeContext,
|
|
538
417
|
method,
|
|
539
418
|
params,
|
|
540
419
|
taskStore,
|
|
@@ -552,7 +431,7 @@ async function getAgentExecutionHandler({
|
|
|
552
431
|
taskStore,
|
|
553
432
|
agent,
|
|
554
433
|
agentId,
|
|
555
|
-
|
|
434
|
+
runtimeContext
|
|
556
435
|
});
|
|
557
436
|
return result2;
|
|
558
437
|
}
|
|
@@ -563,7 +442,7 @@ async function getAgentExecutionHandler({
|
|
|
563
442
|
params,
|
|
564
443
|
agent,
|
|
565
444
|
agentId,
|
|
566
|
-
|
|
445
|
+
runtimeContext
|
|
567
446
|
});
|
|
568
447
|
return result;
|
|
569
448
|
case "tasks/get": {
|
|
@@ -594,79 +473,7 @@ async function getAgentExecutionHandler({
|
|
|
594
473
|
return normalizeError(error, requestId, taskId, logger);
|
|
595
474
|
}
|
|
596
475
|
}
|
|
597
|
-
var GET_AGENT_CARD_ROUTE = chunkSAQSK4AG_cjs.createRoute({
|
|
598
|
-
method: "GET",
|
|
599
|
-
path: "/.well-known/:agentId/agent-card.json",
|
|
600
|
-
responseType: "json",
|
|
601
|
-
pathParamSchema: a2aAgentIdPathParams,
|
|
602
|
-
responseSchema: agentCardResponseSchema,
|
|
603
|
-
summary: "Get agent card",
|
|
604
|
-
description: "Returns the agent card information for A2A protocol discovery",
|
|
605
|
-
tags: ["Agent-to-Agent"],
|
|
606
|
-
handler: async ({ mastra, agentId, requestContext }) => {
|
|
607
|
-
const executionUrl = `/a2a/${agentId}`;
|
|
608
|
-
const provider = {
|
|
609
|
-
organization: "Mastra",
|
|
610
|
-
url: "https://mastra.ai"
|
|
611
|
-
};
|
|
612
|
-
const version = "1.0";
|
|
613
|
-
const agent = mastra.getAgentById(agentId);
|
|
614
|
-
if (!agent) {
|
|
615
|
-
throw new Error(`Agent with ID ${agentId} not found`);
|
|
616
|
-
}
|
|
617
|
-
const [instructions, tools] = await Promise.all([
|
|
618
|
-
agent.getInstructions({ requestContext }),
|
|
619
|
-
agent.listTools({ requestContext })
|
|
620
|
-
]);
|
|
621
|
-
const agentCard = {
|
|
622
|
-
name: agent.id || agentId,
|
|
623
|
-
description: chunkUZ6CYAOG_cjs.convertInstructionsToString(instructions),
|
|
624
|
-
url: executionUrl,
|
|
625
|
-
provider,
|
|
626
|
-
version,
|
|
627
|
-
capabilities: {
|
|
628
|
-
streaming: true,
|
|
629
|
-
pushNotifications: false,
|
|
630
|
-
stateTransitionHistory: false
|
|
631
|
-
},
|
|
632
|
-
defaultInputModes: ["text"],
|
|
633
|
-
defaultOutputModes: ["text"],
|
|
634
|
-
skills: Object.entries(tools).map(([toolId, tool]) => ({
|
|
635
|
-
id: toolId,
|
|
636
|
-
name: toolId,
|
|
637
|
-
description: tool.description || `Tool: ${toolId}`,
|
|
638
|
-
tags: ["tool"]
|
|
639
|
-
}))
|
|
640
|
-
};
|
|
641
|
-
return agentCard;
|
|
642
|
-
}
|
|
643
|
-
});
|
|
644
|
-
var AGENT_EXECUTION_ROUTE = chunkSAQSK4AG_cjs.createRoute({
|
|
645
|
-
method: "POST",
|
|
646
|
-
path: "/a2a/:agentId",
|
|
647
|
-
responseType: "json",
|
|
648
|
-
pathParamSchema: a2aAgentIdPathParams,
|
|
649
|
-
bodySchema: agentExecutionBodySchema,
|
|
650
|
-
responseSchema: agentExecutionResponseSchema,
|
|
651
|
-
summary: "Execute agent",
|
|
652
|
-
description: "Executes an agent action via JSON-RPC 2.0 over A2A protocol",
|
|
653
|
-
tags: ["Agent-to-Agent"],
|
|
654
|
-
handler: async ({ mastra, agentId, requestContext, taskStore, ...bodyParams }) => {
|
|
655
|
-
const { id: requestId, method, params } = bodyParams;
|
|
656
|
-
return await getAgentExecutionHandler({
|
|
657
|
-
requestId: String(requestId),
|
|
658
|
-
mastra,
|
|
659
|
-
agentId,
|
|
660
|
-
requestContext,
|
|
661
|
-
method,
|
|
662
|
-
params,
|
|
663
|
-
taskStore
|
|
664
|
-
});
|
|
665
|
-
}
|
|
666
|
-
});
|
|
667
476
|
|
|
668
|
-
exports.AGENT_EXECUTION_ROUTE = AGENT_EXECUTION_ROUTE;
|
|
669
|
-
exports.GET_AGENT_CARD_ROUTE = GET_AGENT_CARD_ROUTE;
|
|
670
477
|
exports.a2a_exports = a2a_exports;
|
|
671
478
|
exports.getAgentCardByIdHandler = getAgentCardByIdHandler;
|
|
672
479
|
exports.getAgentExecutionHandler = getAgentExecutionHandler;
|
|
@@ -674,5 +481,5 @@ exports.handleMessageSend = handleMessageSend;
|
|
|
674
481
|
exports.handleMessageStream = handleMessageStream;
|
|
675
482
|
exports.handleTaskCancel = handleTaskCancel;
|
|
676
483
|
exports.handleTaskGet = handleTaskGet;
|
|
677
|
-
//# sourceMappingURL=chunk-
|
|
678
|
-
//# sourceMappingURL=chunk-
|
|
484
|
+
//# sourceMappingURL=chunk-Q4WS5AH4.cjs.map
|
|
485
|
+
//# sourceMappingURL=chunk-Q4WS5AH4.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/a2a.ts","../src/server/a2a/protocol.ts","../src/server/a2a/tasks.ts"],"names":["__export","MastraA2AError","z","convertInstructionsToString","result"],"mappings":"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","file":"chunk-Q4WS5AH4.cjs","sourcesContent":["import { MastraA2AError } from '@mastra/core/a2a';\nimport type {\n MessageSendParams,\n TaskQueryParams,\n TaskIdParams,\n AgentCard,\n TaskStatus,\n TaskState,\n} from '@mastra/core/a2a';\nimport type { Agent } from '@mastra/core/agent';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport type { RuntimeContext } from '@mastra/core/runtime-context';\nimport { z } from 'zod';\nimport { convertToCoreMessage, normalizeError, createSuccessResponse, createErrorResponse } from '../a2a/protocol';\nimport type { InMemoryTaskStore } from '../a2a/store';\nimport { applyUpdateToTask, createTaskContext, loadOrCreateTask } from '../a2a/tasks';\nimport type { Context } from '../types';\nimport { convertInstructionsToString } from '../utils';\n\nconst messageSendParamsSchema = z.object({\n message: z.object({\n role: z.enum(['user', 'agent']),\n parts: z.array(\n z.object({\n kind: z.enum(['text']),\n text: z.string(),\n }),\n ),\n kind: z.literal('message'),\n messageId: z.string(),\n contextId: z.string().optional(),\n taskId: z.string().optional(),\n referenceTaskIds: z.array(z.string()).optional(),\n extensions: z.array(z.string()).optional(),\n metadata: z.record(z.any()).optional(),\n }),\n});\n\nexport async function getAgentCardByIdHandler({\n mastra,\n agentId,\n executionUrl = `/a2a/${agentId}`,\n provider = {\n organization: 'Mastra',\n url: 'https://mastra.ai',\n },\n version = '1.0',\n runtimeContext,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: keyof ReturnType<typeof mastra.getAgents>;\n executionUrl?: string;\n version?: string;\n provider?: {\n organization: string;\n url: string;\n };\n}): Promise<AgentCard> {\n const agent = mastra.getAgentById(agentId);\n\n if (!agent) {\n throw new Error(`Agent with ID ${agentId} not found`);\n }\n\n const [instructions, tools] = await Promise.all([\n agent.getInstructions({ runtimeContext }),\n agent.getTools({ runtimeContext }),\n ]);\n\n // Extract agent information to create the AgentCard\n const agentCard: AgentCard = {\n name: agent.id || agentId,\n description: convertInstructionsToString(instructions),\n url: executionUrl,\n provider,\n version,\n capabilities: {\n streaming: true, // All agents support streaming\n pushNotifications: false,\n stateTransitionHistory: false,\n },\n defaultInputModes: ['text'],\n defaultOutputModes: ['text'],\n // Convert agent tools to skills format for A2A protocol\n skills: Object.entries(tools).map(([toolId, tool]) => ({\n id: toolId,\n name: toolId,\n description: tool.description || `Tool: ${toolId}`,\n // Optional fields\n tags: ['tool'],\n })),\n };\n\n return agentCard;\n}\n\nfunction validateMessageSendParams(params: MessageSendParams) {\n try {\n messageSendParamsSchema.parse(params);\n } catch (error) {\n if (error instanceof z.ZodError) {\n throw MastraA2AError.invalidParams((error as z.ZodError).errors[0]!.message);\n }\n\n throw error;\n }\n}\n\nexport async function handleMessageSend({\n requestId,\n params,\n taskStore,\n agent,\n agentId,\n logger,\n runtimeContext,\n}: {\n requestId: string;\n params: MessageSendParams;\n taskStore: InMemoryTaskStore;\n agent: Agent;\n agentId: string;\n logger?: IMastraLogger;\n runtimeContext: RuntimeContext;\n}) {\n validateMessageSendParams(params);\n\n const { message, metadata } = params;\n const { contextId } = message;\n const taskId = message.taskId || crypto.randomUUID();\n\n // Load or create task\n let currentData = await loadOrCreateTask({\n taskId,\n taskStore,\n agentId,\n message,\n contextId,\n metadata,\n });\n\n // Use the new TaskContext definition, passing history\n const context = createTaskContext({\n task: currentData,\n userMessage: message,\n history: currentData.history || [],\n activeCancellations: taskStore.activeCancellations,\n });\n\n try {\n const { text } = await agent.generate([convertToCoreMessage(message)], {\n runId: taskId,\n runtimeContext,\n });\n\n currentData = applyUpdateToTask(currentData, {\n state: 'completed',\n message: {\n messageId: crypto.randomUUID(),\n role: 'agent',\n parts: [\n {\n kind: 'text',\n text: text,\n },\n ],\n kind: 'message',\n },\n });\n\n await taskStore.save({ agentId, data: currentData });\n context.task = currentData;\n } catch (handlerError) {\n // If handler throws, apply 'failed' status, save, and rethrow\n const failureStatusUpdate: Omit<TaskStatus, 'timestamp'> = {\n state: 'failed',\n message: {\n messageId: crypto.randomUUID(),\n role: 'agent',\n parts: [\n {\n kind: 'text',\n text: `Handler failed: ${handlerError instanceof Error ? handlerError.message : String(handlerError)}`,\n },\n ],\n kind: 'message',\n },\n };\n currentData = applyUpdateToTask(currentData, failureStatusUpdate);\n\n try {\n await taskStore.save({ agentId, data: currentData });\n } catch (saveError) {\n // @ts-expect-error saveError is an unknown error\n logger?.error(`Failed to save task ${currentData.id} after handler error:`, saveError?.message);\n }\n\n return normalizeError(handlerError, requestId, currentData.id, logger); // Rethrow original error\n }\n\n // The loop finished, send the final task state\n return createSuccessResponse(requestId, currentData);\n}\n\nexport async function handleTaskGet({\n requestId,\n taskStore,\n agentId,\n taskId,\n}: {\n requestId: string;\n taskStore: InMemoryTaskStore;\n agentId: string;\n taskId: string;\n}) {\n const task = await taskStore.load({ agentId, taskId });\n\n if (!task) {\n throw MastraA2AError.taskNotFound(taskId);\n }\n\n return createSuccessResponse(requestId, task);\n}\n\nexport async function* handleMessageStream({\n requestId,\n params,\n taskStore,\n agent,\n agentId,\n logger,\n runtimeContext,\n}: {\n requestId: string;\n params: MessageSendParams;\n taskStore: InMemoryTaskStore;\n agent: Agent;\n agentId: string;\n logger?: IMastraLogger;\n runtimeContext: RuntimeContext;\n}) {\n yield createSuccessResponse(requestId, {\n state: 'working',\n message: {\n messageId: crypto.randomUUID(),\n kind: 'message',\n role: 'agent',\n parts: [{ kind: 'text', text: 'Generating response...' }],\n },\n });\n\n let result;\n try {\n result = await handleMessageSend({\n requestId,\n params,\n taskStore,\n agent,\n agentId,\n runtimeContext,\n logger,\n });\n } catch (err) {\n if (!(err instanceof MastraA2AError)) {\n throw err;\n }\n\n result = createErrorResponse(requestId, err.toJSONRPCError());\n }\n\n yield result;\n}\n\nexport async function handleTaskCancel({\n requestId,\n taskStore,\n agentId,\n taskId,\n logger,\n}: {\n requestId: string;\n taskStore: InMemoryTaskStore;\n agentId: string;\n taskId: string;\n logger?: IMastraLogger;\n}) {\n // Load task and history\n let data = await taskStore.load({\n agentId,\n taskId,\n });\n\n if (!data) {\n throw MastraA2AError.taskNotFound(taskId);\n }\n\n // Check if cancelable (not already in a final state)\n const finalStates: TaskState[] = ['completed', 'failed', 'canceled'];\n\n if (finalStates.includes(data.status.state)) {\n logger?.info(`Task ${taskId} already in final state ${data.status.state}, cannot cancel.`);\n return createSuccessResponse(requestId, data);\n }\n\n // Signal cancellation\n taskStore.activeCancellations.add(taskId);\n\n // Apply 'canceled' state update\n const cancelUpdate: Omit<TaskStatus, 'timestamp'> = {\n state: 'canceled',\n message: {\n role: 'agent',\n parts: [{ kind: 'text', text: 'Task cancelled by request.' }],\n kind: 'message',\n messageId: crypto.randomUUID(),\n },\n };\n\n data = applyUpdateToTask(data, cancelUpdate);\n\n // Save the updated state\n await taskStore.save({ agentId, data });\n\n // Remove from active cancellations *after* saving\n taskStore.activeCancellations.delete(taskId);\n\n // Return the updated task object\n return createSuccessResponse(requestId, data);\n}\n\nexport async function getAgentExecutionHandler({\n requestId,\n mastra,\n agentId,\n runtimeContext,\n method,\n params,\n taskStore,\n logger,\n}: Context & {\n requestId: string;\n runtimeContext: RuntimeContext;\n agentId: string;\n method: 'message/send' | 'message/stream' | 'tasks/get' | 'tasks/cancel';\n params: MessageSendParams | TaskQueryParams | TaskIdParams;\n taskStore: InMemoryTaskStore;\n logger?: IMastraLogger;\n}): Promise<any> {\n const agent = mastra.getAgentById(agentId);\n\n let taskId: string | undefined; // For error context\n\n try {\n // Attempt to get task ID early for error context. Cast params to any to access id.\n // Proper validation happens within specific handlers.\n taskId = 'id' in params ? params.id : params.message?.taskId || 'No task ID provided';\n\n // 2. Route based on method\n switch (method) {\n case 'message/send': {\n const result = await handleMessageSend({\n requestId,\n params: params as MessageSendParams,\n taskStore,\n agent,\n agentId,\n runtimeContext,\n });\n return result;\n }\n case 'message/stream':\n const result = await handleMessageStream({\n requestId,\n taskStore,\n params: params as MessageSendParams,\n agent,\n agentId,\n runtimeContext,\n });\n return result;\n\n case 'tasks/get': {\n const result = await handleTaskGet({\n requestId,\n taskStore,\n agentId,\n taskId,\n });\n\n return result;\n }\n case 'tasks/cancel': {\n const result = await handleTaskCancel({\n requestId,\n taskStore,\n agentId,\n taskId,\n });\n\n return result;\n }\n default:\n throw MastraA2AError.methodNotFound(method);\n }\n } catch (error) {\n if (error instanceof MastraA2AError && taskId && !error.taskId) {\n error.taskId = taskId; // Add task ID context if missing\n }\n\n return normalizeError(error, requestId, taskId, logger);\n }\n}\n","import { MastraA2AError } from '@mastra/core/a2a';\n\nimport type { JSONRPCError, JSONRPCResponse, Message, Part } from '@mastra/core/a2a';\nimport type { CoreMessage } from '@mastra/core/llm';\nimport type { IMastraLogger } from '@mastra/core/logger';\n\nexport function normalizeError(\n error: any,\n reqId: number | string | null,\n taskId?: string,\n logger?: IMastraLogger,\n): JSONRPCResponse<null, unknown> {\n let a2aError: MastraA2AError;\n if (error instanceof MastraA2AError) {\n a2aError = error;\n } else if (error instanceof Error) {\n // Generic JS error\n a2aError = MastraA2AError.internalError(error.message, { stack: error.stack });\n } else {\n // Unknown error type\n a2aError = MastraA2AError.internalError('An unknown error occurred.', error);\n }\n\n // Ensure Task ID context is present if possible\n if (taskId && !a2aError.taskId) {\n a2aError.taskId = taskId;\n }\n\n logger?.error(`Error processing request (Task: ${a2aError.taskId ?? 'N/A'}, ReqID: ${reqId ?? 'N/A'}):`, a2aError);\n\n return createErrorResponse(reqId, a2aError.toJSONRPCError());\n}\n\nexport function createErrorResponse(\n id: number | string | null,\n error: JSONRPCError<unknown>,\n): JSONRPCResponse<null, unknown> {\n // For errors, ID should be the same as request ID, or null if that couldn't be determined\n return {\n jsonrpc: '2.0',\n id: id, // Can be null if request ID was invalid/missing\n error: error,\n };\n}\n\nexport function createSuccessResponse<T>(id: number | string | null, result: T): JSONRPCResponse<T> {\n if (!id) {\n // This shouldn't happen for methods that expect a response, but safeguard\n throw MastraA2AError.internalError('Cannot create success response for null ID.');\n }\n\n return {\n jsonrpc: '2.0',\n id: id,\n result: result,\n };\n}\n\nexport function convertToCoreMessage(message: Message): CoreMessage {\n return {\n role: message.role === 'user' ? 'user' : 'assistant',\n content: message.parts.map(msg => convertToCoreMessagePart(msg)),\n };\n}\n\nfunction convertToCoreMessagePart(part: Part) {\n switch (part.kind) {\n case 'text':\n return {\n type: 'text',\n text: part.text,\n } as const;\n case 'file':\n return {\n type: 'file',\n data: 'uri' in part.file ? new URL(part.file.uri) : part.file.bytes,\n mimeType: part.file.mimeType!,\n } as const;\n case 'data':\n throw new Error('Data parts are not supported in core messages');\n }\n}\n","import type {\n Message,\n Task,\n TaskState,\n TaskStatus,\n TaskContext,\n TaskArtifactUpdateEvent,\n Artifact,\n} from '@mastra/core/a2a';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport type { InMemoryTaskStore } from './store';\n\nfunction isTaskStatusUpdate(update: TaskStatus | TaskArtifactUpdateEvent): update is Omit<TaskStatus, 'timestamp'> {\n return 'state' in update && !('parts' in update);\n}\n\nfunction isArtifactUpdate(update: TaskStatus | TaskArtifactUpdateEvent): update is TaskArtifactUpdateEvent {\n return 'kind' in update && update.kind === 'artifact-update';\n}\n\nexport function applyUpdateToTask(\n current: Task,\n update: Omit<TaskStatus, 'timestamp'> | TaskArtifactUpdateEvent,\n): Task {\n let newTask = structuredClone(current);\n\n if (isTaskStatusUpdate(update)) {\n // Merge status update\n newTask.status = {\n ...newTask.status, // Keep existing properties if not overwritten\n ...update, // Apply updates\n timestamp: new Date().toISOString(),\n };\n } else if (isArtifactUpdate(update)) {\n // Handle artifact update\n if (!newTask.artifacts) {\n newTask.artifacts = [];\n } else {\n // Ensure we're working with a copy of the artifacts array\n newTask.artifacts = [...newTask.artifacts];\n }\n\n const artifact = update.artifact;\n const existingIndex = newTask.artifacts.findIndex(a => a.name === artifact.name);\n const existingArtifact = newTask.artifacts[existingIndex];\n\n if (existingArtifact) {\n if (update.append) {\n // Create a deep copy for modification to avoid mutating original\n const appendedArtifact = JSON.parse(JSON.stringify(existingArtifact)) as Artifact;\n appendedArtifact.parts.push(...artifact.parts);\n if (artifact.metadata) {\n appendedArtifact.metadata = {\n ...(appendedArtifact.metadata || {}),\n ...artifact.metadata,\n };\n }\n if (artifact.description) appendedArtifact.description = artifact.description;\n newTask.artifacts[existingIndex] = appendedArtifact; // Replace with appended version\n } else {\n // Overwrite artifact at index (with a copy of the update)\n newTask.artifacts[existingIndex] = { ...artifact };\n }\n } else {\n newTask.artifacts.push({ ...artifact });\n }\n }\n\n return newTask;\n}\n\nexport async function loadOrCreateTask({\n agentId,\n taskId,\n taskStore,\n message,\n contextId,\n metadata,\n logger,\n}: {\n agentId: string;\n taskId: string;\n taskStore: InMemoryTaskStore;\n message: Message;\n contextId?: string;\n metadata?: Record<string, unknown>;\n logger?: IMastraLogger;\n}): Promise<Task> {\n const data = await taskStore.load({ agentId, taskId });\n\n // Create new task if none exists\n if (!data) {\n const initialTask: Task = {\n id: taskId,\n contextId: contextId || crypto.randomUUID(),\n status: {\n state: 'submitted',\n timestamp: new Date().toISOString(),\n message: undefined,\n },\n artifacts: [],\n history: [message],\n metadata: metadata,\n kind: 'task',\n };\n\n logger?.info(`[Task ${taskId}] Created new task.`);\n await taskStore.save({ agentId, data: initialTask });\n\n return initialTask;\n }\n\n // Handle existing task\n logger?.info(`[Task ${taskId}] Loaded existing task.`);\n\n // Add message to history and prepare updated data\n let updatedData = data;\n updatedData.history = [...(data.history || []), message];\n\n // Handle state transitions\n const { status } = data;\n const finalStates: TaskState[] = ['completed', 'failed', 'canceled'];\n\n if (finalStates.includes(status.state)) {\n logger?.warn(`[Task ${taskId}] Received message for task in final state ${status.state}. Restarting.`);\n updatedData = applyUpdateToTask(updatedData, {\n state: 'submitted',\n message: undefined,\n });\n } else if (status.state === 'input-required') {\n logger?.info(`[Task ${taskId}] Changing state from 'input-required' to 'working'.`);\n updatedData = applyUpdateToTask(updatedData, { state: 'working' });\n } else if (status.state === 'working') {\n logger?.warn(`[Task ${taskId}] Received message while already 'working'. Proceeding.`);\n }\n\n await taskStore.save({ agentId, data: updatedData });\n\n return updatedData;\n}\n\nexport function createTaskContext({\n task,\n userMessage,\n history,\n activeCancellations,\n}: {\n task: Task;\n userMessage: Message;\n history: Message[];\n activeCancellations: Set<string>;\n}): TaskContext {\n return {\n task: structuredClone(task),\n userMessage,\n history: structuredClone(history),\n isCancelled: () => activeCancellations.has(task.id),\n };\n}\n"]}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { validateBody } from './chunk-4QCXUEAT.js';
|
|
2
|
+
import { handleError } from './chunk-CY4TP3FK.js';
|
|
3
|
+
import { HTTPException } from './chunk-MMROOK5J.js';
|
|
4
|
+
import { __export } from './chunk-PR4QN5HX.js';
|
|
5
|
+
import { Readable } from 'stream';
|
|
6
|
+
import { MastraError } from '@mastra/core/error';
|
|
7
|
+
|
|
8
|
+
// src/server/handlers/voice.ts
|
|
9
|
+
var voice_exports = {};
|
|
10
|
+
__export(voice_exports, {
|
|
11
|
+
generateSpeechHandler: () => generateSpeechHandler,
|
|
12
|
+
getListenerHandler: () => getListenerHandler,
|
|
13
|
+
getSpeakersHandler: () => getSpeakersHandler,
|
|
14
|
+
transcribeSpeechHandler: () => transcribeSpeechHandler
|
|
15
|
+
});
|
|
16
|
+
async function getSpeakersHandler({ mastra, agentId, runtimeContext }) {
|
|
17
|
+
try {
|
|
18
|
+
if (!agentId) {
|
|
19
|
+
throw new HTTPException(400, { message: "Agent ID is required" });
|
|
20
|
+
}
|
|
21
|
+
const agent = mastra.getAgent(agentId);
|
|
22
|
+
if (!agent) {
|
|
23
|
+
throw new HTTPException(404, { message: "Agent not found" });
|
|
24
|
+
}
|
|
25
|
+
const voice = await agent.getVoice({ runtimeContext });
|
|
26
|
+
if (!voice) {
|
|
27
|
+
throw new HTTPException(400, { message: "Agent does not have voice capabilities" });
|
|
28
|
+
}
|
|
29
|
+
const speakers = await voice.getSpeakers();
|
|
30
|
+
return speakers;
|
|
31
|
+
} catch (error) {
|
|
32
|
+
return handleError(error, "Error getting speakers");
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
async function generateSpeechHandler({
|
|
36
|
+
mastra,
|
|
37
|
+
agentId,
|
|
38
|
+
body,
|
|
39
|
+
runtimeContext
|
|
40
|
+
}) {
|
|
41
|
+
try {
|
|
42
|
+
if (!agentId) {
|
|
43
|
+
throw new HTTPException(400, { message: "Agent ID is required" });
|
|
44
|
+
}
|
|
45
|
+
validateBody({
|
|
46
|
+
text: body?.text
|
|
47
|
+
});
|
|
48
|
+
const agent = mastra.getAgent(agentId);
|
|
49
|
+
if (!agent) {
|
|
50
|
+
throw new HTTPException(404, { message: "Agent not found" });
|
|
51
|
+
}
|
|
52
|
+
const voice = await agent.getVoice({ runtimeContext });
|
|
53
|
+
if (!voice) {
|
|
54
|
+
throw new HTTPException(400, { message: "Agent does not have voice capabilities" });
|
|
55
|
+
}
|
|
56
|
+
const audioStream = await Promise.resolve().then(() => voice.speak(body.text, { speaker: body.speakerId })).catch((err) => {
|
|
57
|
+
if (err instanceof MastraError) {
|
|
58
|
+
throw new HTTPException(400, { message: err.message });
|
|
59
|
+
}
|
|
60
|
+
throw err;
|
|
61
|
+
});
|
|
62
|
+
if (!audioStream) {
|
|
63
|
+
throw new HTTPException(500, { message: "Failed to generate speech" });
|
|
64
|
+
}
|
|
65
|
+
return audioStream;
|
|
66
|
+
} catch (error) {
|
|
67
|
+
return handleError(error, "Error generating speech");
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
async function transcribeSpeechHandler({
|
|
71
|
+
mastra,
|
|
72
|
+
agentId,
|
|
73
|
+
body,
|
|
74
|
+
runtimeContext
|
|
75
|
+
}) {
|
|
76
|
+
try {
|
|
77
|
+
if (!agentId) {
|
|
78
|
+
throw new HTTPException(400, { message: "Agent ID is required" });
|
|
79
|
+
}
|
|
80
|
+
if (!body?.audioData) {
|
|
81
|
+
throw new HTTPException(400, { message: "Audio data is required" });
|
|
82
|
+
}
|
|
83
|
+
const agent = mastra.getAgent(agentId);
|
|
84
|
+
if (!agent) {
|
|
85
|
+
throw new HTTPException(404, { message: "Agent not found" });
|
|
86
|
+
}
|
|
87
|
+
const voice = await agent.getVoice({ runtimeContext });
|
|
88
|
+
if (!voice) {
|
|
89
|
+
throw new HTTPException(400, { message: "Agent does not have voice capabilities" });
|
|
90
|
+
}
|
|
91
|
+
const audioStream = new Readable();
|
|
92
|
+
audioStream.push(body.audioData);
|
|
93
|
+
audioStream.push(null);
|
|
94
|
+
const text = await voice.listen(audioStream, body.options);
|
|
95
|
+
return { text };
|
|
96
|
+
} catch (error) {
|
|
97
|
+
return handleError(error, "Error transcribing speech");
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
async function getListenerHandler({ mastra, agentId, runtimeContext }) {
|
|
101
|
+
try {
|
|
102
|
+
if (!agentId) {
|
|
103
|
+
throw new HTTPException(400, { message: "Agent ID is required" });
|
|
104
|
+
}
|
|
105
|
+
const agent = mastra.getAgent(agentId);
|
|
106
|
+
if (!agent) {
|
|
107
|
+
throw new HTTPException(404, { message: "Agent not found" });
|
|
108
|
+
}
|
|
109
|
+
const voice = await agent.getVoice({ runtimeContext });
|
|
110
|
+
if (!voice) {
|
|
111
|
+
throw new HTTPException(400, { message: "Agent does not have voice capabilities" });
|
|
112
|
+
}
|
|
113
|
+
const listeners = await voice.getListener();
|
|
114
|
+
return listeners;
|
|
115
|
+
} catch (error) {
|
|
116
|
+
return handleError(error, "Error getting listeners");
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export { generateSpeechHandler, getListenerHandler, getSpeakersHandler, transcribeSpeechHandler, voice_exports };
|
|
121
|
+
//# sourceMappingURL=chunk-QQXMIP6C.js.map
|
|
122
|
+
//# sourceMappingURL=chunk-QQXMIP6C.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/voice.ts"],"names":[],"mappings":"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","file":"chunk-QQXMIP6C.js","sourcesContent":["import { Readable } from 'stream';\nimport type { Agent } from '@mastra/core/agent';\nimport { MastraError } from '@mastra/core/error';\nimport type { RuntimeContext } from '@mastra/core/runtime-context';\nimport { HTTPException } from '../http-exception';\nimport type { Context } from '../types';\n\nimport { handleError } from './error';\nimport { validateBody } from './utils';\n\ninterface VoiceContext extends Context {\n agentId?: string;\n runtimeContext?: RuntimeContext;\n}\n\n/**\n * Get available speakers for an agent\n */\nexport async function getSpeakersHandler({ mastra, agentId, runtimeContext }: VoiceContext) {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const voice = await agent.getVoice({ runtimeContext });\n\n if (!voice) {\n throw new HTTPException(400, { message: 'Agent does not have voice capabilities' });\n }\n\n const speakers = await voice.getSpeakers();\n return speakers;\n } catch (error) {\n return handleError(error, 'Error getting speakers');\n }\n}\n\n/**\n * Generate speech from text\n */\nexport async function generateSpeechHandler({\n mastra,\n agentId,\n body,\n runtimeContext,\n}: VoiceContext & {\n body?: {\n text?: string;\n speakerId?: string;\n };\n}) {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n validateBody({\n text: body?.text,\n });\n\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const voice = await agent.getVoice({ runtimeContext });\n\n if (!voice) {\n throw new HTTPException(400, { message: 'Agent does not have voice capabilities' });\n }\n\n const audioStream = await Promise.resolve()\n .then(() => voice.speak(body!.text!, { speaker: body!.speakerId! }))\n .catch(err => {\n if (err instanceof MastraError) {\n throw new HTTPException(400, { message: err.message });\n }\n\n throw err;\n });\n\n if (!audioStream) {\n throw new HTTPException(500, { message: 'Failed to generate speech' });\n }\n\n return audioStream;\n } catch (error) {\n return handleError(error, 'Error generating speech');\n }\n}\n\n/**\n * Transcribe speech to text\n */\nexport async function transcribeSpeechHandler({\n mastra,\n agentId,\n body,\n runtimeContext,\n}: VoiceContext & {\n body?: {\n audioData?: Buffer;\n options?: Parameters<NonNullable<Agent['voice']>['listen']>[1];\n };\n}) {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n if (!body?.audioData) {\n throw new HTTPException(400, { message: 'Audio data is required' });\n }\n\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const voice = await agent.getVoice({ runtimeContext });\n\n if (!voice) {\n throw new HTTPException(400, { message: 'Agent does not have voice capabilities' });\n }\n\n const audioStream = new Readable();\n audioStream.push(body.audioData);\n audioStream.push(null);\n\n const text = await voice.listen(audioStream, body.options);\n return { text };\n } catch (error) {\n return handleError(error, 'Error transcribing speech');\n }\n}\n\n/**\n * Get available listeners for an agent\n */\nexport async function getListenerHandler({ mastra, agentId, runtimeContext }: VoiceContext) {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const voice = await agent.getVoice({ runtimeContext });\n\n if (!voice) {\n throw new HTTPException(400, { message: 'Agent does not have voice capabilities' });\n }\n\n const listeners = await voice.getListener();\n return listeners;\n } catch (error) {\n return handleError(error, 'Error getting listeners');\n }\n}\n"]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkX6C7BUWN_cjs = require('./chunk-X6C7BUWN.cjs');
|
|
4
4
|
var chunkO7I5CWRX_cjs = require('./chunk-O7I5CWRX.cjs');
|
|
5
5
|
|
|
6
|
-
// ../../node_modules/.pnpm/@vercel+oidc@3.0.
|
|
6
|
+
// ../../node_modules/.pnpm/@vercel+oidc@3.0.3/node_modules/@vercel/oidc/dist/token-io.js
|
|
7
7
|
var require_token_io = chunkO7I5CWRX_cjs.__commonJS({
|
|
8
|
-
"../../node_modules/.pnpm/@vercel+oidc@3.0.
|
|
8
|
+
"../../node_modules/.pnpm/@vercel+oidc@3.0.3/node_modules/@vercel/oidc/dist/token-io.js"(exports, module) {
|
|
9
9
|
var __create = Object.create;
|
|
10
10
|
var __defProp = Object.defineProperty;
|
|
11
11
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -42,7 +42,7 @@ var require_token_io = chunkO7I5CWRX_cjs.__commonJS({
|
|
|
42
42
|
var import_path = __toESM(chunkO7I5CWRX_cjs.__require("path"));
|
|
43
43
|
var import_fs = __toESM(chunkO7I5CWRX_cjs.__require("fs"));
|
|
44
44
|
var import_os = __toESM(chunkO7I5CWRX_cjs.__require("os"));
|
|
45
|
-
var import_token_error =
|
|
45
|
+
var import_token_error = chunkX6C7BUWN_cjs.require_token_error();
|
|
46
46
|
function findRootDir() {
|
|
47
47
|
try {
|
|
48
48
|
let dir = process.cwd();
|
|
@@ -81,9 +81,9 @@ var require_token_io = chunkO7I5CWRX_cjs.__commonJS({
|
|
|
81
81
|
}
|
|
82
82
|
});
|
|
83
83
|
|
|
84
|
-
// ../../node_modules/.pnpm/@vercel+oidc@3.0.
|
|
84
|
+
// ../../node_modules/.pnpm/@vercel+oidc@3.0.3/node_modules/@vercel/oidc/dist/token-util.js
|
|
85
85
|
var require_token_util = chunkO7I5CWRX_cjs.__commonJS({
|
|
86
|
-
"../../node_modules/.pnpm/@vercel+oidc@3.0.
|
|
86
|
+
"../../node_modules/.pnpm/@vercel+oidc@3.0.3/node_modules/@vercel/oidc/dist/token-util.js"(exports, module) {
|
|
87
87
|
var __create = Object.create;
|
|
88
88
|
var __defProp = Object.defineProperty;
|
|
89
89
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -126,7 +126,7 @@ var require_token_util = chunkO7I5CWRX_cjs.__commonJS({
|
|
|
126
126
|
module.exports = __toCommonJS(token_util_exports);
|
|
127
127
|
var path = __toESM(chunkO7I5CWRX_cjs.__require("path"));
|
|
128
128
|
var fs = __toESM(chunkO7I5CWRX_cjs.__require("fs"));
|
|
129
|
-
var import_token_error =
|
|
129
|
+
var import_token_error = chunkX6C7BUWN_cjs.require_token_error();
|
|
130
130
|
var import_token_io = require_token_io();
|
|
131
131
|
function getVercelDataDir() {
|
|
132
132
|
const vercelFolder = "com.vercel.cli";
|
|
@@ -207,7 +207,7 @@ var require_token_util = chunkO7I5CWRX_cjs.__commonJS({
|
|
|
207
207
|
}
|
|
208
208
|
const tokenPath = path.join(dir, "com.vercel.token", `${projectId}.json`);
|
|
209
209
|
const tokenJson = JSON.stringify(token);
|
|
210
|
-
fs.mkdirSync(path.dirname(tokenPath), { mode:
|
|
210
|
+
fs.mkdirSync(path.dirname(tokenPath), { mode: 432, recursive: true });
|
|
211
211
|
fs.writeFileSync(tokenPath, tokenJson);
|
|
212
212
|
fs.chmodSync(tokenPath, 432);
|
|
213
213
|
return;
|
|
@@ -244,12 +244,13 @@ var require_token_util = chunkO7I5CWRX_cjs.__commonJS({
|
|
|
244
244
|
);
|
|
245
245
|
return JSON.parse(Buffer.from(padded, "base64").toString("utf8"));
|
|
246
246
|
}
|
|
247
|
+
var TIME_15_MINUTES_IN_MS = 15 * 60 * 1e3;
|
|
247
248
|
function isExpired(token) {
|
|
248
|
-
return token.exp * 1e3 < Date.now();
|
|
249
|
+
return token.exp * 1e3 < Date.now() + TIME_15_MINUTES_IN_MS;
|
|
249
250
|
}
|
|
250
251
|
}
|
|
251
252
|
});
|
|
252
253
|
|
|
253
254
|
exports.require_token_util = require_token_util;
|
|
254
|
-
//# sourceMappingURL=chunk-
|
|
255
|
-
//# sourceMappingURL=chunk-
|
|
255
|
+
//# sourceMappingURL=chunk-QU6N55W6.cjs.map
|
|
256
|
+
//# sourceMappingURL=chunk-QU6N55W6.cjs.map
|