@mastra/core 0.18.1-alpha.0 → 0.19.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/CHANGELOG.md +93 -0
- package/dist/agent/agent.d.ts +19 -9
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/index.cjs +11 -11
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +2 -2
- package/dist/agent/input-processor/index.cjs +6 -6
- package/dist/agent/input-processor/index.js +1 -1
- package/dist/agent/types.d.ts +13 -8
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/ai-tracing/exporters/default.d.ts +2 -2
- package/dist/ai-tracing/exporters/default.d.ts.map +1 -1
- package/dist/ai-tracing/index.cjs +32 -32
- package/dist/ai-tracing/index.js +1 -1
- package/dist/ai-tracing/types.d.ts +2 -2
- package/dist/ai-tracing/types.d.ts.map +1 -1
- package/dist/{chunk-ITD7IHN5.js → chunk-2DGWSOVQ.js} +23 -5
- package/dist/chunk-2DGWSOVQ.js.map +1 -0
- package/dist/{chunk-4PK4GBYZ.cjs → chunk-2GHLV754.cjs} +5 -4
- package/dist/chunk-2GHLV754.cjs.map +1 -0
- package/dist/{chunk-LL2X7QT7.js → chunk-3WFH6YRI.js} +4 -4
- package/dist/{chunk-LL2X7QT7.js.map → chunk-3WFH6YRI.js.map} +1 -1
- package/dist/chunk-45CV4JYJ.cjs +4 -0
- package/dist/{chunk-VBPPPQO3.cjs.map → chunk-45CV4JYJ.cjs.map} +1 -1
- package/dist/{chunk-SEZBEL3U.js → chunk-4BEHJSL6.js} +4 -4
- package/dist/{chunk-SEZBEL3U.js.map → chunk-4BEHJSL6.js.map} +1 -1
- package/dist/chunk-4LSFAAZW.js +3 -0
- package/dist/{chunk-CE73R5W7.js.map → chunk-4LSFAAZW.js.map} +1 -1
- package/dist/{chunk-XUAWHRUO.cjs → chunk-4R2TBRS7.cjs} +37 -112
- package/dist/chunk-4R2TBRS7.cjs.map +1 -0
- package/dist/{chunk-ITBUHG4U.cjs → chunk-4VNAMG7K.cjs} +6 -6
- package/dist/{chunk-ITBUHG4U.cjs.map → chunk-4VNAMG7K.cjs.map} +1 -1
- package/dist/{chunk-B4REUTZB.js → chunk-5BQOHHCI.js} +5 -5
- package/dist/{chunk-B4REUTZB.js.map → chunk-5BQOHHCI.js.map} +1 -1
- package/dist/{chunk-FXLZYRV7.js → chunk-5HCVPQTD.js} +3 -3
- package/dist/{chunk-FXLZYRV7.js.map → chunk-5HCVPQTD.js.map} +1 -1
- package/dist/chunk-5M6ZTQJN.js +1374 -0
- package/dist/chunk-5M6ZTQJN.js.map +1 -0
- package/dist/{chunk-SW7WPHZ2.cjs → chunk-7E4ESNZS.cjs} +5 -5
- package/dist/{chunk-SW7WPHZ2.cjs.map → chunk-7E4ESNZS.cjs.map} +1 -1
- package/dist/{chunk-NTS6B2I2.cjs → chunk-A4RAEU6X.cjs} +2 -2
- package/dist/{chunk-NTS6B2I2.cjs.map → chunk-A4RAEU6X.cjs.map} +1 -1
- package/dist/{chunk-QUB6MWXZ.cjs → chunk-BCWRUNMS.cjs} +38 -37
- package/dist/chunk-BCWRUNMS.cjs.map +1 -0
- package/dist/{chunk-245ANI3P.js → chunk-BUY5X7DT.js} +4 -4
- package/dist/{chunk-245ANI3P.js.map → chunk-BUY5X7DT.js.map} +1 -1
- package/dist/{chunk-6ZVNL435.js → chunk-COC64XPP.js} +9 -8
- package/dist/chunk-COC64XPP.js.map +1 -0
- package/dist/{chunk-6X4FZVGT.cjs → chunk-CQ73JM2N.cjs} +10 -10
- package/dist/{chunk-6X4FZVGT.cjs.map → chunk-CQ73JM2N.cjs.map} +1 -1
- package/dist/{chunk-7UEBC5KM.cjs → chunk-DRVSEV5Y.cjs} +25 -65
- package/dist/chunk-DRVSEV5Y.cjs.map +1 -0
- package/dist/{chunk-2TQHRYRK.cjs → chunk-EPMJYNEK.cjs} +4 -4
- package/dist/{chunk-2TQHRYRK.cjs.map → chunk-EPMJYNEK.cjs.map} +1 -1
- package/dist/{chunk-TKFLL33F.cjs → chunk-F6EJEELE.cjs} +9 -9
- package/dist/{chunk-TKFLL33F.cjs.map → chunk-F6EJEELE.cjs.map} +1 -1
- package/dist/{chunk-4DNSY645.js → chunk-FV3SA5TI.js} +3 -3
- package/dist/{chunk-4DNSY645.js.map → chunk-FV3SA5TI.js.map} +1 -1
- package/dist/{chunk-EJ2FU45N.js → chunk-FV4QVXO4.js} +2 -2
- package/dist/{chunk-EJ2FU45N.js.map → chunk-FV4QVXO4.js.map} +1 -1
- package/dist/{chunk-CKZK2EPZ.cjs → chunk-HNBU4PI7.cjs} +4 -4
- package/dist/{chunk-CKZK2EPZ.cjs.map → chunk-HNBU4PI7.cjs.map} +1 -1
- package/dist/{chunk-O6PQYYT6.cjs → chunk-HQPFM22N.cjs} +63 -45
- package/dist/chunk-HQPFM22N.cjs.map +1 -0
- package/dist/{chunk-36DRWGP4.js → chunk-IAXAPVOP.js} +4 -4
- package/dist/{chunk-36DRWGP4.js.map → chunk-IAXAPVOP.js.map} +1 -1
- package/dist/{chunk-5ZMC3NEO.js → chunk-JKLLXBOY.js} +46 -39
- package/dist/chunk-JKLLXBOY.js.map +1 -0
- package/dist/{chunk-WVRSMHE5.cjs → chunk-K4AYIXVH.cjs} +4 -4
- package/dist/{chunk-WVRSMHE5.cjs.map → chunk-K4AYIXVH.cjs.map} +1 -1
- package/dist/{chunk-SALFMUAY.cjs → chunk-LZBVDMVQ.cjs} +19 -19
- package/dist/{chunk-SALFMUAY.cjs.map → chunk-LZBVDMVQ.cjs.map} +1 -1
- package/dist/{chunk-RPFJBB5X.js → chunk-N4PK4MOG.js} +4 -4
- package/dist/{chunk-RPFJBB5X.js.map → chunk-N4PK4MOG.js.map} +1 -1
- package/dist/{chunk-QBTRGHUF.cjs → chunk-NHJVMZIL.cjs} +19 -19
- package/dist/{chunk-QBTRGHUF.cjs.map → chunk-NHJVMZIL.cjs.map} +1 -1
- package/dist/{chunk-BJZWMVNW.js → chunk-OBIF7QD5.js} +3 -3
- package/dist/{chunk-BJZWMVNW.js.map → chunk-OBIF7QD5.js.map} +1 -1
- package/dist/{chunk-VZLNVGYM.cjs → chunk-PG6ZNDSR.cjs} +21 -21
- package/dist/{chunk-VZLNVGYM.cjs.map → chunk-PG6ZNDSR.cjs.map} +1 -1
- package/dist/{chunk-XWJWU5OM.js → chunk-PJ6HF3KW.js} +16 -56
- package/dist/chunk-PJ6HF3KW.js.map +1 -0
- package/dist/{chunk-NG2XDPDY.js → chunk-RAXBZZKS.js} +4 -3
- package/dist/chunk-RAXBZZKS.js.map +1 -0
- package/dist/chunk-RFGQ3EQV.js +3 -0
- package/dist/chunk-RFGQ3EQV.js.map +1 -0
- package/dist/{chunk-73S2WYSD.cjs → chunk-RNIY63FP.cjs} +85 -78
- package/dist/chunk-RNIY63FP.cjs.map +1 -0
- package/dist/{chunk-ROU7YJLG.js → chunk-RYFQKXXS.js} +3 -3
- package/dist/{chunk-ROU7YJLG.js.map → chunk-RYFQKXXS.js.map} +1 -1
- package/dist/{chunk-C73WLCY3.cjs → chunk-S7UXT3V4.cjs} +21 -3
- package/dist/chunk-S7UXT3V4.cjs.map +1 -0
- package/dist/{chunk-R5GESRGB.js → chunk-SJMKDSRF.js} +37 -112
- package/dist/chunk-SJMKDSRF.js.map +1 -0
- package/dist/{chunk-YWXSGDDO.cjs → chunk-SQQMX4VC.cjs} +6 -6
- package/dist/{chunk-YWXSGDDO.cjs.map → chunk-SQQMX4VC.cjs.map} +1 -1
- package/dist/chunk-TCHOIK53.cjs +4 -0
- package/dist/chunk-TCHOIK53.cjs.map +1 -0
- package/dist/chunk-TIBULEK6.cjs +1379 -0
- package/dist/chunk-TIBULEK6.cjs.map +1 -0
- package/dist/{chunk-WECJNCGT.cjs → chunk-UTEH2LCJ.cjs} +19 -19
- package/dist/{chunk-WECJNCGT.cjs.map → chunk-UTEH2LCJ.cjs.map} +1 -1
- package/dist/{chunk-VGU5ZYYG.js → chunk-VWO3JJXC.js} +4 -4
- package/dist/{chunk-VGU5ZYYG.js.map → chunk-VWO3JJXC.js.map} +1 -1
- package/dist/{chunk-MCOVMKIS.js → chunk-WHFNGECY.js} +21 -4
- package/dist/chunk-WHFNGECY.js.map +1 -0
- package/dist/{chunk-NTXNE4YR.js → chunk-XG3SFWOH.js} +3 -3
- package/dist/{chunk-NTXNE4YR.js.map → chunk-XG3SFWOH.js.map} +1 -1
- package/dist/error/index.cjs +5 -5
- package/dist/error/index.d.ts.map +1 -1
- package/dist/error/index.js +1 -1
- package/dist/error/utils.d.ts +8 -0
- package/dist/error/utils.d.ts.map +1 -0
- package/dist/eval/index.cjs +3 -3
- package/dist/eval/index.js +1 -1
- package/dist/index.cjs +84 -67
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +18 -17
- package/dist/index.js.map +1 -1
- package/dist/integration/index.cjs +3 -3
- package/dist/integration/index.js +1 -1
- package/dist/llm/index.cjs +20 -0
- package/dist/llm/index.d.ts +3 -1
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +1 -1
- package/dist/llm/model/gateways/base.d.ts +42 -0
- package/dist/llm/model/gateways/base.d.ts.map +1 -0
- package/dist/llm/model/gateways/index.d.ts +3 -0
- package/dist/llm/model/gateways/index.d.ts.map +1 -0
- package/dist/llm/model/gateways/models-dev.d.ts +11 -0
- package/dist/llm/model/gateways/models-dev.d.ts.map +1 -0
- package/dist/llm/model/index.d.ts +2 -0
- package/dist/llm/model/index.d.ts.map +1 -1
- package/dist/llm/model/model.loop.d.ts.map +1 -1
- package/dist/llm/model/openai-compatible.d.ts +32 -0
- package/dist/llm/model/openai-compatible.d.ts.map +1 -0
- package/dist/llm/model/provider-registry.generated.d.ts +462 -0
- package/dist/llm/model/provider-registry.generated.d.ts.map +1 -0
- package/dist/llm/model/shared.types.d.ts +8 -0
- package/dist/llm/model/shared.types.d.ts.map +1 -1
- package/dist/loop/index.cjs +2 -2
- package/dist/loop/index.js +1 -1
- package/dist/loop/network/index.d.ts.map +1 -1
- package/dist/loop/test-utils/fullStream.d.ts.map +1 -1
- package/dist/loop/test-utils/generateText.d.ts.map +1 -1
- package/dist/loop/test-utils/options.d.ts.map +1 -1
- package/dist/loop/test-utils/resultObject.d.ts.map +1 -1
- package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
- package/dist/loop/test-utils/toUIMessageStream.d.ts.map +1 -1
- package/dist/loop/test-utils/tools.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/index.d.ts +99 -0
- package/dist/loop/workflows/agentic-execution/index.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +66 -0
- package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +33 -0
- package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-loop/index.d.ts +99 -0
- package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
- package/dist/loop/workflows/run-state.d.ts +5 -0
- package/dist/loop/workflows/run-state.d.ts.map +1 -1
- package/dist/loop/workflows/schema.d.ts +38 -0
- package/dist/loop/workflows/schema.d.ts.map +1 -1
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.d.ts.map +1 -1
- package/dist/mastra/index.js +1 -1
- package/dist/memory/index.cjs +4 -4
- package/dist/memory/index.js +1 -1
- package/dist/network/vNext/index.cjs +30 -30
- package/dist/network/vNext/index.cjs.map +1 -1
- package/dist/network/vNext/index.js +3 -3
- package/dist/network/vNext/index.js.map +1 -1
- package/dist/processors/index.cjs +10 -10
- package/dist/processors/index.js +1 -1
- package/dist/processors/processors/language-detector.d.ts.map +1 -1
- package/dist/processors/processors/moderation.d.ts.map +1 -1
- package/dist/processors/processors/pii-detector.d.ts.map +1 -1
- package/dist/processors/processors/prompt-injection-detector.d.ts.map +1 -1
- package/dist/processors/processors/structured-output.d.ts.map +1 -1
- package/dist/processors/processors/system-prompt-scrubber.d.ts.map +1 -1
- package/dist/relevance/index.cjs +4 -4
- package/dist/relevance/index.js +1 -1
- package/dist/scores/index.cjs +9 -9
- package/dist/scores/index.js +2 -2
- package/dist/scores/scoreTraces/index.cjs +57 -68
- package/dist/scores/scoreTraces/index.cjs.map +1 -1
- package/dist/scores/scoreTraces/index.js +48 -59
- package/dist/scores/scoreTraces/index.js.map +1 -1
- package/dist/scores/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -1
- package/dist/scores/scoreTraces/utils.d.ts +4 -8
- package/dist/scores/scoreTraces/utils.d.ts.map +1 -1
- package/dist/scores/types.d.ts +8 -4
- package/dist/scores/types.d.ts.map +1 -1
- package/dist/server/index.cjs +7 -7
- package/dist/server/index.js +2 -2
- package/dist/storage/base.d.ts +14 -5
- package/dist/storage/base.d.ts.map +1 -1
- package/dist/storage/constants.d.ts.map +1 -1
- package/dist/storage/domains/observability/base.d.ts +5 -5
- package/dist/storage/domains/observability/base.d.ts.map +1 -1
- package/dist/storage/domains/observability/inmemory.d.ts +7 -7
- package/dist/storage/domains/observability/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/scores/base.d.ts +8 -0
- package/dist/storage/domains/scores/base.d.ts.map +1 -1
- package/dist/storage/domains/scores/inmemory.d.ts +8 -0
- package/dist/storage/domains/scores/inmemory.d.ts.map +1 -1
- package/dist/storage/index.cjs +94 -64
- package/dist/storage/index.cjs.map +1 -1
- package/dist/storage/index.js +59 -29
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/mock.d.ts +9 -0
- package/dist/storage/mock.d.ts.map +1 -1
- package/dist/storage/types.d.ts +2 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/stream/MastraWorkflowStream.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/input.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/output.d.ts +7 -0
- package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
- package/dist/stream/base/output.d.ts.map +1 -1
- package/dist/stream/index.cjs +4 -4
- package/dist/stream/index.js +1 -1
- package/dist/stream/types.d.ts +12 -12
- package/dist/stream/types.d.ts.map +1 -1
- package/dist/telemetry/index.cjs +7 -7
- package/dist/telemetry/index.js +1 -1
- package/dist/test-utils/llm-mock.cjs +2 -2
- package/dist/test-utils/llm-mock.js +1 -1
- package/dist/tools/index.cjs +4 -4
- package/dist/tools/index.js +1 -1
- package/dist/tools/is-vercel-tool.cjs +2 -2
- package/dist/tools/is-vercel-tool.js +1 -1
- package/dist/tools/tool.d.ts +2 -4
- package/dist/tools/tool.d.ts.map +1 -1
- package/dist/tools/types.d.ts +1 -1
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tts/index.cjs +2 -2
- package/dist/tts/index.js +1 -1
- package/dist/{types.d.ts → types/dynamic-argument.d.ts} +3 -3
- package/dist/types/dynamic-argument.d.ts.map +1 -0
- package/dist/types/index.cjs +4 -0
- package/dist/types/index.cjs.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils.cjs +17 -17
- package/dist/utils.js +1 -1
- package/dist/vector/index.cjs +4 -4
- package/dist/vector/index.js +1 -1
- package/dist/voice/index.cjs +4 -4
- package/dist/voice/index.js +1 -1
- package/dist/workflows/default.d.ts.map +1 -1
- package/dist/workflows/evented/index.cjs +10 -10
- package/dist/workflows/evented/index.js +1 -1
- package/dist/workflows/index.cjs +12 -12
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/legacy/index.cjs +22 -22
- package/dist/workflows/legacy/index.js +1 -1
- package/dist/workflows/types.d.ts +11 -1
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/workflow.d.ts +6 -3
- package/dist/workflows/workflow.d.ts.map +1 -1
- package/package.json +4 -4
- package/types.d.ts +1 -0
- package/dist/chunk-4PK4GBYZ.cjs.map +0 -1
- package/dist/chunk-5ZMC3NEO.js.map +0 -1
- package/dist/chunk-6ZVNL435.js.map +0 -1
- package/dist/chunk-73S2WYSD.cjs.map +0 -1
- package/dist/chunk-7UEBC5KM.cjs.map +0 -1
- package/dist/chunk-C73WLCY3.cjs.map +0 -1
- package/dist/chunk-CE73R5W7.js +0 -3
- package/dist/chunk-ITD7IHN5.js.map +0 -1
- package/dist/chunk-MCOVMKIS.js.map +0 -1
- package/dist/chunk-NG2XDPDY.js.map +0 -1
- package/dist/chunk-O6PQYYT6.cjs.map +0 -1
- package/dist/chunk-QUB6MWXZ.cjs.map +0 -1
- package/dist/chunk-R5GESRGB.js.map +0 -1
- package/dist/chunk-VBPPPQO3.cjs +0 -4
- package/dist/chunk-XUAWHRUO.cjs.map +0 -1
- package/dist/chunk-XWJWU5OM.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkPG6ZNDSR_cjs = require('./chunk-PG6ZNDSR.cjs');
|
|
4
|
+
var chunk2GHLV754_cjs = require('./chunk-2GHLV754.cjs');
|
|
5
5
|
var chunkV3VLOOSW_cjs = require('./chunk-V3VLOOSW.cjs');
|
|
6
6
|
var chunkKTCBGNCZ_cjs = require('./chunk-KTCBGNCZ.cjs');
|
|
7
7
|
var chunk4D4KB75Y_cjs = require('./chunk-4D4KB75Y.cjs');
|
|
8
|
-
var
|
|
8
|
+
var chunkF6EJEELE_cjs = require('./chunk-F6EJEELE.cjs');
|
|
9
9
|
var chunkTSNDVBUU_cjs = require('./chunk-TSNDVBUU.cjs');
|
|
10
|
-
var
|
|
10
|
+
var chunkDRVSEV5Y_cjs = require('./chunk-DRVSEV5Y.cjs');
|
|
11
11
|
var chunk6TEQIYXV_cjs = require('./chunk-6TEQIYXV.cjs');
|
|
12
|
-
var
|
|
12
|
+
var chunkS7UXT3V4_cjs = require('./chunk-S7UXT3V4.cjs');
|
|
13
13
|
var chunkWVCEJBDR_cjs = require('./chunk-WVCEJBDR.cjs');
|
|
14
14
|
var chunkEBVYYC2Q_cjs = require('./chunk-EBVYYC2Q.cjs');
|
|
15
15
|
var crypto$1 = require('crypto');
|
|
@@ -57,7 +57,7 @@ function createOnScorerHook(mastra) {
|
|
|
57
57
|
try {
|
|
58
58
|
const scorerToUse = await findScorer(mastra, entityId, entityType, scorer.name);
|
|
59
59
|
if (!scorerToUse) {
|
|
60
|
-
throw new
|
|
60
|
+
throw new chunkS7UXT3V4_cjs.MastraError({
|
|
61
61
|
id: "MASTRA_SCORER_NOT_FOUND",
|
|
62
62
|
domain: "MASTRA" /* MASTRA */,
|
|
63
63
|
category: "USER" /* USER */,
|
|
@@ -86,7 +86,7 @@ function createOnScorerHook(mastra) {
|
|
|
86
86
|
};
|
|
87
87
|
await validateAndSaveScore(storage, payload);
|
|
88
88
|
} catch (error) {
|
|
89
|
-
const mastraError = new
|
|
89
|
+
const mastraError = new chunkS7UXT3V4_cjs.MastraError({
|
|
90
90
|
id: "MASTRA_SCORER_FAILED_TO_RUN_HOOK",
|
|
91
91
|
domain: "SCORER" /* SCORER */,
|
|
92
92
|
category: "USER" /* USER */,
|
|
@@ -102,7 +102,7 @@ function createOnScorerHook(mastra) {
|
|
|
102
102
|
};
|
|
103
103
|
}
|
|
104
104
|
async function validateAndSaveScore(storage, payload) {
|
|
105
|
-
const payloadToSave =
|
|
105
|
+
const payloadToSave = chunk2GHLV754_cjs.saveScorePayloadSchema.parse(payload);
|
|
106
106
|
await storage?.saveScore(payloadToSave);
|
|
107
107
|
}
|
|
108
108
|
async function findScorer(mastra, entityId, entityType, scorerName) {
|
|
@@ -135,7 +135,7 @@ async function findScorer(mastra, entityId, entityType, scorerName) {
|
|
|
135
135
|
|
|
136
136
|
// src/mastra/index.ts
|
|
137
137
|
var _Mastra_decorators, _init;
|
|
138
|
-
_Mastra_decorators = [
|
|
138
|
+
_Mastra_decorators = [chunkF6EJEELE_cjs.InstrumentClass({
|
|
139
139
|
prefix: "mastra",
|
|
140
140
|
excludeMethods: ["getLogger", "getTelemetry"]
|
|
141
141
|
})];
|
|
@@ -194,7 +194,7 @@ exports.Mastra = class Mastra {
|
|
|
194
194
|
if (this.#idGenerator) {
|
|
195
195
|
const id = this.#idGenerator();
|
|
196
196
|
if (!id) {
|
|
197
|
-
const error = new
|
|
197
|
+
const error = new chunkS7UXT3V4_cjs.MastraError({
|
|
198
198
|
id: "MASTRA_ID_GENERATOR_RETURNED_EMPTY_STRING",
|
|
199
199
|
domain: "MASTRA" /* MASTRA */,
|
|
200
200
|
category: "USER" /* USER */,
|
|
@@ -231,7 +231,7 @@ exports.Mastra = class Mastra {
|
|
|
231
231
|
this.#events[topic] = config?.events?.[topic] ?? [];
|
|
232
232
|
}
|
|
233
233
|
}
|
|
234
|
-
const workflowEventProcessor = new
|
|
234
|
+
const workflowEventProcessor = new chunkPG6ZNDSR_cjs.WorkflowEventProcessor({
|
|
235
235
|
mastra: this
|
|
236
236
|
});
|
|
237
237
|
const workflowEventCb = async (event, cb) => {
|
|
@@ -266,12 +266,12 @@ exports.Mastra = class Mastra {
|
|
|
266
266
|
if (storage) {
|
|
267
267
|
storage = chunkV3VLOOSW_cjs.augmentWithInit(storage);
|
|
268
268
|
}
|
|
269
|
-
this.#telemetry =
|
|
269
|
+
this.#telemetry = chunkF6EJEELE_cjs.Telemetry.init(config?.telemetry);
|
|
270
270
|
if (config?.telemetry?.enabled !== false && typeof globalThis !== "undefined" && globalThis.___MASTRA_TELEMETRY___ !== true) {
|
|
271
271
|
this.#logger?.warn(`Mastra telemetry is enabled, but the required instrumentation file was not loaded. If you are using Mastra outside of the mastra server environment, see: https://mastra.ai/en/docs/observability/tracing#tracing-outside-mastra-server-environment`, `If you are using a custom instrumentation file or want to disable this warning, set the globalThis.___MASTRA_TELEMETRY___ variable to true in your instrumentation file.`);
|
|
272
272
|
}
|
|
273
273
|
if (config?.observability) {
|
|
274
|
-
|
|
274
|
+
chunkDRVSEV5Y_cjs.setupAITracing(config.observability);
|
|
275
275
|
}
|
|
276
276
|
if (this.#telemetry && storage) {
|
|
277
277
|
this.#storage = this.#telemetry.traceClass(storage, {
|
|
@@ -310,7 +310,7 @@ exports.Mastra = class Mastra {
|
|
|
310
310
|
});
|
|
311
311
|
}
|
|
312
312
|
if (config && `memory` in config) {
|
|
313
|
-
const error = new
|
|
313
|
+
const error = new chunkS7UXT3V4_cjs.MastraError({
|
|
314
314
|
id: "MASTRA_CONSTRUCTOR_INVALID_MEMORY_CONFIG",
|
|
315
315
|
domain: "MASTRA" /* MASTRA */,
|
|
316
316
|
category: "USER" /* USER */,
|
|
@@ -344,7 +344,7 @@ do:
|
|
|
344
344
|
if (config?.agents) {
|
|
345
345
|
Object.entries(config.agents).forEach(([key, agent]) => {
|
|
346
346
|
if (agents[key]) {
|
|
347
|
-
const error = new
|
|
347
|
+
const error = new chunkS7UXT3V4_cjs.MastraError({
|
|
348
348
|
id: "MASTRA_AGENT_REGISTRATION_DUPLICATE_ID",
|
|
349
349
|
domain: "MASTRA" /* MASTRA */,
|
|
350
350
|
category: "USER" /* USER */,
|
|
@@ -438,7 +438,7 @@ do:
|
|
|
438
438
|
* Register this Mastra instance with AI tracing exporters that need it
|
|
439
439
|
*/
|
|
440
440
|
registerAITracingExporters() {
|
|
441
|
-
const allTracingInstances =
|
|
441
|
+
const allTracingInstances = chunkDRVSEV5Y_cjs.getAllAITracing();
|
|
442
442
|
allTracingInstances.forEach(tracing => {
|
|
443
443
|
const exporters = tracing.getExporters();
|
|
444
444
|
exporters.forEach(exporter => {
|
|
@@ -452,13 +452,14 @@ do:
|
|
|
452
452
|
* Initialize all AI tracing exporters after registration is complete
|
|
453
453
|
*/
|
|
454
454
|
initAITracingExporters() {
|
|
455
|
-
const allTracingInstances =
|
|
455
|
+
const allTracingInstances = chunkDRVSEV5Y_cjs.getAllAITracing();
|
|
456
456
|
allTracingInstances.forEach(tracing => {
|
|
457
|
+
const config = tracing.getConfig();
|
|
457
458
|
const exporters = tracing.getExporters();
|
|
458
459
|
exporters.forEach(exporter => {
|
|
459
460
|
if ("init" in exporter && typeof exporter.init === "function") {
|
|
460
461
|
try {
|
|
461
|
-
exporter.init();
|
|
462
|
+
exporter.init(config);
|
|
462
463
|
} catch (error) {
|
|
463
464
|
this.#logger?.warn("Failed to initialize AI tracing exporter", {
|
|
464
465
|
exporterName: exporter.name,
|
|
@@ -472,7 +473,7 @@ do:
|
|
|
472
473
|
getAgent(name) {
|
|
473
474
|
const agent = this.#agents?.[name];
|
|
474
475
|
if (!agent) {
|
|
475
|
-
const error = new
|
|
476
|
+
const error = new chunkS7UXT3V4_cjs.MastraError({
|
|
476
477
|
id: "MASTRA_GET_AGENT_BY_NAME_NOT_FOUND",
|
|
477
478
|
domain: "MASTRA" /* MASTRA */,
|
|
478
479
|
category: "USER" /* USER */,
|
|
@@ -496,7 +497,7 @@ do:
|
|
|
496
497
|
} catch {}
|
|
497
498
|
}
|
|
498
499
|
if (!agent) {
|
|
499
|
-
const error = new
|
|
500
|
+
const error = new chunkS7UXT3V4_cjs.MastraError({
|
|
500
501
|
id: "MASTRA_GET_AGENT_BY_AGENT_ID_NOT_FOUND",
|
|
501
502
|
domain: "MASTRA" /* MASTRA */,
|
|
502
503
|
category: "USER" /* USER */,
|
|
@@ -518,7 +519,7 @@ do:
|
|
|
518
519
|
getVector(name) {
|
|
519
520
|
const vector = this.#vectors?.[name];
|
|
520
521
|
if (!vector) {
|
|
521
|
-
const error = new
|
|
522
|
+
const error = new chunkS7UXT3V4_cjs.MastraError({
|
|
522
523
|
id: "MASTRA_GET_VECTOR_BY_NAME_NOT_FOUND",
|
|
523
524
|
domain: "MASTRA" /* MASTRA */,
|
|
524
525
|
category: "USER" /* USER */,
|
|
@@ -545,7 +546,7 @@ do:
|
|
|
545
546
|
} = {}) {
|
|
546
547
|
const workflow = this.#legacy_workflows?.[id];
|
|
547
548
|
if (!workflow) {
|
|
548
|
-
const error = new
|
|
549
|
+
const error = new chunkS7UXT3V4_cjs.MastraError({
|
|
549
550
|
id: "MASTRA_GET_LEGACY_WORKFLOW_BY_ID_NOT_FOUND",
|
|
550
551
|
domain: "MASTRA" /* MASTRA */,
|
|
551
552
|
category: "USER" /* USER */,
|
|
@@ -571,7 +572,7 @@ do:
|
|
|
571
572
|
} = {}) {
|
|
572
573
|
const workflow = this.#workflows?.[id];
|
|
573
574
|
if (!workflow) {
|
|
574
|
-
const error = new
|
|
575
|
+
const error = new chunkS7UXT3V4_cjs.MastraError({
|
|
575
576
|
id: "MASTRA_GET_WORKFLOW_BY_ID_NOT_FOUND",
|
|
576
577
|
domain: "MASTRA" /* MASTRA */,
|
|
577
578
|
category: "USER" /* USER */,
|
|
@@ -606,7 +607,7 @@ do:
|
|
|
606
607
|
__getInternalWorkflow(id) {
|
|
607
608
|
const workflow = Object.values(this.#internalMastraWorkflows).find(a => a.id === id);
|
|
608
609
|
if (!workflow) {
|
|
609
|
-
throw new
|
|
610
|
+
throw new chunkS7UXT3V4_cjs.MastraError({
|
|
610
611
|
id: "MASTRA_GET_INTERNAL_WORKFLOW_BY_ID_NOT_FOUND",
|
|
611
612
|
domain: "MASTRA" /* MASTRA */,
|
|
612
613
|
category: "SYSTEM" /* SYSTEM */,
|
|
@@ -627,7 +628,7 @@ do:
|
|
|
627
628
|
} catch {}
|
|
628
629
|
}
|
|
629
630
|
if (!workflow) {
|
|
630
|
-
const error = new
|
|
631
|
+
const error = new chunkS7UXT3V4_cjs.MastraError({
|
|
631
632
|
id: "MASTRA_GET_WORKFLOW_BY_ID_NOT_FOUND",
|
|
632
633
|
domain: "MASTRA" /* MASTRA */,
|
|
633
634
|
category: "USER" /* USER */,
|
|
@@ -662,7 +663,7 @@ do:
|
|
|
662
663
|
getScorer(key) {
|
|
663
664
|
const scorer = this.#scorers?.[key];
|
|
664
665
|
if (!scorer) {
|
|
665
|
-
const error = new
|
|
666
|
+
const error = new chunkS7UXT3V4_cjs.MastraError({
|
|
666
667
|
id: "MASTRA_GET_SCORER_NOT_FOUND",
|
|
667
668
|
domain: "MASTRA" /* MASTRA */,
|
|
668
669
|
category: "USER" /* USER */,
|
|
@@ -679,7 +680,7 @@ do:
|
|
|
679
680
|
return value;
|
|
680
681
|
}
|
|
681
682
|
}
|
|
682
|
-
const error = new
|
|
683
|
+
const error = new chunkS7UXT3V4_cjs.MastraError({
|
|
683
684
|
id: "MASTRA_GET_SCORER_BY_NAME_NOT_FOUND",
|
|
684
685
|
domain: "MASTRA" /* MASTRA */,
|
|
685
686
|
category: "USER" /* USER */,
|
|
@@ -737,13 +738,13 @@ do:
|
|
|
737
738
|
this.#mcpServers?.[key]?.__setLogger(this.#logger);
|
|
738
739
|
});
|
|
739
740
|
}
|
|
740
|
-
const allTracingInstances =
|
|
741
|
+
const allTracingInstances = chunkDRVSEV5Y_cjs.getAllAITracing();
|
|
741
742
|
allTracingInstances.forEach(instance => {
|
|
742
743
|
instance.__setLogger(this.#logger);
|
|
743
744
|
});
|
|
744
745
|
}
|
|
745
746
|
setTelemetry(telemetry) {
|
|
746
|
-
this.#telemetry =
|
|
747
|
+
this.#telemetry = chunkF6EJEELE_cjs.Telemetry.init(telemetry);
|
|
747
748
|
if (this.#agents) {
|
|
748
749
|
Object.keys(this.#agents).forEach(key => {
|
|
749
750
|
if (this.#telemetry) {
|
|
@@ -824,7 +825,7 @@ do:
|
|
|
824
825
|
return;
|
|
825
826
|
}
|
|
826
827
|
if (!Array.isArray(serverMiddleware)) {
|
|
827
|
-
const error = new
|
|
828
|
+
const error = new chunkS7UXT3V4_cjs.MastraError({
|
|
828
829
|
id: "MASTRA_SET_SERVER_MIDDLEWARE_INVALID_TYPE",
|
|
829
830
|
domain: "MASTRA" /* MASTRA */,
|
|
830
831
|
category: "USER" /* USER */,
|
|
@@ -870,7 +871,7 @@ do:
|
|
|
870
871
|
perPage
|
|
871
872
|
}) {
|
|
872
873
|
if (!transportId) {
|
|
873
|
-
const error = new
|
|
874
|
+
const error = new chunkS7UXT3V4_cjs.MastraError({
|
|
874
875
|
id: "MASTRA_GET_LOGS_BY_RUN_ID_MISSING_TRANSPORT",
|
|
875
876
|
domain: "MASTRA" /* MASTRA */,
|
|
876
877
|
category: "USER" /* USER */,
|
|
@@ -884,7 +885,7 @@ do:
|
|
|
884
885
|
throw error;
|
|
885
886
|
}
|
|
886
887
|
if (!this.#logger?.getLogsByRunId) {
|
|
887
|
-
const error = new
|
|
888
|
+
const error = new chunkS7UXT3V4_cjs.MastraError({
|
|
888
889
|
id: "MASTRA_GET_LOGS_BY_RUN_ID_LOGGER_NOT_CONFIGURED",
|
|
889
890
|
domain: "MASTRA" /* MASTRA */,
|
|
890
891
|
category: "SYSTEM" /* SYSTEM */,
|
|
@@ -910,7 +911,7 @@ do:
|
|
|
910
911
|
}
|
|
911
912
|
async getLogs(transportId, params) {
|
|
912
913
|
if (!transportId) {
|
|
913
|
-
const error = new
|
|
914
|
+
const error = new chunkS7UXT3V4_cjs.MastraError({
|
|
914
915
|
id: "MASTRA_GET_LOGS_MISSING_TRANSPORT",
|
|
915
916
|
domain: "MASTRA" /* MASTRA */,
|
|
916
917
|
category: "USER" /* USER */,
|
|
@@ -923,7 +924,7 @@ do:
|
|
|
923
924
|
throw error;
|
|
924
925
|
}
|
|
925
926
|
if (!this.#logger) {
|
|
926
|
-
const error = new
|
|
927
|
+
const error = new chunkS7UXT3V4_cjs.MastraError({
|
|
927
928
|
id: "MASTRA_GET_LOGS_LOGGER_NOT_CONFIGURED",
|
|
928
929
|
domain: "MASTRA" /* MASTRA */,
|
|
929
930
|
category: "SYSTEM" /* SYSTEM */,
|
|
@@ -1023,7 +1024,7 @@ do:
|
|
|
1023
1024
|
* Shutdown Mastra and clean up all resources
|
|
1024
1025
|
*/
|
|
1025
1026
|
async shutdown() {
|
|
1026
|
-
await
|
|
1027
|
+
await chunkDRVSEV5Y_cjs.shutdownAITracingRegistry();
|
|
1027
1028
|
await this.stopEventEngine();
|
|
1028
1029
|
this.#logger?.info("Mastra shutdown completed");
|
|
1029
1030
|
}
|
|
@@ -1038,5 +1039,5 @@ exports.Mastra = /*@__PURE__*/(_ => {
|
|
|
1038
1039
|
chunkEBVYYC2Q_cjs.__runInitializers(_init, 1, exports.Mastra);
|
|
1039
1040
|
return exports.Mastra;
|
|
1040
1041
|
})();
|
|
1041
|
-
//# sourceMappingURL=chunk-
|
|
1042
|
-
//# sourceMappingURL=chunk-
|
|
1042
|
+
//# sourceMappingURL=chunk-BCWRUNMS.cjs.map
|
|
1043
|
+
//# sourceMappingURL=chunk-BCWRUNMS.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mastra/index.ts","../src/events/event-emitter.ts","../src/mastra/hooks.ts"],"names":["MastraError","saveScorePayloadSchema","InstrumentClass","Mastra","randomUUID","InMemoryServerCache","WorkflowEventProcessor","LogLevel","ConsoleLogger","augmentWithInit","Telemetry","setupAITracing","registerHook","getAllAITracing","shutdownAITracingRegistry","__decoratorStart","__decorateElement","__runInitializers"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,EAAA,OAAS,MAAA,QAAA,IAAkB;;;ACA3B,MAAA,MAAO,CAAA,SAAA,EAAA,EAAkB,IAAA,CAAA,yDAAA,CAAA;AAIlB,MAAM;AAAkC,IACrC;AAAA,IAER,MAAA,QAAc,GAAA,QAAA,CAAA,MAAA,CAAA,EAAA;AACZ,IAAA,MAAM,UAAA,GAAA,QAAA,CAAA,UAAA;AACN,IAAA,MAAK,MAAA,GAAU,QAAI,CAAA,MAAA;AAAa,IAClC,IAAA;AAAA,MAEA,MAAM,WAAuB,GAAA,MAAuD,UAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,CAAA,IAAA,CAAA;AAClF,MAAA,IAAM,CAAA,WAAY,EAAA;AAClB,QAAA,MAAM,IAAAA;AACN,UAAK,EAAA,EAAA,yBAAoB;AAAA,UACpB,MAAA,EAAA,QAAA;AAAA,UACH,QAAA,EAAA,MAAA;AAAA,UACA,IAAA,EAAA,CAAA,eAAA,EAAA,QAAA,CAAA,MAAA,CAAA,EAAA,CAAA,UAAA;AAAA,SACD,CAAA;AAAA,MACH;AAAA,MAEA,IAAM,KAAA,GAAU,QAAe,CAAA,KAAsE;AACnG,MAAA,IAAK,MAAA,GAAQ,QAAU,CAAA,MAAE;AAAA,MAC3B,MAAA;AAAA,QAEM,gBAAY;AAChB,QAAA,GAAK;AAAqB,OAC5B,GAAA,QAAA;AAAA,YAEM,SAAuB,GAAA,MAAA,WAAA,CAAA,MAAA,CAAA,GAAA,CAAA;AAAA,QAE7B,GAAA,IAAA;AACF,QAAA,KAAA;;;AC3BO,MAAA;AACL,QAAA;AACE,QAAA,GAAM,SAAU;AAEhB,QAAI,QAAC;AACH,QAAA,QAAO,EAAA,QAAa,CAAA,MAAK,CAAA,IAAA;AACzB,QAAA,QAAA,EAAA;AAAA,UACF,gBAAA,EAAA,CAAA,CAAA;AAEA;AACA,OAAA;AACA,MAAA,0BAAwB,CAAA,OAAA,EAAA,OAAA,CAAA;AACxB,IAAA,CAAA,CAAA,OAAI,KAAA,EAAA;AACF,MAAA,MAAM,cAAc,IAAAA,6BAAM,CAAA;AAE1B,QAAA,EAAI,EAAC,kCAAa;AAChB,QAAA,MAAM,UAAI;AAAY,QAAA,QAChB,EAAA,MAAA;AAAA,QAAA,OACJ,EAAA;AAAA,UACA,QAAA,EAAA,MAAA,CAAA,EAAA;AAAA,UACA,QAAM;AAAoC,UAC3C;AAAA;AAGH,OAAA,EAAA;AACA,MAAA,gBAAa,EAAA,EAAA,cAAS,CAAA,WAAA,CAAA;AAEtB,MAAA,MAAM,CAAA,SAAE,EAAA,EAAA,KAAA,CAAkB,WAAQ,CAAI,QAAA,EAAA,CAAA;AAEtC,IAAA;AAA+C,EAAA,CAAA;AAC1C;AACH,eACA,oBAAA,CAAA,OAAA,EAAA,OAAA,EAAA;AAAA,EAAA,MACD,aAAA,GAAAC,wCAAA,CAAA,KAAA,CAAA,OAAA,CAAA;AAED,EAAA,MAAA,OAAM,EAAA,SAAU,CAAA,aAAA,CAAA;AAAA;AACX,eACA,UAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA;AAAA,EAAA,IAAA,WACH;AAAA,EAAA,IAAA,UACA,YAAmB,EAAA;AAAO,IAAA,MAC1B,OAAA,GAAU,MAAA,MAAA,CAAA,YAAA,CAAA,QAAA,CAAA,CAAA,UAAA,EAAA;AAAA,IAAA,KAAA,MACR,CAAA,CAAA,EAAA,MAAA,CAAA,IAAoB,MAAA,CAAA,OAAA,CAAA,OAAA,CAAA,EAAA;AAAA,MAAA,IACtB,MAAA,CAAA,MAAA,CAAA,IAAA,KAAA,UAAA,EAAA;AAAA,QACF,WAAA,GAAA,MAAA;AAEA,QAAA;AAA2C;AAE3C,IAAA;AAAwB,EAAA,CAAA,MACtB,IAAA,UAAA,KAAA,UAAA,EAAA;AAAA,IAAA,MACE,OAAI,GAAA,MAAA,MAAA,CAAA,eAAA,CAAA,QAAA,CAAA,CAAA,UAAA,EAAA;AAAA,IAAA,KAAA,MACJ,CAAA,CAAA,EAAA,MAAA,CAAA,IAAA,MAAA,CAAA,OAAA,CAAA,OAAA,CAAA,EAAA;AAAA,MAAA,IACA,MAAA,CAAA,MAAA,CAAA,IAAA,KAAA,UAAA,EAAA;AAAA,QAAA,WACS,GAAA,MAAA;AAAA,QAAA;AACU,MAAA;AACjB,IAAA;AACA,EAAA;AACF,EAAA,IAAA,CAAA,WACF,EAAA;AAAA,IAAA,MACA,sBAAA,GAAA,MAAA,CAAA,eAAA,CAAA,UAAA,CAAA;AAAA,IAAA,WACF,GAAA,sBAAA,GAAA;AAEA,MAAA,MAAA,EAAO;AACP,KAAA,GAAA,MAAO;AAAyC,EAAA;AAClD,EACF,OAAA,WAAA;AACF;;AAGE;AACA,IAAA,yBAAyB;AAC3B,kBAAA,GAAA,CAAAC,iCAAA,CAAA;AAEA,EAAA,MAAA,EAAA,QAAe;AACb,EAAA,cAAI,EAAA,CAAA,WAAA,EAAA,cAAA;AACJ,CAAA,CAAA,CAAA;AACEC,cAAM;AACN,EAAA,QAAA;AACE,EAAA,OAAA;AACE,EAAA,OAAA;AACA,EAAA,iBAAA;AAAA,EAAA,UACF;AAAA,EAAA,IACF;AAAA,EACF,SAAA;AACE,EAAA,oBAAgB,EAAA;AAChB,EAAA,UAAA;AACE,EAAA,QAAI;AACF,EAAA,OAAA;AACA,EAAA,eAAA;AAAA,EAAA,QACF;AAAA,EAAA,OACF;AAAA,EACF,WAAA;AAGA,EAAA,QAAK;AACH,EAAA,YAAM;AACN,EAAA,OAAA;AAA4E,EAC9E,OAAA,GAAA,EAAA;AAEA,EAAA,wBAAO,GAAA,EAAA;AACT;;;AFzGA;AAqFA;AAAiB,EACf,IAAA,SAAQ,GAAA;AAAA,IACR,OAAA,IAAA,CAAA,UAAiB;AACnB,EAAC;AACM;AAaL;AACA;AACA,EACA,IAAA,OAAA,GAAA;AAAA,IACA,OAAA,IAAA,CAAA,QAAA;AAAA,EACA;AAAA;AACA;AACA;AAIM,EACN,IAAA,MAAA,GAAA;AAAA,IACA,OAAA,IAAA,CAAA,OAAA;AAAA,EACA;AAAA,EACA,IAAA,MAAA,GAAA;AAAA,IACA,OAAA,IAAA,CAAA,OAAA;AAAA,EACA;AAAA,EACA,cAAA,GAAA;AAAA,IACA,OAAA,IAAA,CAAA,YAAA;AAAA,EACA;AAAA;AACA;AAGK;AACiD;AAAA,EAEtD,UAAA,GAAA;AAAA,IAAA,IAAA,IAAA,CAAA,YAAA,EAAA;AAAA,MAAA,MAAA,EAAA,GAAA,IAAA,CAAA,YAAA,EAAA;AAAA,MAAA,IAAA,CAAA,EAAA,EAAA;AAAA,QAKI,MAAA,KAAY,GAAA,IAAAH,6BAAA,CAAA;AACd,UAAA,EAAO,EAAA,2CAAK;AAAA,UACd,MAAA,EAAA,QAAA;AAAA,UAAA,QAAA,EAAA,MAAA;AAAA,UAAA,IAAA,EAAA;AAAA,SAAA,CAAA;AAAA,QAKI,IAAA,CAAA,OAAU,EAAA,cAAA,CAAA,KAAA,CAAA;AACZ,QAAA,MAAO,KAAK;AAAA,MACd;AAAA,MAAA,OAAA,EAAA;AAAA,IAAA;AAAA,IAAA,OAAAI,mBAAA,EAAA;AAAA,EAKA;AACE,EAAA,cAAY,CAAA,WAAA,EAAA;AAAA,IACd,IAAA,CAAA,YAAA,GAAA,WAAA;AAAA,EAEA;AACE,EAAA,WAAO,CAAA,MAAK,EAAA;AAAA,IACd,IAAA,MAAA,EAAA,gBAAA,EAAA;AAAA,MAEO,IAAA,CAAA,iBAAiB,GAAA,MAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,KAAA;AACtB,QAAA,OAAO,EAAK,CAAA,CAAA,OAAA;AAAA,QACd,IAAA,EAAA,CAAA,CAAA,IAAA,IAAA;AAAA,OAAA,CAAA,CAAA;AAAA,IAAA;AAAA,IAAA,IAAA,CAAA,YAAA,GAAA,IAAAC,qCAAA,EAAA;AAAA,IAAA,IAAA,MAAA,EAAA,MAAA,EAAA;AAAA,MAMO,IAAA,CAAA,OAAqB,GAAA,MAAA,CAAA,MAAA;AAC1B,IAAA,CAAA;AACE,MAAA,IAAA,CAAA,cAAgB,kBAAa,EAAA;AAC7B,IAAA;AACE,IAAA,IAAA,CAAA,OAAM,GAAA,EAAA;AAAwB,IAAA,KAAA,MACxB,KAAA,IAAA,MAAA,EAAA,MAAA,IAAA,EAAA,EAAA;AAAA,MAAA,IACJ,CAAA,KAAA,CAAA,OAAA,CAAA,MAAA,EAAA,MAAA,GAAA,KAAA,CAAA,CAAA,EAAA;AAAA,QAAA,IACA,CAAA,OAAA,CAAA,KAAA,CAAA,GAAA,CAAA,MAAA,EAAA,MAAA,GAAA,KAAA,CAAA,CAAA;AAAA,MAAA,CAAA,MACA;AAAM,QACR,IAAC,CAAA,OAAA,CAAA,KAAA,CAAA,GAAA,MAAA,EAAA,MAAA,GAAA,KAAA,CAAA,IAAA,EAAA;AACD,MAAA;AACA,IAAA;AAAM,IAAA,MACR,sBAAA,GAAA,IAAAC,wCAAA,CAAA;AACA,MAAA,MAAA,EAAO;AAAA,KACT,CAAA;AACA,IAAA,MAAA,eAAkB,GAAA,OAAA,KAAA,EAAA,EAAA,KAAA;AAAA,MACpB,IAAA;AAAA,oCAEsD,CAAA,OAAA,CAAA,KAAA,EAAA,EAAA,CAAA;AACpD,MAAA,CAAA,CAAA,OAAK,CAAA,EAAA;AAAe,QACtB,OAAA,CAAA,KAAA,CAAA,wBAAA,EAAA,CAAA,CAAA;AAAA;AAgBE,IAAA,CAAA;AACE,IAAA,IAAA,IAAK,CAAA,OAAA,CAAA,SAAA,EAAoB;AAAkC,MAAA,YAChD,CAAE,SAAA,CAAA,IAAA,CAAA,eAAA,CAAA;AAAA,IAAA,CAAA,MACX;AAAgB,MAClB,IAAE,CAAA,OAAA,CAAA,SAAA,GAAA,CAAA,eAAA,CAAA;AAAA,IACJ;AAOA,IAAA,IAAA,MAAK;AAKL,IAAA,IAAI,QAAQ,MAAA,KAAQ,KAAA,EAAA;AAClB,MAAA,qCAAe;AAAO,IACxB,CAAA,MAAO;AACL,MAAA,IAAA,MAAK,EAAA,QAAc;AAAmB,QACxC,MAAA,GAAA,MAAA,CAAA,MAAA;AAEA,MAAA,CAAA;AACA,QAAA,MAAA,UAAoB,GAAA,OAAQ,CAAA,GAAA,CAAA,QAAc,KAAA,YAAA,IAAA,OAAA,CAAA,GAAA,CAAA,UAAA,KAAA,MAAA,GAAAC,0BAAA,CAAA,IAAA,GAAAA,0BAAA,CAAA,IAAA;AACxC,QAAA,MAAK,GAAM,IAAAC,+BAAgB,CAAA;AACzB,UAAA,cAAa;AAAwC,UACvD,KAAO,EAAA;AACL,SAAA,CAAA;AAAkD,MACpD;AAAA,IACF;AAEA,IAAA,IAAA,CAAA;AACA,IAAA,IAAA,CAAA,YAAM,GAAA,MAAkB,EAAA,WAAqB;AAC3C,IAAA,IAAA,OAAI,GAAA,MAAA,EAAA,OAAA;AACF,IAAA,IAAA,OAAM,EAAA;AAAwC,MAChD,UAASC,iCAAG,CAAA,OAAA,CAAA;AACV,IAAA;AAAyC,IAAA,IAC3C,CAAA,UAAA,GAAAC,2BAAA,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA,IACF,IAAA,MAAA,EAAA,SAAA,EAAA,OAAA,KAAA,KAAA,IAAA,OAAA,UAAA,KAAA,WAAA,IAAA,UAAA,CAAA,sBAAA,KAAA,IAAA,EAAA;AACA,MAAA,IAAI,CAAA,aAAa,CAAA,CAAA,mPAAW,CAAA,EAAA,CAAA,wKAAA,CAAA,CAAA;AAC1B,IAAA;AAA2C,IAC7C,IAAA,MAAO,EAAA,aAAA,EAAA;AACL,MAAAC,gCAAa,CAAA,MAAA,CAAA,aAAa,CAAA;AAAe,IAC3C;AAMA,IAAA,IAAI,IAAA,CAAA,UAAA,IAAA,OAAA,EAAA;AACJ,MAAA,IAAI,CAAA,gBAAmB,UAAO,CAAA,UAAA,CAAA,OAAA,EAAA;AAC5B,QAAA,cAAS,EAAA,CAAA,gBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,qBAAA;AAAA,OACX,CAAA;AACE,MAAA,IAAI,SAAQ,CAAA,cAAQ,CAAA,IAAA,CAAA,UAAA,CAAA;AAClB,IAAA,CAAA,MAAA;AAAgB,MAClB,IAAA,CAAA,QAAO,GAAA,OAAA;AACL,IAAA;AAEA,IAAA,IAAA,MAAA,EAAA,OAAa,EAAA;AAAmD,MAClE,IAAA,OAAA,GAAA,EAAA;AAAA,MACF,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,OAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,GAAA,EAAA,MAAA,CAAA,KAAA;AACA,QAAA,IAAK,IAAA,CAAA,UAAU,EAAA;AAEf,yBAAoB,IAAA,CAAA,UAAQ,CAAA,UAAA,CAAA,MAAA,EAAA;AAE5B,0BAAsB,EAAA,CAAA,gBAAA,EAAA,gBAAA;AAEtB,WAAI,CAAA;AACF,UAAA,2BAA0B,CAAA,IAAO,CAAA,UAAA,CAAA;AAAA,QACnC,CAAA,MAAA;AAMA,UAAK,OAAA,CAAA,GAAA,CAAa,GAAA,MAAA;AAGlB,QACE;AAIA,MAAA,CAAA,CAAA;AAAc,MAAA,IACZ,CAAA,QAAA,GAAA,OAAA;AAAA,IAAA;AAEA,IAAA,IACF,MAAA,EAAA,cAAA,EAAA;AAAA,MACF,IAAA,CAAA,eAAA,GAAA,MAAA,CAAA,cAAA;AAMA,IAAA;AACE,IAAA,IAAA,MAAA,EAAA,YAAsB;AAAa,MACrC,IAAA,CAAA,WAAA,GAAA,MAAA,CAAA,UAAA;AAKA,MAAA,MAAI,CAAK,wBAAuB,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,GAAA,EAAA,MAAA,CAAA,KAAA;AAC9B,QAAA,MAAK,CAAA,KAAA,CAAA,GAAW,CAAA;AAAoC,QAClD,mBAAiB,EAAA;AAA0F,UAC5G,MAAA,CAAA,cAAA,CAAA,IAAA,CAAA,UAAA,CAAA;AACD,QAAA;AAA4C,QAC9C,MAAO,CAAA,gBAAA,CAAA,IAAA,CAAA;AACL,QAAA,MAAK,CAAA,WAAW,CAAA,IAAA,CAAA,SAAA,EAAA,CAAA;AAAA,MAClB,CAAA,CAAA;AAKA,IAAA;AACE,IAAA,IAAA,iBAA6C,CAAA,IAAA,MAAA,EAAA;AAC7C,MAAA,MAAA,KAAO,GAAA,iCAAsB,CAAA;AAC3B,QAAA,EAAA,EAAI,0CAAiB;AACnB,QAAA,MAAA,EAAA,QAAW;AAAuC,QAAA,QAChD,EAAA,MAAA;AAAmD,QAAA,IACpD,EAAA;AACD;;AAEA;AAAe;;AAInB;AAAgB;AAGlB;AACE,OAAA,CAAA;AAA8B,MAChC,IAAA,CAAA,OAAA,EAAA,cAAA,CAAA,KAAA,CAAA;AAEA,MAAA,WAAY;AACV,IAAA;AAGA,IAAA,IAAA,MAAO,EAAA,GAAA,EAAQ;AACb,MAAA,IAAA,CAAA,IAAO,SAAS,CAAA,GAAA;AAChB,MAAA,MAAI,QAAK,CAAA,IAAA,CAAA,IAAY,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,GAAA,EAAA,KAAA,CAAA,KAAA;AACnB,QAAA,IAAA,IAAA,CAAO,IAAA,GAAA,GAAA,CAAA,EAAA;AAA8B,UACvC,IAAA,IAAA,CAAA,UAAA,EAAA;AAEA,YAAA,qBAAwB,CAAA,UAAI,CAAA,UAAA,CAAA,KAAA,EAAA;AAC5B,cAAA,cAAmB,EAAA,CAAA,gBAAgB,EAAA,gBAAA;AAAA,aACpC,CAAA;AAAA,YACH,IAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,cAAA,CAAA,IAAA,CAAA,UAAA,CAAA;AAEA,UAAI;AACF,QAAA;AAA8B,MAAA,CAAA,CAC5B;AAAI,IAAA;AACJ,IAAA,MACA,MAAA,GAAA,EAAA;AAAA,IAAA,IACA,MAAM,EAAA,MAAA,EAAA;AAAA,MAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,GAAA,EAAA,KAAA,CAAA,KAAA;AAAA,QAAA,IAAA,MAAA,CAAA,GAAA,CAAA,EAAA;AAAA,UAAA,MAAA,KAAA,GAAA,IAAAX,6BAAA,CAAA;AAAA,YAAA,EAAA,EAAA,wCAAA;AAAA,YAAA,MAAA,EAAA,QAAA;AAAA,YAAA,QAAA,EAAA,MAAA;AAAA,YAAA,IAAA,EAAA,CAAA,mBAAA,EAAA,GAAA,CAAA,eAAA,CAAA;AAAA,YAAA,OAAA,EAAA;AAAA,cASP,OAAA,EAAA;AACD;AACA,WAAA,CAAM;AAAA,UACR,IAAA,CAAA,OAAA,EAAA,cAAA,CAAA,KAAA,CAAA;AAEA,gBAAY,KAAK;AACf,QAAA;AACA,QAAA,KAAO,CAAA,gBAAiB,CAAA;AACtB,QAAA,KAAI,CAAA,oBAAkB,CAAA;AACpB,UAAA,YAAS,CAAA,SAAY,EAAA;AAEnB,UAAA,eAAa,CAAA,UAAS;AAA6B,UAAA,OACjD,EAAA,IAAA,CAAA,OAAiB;AAAkC,UAAA,MACpD,EAAA,IAAA,CAAA,MAAA;AACD,UAAA,MAAA;AAA6C,UAC/C,GAAA,EAAA,IAAA,CAAA,IAAA;AAAA,UACF,OAAA,EAAA,IAAA,CAAA;AAAA,SACD,CAAA;AAAA,QACH,MAAA,CAAA,GAAA,CAAA,GAAA,KAAA;AAKA,MAAA,CAAA,CAAA;AACA,IAAA;AACE,IAAA,IAAA,CAAA,OAAO,GAAA;AACL,IAAA,IAAA,CAAA,eAAc,GAAG,EAAA;AACf,IAAA,IAAA,MAAA,EAAM,cAAY,EAAA;AAAY,MAAA,MAC5B,CAAA,OAAI,CAAA,MAAA,CAAA,cAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,GAAA,EAAA,OAAA,CAAA,KAAA;AAAA,QAAA,OACJ,CAAA,gBAAA,CAAA,IAAA,CAAA;AAAA,QAAA,IACA,CAAA,eAAA,CAAA,GAAA,CAAA,GAAA,OAAA;AAAA,MAAA,CAAA,CAAA;AAC+B,IAAA;AACtB,IAAA,MAAA,OACP,GAAA,EAAA;AAAS,IAAA,IAAA,MACX,EAAA,OAAA,EAAA;AAAA,MAAA,MACD,CAAA,OAAA,CAAA,MAAA,CAAA,OAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,GAAA,EAAA,MAAA,CAAA,KAAA;AACD,QAAA,OAAK,CAAA,GAAA,CAAA,GAAA;AACL,MAAA,CAAA,CAAA;AAAM,IAAA;AAER,IAAA,IAAA,CAAA;AAEA,IAAA,IAAA,CAAA,iBAAM,GAAA,EAAA;AAAqB,IAAA,IAAA,MACzB,EAAA,gBAAa,EAAU;AAAA,MAAA,eACZ,MAAK,CAAA,gBAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,GAAA,EAAA,QAAA,CAAA,KAAA;AAAA,QAAA,yBACF,CAAA,IAAA,CAAA;AAAA,QAAA,6BACD,CAAA;AAAA,UACb,MAAA,EAAA,IAAA,CAAA,SAAA,EAAA;AAAA,UACA,SAAK,EAAK,IAAA,CAAA,UAAA;AAAA,UACV,SAAS,IAAA,CAAK,OAAA;AAAA,UACf,MAAA,EAAA,IAAA,CAAA,MAAA;AAED,UAAA;AAAc,UACf,GAAA,EAAA,IAAA,CAAA,IAAA;AAAA,UACH,OAAA,EAAA,IAAA,CAAA;AAEA,SAAK,CAAA;AAKL,QAAA,sBAAwB,CAAA,GAAA,CAAA,GAAA,QAAA;AAExB,QAAI,mBAAQ,GAAA,MAAgB,CAAA,MAAA,CAAA,QAAA,CAAA,KAAA,CAAA,CAAA,MAAA,CAAA,IAAA,IAAA,CAAA,CAAA,IAAA,CAAA,UAAA,IAAA,CAAA,CAAA,IAAA,CAAA,QAAA,CAAA;AAC1B,QAAA,IAAA,oBAAsB,GAAA,CAAA,EAAA;AACpB,UAAA,0BAAyB,IAAI;AAE7B,YAAA,IAAK,CAAA,iBAAmB,CAAA,IAAI,CAAA,UAAA,CAAA,GAAA,IAAA,CAAA,QAAA;AAAA,UAC7B,CAAA,CAAA;AAAA,QACH;AAMA,MAAA,CAAA,CAAA;AACA,IAAA;AACE,IAAA,IAAA,CAAA,UAAO;AACL,IAAA,IAAA,MAAA,EAAQ,SAAO,EAAA;AAAA,MACjB,MAAC,CAAA,OAAA,CAAA,MAAA,CAAA,SAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,GAAA,EAAA,QAAA,CAAA,KAAA;AAAA,QACH,QAAA,CAAA,gBAAA,CAAA,IAAA,CAAA;AACA,QAAA,QAAK,CAAA,oBAAW,CAAA;AAKhB,gCAA0B,EAAA;AAE1B,mBAAY,EAAA,IAAA,CAAA,UAAkB;AAC5B,UAAA,OAAO,EAAA,YAAe;AACpB,UAAA,MAAA;AACA,UAAA,MAAA;AAA8B,UAC5B,GAAA,EAAA,SAAa;AAAU,UACvB,aAAW,CAAA;AAAK,SAAA,CAChB;AAAc,QAAA,eACD,CAAA,GAAA,CAAA,GAAA,QAAA;AAAA,MAAA,CAAA,CAAA;AACb,IAAA;AACU,IAAA,IAAA,cACD,EAAK;AAAA,MAAA,IACf,CAAA,OAAA,GAAA,MAAA,CAAA,MAAA;AAED,IAAA;AAEA,IAAAY,8BAAM,CAAA,aAAgB,sBAAc,kBAAuB,CAAA,IAAA,CAAA,CAAQ;AACnE,IAAA,IAAA,MAAI,EAAA;AACF,MAAA,IAAA,CAAA,0BAAsB,EAAA;AAEpB,MAAA,IAAA,CAAA,sBAAK,EAAkB;AAAwB,IAAA;AAChD,IAAA,IACH,CAAA,SAAA,CAAA;AAAA,MACF;AAAC,KACH,CAAA;AAEA,EAAA;AACA;AACE;AACE;AACA,EAAA,0BAAS,GAAA;AAAqB,IAAA,MAC5B,mBAAa,GAAAC,iCAAU,EAAA;AAAA,IAAA,mBACZ,CAAA,OAAK,CAAA,OAAA,IAAA;AAAA,MAAA,eACP,GAAK,OAAA,CAAA,YAAA,EAAA;AAAA,MAAA,iBACD,CAAA,QAAA,IAAA;AAAA,QAAA,IACb,kBAAA,IAAA,QAAA,IAAA,OAAA,QAAA,CAAA,gBAAA,KAAA,UAAA,EAAA;AAAA,UACA,QAAK,CAAA,gBAAK,CAAA,IAAA,CAAA;AAAA,QAAA;AACI,MAAA,CAAA,CAChB;AAEA,IAAA,CAAA,CAAA;AAAuB,EAAA;AACxB;AAGH;AACE;AAAsB,EAAA,sBACxB,GAAA;AAEA,IAAA,MAAA,mBAAA,GAAAA,iCAAA,EAAA;AAKA,IAAA,mBAAY,CAAA,OAAe,CAAA,OAAA,IAAA;AACzB,MAAA,MAAK,MAAA,GAAA,OAAA,CAAA,SAA2B,EAAA;AAChC,MAAA,MAAK,SAAA,GAAA,OAAA,CAAA,YAAuB,EAAA;AAAA,MAC9B,SAAA,CAAA,OAAA,CAAA,QAAA,IAAA;AAEA,QAAA,IAAK,MAAA,IAAY,QAAQ,IAAA,OAAA,QAAA,CAAA,IAAA,KAAA,UAAA,EAAA;AAAA,UAC3B,IAAA;AAAA,YAAA,QAAA,CAAA,IAAA,CAAA,MAAA,CAAA;AAAA,UAAA,CAAA,CAAA,OAAA,KAAA,EAAA;AAAA,YAAA,IAAA,CAAA,OAAA,EAAA,IAAA,CAAA,0CAAA,EAAA;AAAA,cAKQ,YAAA,EAAA,QAAmC,CAAA,IAAA;AACzC,sCAA4B,KAAA,GAAA,KAAgB,CAAA,OAAA,GAAA,MAAA,CAAA,KAAA;AAC5C,aAAA,CAAA;AACE,UAAA;AACA,QAAA;AAEE,MAAA,CAAA,CAAA;AACE,IAAA,CAAA,CAAA;AAAuC,EAAA;AACzC,EAAA,QACD,CAAA,IAAA,EAAA;AAAA,IACH,MAAC,KAAA,GAAA,IAAA,CAAA,OAAA,GAAA,IAAA,CAAA;AAAA,IACH,IAAA,CAAA,KAAA,EAAA;AAAA,MAAA,MAAA,KAAA,GAAA,IAAAb,6BAAA,CAAA;AAAA,QAAA,EAAA,EAAA,oCAAA;AAAA,QAAA,MAAA,EAAA,QAAA;AAAA,QAKQ,QAAA,EAAA,MAAA;AACN,QAAA,yBAA4B,MAAA,CAAA,IAAA,CAAA,CAAA,UAAgB,CAAA;AAE5C,QAAA,OAAA,EAAA;AACE,UAAA,MAAM,EAAA,GAAS;AACf,UAAA,SAAM,EAAA,WAAoB,CAAA;AAC1B,UAAA,MAAU,QAAQ,CAAA,IAAA,CAAA,IAAA,CAAA,OAAY,IAAA,EAAA,CAAA,CAAA,IAAA,CAAA,IAAA;AAE5B;AACE,OAAA,CAAA;AACE,MAAA,IAAA,CAAA,OAAA,EAAA,cAAoB,CAAA,KAAA,CAAA;AAAA,MAAA;AAEpB,IAAA;AAA+D,IAAA,OAAA,iBAC/C,CAAA;AAAS,EAAA;AACqC,EAAA,YAC7D,CAAA,EAAA,EAAA;AAAA,IAAA,IAAA,KACH,GAAA,MAAA,CAAA,MAAA,CAAA,IAAA,CAAA,OAAA,CAAA,CAAA,IAAA,CAAA,CAAA,IAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA;AAAA,IAAA,IACF,CAAA,KAAA,EAAA;AAAA,MACF,IAAC;AAAA,QACF,KAAA,GAAA,IAAA,CAAA,QAAA,CAAA,EAAA,CAAA;AAAA,MACH,CAAA,CAAA,MAAA,CAAA;AAAA;AAGE,IAAA,IAAA,CAAA,KAAM,EAAA;AACN,MAAA,MAAK,KAAO,GAAA,IAAAA,6BAAA,CAAA;AACV,QAAA,EAAA,EAAM,wCAAwB;AAAA,QAC5B,MAAI,EAAA,QAAA;AAAA,QACJ,QAAA,EAAA,MAAA;AAAA,QACA,IAAA,EAAA,CAAA,cAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,UAAA,CAAA;AAAA,QACA,OAAM,EAAA;AAA+B,UACrC,MAAA,EAAS,GAAA;AAAA,UACP,OAAA,EAAQ,MAAA,CAAA,EAAA,CAAA;AAAA,UACR,MAAA,EAAA,WAAkB,CAAA,IAAI,CAAA,OAAA,IAAA,EAAA,CAAA,CAAA,IAAA,CAAA,IAAA;AAAA;AAC2B,OAAA,CACnD;AAAA,MACF,IAAC,CAAA,OAAA,EAAA,cAAA,CAAA,KAAA,CAAA;AACD,MAAA,MAAK,KAAA;AACL,IAAA;AAAM,IACR,OAAA,KAAA;AACA,EAAA;AAAwB,EAC1B,SAAA,GAAA;AAAA,eAEoB,CAAA,OAAmB;AACrC,EAAA;AAEA,EAAA,SAAK,CAAA,IAAO,EAAA;AACV,IAAA,MAAI,MAAA,GAAA,IAAA,CAAA,QAAA,GAAA,IAAA,CAAA;AACF,IAAA,IAAA,CAAA,MAAA,EAAQ;AAAuB,MACjC,MAAA,KAAQ,GAAA,IAAAA,6BAAA,CAAA;AAAA,QAER,EAAA,EAAA,qCAAA;AAAA,QACF,MAAA,EAAA,QAAA;AAEA,QAAI,QAAQ,EAAA,MAAA;AACV,QAAA,IAAM,EAAA,CAAA,iBAAY,EAAA,MAAY,CAAA,IAAA,CAAA,CAAA,UAAA,CAAA;AAAA,QAC5B,OAAI,EAAA;AAAA,UACJ,MAAA,EAAA,GAAA;AAAA,UACA,UAAA,EAAA,MAAA,CAAA,IAAA,CAAA;AAAA,UACA,OAAM,EAAA,MAAA,CAAA,IAAA,CAAiB,IAAA,CAAA,QAAU,IAAA,EAAA,CAAA,CAAA,IAAA,CAAA,IAAA;AAAA;AACxB,OAAA,CAAA;AACC,MAAA,IACR,CAAA,OAAA,gBAAkB,CAAA,KAAA,CAAA;AAAA,MAAA,MAClB,KAAA;AAAiD,IAAA;AACnD,IAAA,OACD,MAAA;AACD,EAAA;AACA,EAAA,UAAM,GAAA;AAAA,IACR,OAAA,IAAA,CAAA,QAAA;AAEA,EAAA;AAAO,EACT,WAAA,GAAA;AAAA,IAEO,OAAA,IAAY,CAAA,SAAA;AACjB,EAAA;AAAY,EACd,kBAAA,CAAA,EAAA,EAAA;AAAA;AAGE,GAAA,GAAA,EAAA,EAAM;AACN,IAAA,MAAK,QAAQ,GAAA,IAAA,CAAA,iBAAA,GAAA,EAAA,CAAA;AACX,IAAA,IAAA,CAAA,QAAM,EAAA;AAAwB,MAAA,MACxB,KAAA,GAAA,IAAAA,6BAAA,CAAA;AAAA,QACJ,EAAA,EAAA,4CAAA;AAAA,QACA,MAAA,EAAA,QAAA;AAAA,QACA,QAAM,EAAA,MAAA;AAAgC,QACtC,IAAA,EAAA,CAAA,iBAAS,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,UAAA,CAAA;AAAA,QAAA,OACP,EAAA;AAAQ,UACR,MAAA,EAAA,GAAA;AAAuB,UACvB,kBAAgB,CAAA,EAAK,CAAA;AAA8B,UACrD,SAAA,EAAA,MAAA,CAAA,IAAA,CAAA,IAAA,CAAA,iBAAA,IAAA,EAAA,CAAA,CAAA,IAAA,CAAA,IAAA;AAAA;AAEF,OAAA,CAAA;AACA,MAAA,IAAA,CAAA,OAAM,EAAA,cAAA,CAAA,KAAA,CAAA;AAAA,MACR,MAAA,KAAA;AACA,IAAA;AAAO,IACT,IAAA,UAAA,EAAA;AAAA,MAEO,OAAA;AACL,QAAA,IAAO,EAAA,QAAK,CAAA;AAAA,OACd;AAAA,IAEO;AACL,IAAA,OAAO,QAAK;AAAA,EACd;AAAA,EAEO;AAIL,IAAA;AACA,GAAA,GAAA,EAAI,EAAC;AACH,IAAA,MAAA,QAAM,OAAY,CAAA,UAAY,GAAA,EAAA,CAAA;AAAA,IAAA,IAC5B,CAAA,QAAI,EAAA;AAAA,MAAA,MACJ,KAAA,GAAA,IAAAA,6BAAA,CAAA;AAAA,QACA,EAAA,EAAA,qCAAA;AAAA,QACA,MAAM,EAAA,QAAA;AAA8B,QACpC,QAAA,EAAS,MAAA;AAAA,QAAA,IACP,EAAA,CAAA,iBAAQ,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,UAAA,CAAA;AAAA,QAAA,OACR,EAAA;AAAqB,UACrB,MAAA,EAAA,GAAW;AAAmD,UAChE,UAAA,EAAA,MAAA,CAAA,EAAA,CAAA;AAAA,UACD,SAAA,EAAA,MAAA,CAAA,IAAA,CAAA,IAAA,CAAA,UAAA,IAAA,EAAA,CAAA,CAAA,IAAA,CAAA,IAAA;AACD;AACA,OAAA,CAAA;AAAM,MACR,IAAA,CAAA,OAAA,EAAA,cAAA,CAAA,KAAA,CAAA;AAEA,MAAA,MAAI,KAAA;AACF,IAAA;AAA6B,IAC/B,IAAA,UAAA,EAAA;AAEA,MAAA,OAAO;AAAA,QACT,IAAA,EAAA,QAAA,CAAA;AAAA;AAME,IAAA;AACA,IAAA,OAAK,QAAU;AACb,EAAA;AAA8B,EAAA,0BACxB,CAAA,QAAA,EAAA;AAAA,IAAA,QACJ,CAAA,gBAAA,CAAA,IAAA,CAAA;AAAA,IAAA,QACA,CAAA,oBAAA,CAAA;AAAA,MAAA,MACA,EAAM,IAAA,CAAA,SAAA,EAAA;AAA8B,MAAA,OACpC,EAAA,IAAS,CAAA;AAAA,KAAA,CAAA;AACC,IAAA,IAAA,CAAA,wBACa,CAAA,QAAA,CAAA,EAAA,CAAA,GAAA,QAAA;AAAA,EAAA;AACkC,EAAA,qBACzD,CAAA,EAAA,EAAA;AAAA,IAAA,OACD,MAAA,CAAA,MAAA,CAAA,IAAA,CAAA,wBAAA,CAAA,CAAA,IAAA,CAAA,QAAA,IAAA,QAAA,CAAA,EAAA,KAAA,EAAA,CAAA;AACD,EAAA;AACA,EAAA,qBAAM,CAAA,EAAA,EAAA;AAAA,IACR,MAAA,QAAA,GAAA,MAAA,CAAA,MAAA,CAAA,IAAA,CAAA,wBAAA,CAAA,CAAA,IAAA,CAAA,CAAA,IAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA;AAEA,IAAA,IAAI,CAAA,QAAA,EAAA;AACF,MAAA,MAAA,IAASA,6BAAM,CAAA;AAAc,QAC/B,EAAA,EAAA,8CAAA;AAEA,QAAA,MAAO,EAAA,QAAA;AAAA,QACT,QAAA,EAAA,QAAA;AAAA,gCAE2B,EAAA,MAAoB,CAAA,EAAA,CAAA,CAAA,UAAA,CAAA;AAC7C,QAAA;AACA,UAAA,MAAS,EAAA,GAAA;AAAqB,UAC5B,UAAa,EAAA,MAAA,CAAU,EAAA;AAAA;AACT,OACf,CAAA;AACD,IAAA;AAA6C,IAC/C,OAAA,QAAA;AAAA,EAEA;AACE,EAAA,eAAO,CAAO;AAAyE,IACzF,IAAA,QAAA,GAAA,MAAA,CAAA,MAAA,CAAA,IAAA,CAAA,UAAA,CAAA,CAAA,IAAA,CAAA,CAAA,IAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA;AAAA;AAGE,MAAA,IAAM;AACN,QAAI,QAAC,GAAU,IAAA,CAAA,WAAA,CAAA,EAAA,CAAA;AACb,MAAA,CAAA,CAAA;AAAsB,IAAA;AAChB,IAAA,IACJ,CAAA,QAAA,EAAA;AAAA,MAAA,MACA,KAAA,GAAA,IAAAA,6BAAA,CAAA;AAAA,QACA,EAAA,EAAA,qCAAoC;AAAA,QACpC,MAAA,EAAA,QAAS;AAAA,QAAA,QACP,EAAQ,MAAA;AAAA,QAAA,IACR,EAAA,CAAA,iBAAqB,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,UAAA,CAAA;AAAA,QACvB,OAAA,EAAA;AAAA,UACD,MAAA,EAAA,GAAA;AAAA,UACH,UAAA,EAAA,MAAA,CAAA,EAAA,CAAA;AAEA,UAAA,SAAO,EAAA,MAAA,CAAA,IAAA,CAAA,IAAA,CAAA,UAAA,IAAA,EAAA,CAAA,CAAA,IAAA,CAAA,IAAA;AAAA;AACT;AAGE,MAAA,IAAI,CAAA,OAAA,EAAW,cAAc,CAAA,KAAK,CAAA;AAElC,MAAA,MAAK,KAAA;AACH,IAAA;AACE,IAAA,OAAA,QAAW;AAA0B,EAAA;AAC/B,EAAA,mBAER,CAAA,KAAA,GAAA,EAAA,EAAA;AAAA,IACF,IAAA,KAAA,CAAA,UAAA,EAAA;AAEA,MAAA,OAAK,MAAU,CAAA,OAAA,CAAA,IAAA,CAAA,iBAAA,CAAA,CAAA,MAAA,CAAA,CAAA,GAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,KAAA;AACb,QAAA,OAAM;AAAwB,UAC5B,GAAI,GAAA;AAAA,UACJ,CAAA,CAAA,GAAA;AAAA,YACA,IAAA,EAAA,CAAA,CAAA;AAAA;AACoC,SACpC;AAAS,MAAA,CAAA,EAAA,EACP,CAAA;AAAQ,IAAA;AACa,IAAA,OACrB,IAAA,CAAA,iBAAuB;AAAgC,EAAA;AACzD,EAAA,UACD,GAAA;AACD,IAAA,OAAK,IAAA,CAAA;AACL,EAAA;AAAM,EAAA,SACR,CAAA,GAAA,EAAA;AAEA,IAAA,MAAA,MAAO,GAAA,IAAA,CAAA,QAAA,GAAA,GAAA,CAAA;AAAA,IACT,IAAA,CAAA,MAAA,EAAA;AAAA,MAEO,MAAA,KAAA,GAAA,IAAoBA,6BAAsE,CAAA;AAC/F,QAAI,iCAAkB;AACpB,QAAA,MAAO,EAAA,QAAO;AACZ,QAAA,QAAO,EAAA,MAAA;AAAA,QAAA,IACL,EAAG,CAAA,YAAA,EAAA,MAAA,CAAA,GAAA,CAAA,CAAA,UAAA;AAAA,OAAA,CAAA;AACiB,MAAA,IACtB,CAAA,OAAA,EAAA,cAAA,CAAA,KAAA,CAAA;AAAA,MACF,MAAK,KAAA;AAAA,IACP;AACA,IAAA,OAAO,MAAK;AAAA,EACd;AAAA,EAEO,eAAa,CAAA,IAAA,EAAA;AAClB,IAAA,KAAA,MAAO,CAAK,IAAA,EAAA,KAAA,CAAA,IAAA,MAAA,CAAA,OAAA,CAAA,IAAA,CAAA,QAAA,IAAA,EAAA,CAAA,EAAA;AAAA,MACd,IAAA,KAAA,CAAA,IAAA,KAAA,IAAA,EAAA;AAAA,eAEoD,KAAuC;AACzF,MAAA;AACA,IAAA;AACE,IAAA,MAAA,KAAM,GAAA,iCAAY,CAAA;AAAY,MAAA,EAC5B,EAAA,qCAAI;AAAA,MAAA,MACJ,EAAA,QAAA;AAAA,MAAA,QACA,EAAA,MAAA;AAAA,MAAA,IACA,EAAA,CAAA,iBAAqB,EAAA,MAAO,CAAG,IAAC,CAAA,CAAA,UAAA;AAAA,KAAA,CAClC;AACA,IAAA,IAAA,CAAA,OAAK,EAAA,oBAAwB,CAAA;AAC7B,IAAA,MAAA,KAAM;AAAA,EAAA;AAER,EAAA,YAAO,CAAA,KAAA,GAAA,EAAA,EAAA;AAAA,IACT,IAAA,KAAA,CAAA,UAAA,EAAA;AAAA,mBAEuB,CAAA,OAAgD,CAAA,IAAA,CAAA,UAAA,CAAA,CAAA,MAAA,CAAA,CAAA,GAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,KAAA;AACrE,QAAA,OAAW;AACT,UAAI,GAAA,GAAM;AACR,UAAA,CAAA,CAAA,GAAO;AAAA,YACT,IAAA,EAAA,CAAA,CAAA;AAAA;AAGF,SAAA;AAA8B,MAC5B,CAAA,EAAA,EAAI,CAAA;AAAA,IAAA;AACJ,IAAA,OACA,IAAA,CAAA,UAAA;AAAA,EAAA;AACsC,EAAA,UACvC,CAAA,OAAA,EAAA;AACD,IAAA,IAAA,CAAK,QAAA,oCAAwB,CAAA,OAAK,CAAA;AAClC,EAAA;AAAM,EACR,SAAA,CAAA;AAAA,IAEO;AACL,GAAA,EAAA;AACE,IAAA,IAAA,CAAA,OAAO,GAAA,MAAO;AACZ,IAAA,IAAA,IAAA,CAAA,OAAO,EAAA;AAAA,MAAA,MACL,CAAG,IAAA,CAAA,IAAA,CAAA,OAAA,CAAA,CAAA,OAAA,CAAA,GAAA,IAAA;AAAA,QAAA,IACD,CAAA,OAAK,GAAM,GAAE,CAAA,EAAA,WAAK,CAAA,IAAA,CAAA,OAAA,CAAA;AAAA,MAAA,CAAA,CACtB;AAAA,IAAA;AACG,IACP,IAAA,IAAA,CAAA,OAAA,EAAA;AACA,MAAA,IAAA,CAAO,OAAK,CAAA,WAAA,CAAA,IAAA,CAAA,OAAA,CAAA;AAAA,IACd;AAAA,aAEkB,SAAwB,EAAA;AACxC,MAAA,IAAK,CAAA,SAAW,iBAAgB,CAAA,OAAO,CAAA;AAAA,IACzC;AAAA,IAEO,IAAA,IAAU,CAAA,IAAE,EAAA;AACjB,MAAA,MAAK,CAAA,IAAA,CAAA,IAAU,CAAA,IAAA,CAAA,CAAA,OAAA,CAAA,GAAA,IAAA;AAEf,QAAI,KAAK,IAAA,GAAA,GAAS,CAAA,EAAA,WAAA,CAAA,IAAA,CAAA,OAAA,CAAA;AAChB,MAAA,CAAA,CAAA;AACE,IAAA;AAA6C,IAAA,IAC9C,IAAA,CAAA,QAAA,EAAA;AAAA,MACH,IAAA,CAAA,QAAA,CAAA,WAAA,CAAA,IAAA,CAAA,OAAA,CAAA;AAEA,IAAA;AACE,IAAA,IAAA,IAAK,CAAA,QAAQ,EAAA;AAAwB,MACvC,MAAA,CAAA,IAAA,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA,OAAA,CAAA,GAAA,IAAA;AAEA,QAAI,KAAK,QAAA,GAAW,GAAA,CAAA,EAAA,WAAA,CAAA,IAAA,CAAA,OAAA,CAAA;AAClB,MAAA,CAAA,CAAA;AAAuC,IACzC;AAEA,IAAA,IAAI,KAAK,WAAM,EAAA;AACb,MAAA,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,oBAAc,CAAA,GAAO,IAAA;AACpC,QAAA,IAAA,CAAK,WAAU,GAAG,GAAA,CAAA,EAAA,WAAiB,CAAA,IAAA,CAAO,OAAA,CAAA;AAAA,MAC5C,CAAC,CAAA;AAAA,IACH;AAEA,IAAA,yBAAmB,GAAAa,iCAAA,EAAA;AACjB,IAAA,mBAAc,CAAA,OAAA,CAAY,QAAK,IAAO;AAAA,MACxC,QAAA,CAAA,WAAA,CAAA,IAAA,CAAA,OAAA,CAAA;AAEA,IAAA,CAAA,CAAA;AACE,EAAA;AACE,EAAA,YAAK,CAAA,SAAW,EAAA;AAA8B,IAAA,IAC/C,CAAA,UAAA,GAAAH,2BAAA,CAAA,IAAA,CAAA,SAAA,CAAA;AAAA,IACH,IAAA,IAAA,CAAA,OAAA,EAAA;AAEA,MAAA,OAAS,IAAA,CAAA,IAAA,CAAA,OAAa,CAAA,CAAA,OAAA,CAAA,GAAA,IAAA;AACpB,QAAA,IAAA,IAAO,CAAA,UAAU,EAAA;AACf,UAAA,IAAK,CAAA,OAAA,GAAA,GAAc,CAAA,EAAG,cAAe,KAAK,CAAA,UAAO,CAAA;AAAA,QAClD;AAAA,MACH,CAAA,CAAA;AAGA,IAAA;AACA,IAAA,IAAA,IAAA,CAAA,OAAA,EAAA;AACE,MAAA,IAAA,CAAA,OAAS,GAAA,IAAA,CAAA,UAAiB,CAAA,UAAO,CAAA,IAAA,CAAA,OAAA,EAAA;AAAA,QAClC,cAAA,EAAA,CAAA,gBAAA,EAAA,gBAAA;AAAA,OACH,CAAA;AAAA,kBAEoB,CAAA,cAAuB,CAAA,IAAA,CAAA,UAAA,CAAA;AACzC,IAAA;AAEA,IAAA,IAAI,KAAK,SAAS,EAAA;AAChB,MAAA,IAAA,CAAA,SAAY,GAAK,IAAA,CAAA,qBAAwB,CAAA,IAAA,CAAA,SAAA,EAAA;AACvC,QAAA,cAAS,EAAA,CAAA,gBAAY,EAAA,gBAAA;AACnB,OAAA,CAAA;AAAmD,MAAA,IACrD,CAAA,SAAA,CAAA,cAAA,CAAA,IAAA,CAAA,UAAA,CAAA;AAAA,IAAA;AACD,IACH,IAAA,IAAA,CAAA,IAAA,EAAA;AAEA,MAAA,OAAS,GAAA,EAAA;AACP,MAAA,MAAK,CAAA,OAAA,CAAU,IAAA,CAAK,IAAA,CAAA,CAAA,OAAW,CAAA,CAAA,CAAA,GAAA,EAAA,MAAgB,KAAA;AAAS,QACtD,IAAA,IAAA,CAAA,UAAiB,EAAA;AAAkC,UACpD,GAAA,CAAA,GAAA,CAAA,GAAA,IAAA,CAAA,UAAA,CAAA,UAAA,CAAA,KAAA,EAAA;AACD,YAAK,cAAQ,EAAA,CAAA,gBAAoB,EAAA,gBAAU;AAAA,WAC7C,CAAA;AAEA,aAAS,CAAA,GAAA,CAAA,CAAA,cAAW,CAAA,IAAA,CAAA,UAAA,CAAA;AAClB,QAAA;AAA4D,MAAA,CAAA,CAC1D;AAAmD,MACrD,IAAC,CAAA,IAAA,GAAA,GAAA;AACD,IAAA;AAA6C,IAC/C,IAAA,IAAA,CAAA,QAAA,EAAA;AAEA,MAAA,aAAe,GAAA,IAAA,CAAA,UAAA,CAAA,UAAA,CAAA,IAAA,CAAA,QAAA,EAAA;AACb,QAAA,cAAW,EAAA,CAAA,gBAAA,EAAA,gBAAA;AACX,OAAA,CAAA;AACE,MAAA,IAAA,CAAA,QAAS,CAAA,cAAY,CAAA,IAAA,CAAA,UAAA,CAAA;AACnB,IAAA;AAA6C,IAAA,IAAA,IAC3C,CAAA,QAAA,EAAA;AAAmD,MAAA,IACrD,OAAC,GAAA,EAAA;AACD,MAAA,MAAA,CAAA,OAAS,CAAA,IAAA,CAAA,QAAe,CAAA,CAAA,OAAK,CAAA,CAAA,CAAA,GAAU,EAAA,MAAA,CAAA,KAAA;AAAA,QACzC,IAAA,IAAA,CAAA,UAAA,EAAA;AAAA,UACD,OAAA,CAAA,GAAA,CAAA,GAAA,IAAA,CAAA,UAAA,CAAA,UAAA,CAAA,MAAA,EAAA;AACD,YAAK,cAAO,EAAA,CAAA,gBAAA,EAAA,gBAAA;AAAA,WACd,CAAA;AAEA,iBAAS,CAAA,GAAA,CAAA,CAAU,cAAA,CAAA,IAAA,CAAA,UAAA,CAAA;AACjB,QAAA;AAA0D,MAAA,CAAA,CACxD;AAAmD,MACrD,IAAC,CAAA,QAAA,GAAA,OAAA;AACD,IAAA;AAA4C,EAAA;AAG9C,EAAA,MAAI;AACF,IAAA,gBAAc;AACd,EAAA;AACE,EAAA,SAAA;AACE,IAAA,OAAA,IAAA,CAAA,OAAW;AAAuC,EAAA;AACG,EAAA,YACpD,GAAA;AACD,IAAA,OAAA,IAAA,CAAA,UAAa;AAA8B,EAAA;AAC7C,EAAA,SACD,GAAA;AACD,IAAA,OAAK,IAAA,CAAA,OAAW;AAAA,EAAA;AAClB,EACF,UAAA,GAAA;AAAA,IAEO,OAAS,IAAA,CAAA,QAAA;AACd,EAAA;AAAY,EACd,mBAAA,GAAA;AAAA,IAEO,OAAA,IAAY,CAAA,iBAAA;AACjB,EAAA;AAAY,EACd,cAAA,GAAA;AAAA,IAEO,OAAA,IAAA,CAAA,YAAe;AACpB,EAAA;AAAY,EACd,mBAAA,CAAA,gBAAA,EAAA;AAAA,IAEO,IAAA,OAAY,gBAAA,KAAA,UAAA,EAAA;AACjB,MAAA,IAAA,CAAO,iBAAK,GAAA,CAAA;AAAA,QACd,OAAA,EAAA,gBAAA;AAAA,QAEO,IAAA,EAAA;AACL,OAAA,CAAA;AAAY,MACd;AAAA,IAEO;AACL,IAAA,IAAA,CAAA,KAAO,CAAA,OAAK,CAAA,gBAAA,CAAA,EAAA;AAAA,MACd,MAAA,KAAA,GAAA,IAAAV,6BAAA,CAAA;AAAA,QAEO,EAAA,EAAA,2CAAiB;AACtB,QAAA,MAAO,EAAK,QAAA;AAAA,QACd,QAAA,EAAA,MAAA;AAAA,0EAEwE,EAAA,OAAA,gBAAA,CAAA;AACtE,OAAA,CAAI;AACF,MAAA,IAAA,CAAK,OAAA,EAAA,cAAoB,CAAA,KAAA,CAAA;AAAA,MAAA,MACvB,KAAA;AAAA,IAAA;AACW,IAAA,IAAA,CAAA,iBACH,GAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,IAAA;AAAA,MAAA,IACR,OAAA,CAAA,KAAA,UAAA,EAAA;AAAA,QACF,OAAA;AACA,UAAA,OAAA,EAAA,CAAA;AAAA,UACF,IAAA,EAAA;AAEA,SAAK;AACH,MAAA;AAA8B,MAAA,OACxB;AAAA,QACJ,OAAA,EAAA,CAAA,CAAA,OAAA;AAAA,QACA,IAAA,EAAA,CAAA,CAAA,IAAA,IAAA;AAAA,OAAA;AAC2F,IAAA,CAAA,CAC7F;AACA,EAAA;AACA,EAAA,iBAAM,GAAA;AAAA,IACR,OAAA,MAAA,CAAA,MAAA,CAAA,IAAA,CAAA,eAAA,IAAA,EAAA,CAAA;AAEA,EAAA;AACE,EAAA,SAAI,GAAA;AACF,IAAA,OAAA,IAAO,CAAA,OAAA;AAAA,EAAA;AACI,EAAA,gBACH,GAAA;AAAA,IAAA,OACR,IAAA,CAAA,QAAA;AAAA,EAAA;AAEF,EAAA,gBAAO,CAAA,SAAA,EAAA;AAAA,IAAA,cACI,GAAE,IAAA,CAAA,iBAAA,EAAA;AAAA,IAAA,OACX,QAAQ,CAAA,IAAQ,CAAA,OAAA,IAAA,OAAA,CAAA,EAAA,KAAA,SAAA,CAAA;AAAA,EAAA;AAClB,EAAA,MACD,cAAA,CAAA;AAAA,IACH,KAAA;AAAA,IAEO,WAAA;AACL,IAAA,QAAO;AAAwC,IACjD,MAAA;AAAA,IAEO,QAAA;AACL,IAAA,OAAO;AAAK,IACd,IAAA;AAAA,IAEO;AACL,GAAA,EAAA;AAAY,IACd,IAAA,CAAA,WAAA,EAAA;AAAA,oBAEwB,IAAAA,6BAAgD,CAAA;AACtE,QAAA,EAAM,EAAA,6CAAkC;AACxC,QAAA,MAAO,EAAA,QAAS;AAAwC,QAC1D,QAAA,EAAA,MAAA;AAAA,QAEa,IAAA,EAAA,0BAAe;AAAA,QAC1B,OAAA,EAAA;AAAA,UACA,KAAA;AAAA,UACA;AAAA;AACA,OACA,CAAA;AAAA,MACA,IAAA,CAAA,OAAA,EAAA,cAAA,CAAA,KAAA,CAAA;AAAA,MACA,MAAA,KAAA;AAAA,IACA;AAAA,IACF,IASG,CAAA,IAAA,CAAA,OAAA,EAAA,cAAA,EAAA;AACD,MAAA,MAAK,KAAA,GAAA,IAAaA,6BAAA,CAAA;AAChB,QAAA,EAAA,EAAM,iDAAwB;AAAA,QAC5B,MAAI,EAAA,QAAA;AAAA,QACJ,QAAA,EAAA,QAAA;AAAA,QACA,IAAA,EAAA,uEAAA;AAAA,QACA,OAAM,EAAA;AAAA,UACN,KAAA;AAAS,UACP;AAAA;AACA,OAAA,CACF;AAAA,MACF,IAAC,CAAA,OAAA,EAAA,cAAA,CAAA,KAAA,CAAA;AACD,MAAA,MAAK,KAAA;AACL,IAAA;AAAM,IACR,OAAA,MAAA,IAAA,CAAA,OAAA,CAAA,cAAA,CAAA;AAEA,MAAA,KAAK;AACH,MAAA,WAAM;AAAwB,MAAA,QACxB;AAAA,MAAA,MACJ;AAAA,MAAA,QACA;AAAA,MAAA,OACA;AAAM,MAAA,IACN;AAAS,MAAA;AACP,KAAA,CAAA;AACA,EAAA;AACF,EAAA,MACD,OAAA,CAAA,WAAA,EAAA,MAAA,EAAA;AACD,IAAA,IAAA,CAAA,WAAc;AACd,MAAA,MAAM,KAAA,GAAA,IAAAA,6BAAA,CAAA;AAAA,QACR,EAAA,EAAA,mCAAA;AAEA,QAAA,MAAO,EAAA,QAAW;AAAuB,QACvC,QAAA,EAAA,MAAA;AAAA,QACA,IAAA,EAAA,0BAAA;AAAA,QACA,OAAA,EAAA;AAAA,UACA;AAAA;AACA,OACA,CAAA;AAAA,MACA,IAAA,CAAA,OAAA,EAAA,cAAA,CAAA,KAAA,CAAA;AAAA,MACA,MAAA,KAAA;AAAA,IACF;AAAC,IACH,IAAA,CAAA,IAAA,CAAA,OAAA,EAAA;AAAA,MAEA,MAAa,KACX,GAAA,IAAAA,6BACA,CAAA;AASA,QAAI,EAAC,EAAA,uCAAa;AAChB,QAAA,MAAM,EAAA,QAAY;AAAY,QAC5B,QAAI,EAAA,QAAA;AAAA,QACJ,IAAA,EAAA,mBAAA;AAAA,QACA,OAAA,EAAA;AAAA,UACA;AAAM;AACG,OAAA,CAAA;AACP,MAAA,MACF,KAAA;AAAA,IAAA;AAEF,IAAA,OAAK,MAAA,oBAAwB,CAAA,WAAK,EAAA,MAAA,CAAA;AAClC,EAAA;AAAM;AAGR;AACE;AAA8B;AACxB,EAAA,aACJ,GAAA;AAAA,IAAA,OACA,IAAA,CAAA,WAAA;AAAA,EAAA;AACM;AACG;AACP;AACF;AAEF;AAAM;AAGR;AAAqD;AACvD;AAAA,EAAA,YAAA,CAAA,QAAA,EAAA,OAAA,EAAA;AAAA,IAAA,IAAA,CAAA,IAAA,CAAA,WAAA,EAAA;AAAA,MAAA,OAAA,MAAA;AAAA,IAMO;AACL,IAAA,MAAA,oBAAY,GAAA,MAAA,CAAA,MAAA,CAAA,IAAA,CAAA,WAAA,IAAA,EAAA,CAAA;AAAA,IACd,MAAA,wBAAA,GAAA,oBAAA,CAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,EAAA,KAAA,QAAA,CAAA;AAAA,IAAA,IAAA,wBAAA,CAAA,MAAA,KAAA,CAAA,EAAA;AAAA,MAAA,IAAA,CAAA,OAAA,EAAA,KAAA,CAAA,CAAA,sCAAA,EAAA,QAAA,CAAA,CAAA,CAAA;AAAA,MAAA,OAAA,MAAA;AAAA,IAAA;AAAA,IAAA,IAAA,OAAA,EAAA;AAAA,MAAA,MAAA,qBAAA,GAAA,wBAAA,CAAA,IAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,KAAA,OAAA,CAAA;AAAA,MAAA,IAAA,CAAA,qBAAA,EAAA;AAAA,QAAA,IAAA,CAAA,OAAA,EAAA,KAAA,CAAA,CAAA,4BAAA,EAAA,QAAA,CAAA,0BAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA;AAAA,MAAA;AAAA,MAWO,OAAA,qBAA4E;AACjF,IAAA,CAAA;AACE,MAAA,IAAA,wBAAO,CAAA,MAAA,KAAA,CAAA,EAAA;AAAA,QACT,OAAA,wBAAA,CAAA,CAAA,CAAA;AAEA,MAAA;AAEA,MAAA,+BAAiC,CAAA,EAAA,CAAA,KAAA;AAEjC,QAAI,MAAA,QAAA,GAAA,CAAA,CAAA,sBAAuC,CAAA,CAAA,WAAA,KAAA,QAAA,GAAA,IAAA,IAAA,CAAA,CAAA,CAAA,WAAA,CAAA,CAAA,OAAA,EAAA,GAAA,GAAA;AACzC,QAAA,MAAK,QAAS,GAAA,CAAM,CAAA,WAAA,IAAA,OAAA,CAAA,CAAA,WAAA,KAAyC,QAAQ,GAAE,IAAA,IAAA,CAAA,CAAA,CAAA,WAAA,CAAA,CAAA,OAAA,EAAA,GAAA,GAAA;AACvE,QAAA,IAAA,KAAO,CAAA,QAAA,CAAA,IAAA,KAAA,CAAA,QAAA,CAAA,EAAA,OAAA,CAAA;AAAA,QACT,IAAA,KAAA,CAAA,QAAA,CAAA,EAAA,OAAA,CAAA;AAEA,QAAI,IAAA,KAAS,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA;AACX,QAAA;AACA,MAAA,CAAA,CAAA;AACE,MAAA,IAAA,wBAAoB,CAAA,MAAA,GAAA,CAAA,EAAA;AAA+E,QACrG,MAAA,YAAA,GAAA,wBAAA,CAAA,CAAA,CAAA;AACA,QAAA,IAAA,YAAO,IAAA,YAAA,CAAA,WAAA,IAAA,OAAA,YAAA,CAAA,WAAA,KAAA,QAAA,IAAA,CAAA,KAAA,CAAA,IAAA,IAAA,CAAA,YAAA,CAAA,WAAA,CAAA,CAAA,OAAA,EAAA,CAAA,EAAA;AAAA,UACT,OAAO,YAAA;AAEL,QAAA;AACE,MAAA;AAAiC,MACnC,IAAA,CAAA,OAAA,EAAA,IAAA,CAAA,CAAA,sDAAA,EAAA,QAAA,CAAA,8EAAA,CAAA,CAAA;AAEA,MAAA,OAAA,MAAA;AAEE,IAAA;AACA,EAAA;AAEA,EAAA,MAAA,gBAAU,CAAA,KAAQ,EAAK,QAAM,EAAA;AAC7B,IAAA,MAAA,IAAI,CAAA,OAAM,CAAA,SAAW,CAAA,KAAO,EAAA,QAAA,CAAA;AAC5B,EAAA;AAEA,EAAA,MAAA,mBAAkB,CAAA,KAAA,EAAA,QAAA,EAAA;AAAA,IAAA,MACnB,IAAA,CAAA,OAAA,CAAA,WAAA,CAAA,KAAA,EAAA,QAAA,CAAA;AAGD,EAAA;AACE,EAAA,MAAA,gBAAM,GAAA;AACN,IAAA,KAAA,mBAEE,CAAA,OAAA,EAAA;AAIA,MAAA,IAAA,CAAA,IAAA,CAAA,OAAO,CAAA,KAAA,CAAA,EAAA;AAAA,QACT;AAAA,MACF;AACA,MAAA,MAAK,SAAS,GAAA,KAAA,CAAA,OAAA,CAAA,IAAA,CAAA,OAAA,CAAA,KAAA,CAAA,CAAA,GAAA,IAAA,CAAA,OAAA,CAAA,KAAA,CAAA,GAAA,CAAA,IAAA,CAAA,OAAA,CAAA,KAAA,CAAA,CAAA;AAAA,MAAA;AACqD,QACnE,MAAA,IAAA,CAAA,OAAA,CAAA,SAAA,CAAA,KAAA,EAAA,QAAA,CAAA;AACA,MAAA;AAAO,IACT;AAAA,EACF;AAAA,EAEA,MAAa,eAAA,GAAiB;AAC5B,IAAA,KAAA,MAAW,KAAA,IAAQ,IAAA,CAAA,OAAU,EAAA;AAAe,MAC9C,IAAA,CAAA,IAAA,CAAA,OAAA,CAAA,KAAA,CAAA,EAAA;AAAA,QAEa;AACX,MAAA;AAA8C,MAChD,MAAA,SAAA,GAAA,KAAA,CAAA,OAAA,CAAA,IAAA,CAAA,OAAA,CAAA,KAAA,CAAA,CAAA,GAAA,IAAA,CAAA,OAAA,CAAA,KAAA,CAAA,GAAA,CAAA,IAAA,CAAA,OAAA,CAAA,KAAA,CAAA,CAAA;AAAA,WAEa,MAAA,QAAA,IAAmB,SAAA,EAAA;AAC9B,QAAA,MAAA,IAAW,CAAA,mBAAuB,CAAA,KAAA,EAAA,QAAA,CAAA;AAChC,MAAA;AACE,IAAA;AAAA,IAAA,MACF,IAAA,CAAA,OAAA,CAAA,KAAA,EAAA;AAEA,EAAA;AACA;AACE;AAA4C;AAC9C,EAAA,MACF,QAAA,GAAA;AAAA,IACF,MAAAc,2CAAA,EAAA;AAAA,UAEa,IAAA,CAAA,eAAkB,EAAA;AAC7B,IAAA,IAAA,CAAA,OAAW,EAAA,IAAA,CAAA,2BAAuB,CAAA;AAChC,EAAA;AACE;AAAA,EAAA,IACF,WAAA,GAAA;AAEA,IAAA,OAAA,iBAAkB;AAClB,EAAA;AACE;AAA8CX,cAChD,gBAAA,CAAA,CAAA,IAAA;AAAA,EAAA,KACF,GAAAY,kCAAA,CAAA,IAAA,CAAA;AAEA,EAAAZ,cAAA,GAAMa,mCAAa,CAAM,KAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAA,EAAAb,cAAA,CAAA;AAAA,EAC3Bc,mCAAA,CAAA,KAAA,EAAA,CAAA,EAAAd,cAAA,CAAA;AAAA,EAAA,OAAAA,cAAA;AAAA,CAAA,EAAA","file":"chunk-BCWRUNMS.cjs","sourcesContent":["import { randomUUID } from 'node:crypto';\nimport type { Agent } from '../agent';\nimport { getAllAITracing, setupAITracing, shutdownAITracingRegistry } from '../ai-tracing';\nimport type { ObservabilityRegistryConfig } from '../ai-tracing';\nimport type { BundlerConfig } from '../bundler/types';\nimport { InMemoryServerCache } from '../cache';\nimport type { MastraServerCache } from '../cache';\nimport type { MastraDeployer } from '../deployer';\nimport { MastraError, ErrorDomain, ErrorCategory } from '../error';\nimport { EventEmitterPubSub } from '../events/event-emitter';\nimport type { PubSub } from '../events/pubsub';\nimport type { Event } from '../events/types';\nimport { AvailableHooks, registerHook } from '../hooks';\nimport { LogLevel, noopLogger, ConsoleLogger } from '../logger';\nimport type { IMastraLogger } from '../logger';\nimport type { MCPServerBase } from '../mcp';\nimport type { MastraMemory } from '../memory/memory';\nimport type { NewAgentNetwork } from '../network/vNext';\nimport type { MastraScorer } from '../scores';\nimport type { Middleware, ServerConfig } from '../server/types';\nimport type { MastraStorage } from '../storage';\nimport { augmentWithInit } from '../storage/storageWithInit';\nimport { InstrumentClass, Telemetry } from '../telemetry';\nimport type { OtelConfig } from '../telemetry';\nimport type { MastraTTS } from '../tts';\nimport type { MastraIdGenerator } from '../types';\nimport type { MastraVector } from '../vector';\nimport type { Workflow } from '../workflows';\nimport { WorkflowEventProcessor } from '../workflows/evented/workflow-event-processor';\nimport type { LegacyWorkflow } from '../workflows/legacy';\nimport { createOnScorerHook } from './hooks';\n\nexport interface Config<\n TAgents extends Record<string, Agent<any>> = Record<string, Agent<any>>,\n TLegacyWorkflows extends Record<string, LegacyWorkflow> = Record<string, LegacyWorkflow>,\n TWorkflows extends Record<string, Workflow<any, any, any, any, any, any>> = Record<\n string,\n Workflow<any, any, any, any, any, any>\n >,\n TVectors extends Record<string, MastraVector> = Record<string, MastraVector>,\n TTTS extends Record<string, MastraTTS> = Record<string, MastraTTS>,\n TLogger extends IMastraLogger = IMastraLogger,\n TVNextNetworks extends Record<string, NewAgentNetwork> = Record<string, NewAgentNetwork>,\n TMCPServers extends Record<string, MCPServerBase> = Record<string, MCPServerBase>,\n TScorers extends Record<string, MastraScorer<any, any, any, any>> = Record<string, MastraScorer<any, any, any, any>>,\n> {\n agents?: TAgents;\n vnext_networks?: TVNextNetworks;\n storage?: MastraStorage;\n vectors?: TVectors;\n logger?: TLogger | false;\n legacy_workflows?: TLegacyWorkflows;\n workflows?: TWorkflows;\n tts?: TTTS;\n telemetry?: OtelConfig;\n observability?: ObservabilityRegistryConfig;\n idGenerator?: MastraIdGenerator;\n deployer?: MastraDeployer;\n server?: ServerConfig;\n mcpServers?: TMCPServers;\n bundler?: BundlerConfig;\n pubsub?: PubSub;\n scorers?: TScorers;\n\n /**\n * Server middleware functions to be applied to API routes\n * Each middleware can specify a path pattern (defaults to '/api/*')\n * @deprecated use server.middleware instead\n */\n serverMiddleware?: Array<{\n handler: (c: any, next: () => Promise<void>) => Promise<Response | void>;\n path?: string;\n }>;\n\n // @deprecated add memory to your Agent directly instead\n memory?: never;\n\n events?: {\n [topic: string]: (\n event: Event,\n cb?: () => Promise<void>,\n ) => Promise<void> | ((event: Event, cb?: () => Promise<void>) => Promise<void>)[];\n };\n}\n\n@InstrumentClass({\n prefix: 'mastra',\n excludeMethods: ['getLogger', 'getTelemetry'],\n})\nexport class Mastra<\n TAgents extends Record<string, Agent<any>> = Record<string, Agent<any>>,\n TLegacyWorkflows extends Record<string, LegacyWorkflow> = Record<string, LegacyWorkflow>,\n TWorkflows extends Record<string, Workflow<any, any, any, any, any, any>> = Record<\n string,\n Workflow<any, any, any, any, any, any>\n >,\n TVectors extends Record<string, MastraVector> = Record<string, MastraVector>,\n TTTS extends Record<string, MastraTTS> = Record<string, MastraTTS>,\n TLogger extends IMastraLogger = IMastraLogger,\n TVNextNetworks extends Record<string, NewAgentNetwork> = Record<string, NewAgentNetwork>,\n TMCPServers extends Record<string, MCPServerBase> = Record<string, MCPServerBase>,\n TScorers extends Record<string, MastraScorer<any, any, any, any>> = Record<string, MastraScorer<any, any, any, any>>,\n> {\n #vectors?: TVectors;\n #agents: TAgents;\n #logger: TLogger;\n #legacy_workflows: TLegacyWorkflows;\n #workflows: TWorkflows;\n #tts?: TTTS;\n #deployer?: MastraDeployer;\n #serverMiddleware: Array<{\n handler: (c: any, next: () => Promise<void>) => Promise<Response | void>;\n path: string;\n }> = [];\n #telemetry?: Telemetry;\n #storage?: MastraStorage;\n #memory?: MastraMemory;\n #vnext_networks?: TVNextNetworks;\n #scorers?: TScorers;\n #server?: ServerConfig;\n #mcpServers?: TMCPServers;\n #bundler?: BundlerConfig;\n #idGenerator?: MastraIdGenerator;\n #pubsub: PubSub;\n #events: {\n [topic: string]: ((event: Event, cb?: () => Promise<void>) => Promise<void>)[];\n } = {};\n #internalMastraWorkflows: Record<string, Workflow> = {};\n // This is only used internally for server handlers that require temporary persistence\n #serverCache: MastraServerCache;\n\n /**\n * @deprecated use getTelemetry() instead\n */\n get telemetry() {\n return this.#telemetry;\n }\n\n /**\n * @deprecated use getStorage() instead\n */\n get storage() {\n return this.#storage;\n }\n\n /**\n * @deprecated use getMemory() instead\n */\n get memory() {\n return this.#memory;\n }\n\n get pubsub() {\n return this.#pubsub;\n }\n\n public getIdGenerator() {\n return this.#idGenerator;\n }\n\n /**\n * Generate a unique identifier using the configured generator or default to crypto.randomUUID()\n * @returns A unique string ID\n */\n public generateId(): string {\n if (this.#idGenerator) {\n const id = this.#idGenerator();\n if (!id) {\n const error = new MastraError({\n id: 'MASTRA_ID_GENERATOR_RETURNED_EMPTY_STRING',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: 'ID generator returned an empty string, which is not allowed',\n });\n this.#logger?.trackException(error);\n throw error;\n }\n return id;\n }\n return randomUUID();\n }\n\n public setIdGenerator(idGenerator: MastraIdGenerator) {\n this.#idGenerator = idGenerator;\n }\n\n constructor(\n config?: Config<\n TAgents,\n TLegacyWorkflows,\n TWorkflows,\n TVectors,\n TTTS,\n TLogger,\n TVNextNetworks,\n TMCPServers,\n TScorers\n >,\n ) {\n // Store server middleware with default path\n if (config?.serverMiddleware) {\n this.#serverMiddleware = config.serverMiddleware.map(m => ({\n handler: m.handler,\n path: m.path || '/api/*',\n }));\n }\n\n /*\n Server Cache\n */\n\n // This is only used internally for server handlers that require temporary persistence\n this.#serverCache = new InMemoryServerCache();\n\n /*\n Events\n */\n if (config?.pubsub) {\n this.#pubsub = config.pubsub;\n } else {\n this.#pubsub = new EventEmitterPubSub();\n }\n\n this.#events = {};\n for (const topic in config?.events ?? {}) {\n if (!Array.isArray(config?.events?.[topic])) {\n this.#events[topic] = [config?.events?.[topic] as any];\n } else {\n this.#events[topic] = config?.events?.[topic] ?? [];\n }\n }\n\n const workflowEventProcessor = new WorkflowEventProcessor({ mastra: this });\n const workflowEventCb = async (event: Event, cb?: () => Promise<void>): Promise<void> => {\n try {\n await workflowEventProcessor.process(event, cb);\n } catch (e) {\n console.error('Error processing event', e);\n }\n };\n if (this.#events.workflows) {\n this.#events.workflows.push(workflowEventCb);\n } else {\n this.#events.workflows = [workflowEventCb];\n }\n\n /*\n Logger\n */\n\n let logger: TLogger;\n if (config?.logger === false) {\n logger = noopLogger as unknown as TLogger;\n } else {\n if (config?.logger) {\n logger = config.logger;\n } else {\n const levelOnEnv =\n process.env.NODE_ENV === 'production' && process.env.MASTRA_DEV !== 'true' ? LogLevel.WARN : LogLevel.INFO;\n logger = new ConsoleLogger({ name: 'Mastra', level: levelOnEnv }) as unknown as TLogger;\n }\n }\n this.#logger = logger;\n\n this.#idGenerator = config?.idGenerator;\n\n let storage = config?.storage;\n\n if (storage) {\n storage = augmentWithInit(storage);\n }\n\n /*\n Telemetry\n */\n\n this.#telemetry = Telemetry.init(config?.telemetry);\n\n // Warn if telemetry is enabled but the instrumentation global is not set\n if (\n config?.telemetry?.enabled !== false &&\n typeof globalThis !== 'undefined' &&\n (globalThis as any).___MASTRA_TELEMETRY___ !== true\n ) {\n this.#logger?.warn(\n `Mastra telemetry is enabled, but the required instrumentation file was not loaded. ` +\n `If you are using Mastra outside of the mastra server environment, see: https://mastra.ai/en/docs/observability/tracing#tracing-outside-mastra-server-environment`,\n `If you are using a custom instrumentation file or want to disable this warning, set the globalThis.___MASTRA_TELEMETRY___ variable to true in your instrumentation file.`,\n );\n }\n\n /*\n AI Tracing\n */\n\n if (config?.observability) {\n setupAITracing(config.observability);\n }\n\n /*\n Storage\n */\n if (this.#telemetry && storage) {\n this.#storage = this.#telemetry.traceClass(storage, {\n excludeMethods: ['__setTelemetry', '__getTelemetry', 'batchTraceInsert', 'getTraces', 'getEvalsByAgentName'],\n });\n this.#storage.__setTelemetry(this.#telemetry);\n } else {\n this.#storage = storage;\n }\n\n /*\n Vectors\n */\n if (config?.vectors) {\n let vectors: Record<string, MastraVector> = {};\n Object.entries(config.vectors).forEach(([key, vector]) => {\n if (this.#telemetry) {\n vectors[key] = this.#telemetry.traceClass(vector, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n vectors[key].__setTelemetry(this.#telemetry);\n } else {\n vectors[key] = vector;\n }\n });\n\n this.#vectors = vectors as TVectors;\n }\n\n if (config?.vnext_networks) {\n this.#vnext_networks = config.vnext_networks;\n }\n\n if (config?.mcpServers) {\n this.#mcpServers = config.mcpServers;\n\n // Set logger/telemetry/Mastra instance/id for MCP servers\n Object.entries(this.#mcpServers).forEach(([key, server]) => {\n server.setId(key);\n if (this.#telemetry) {\n server.__setTelemetry(this.#telemetry);\n }\n\n server.__registerMastra(this);\n server.__setLogger(this.getLogger());\n });\n }\n\n if (config && `memory` in config) {\n const error = new MastraError({\n id: 'MASTRA_CONSTRUCTOR_INVALID_MEMORY_CONFIG',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `\n Memory should be added to Agents, not to Mastra.\n\nInstead of:\n new Mastra({ memory: new Memory() })\n\ndo:\n new Agent({ memory: new Memory() })\n`,\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n if (config?.tts) {\n this.#tts = config.tts;\n Object.entries(this.#tts).forEach(([key, ttsCl]) => {\n if (this.#tts?.[key]) {\n if (this.#telemetry) {\n // @ts-ignore\n this.#tts[key] = this.#telemetry.traceClass(ttsCl, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n this.#tts[key].__setTelemetry(this.#telemetry);\n }\n }\n });\n }\n\n /*\n Agents\n */\n const agents: Record<string, Agent> = {};\n if (config?.agents) {\n Object.entries(config.agents).forEach(([key, agent]) => {\n if (agents[key]) {\n const error = new MastraError({\n id: 'MASTRA_AGENT_REGISTRATION_DUPLICATE_ID',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Agent with name ID:${key} already exists`,\n details: {\n agentId: key,\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n agent.__registerMastra(this);\n\n agent.__registerPrimitives({\n logger: this.getLogger(),\n telemetry: this.#telemetry,\n storage: this.storage,\n memory: this.memory,\n agents: agents,\n tts: this.#tts,\n vectors: this.#vectors,\n });\n\n agents[key] = agent;\n });\n }\n\n this.#agents = agents as TAgents;\n\n /*\n Networks\n */\n this.#vnext_networks = {} as TVNextNetworks;\n\n if (config?.vnext_networks) {\n Object.entries(config.vnext_networks).forEach(([key, network]) => {\n network.__registerMastra(this);\n // @ts-ignore\n this.#vnext_networks[key] = network;\n });\n }\n\n /**\n * Scorers\n */\n\n const scorers = {} as Record<string, MastraScorer<any, any, any, any>>;\n if (config?.scorers) {\n Object.entries(config.scorers).forEach(([key, scorer]) => {\n scorers[key] = scorer;\n });\n }\n this.#scorers = scorers as TScorers;\n\n /*\n Legacy Workflows\n */\n this.#legacy_workflows = {} as TLegacyWorkflows;\n\n if (config?.legacy_workflows) {\n Object.entries(config.legacy_workflows).forEach(([key, workflow]) => {\n workflow.__registerMastra(this);\n workflow.__registerPrimitives({\n logger: this.getLogger(),\n telemetry: this.#telemetry,\n storage: this.storage,\n memory: this.memory,\n agents: agents,\n tts: this.#tts,\n vectors: this.#vectors,\n });\n // @ts-ignore\n this.#legacy_workflows[key] = workflow;\n\n const workflowSteps = Object.values(workflow.steps).filter(step => !!step.workflowId && !!step.workflow);\n if (workflowSteps.length > 0) {\n workflowSteps.forEach(step => {\n // @ts-ignore\n this.#legacy_workflows[step.workflowId] = step.workflow;\n });\n }\n });\n }\n\n this.#workflows = {} as TWorkflows;\n if (config?.workflows) {\n Object.entries(config.workflows).forEach(([key, workflow]) => {\n workflow.__registerMastra(this);\n workflow.__registerPrimitives({\n logger: this.getLogger(),\n telemetry: this.#telemetry,\n storage: this.storage,\n memory: this.memory,\n agents: agents,\n tts: this.#tts,\n vectors: this.#vectors,\n });\n // @ts-ignore\n this.#workflows[key] = workflow;\n });\n }\n\n if (config?.server) {\n this.#server = config.server;\n }\n\n registerHook(AvailableHooks.ON_SCORER_RUN, createOnScorerHook(this));\n\n /*\n Register Mastra instance with AI tracing exporters and initialize them\n */\n if (config?.observability) {\n this.registerAITracingExporters();\n this.initAITracingExporters();\n }\n\n this.setLogger({ logger });\n }\n\n /**\n * Register this Mastra instance with AI tracing exporters that need it\n */\n private registerAITracingExporters(): void {\n const allTracingInstances = getAllAITracing();\n allTracingInstances.forEach(tracing => {\n const exporters = tracing.getExporters();\n exporters.forEach(exporter => {\n // Check if exporter has __registerMastra method\n if ('__registerMastra' in exporter && typeof (exporter as any).__registerMastra === 'function') {\n (exporter as any).__registerMastra(this);\n }\n });\n });\n }\n\n /**\n * Initialize all AI tracing exporters after registration is complete\n */\n private initAITracingExporters(): void {\n const allTracingInstances = getAllAITracing();\n\n allTracingInstances.forEach(tracing => {\n const config = tracing.getConfig();\n const exporters = tracing.getExporters();\n exporters.forEach(exporter => {\n // Initialize exporter if it has an init method\n if ('init' in exporter && typeof exporter.init === 'function') {\n try {\n exporter.init(config);\n } catch (error) {\n this.#logger?.warn('Failed to initialize AI tracing exporter', {\n exporterName: exporter.name,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n });\n });\n }\n\n public getAgent<TAgentName extends keyof TAgents>(name: TAgentName): TAgents[TAgentName] {\n const agent = this.#agents?.[name];\n if (!agent) {\n const error = new MastraError({\n id: 'MASTRA_GET_AGENT_BY_NAME_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Agent with name ${String(name)} not found`,\n details: {\n status: 404,\n agentName: String(name),\n agents: Object.keys(this.#agents ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n return this.#agents[name];\n }\n\n public getAgentById(id: string): Agent {\n let agent = Object.values(this.#agents).find(a => a.id === id);\n\n if (!agent) {\n try {\n agent = this.getAgent(id as any);\n } catch {\n // do nothing\n }\n }\n\n if (!agent) {\n const error = new MastraError({\n id: 'MASTRA_GET_AGENT_BY_AGENT_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Agent with id ${String(id)} not found`,\n details: {\n status: 404,\n agentId: String(id),\n agents: Object.keys(this.#agents ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n return agent;\n }\n\n public getAgents() {\n return this.#agents;\n }\n\n public getVector<TVectorName extends keyof TVectors>(name: TVectorName): TVectors[TVectorName] {\n const vector = this.#vectors?.[name];\n if (!vector) {\n const error = new MastraError({\n id: 'MASTRA_GET_VECTOR_BY_NAME_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Vector with name ${String(name)} not found`,\n details: {\n status: 404,\n vectorName: String(name),\n vectors: Object.keys(this.#vectors ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n return vector;\n }\n\n public getVectors() {\n return this.#vectors;\n }\n\n public getDeployer() {\n return this.#deployer;\n }\n\n public legacy_getWorkflow<TWorkflowId extends keyof TLegacyWorkflows>(\n id: TWorkflowId,\n { serialized }: { serialized?: boolean } = {},\n ): TLegacyWorkflows[TWorkflowId] {\n const workflow = this.#legacy_workflows?.[id];\n if (!workflow) {\n const error = new MastraError({\n id: 'MASTRA_GET_LEGACY_WORKFLOW_BY_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Workflow with ID ${String(id)} not found`,\n details: {\n status: 404,\n workflowId: String(id),\n workflows: Object.keys(this.#legacy_workflows ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n if (serialized) {\n return { name: workflow.name } as TLegacyWorkflows[TWorkflowId];\n }\n\n return workflow;\n }\n\n public getWorkflow<TWorkflowId extends keyof TWorkflows>(\n id: TWorkflowId,\n { serialized }: { serialized?: boolean } = {},\n ): TWorkflows[TWorkflowId] {\n const workflow = this.#workflows?.[id];\n if (!workflow) {\n const error = new MastraError({\n id: 'MASTRA_GET_WORKFLOW_BY_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Workflow with ID ${String(id)} not found`,\n details: {\n status: 404,\n workflowId: String(id),\n workflows: Object.keys(this.#workflows ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n if (serialized) {\n return { name: workflow.name } as TWorkflows[TWorkflowId];\n }\n\n return workflow;\n }\n\n __registerInternalWorkflow(workflow: Workflow) {\n workflow.__registerMastra(this);\n workflow.__registerPrimitives({\n logger: this.getLogger(),\n storage: this.storage,\n });\n this.#internalMastraWorkflows[workflow.id] = workflow;\n }\n\n __hasInternalWorkflow(id: string): boolean {\n return Object.values(this.#internalMastraWorkflows).some(workflow => workflow.id === id);\n }\n\n __getInternalWorkflow(id: string): Workflow {\n const workflow = Object.values(this.#internalMastraWorkflows).find(a => a.id === id);\n if (!workflow) {\n throw new MastraError({\n id: 'MASTRA_GET_INTERNAL_WORKFLOW_BY_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.SYSTEM,\n text: `Workflow with id ${String(id)} not found`,\n details: {\n status: 404,\n workflowId: String(id),\n },\n });\n }\n\n return workflow;\n }\n\n public getWorkflowById(id: string): Workflow {\n let workflow = Object.values(this.#workflows).find(a => a.id === id);\n\n if (!workflow) {\n try {\n workflow = this.getWorkflow(id as any);\n } catch {\n // do nothing\n }\n }\n\n if (!workflow) {\n const error = new MastraError({\n id: 'MASTRA_GET_WORKFLOW_BY_ID_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Workflow with id ${String(id)} not found`,\n details: {\n status: 404,\n workflowId: String(id),\n workflows: Object.keys(this.#workflows ?? {}).join(', '),\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n return workflow;\n }\n\n public legacy_getWorkflows(props: { serialized?: boolean } = {}): Record<string, LegacyWorkflow> {\n if (props.serialized) {\n return Object.entries(this.#legacy_workflows).reduce((acc, [k, v]) => {\n return {\n ...acc,\n [k]: { name: v.name },\n };\n }, {});\n }\n return this.#legacy_workflows;\n }\n\n public getScorers() {\n return this.#scorers;\n }\n\n public getScorer<TScorerKey extends keyof TScorers>(key: TScorerKey): TScorers[TScorerKey] {\n const scorer = this.#scorers?.[key];\n if (!scorer) {\n const error = new MastraError({\n id: 'MASTRA_GET_SCORER_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Scorer with ${String(key)} not found`,\n });\n this.#logger?.trackException(error);\n throw error;\n }\n return scorer;\n }\n\n public getScorerByName(name: string): MastraScorer<any, any, any, any> {\n for (const [_key, value] of Object.entries(this.#scorers ?? {})) {\n if (value.name === name) {\n return value;\n }\n }\n\n const error = new MastraError({\n id: 'MASTRA_GET_SCORER_BY_NAME_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Scorer with name ${String(name)} not found`,\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n public getWorkflows(props: { serialized?: boolean } = {}): Record<string, Workflow> {\n if (props.serialized) {\n return Object.entries(this.#workflows).reduce((acc, [k, v]) => {\n return {\n ...acc,\n [k]: { name: v.name },\n };\n }, {});\n }\n return this.#workflows;\n }\n\n public setStorage(storage: MastraStorage) {\n this.#storage = augmentWithInit(storage);\n }\n\n public setLogger({ logger }: { logger: TLogger }) {\n this.#logger = logger;\n\n if (this.#agents) {\n Object.keys(this.#agents).forEach(key => {\n this.#agents?.[key]?.__setLogger(this.#logger);\n });\n }\n\n if (this.#memory) {\n this.#memory.__setLogger(this.#logger);\n }\n\n if (this.#deployer) {\n this.#deployer.__setLogger(this.#logger);\n }\n\n if (this.#tts) {\n Object.keys(this.#tts).forEach(key => {\n this.#tts?.[key]?.__setLogger(this.#logger);\n });\n }\n\n if (this.#storage) {\n this.#storage.__setLogger(this.#logger);\n }\n\n if (this.#vectors) {\n Object.keys(this.#vectors).forEach(key => {\n this.#vectors?.[key]?.__setLogger(this.#logger);\n });\n }\n\n if (this.#mcpServers) {\n Object.keys(this.#mcpServers).forEach(key => {\n this.#mcpServers?.[key]?.__setLogger(this.#logger);\n });\n }\n\n // Set logger for AI tracing instances\n const allTracingInstances = getAllAITracing();\n allTracingInstances.forEach(instance => {\n instance.__setLogger(this.#logger);\n });\n }\n\n public setTelemetry(telemetry: OtelConfig) {\n this.#telemetry = Telemetry.init(telemetry);\n\n if (this.#agents) {\n Object.keys(this.#agents).forEach(key => {\n if (this.#telemetry) {\n this.#agents?.[key]?.__setTelemetry(this.#telemetry);\n }\n });\n }\n\n if (this.#memory) {\n this.#memory = this.#telemetry.traceClass(this.#memory, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n this.#memory.__setTelemetry(this.#telemetry);\n }\n\n if (this.#deployer) {\n this.#deployer = this.#telemetry.traceClass(this.#deployer, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n this.#deployer.__setTelemetry(this.#telemetry);\n }\n\n if (this.#tts) {\n let tts = {} as Record<string, MastraTTS>;\n Object.entries(this.#tts).forEach(([key, ttsCl]) => {\n if (this.#telemetry) {\n tts[key] = this.#telemetry.traceClass(ttsCl, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n tts[key].__setTelemetry(this.#telemetry);\n }\n });\n this.#tts = tts as TTTS;\n }\n\n if (this.#storage) {\n this.#storage = this.#telemetry.traceClass(this.#storage, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n this.#storage.__setTelemetry(this.#telemetry);\n }\n\n if (this.#vectors) {\n let vectors = {} as Record<string, MastraVector>;\n Object.entries(this.#vectors).forEach(([key, vector]) => {\n if (this.#telemetry) {\n vectors[key] = this.#telemetry.traceClass(vector, {\n excludeMethods: ['__setTelemetry', '__getTelemetry'],\n });\n vectors[key].__setTelemetry(this.#telemetry);\n }\n });\n this.#vectors = vectors as TVectors;\n }\n }\n\n public getTTS() {\n return this.#tts;\n }\n\n public getLogger() {\n return this.#logger;\n }\n\n public getTelemetry() {\n return this.#telemetry;\n }\n\n public getMemory() {\n return this.#memory;\n }\n\n public getStorage() {\n return this.#storage;\n }\n\n public getServerMiddleware() {\n return this.#serverMiddleware;\n }\n\n public getServerCache() {\n return this.#serverCache;\n }\n\n public setServerMiddleware(serverMiddleware: Middleware | Middleware[]) {\n if (typeof serverMiddleware === 'function') {\n this.#serverMiddleware = [\n {\n handler: serverMiddleware,\n path: '/api/*',\n },\n ];\n return;\n }\n\n if (!Array.isArray(serverMiddleware)) {\n const error = new MastraError({\n id: 'MASTRA_SET_SERVER_MIDDLEWARE_INVALID_TYPE',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Invalid middleware: expected a function or array, received ${typeof serverMiddleware}`,\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n this.#serverMiddleware = serverMiddleware.map(m => {\n if (typeof m === 'function') {\n return {\n handler: m,\n path: '/api/*',\n };\n }\n return {\n handler: m.handler,\n path: m.path || '/api/*',\n };\n });\n }\n\n public vnext_getNetworks() {\n return Object.values(this.#vnext_networks || {});\n }\n\n public getServer() {\n return this.#server;\n }\n\n public getBundlerConfig() {\n return this.#bundler;\n }\n\n public vnext_getNetwork(networkId: string): NewAgentNetwork | undefined {\n const networks = this.vnext_getNetworks();\n return networks.find(network => network.id === networkId);\n }\n\n public async getLogsByRunId({\n runId,\n transportId,\n fromDate,\n toDate,\n logLevel,\n filters,\n page,\n perPage,\n }: {\n runId: string;\n transportId: string;\n fromDate?: Date;\n toDate?: Date;\n logLevel?: LogLevel;\n filters?: Record<string, any>;\n page?: number;\n perPage?: number;\n }) {\n if (!transportId) {\n const error = new MastraError({\n id: 'MASTRA_GET_LOGS_BY_RUN_ID_MISSING_TRANSPORT',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: 'Transport ID is required',\n details: {\n runId,\n transportId,\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n if (!this.#logger?.getLogsByRunId) {\n const error = new MastraError({\n id: 'MASTRA_GET_LOGS_BY_RUN_ID_LOGGER_NOT_CONFIGURED',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.SYSTEM,\n text: 'Logger is not configured or does not support getLogsByRunId operation',\n details: {\n runId,\n transportId,\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n return await this.#logger.getLogsByRunId({\n runId,\n transportId,\n fromDate,\n toDate,\n logLevel,\n filters,\n page,\n perPage,\n });\n }\n\n public async getLogs(\n transportId: string,\n params?: {\n fromDate?: Date;\n toDate?: Date;\n logLevel?: LogLevel;\n filters?: Record<string, any>;\n page?: number;\n perPage?: number;\n },\n ) {\n if (!transportId) {\n const error = new MastraError({\n id: 'MASTRA_GET_LOGS_MISSING_TRANSPORT',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: 'Transport ID is required',\n details: {\n transportId,\n },\n });\n this.#logger?.trackException(error);\n throw error;\n }\n\n if (!this.#logger) {\n const error = new MastraError({\n id: 'MASTRA_GET_LOGS_LOGGER_NOT_CONFIGURED',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.SYSTEM,\n text: 'Logger is not set',\n details: {\n transportId,\n },\n });\n throw error;\n }\n\n return await this.#logger.getLogs(transportId, params);\n }\n\n /**\n * Get all registered MCP server instances.\n * @returns A record of MCP server ID to MCPServerBase instance, or undefined if none are registered.\n */\n public getMCPServers(): Record<string, MCPServerBase> | undefined {\n return this.#mcpServers;\n }\n\n /**\n * Get a specific MCP server instance.\n * If a version is provided, it attempts to find the server with that exact logical ID and version.\n * If no version is provided, it returns the server with the specified logical ID that has the most recent releaseDate.\n * The logical ID should match the `id` property of the MCPServer instance (typically set via MCPServerConfig.id).\n * @param serverId - The logical ID of the MCP server to retrieve.\n * @param version - Optional specific version of the MCP server to retrieve.\n * @returns The MCP server instance, or undefined if not found or if the specific version is not found.\n */\n public getMCPServer(serverId: string, version?: string): MCPServerBase | undefined {\n if (!this.#mcpServers) {\n return undefined;\n }\n\n const allRegisteredServers = Object.values(this.#mcpServers || {});\n\n const matchingLogicalIdServers = allRegisteredServers.filter(server => server.id === serverId);\n\n if (matchingLogicalIdServers.length === 0) {\n this.#logger?.debug(`No MCP servers found with logical ID: ${serverId}`);\n return undefined;\n }\n\n if (version) {\n const specificVersionServer = matchingLogicalIdServers.find(server => server.version === version);\n if (!specificVersionServer) {\n this.#logger?.debug(`MCP server with logical ID '${serverId}' found, but not version '${version}'.`);\n }\n return specificVersionServer;\n } else {\n // No version specified, find the one with the most recent releaseDate\n if (matchingLogicalIdServers.length === 1) {\n return matchingLogicalIdServers[0];\n }\n\n matchingLogicalIdServers.sort((a, b) => {\n // Ensure releaseDate exists and is a string before creating a Date object\n const dateAVal = a.releaseDate && typeof a.releaseDate === 'string' ? new Date(a.releaseDate).getTime() : NaN;\n const dateBVal = b.releaseDate && typeof b.releaseDate === 'string' ? new Date(b.releaseDate).getTime() : NaN;\n\n if (isNaN(dateAVal) && isNaN(dateBVal)) return 0;\n if (isNaN(dateAVal)) return 1; // Treat invalid/missing dates as older\n if (isNaN(dateBVal)) return -1; // Treat invalid/missing dates as older\n\n return dateBVal - dateAVal; // Sorts in descending order of time (latest first)\n });\n\n // After sorting, the first element should be the latest if its date is valid\n if (matchingLogicalIdServers.length > 0) {\n const latestServer = matchingLogicalIdServers[0];\n if (\n latestServer &&\n latestServer.releaseDate &&\n typeof latestServer.releaseDate === 'string' &&\n !isNaN(new Date(latestServer.releaseDate).getTime())\n ) {\n return latestServer;\n }\n }\n this.#logger?.warn(\n `Could not determine the latest server for logical ID '${serverId}' due to invalid or missing release dates, or no servers left after filtering.`,\n );\n return undefined;\n }\n }\n\n public async addTopicListener(topic: string, listener: (event: any) => Promise<void>) {\n await this.#pubsub.subscribe(topic, listener);\n }\n\n public async removeTopicListener(topic: string, listener: (event: any) => Promise<void>) {\n await this.#pubsub.unsubscribe(topic, listener);\n }\n\n public async startEventEngine() {\n for (const topic in this.#events) {\n if (!this.#events[topic]) {\n continue;\n }\n\n const listeners = Array.isArray(this.#events[topic]) ? this.#events[topic] : [this.#events[topic]];\n for (const listener of listeners) {\n await this.#pubsub.subscribe(topic, listener);\n }\n }\n }\n\n public async stopEventEngine() {\n for (const topic in this.#events) {\n if (!this.#events[topic]) {\n continue;\n }\n\n const listeners = Array.isArray(this.#events[topic]) ? this.#events[topic] : [this.#events[topic]];\n for (const listener of listeners) {\n await this.#pubsub.unsubscribe(topic, listener);\n }\n }\n\n await this.#pubsub.flush();\n }\n\n /**\n * Shutdown Mastra and clean up all resources\n */\n async shutdown(): Promise<void> {\n // Shutdown AI tracing registry and all instances\n await shutdownAITracingRegistry();\n await this.stopEventEngine();\n\n this.#logger?.info('Mastra shutdown completed');\n }\n\n // This method is only used internally for server hnadlers that require temporary persistence\n public get serverCache() {\n return this.#serverCache;\n }\n}\n","import EventEmitter from 'events';\nimport { PubSub } from './pubsub';\nimport type { Event } from './types';\n\nexport class EventEmitterPubSub extends PubSub {\n private emitter: EventEmitter;\n\n constructor() {\n super();\n this.emitter = new EventEmitter();\n }\n\n async publish(topic: string, event: Omit<Event, 'id' | 'createdAt'>): Promise<void> {\n const id = crypto.randomUUID();\n const createdAt = new Date();\n this.emitter.emit(topic, {\n ...event,\n id,\n createdAt,\n });\n }\n\n async subscribe(topic: string, cb: (event: Event, ack?: () => Promise<void>) => void): Promise<void> {\n this.emitter.on(topic, cb);\n }\n\n async unsubscribe(topic: string, cb: (event: Event, ack?: () => Promise<void>) => void): Promise<void> {\n this.emitter.off(topic, cb);\n }\n\n async flush(): Promise<void> {\n // no-op\n }\n}\n","import type { Mastra } from '..';\nimport { ErrorCategory, ErrorDomain, MastraError } from '../error';\nimport { saveScorePayloadSchema } from '../scores';\nimport type { ScoringHookInput } from '../scores/types';\nimport type { MastraStorage } from '../storage';\n\nexport function createOnScorerHook(mastra: Mastra) {\n return async (hookData: ScoringHookInput) => {\n const storage = mastra.getStorage();\n\n if (!storage) {\n mastra.getLogger()?.warn('Storage not found, skipping score validation and saving');\n return;\n }\n\n const entityId = hookData.entity.id;\n const entityType = hookData.entityType;\n const scorer = hookData.scorer;\n try {\n const scorerToUse = await findScorer(mastra, entityId, entityType, scorer.name);\n\n if (!scorerToUse) {\n throw new MastraError({\n id: 'MASTRA_SCORER_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Scorer with ID ${hookData.scorer.id} not found`,\n });\n }\n\n let input = hookData.input;\n let output = hookData.output;\n\n const { structuredOutput, ...rest } = hookData;\n\n const runResult = await scorerToUse.scorer.run({\n ...rest,\n input,\n output,\n });\n\n const payload = {\n ...rest,\n ...runResult,\n entityId,\n scorerId: hookData.scorer.name,\n metadata: {\n structuredOutput: !!structuredOutput,\n },\n };\n\n await validateAndSaveScore(storage, payload);\n } catch (error) {\n const mastraError = new MastraError(\n {\n id: 'MASTRA_SCORER_FAILED_TO_RUN_HOOK',\n domain: ErrorDomain.SCORER,\n category: ErrorCategory.USER,\n details: {\n scorerId: scorer.id,\n entityId,\n entityType,\n },\n },\n error,\n );\n\n mastra.getLogger()?.trackException(mastraError);\n mastra.getLogger()?.error(mastraError.toString());\n }\n };\n}\n\nexport async function validateAndSaveScore(storage: MastraStorage, payload: unknown) {\n const payloadToSave = saveScorePayloadSchema.parse(payload);\n await storage?.saveScore(payloadToSave);\n}\n\nasync function findScorer(mastra: Mastra, entityId: string, entityType: string, scorerName: string) {\n let scorerToUse;\n if (entityType === 'AGENT') {\n const scorers = await mastra.getAgentById(entityId).getScorers();\n for (const [_, scorer] of Object.entries(scorers)) {\n if (scorer.scorer.name === scorerName) {\n scorerToUse = scorer;\n break;\n }\n }\n } else if (entityType === 'WORKFLOW') {\n const scorers = await mastra.getWorkflowById(entityId).getScorers();\n for (const [_, scorer] of Object.entries(scorers)) {\n if (scorer.scorer.name === scorerName) {\n scorerToUse = scorer;\n break;\n }\n }\n }\n\n // Fallback to mastra-registered scorer\n if (!scorerToUse) {\n const mastraRegisteredScorer = mastra.getScorerByName(scorerName);\n scorerToUse = mastraRegisteredScorer ? { scorer: mastraRegisteredScorer } : undefined;\n }\n\n return scorerToUse;\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { fetchWithRetry } from './chunk-
|
|
2
|
-
import { MastraError } from './chunk-
|
|
1
|
+
import { fetchWithRetry } from './chunk-PJ6HF3KW.js';
|
|
2
|
+
import { MastraError } from './chunk-WHFNGECY.js';
|
|
3
3
|
import { randomUUID } from 'crypto';
|
|
4
4
|
import * as AIV4 from 'ai';
|
|
5
5
|
import * as AIV5 from 'ai-v5';
|
|
@@ -2956,5 +2956,5 @@ function convertMessages(messages) {
|
|
|
2956
2956
|
}
|
|
2957
2957
|
|
|
2958
2958
|
export { DefaultGeneratedFile, DefaultGeneratedFileWithType, MessageList, convertMessages };
|
|
2959
|
-
//# sourceMappingURL=chunk-
|
|
2960
|
-
//# sourceMappingURL=chunk-
|
|
2959
|
+
//# sourceMappingURL=chunk-BUY5X7DT.js.map
|
|
2960
|
+
//# sourceMappingURL=chunk-BUY5X7DT.js.map
|