@mastra/core 0.13.2 → 0.14.0-alpha.1
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/README.md +5 -44
- package/dist/agent/agent.types.d.ts +12 -2
- package/dist/agent/agent.types.d.ts.map +1 -1
- package/dist/agent/index.cjs +14 -14
- package/dist/agent/index.d.ts +17 -17
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +2 -2
- package/dist/agent/input-processor/index.cjs +28 -0
- package/dist/agent/input-processor/index.js +3 -0
- package/dist/agent/input-processor/processors/index.d.ts +4 -4
- package/dist/agent/input-processor/processors/index.d.ts.map +1 -1
- package/dist/agent/input-processor/processors/language-detector.d.ts +6 -139
- package/dist/agent/input-processor/processors/language-detector.d.ts.map +1 -1
- package/dist/agent/input-processor/processors/moderation.d.ts +5 -94
- package/dist/agent/input-processor/processors/moderation.d.ts.map +1 -1
- package/dist/agent/input-processor/processors/pii-detector.d.ts +6 -164
- package/dist/agent/input-processor/processors/pii-detector.d.ts.map +1 -1
- package/dist/agent/input-processor/processors/prompt-injection-detector.d.ts +6 -96
- package/dist/agent/input-processor/processors/prompt-injection-detector.d.ts.map +1 -1
- package/dist/agent/input-processor/processors/unicode-normalizer.d.ts +9 -25
- package/dist/agent/input-processor/processors/unicode-normalizer.d.ts.map +1 -1
- package/dist/agent/message-list/index.d.ts +138 -39
- package/dist/agent/message-list/index.d.ts.map +1 -1
- package/dist/agent/message-list/types.d.ts +3 -0
- package/dist/agent/message-list/types.d.ts.map +1 -0
- package/dist/agent/message-list/utils/ai-v4-v5/core-model-message.d.ts +3 -0
- package/dist/agent/message-list/utils/ai-v4-v5/core-model-message.d.ts.map +1 -0
- package/dist/agent/message-list/utils/ai-v4-v5/ui-message.d.ts +3 -0
- package/dist/agent/message-list/utils/ai-v4-v5/ui-message.d.ts.map +1 -0
- package/dist/agent/message-list/utils/ai-v5/tool.d.ts +16 -0
- package/dist/agent/message-list/utils/ai-v5/tool.d.ts.map +1 -0
- package/dist/agent/types.d.ts +34 -4
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/ai-tracing/base.d.ts +22 -7
- package/dist/ai-tracing/base.d.ts.map +1 -1
- package/dist/ai-tracing/default.d.ts +3 -3
- package/dist/ai-tracing/default.d.ts.map +1 -1
- package/dist/ai-tracing/index.cjs +253 -72
- package/dist/ai-tracing/index.cjs.map +1 -1
- package/dist/ai-tracing/index.d.ts +1 -0
- package/dist/ai-tracing/index.d.ts.map +1 -1
- package/dist/ai-tracing/index.js +243 -71
- package/dist/ai-tracing/index.js.map +1 -1
- package/dist/ai-tracing/no-op.d.ts +39 -7
- package/dist/ai-tracing/no-op.d.ts.map +1 -1
- package/dist/ai-tracing/registry.d.ts +29 -4
- package/dist/ai-tracing/registry.d.ts.map +1 -1
- package/dist/ai-tracing/types.d.ts +112 -53
- package/dist/ai-tracing/types.d.ts.map +1 -1
- package/dist/ai-tracing/utils.d.ts +24 -0
- package/dist/ai-tracing/utils.d.ts.map +1 -0
- package/dist/base.cjs +2 -2
- package/dist/base.js +1 -1
- package/dist/bundler/index.cjs +2 -2
- package/dist/bundler/index.js +1 -1
- package/dist/{chunk-N3VGOJZV.cjs → chunk-4BMFOQDC.cjs} +27 -47
- package/dist/chunk-4BMFOQDC.cjs.map +1 -0
- package/dist/{chunk-MTRRRTB4.js → chunk-4XDSHUFK.js} +7 -6
- package/dist/chunk-4XDSHUFK.js.map +1 -0
- package/dist/{chunk-SSJVFUBZ.js → chunk-67L5DRLO.js} +3 -3
- package/dist/{chunk-SSJVFUBZ.js.map → chunk-67L5DRLO.js.map} +1 -1
- package/dist/{chunk-FUERFM46.js → chunk-6GF5M4GX.js} +3 -3
- package/dist/{chunk-FUERFM46.js.map → chunk-6GF5M4GX.js.map} +1 -1
- package/dist/{chunk-7E2SNI5D.cjs → chunk-7AXX55C5.cjs} +5 -5
- package/dist/chunk-7AXX55C5.cjs.map +1 -0
- package/dist/{chunk-6W6LYR7M.js → chunk-7XGDFDZ2.js} +3 -3
- package/dist/{chunk-6W6LYR7M.js.map → chunk-7XGDFDZ2.js.map} +1 -1
- package/dist/{chunk-R4HT5XUH.cjs → chunk-ASJVWHIK.cjs} +993 -124
- package/dist/chunk-ASJVWHIK.cjs.map +1 -0
- package/dist/{chunk-ZDZ57MIU.js → chunk-AWILTHBM.js} +3 -3
- package/dist/{chunk-ZDZ57MIU.js.map → chunk-AWILTHBM.js.map} +1 -1
- package/dist/{chunk-DDYSOZ25.js → chunk-AYXRNQH3.js} +3 -3
- package/dist/{chunk-DDYSOZ25.js.map → chunk-AYXRNQH3.js.map} +1 -1
- package/dist/{chunk-U2CK6AN5.cjs → chunk-BCCEYWAV.cjs} +4 -4
- package/dist/{chunk-U2CK6AN5.cjs.map → chunk-BCCEYWAV.cjs.map} +1 -1
- package/dist/{chunk-MH64VYGF.cjs → chunk-CSTWQQ3C.cjs} +14 -13
- package/dist/chunk-CSTWQQ3C.cjs.map +1 -0
- package/dist/{chunk-FTPL7ILZ.js → chunk-CWZDKGJ6.js} +3 -3
- package/dist/{chunk-FTPL7ILZ.js.map → chunk-CWZDKGJ6.js.map} +1 -1
- package/dist/{chunk-MVSUZXER.cjs → chunk-D7P76YH6.cjs} +4 -4
- package/dist/{chunk-MVSUZXER.cjs.map → chunk-D7P76YH6.cjs.map} +1 -1
- package/dist/{chunk-IL5SHDY4.js → chunk-DAMIFZPW.js} +949 -103
- package/dist/chunk-DAMIFZPW.js.map +1 -0
- package/dist/{chunk-KLXRYVVQ.cjs → chunk-DVI6XHUC.cjs} +4 -4
- package/dist/{chunk-KLXRYVVQ.cjs.map → chunk-DVI6XHUC.cjs.map} +1 -1
- package/dist/chunk-ELKY3FEM.cjs +14 -0
- package/dist/{chunk-IP5NGA2S.cjs.map → chunk-ELKY3FEM.cjs.map} +1 -1
- package/dist/{chunk-TOODGJKM.js → chunk-GZVSHXPP.js} +3 -3
- package/dist/chunk-GZVSHXPP.js.map +1 -0
- package/dist/{chunk-WA3SWCXD.cjs → chunk-I4XP6RAN.cjs} +9 -9
- package/dist/{chunk-WA3SWCXD.cjs.map → chunk-I4XP6RAN.cjs.map} +1 -1
- package/dist/{chunk-PLVSXEQP.cjs → chunk-IAP4IWKM.cjs} +4 -4
- package/dist/{chunk-PLVSXEQP.cjs.map → chunk-IAP4IWKM.cjs.map} +1 -1
- package/dist/{chunk-YT4RGZYO.cjs → chunk-KXCUCBEI.cjs} +8 -8
- package/dist/{chunk-YT4RGZYO.cjs.map → chunk-KXCUCBEI.cjs.map} +1 -1
- package/dist/{chunk-Z74LG5VH.cjs → chunk-LFAAEOQC.cjs} +21 -4
- package/dist/chunk-LFAAEOQC.cjs.map +1 -0
- package/dist/{chunk-DK7AVDMI.cjs → chunk-LVVAUDVQ.cjs} +4 -4
- package/dist/{chunk-DK7AVDMI.cjs.map → chunk-LVVAUDVQ.cjs.map} +1 -1
- package/dist/{chunk-HBMZEZTO.js → chunk-ON4S33NP.js} +3 -3
- package/dist/{chunk-HBMZEZTO.js.map → chunk-ON4S33NP.js.map} +1 -1
- package/dist/{chunk-L6YBPFYF.js → chunk-OPT2L5AM.js} +1089 -81
- package/dist/chunk-OPT2L5AM.js.map +1 -0
- package/dist/{chunk-N2KMAW6T.js → chunk-P7WF6NQU.js} +20 -4
- package/dist/chunk-P7WF6NQU.js.map +1 -0
- package/dist/{chunk-KEMW2BER.js → chunk-PY4MHJTE.js} +3 -3
- package/dist/{chunk-KEMW2BER.js.map → chunk-PY4MHJTE.js.map} +1 -1
- package/dist/{chunk-TZVJV7EV.js → chunk-QSJZLHWA.js} +5 -5
- package/dist/{chunk-TZVJV7EV.js.map → chunk-QSJZLHWA.js.map} +1 -1
- package/dist/{chunk-DCOKWJ5G.cjs → chunk-RJCNC57P.cjs} +1110 -79
- package/dist/chunk-RJCNC57P.cjs.map +1 -0
- package/dist/{chunk-LMW44O4V.cjs → chunk-RPV7GQAX.cjs} +4 -4
- package/dist/{chunk-LMW44O4V.cjs.map → chunk-RPV7GQAX.cjs.map} +1 -1
- package/dist/{chunk-TZOR5M7H.js → chunk-RYCRCJCY.js} +25 -45
- package/dist/chunk-RYCRCJCY.js.map +1 -0
- package/dist/{chunk-IDDUQR6P.cjs → chunk-V5WKCX3G.cjs} +3 -3
- package/dist/chunk-V5WKCX3G.cjs.map +1 -0
- package/dist/{chunk-6AR2Z5ZG.js → chunk-X3GXU6TZ.js} +3 -3
- package/dist/chunk-X3GXU6TZ.js.map +1 -0
- package/dist/deployer/index.cjs +2 -2
- package/dist/deployer/index.js +1 -1
- package/dist/index.cjs +74 -70
- package/dist/index.js +14 -14
- package/dist/llm/index.d.ts +2 -1
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/model/base.types.d.ts +2 -6
- package/dist/llm/model/base.types.d.ts.map +1 -1
- package/dist/llm/model/index.d.ts +0 -1
- package/dist/llm/model/index.d.ts.map +1 -1
- package/dist/llm/model/model.d.ts +3 -2
- package/dist/llm/model/model.d.ts.map +1 -1
- package/dist/llm/model/model.loop.d.ts +25 -0
- package/dist/llm/model/model.loop.d.ts.map +1 -0
- package/dist/llm/model/model.loop.types.d.ts +39 -0
- package/dist/llm/model/model.loop.types.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 -0
- package/dist/logger/constants.d.ts +1 -1
- package/dist/logger/index.cjs +6 -6
- package/dist/logger/index.js +1 -1
- package/dist/loop/index.cjs +2848 -0
- package/dist/loop/index.cjs.map +1 -0
- package/dist/loop/index.d.ts +2 -0
- package/dist/loop/index.d.ts.map +1 -0
- package/dist/loop/index.js +2842 -0
- package/dist/loop/index.js.map +1 -0
- package/dist/loop/loop.d.ts +5 -0
- package/dist/loop/loop.d.ts.map +1 -0
- package/dist/loop/telemetry/index.d.ts +36 -0
- package/dist/loop/telemetry/index.d.ts.map +1 -0
- package/dist/loop/telemetry/noop.d.ts +3 -0
- package/dist/loop/telemetry/noop.d.ts.map +1 -0
- package/dist/loop/test-utils/fullStream.d.ts +6 -0
- package/dist/loop/test-utils/fullStream.d.ts.map +1 -0
- package/dist/loop/test-utils/generateText.d.ts +6 -0
- package/dist/loop/test-utils/generateText.d.ts.map +1 -0
- package/dist/loop/test-utils/mockTracer.d.ts +47 -0
- package/dist/loop/test-utils/mockTracer.d.ts.map +1 -0
- package/dist/loop/test-utils/options.d.ts +6 -0
- package/dist/loop/test-utils/options.d.ts.map +1 -0
- package/dist/loop/test-utils/resultObject.d.ts +6 -0
- package/dist/loop/test-utils/resultObject.d.ts.map +1 -0
- package/dist/loop/test-utils/streamObject.d.ts +6 -0
- package/dist/loop/test-utils/streamObject.d.ts.map +1 -0
- package/dist/loop/test-utils/telemetry.d.ts +6 -0
- package/dist/loop/test-utils/telemetry.d.ts.map +1 -0
- package/dist/loop/test-utils/textStream.d.ts +6 -0
- package/dist/loop/test-utils/textStream.d.ts.map +1 -0
- package/dist/loop/test-utils/toUIMessageStream.d.ts +6 -0
- package/dist/loop/test-utils/toUIMessageStream.d.ts.map +1 -0
- package/dist/loop/test-utils/tools.d.ts +6 -0
- package/dist/loop/test-utils/tools.d.ts.map +1 -0
- package/dist/loop/test-utils/utils.d.ts +40 -0
- package/dist/loop/test-utils/utils.d.ts.map +1 -0
- package/dist/loop/types.d.ts +68 -0
- package/dist/loop/types.d.ts.map +1 -0
- package/dist/loop/workflow/llm-execution.d.ts +80 -0
- package/dist/loop/workflow/llm-execution.d.ts.map +1 -0
- package/dist/loop/workflow/outer-llm-step.d.ts +43 -0
- package/dist/loop/workflow/outer-llm-step.d.ts.map +1 -0
- package/dist/loop/workflow/run-state.d.ts +24 -0
- package/dist/loop/workflow/run-state.d.ts.map +1 -0
- package/dist/loop/workflow/schema.d.ts +80 -0
- package/dist/loop/workflow/schema.d.ts.map +1 -0
- package/dist/loop/workflow/stream.d.ts +6 -0
- package/dist/loop/workflow/stream.d.ts.map +1 -0
- package/dist/loop/workflow/tool-call-step.d.ts +41 -0
- package/dist/loop/workflow/tool-call-step.d.ts.map +1 -0
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.d.ts +4 -5
- package/dist/mastra/index.d.ts.map +1 -1
- package/dist/mastra/index.js +1 -1
- package/dist/mcp/index.cjs +4 -4
- package/dist/mcp/index.js +2 -2
- package/dist/memory/index.cjs +4 -4
- package/dist/memory/index.js +1 -1
- package/dist/network/index.cjs +6 -6
- package/dist/network/index.cjs.map +1 -1
- package/dist/network/index.js +3 -3
- package/dist/network/index.js.map +1 -1
- package/dist/network/network.d.ts +8 -7
- package/dist/network/network.d.ts.map +1 -1
- package/dist/network/vNext/index.cjs +21 -21
- package/dist/network/vNext/index.cjs.map +1 -1
- package/dist/network/vNext/index.d.ts +7 -7
- package/dist/network/vNext/index.d.ts.map +1 -1
- package/dist/network/vNext/index.js +7 -7
- package/dist/network/vNext/index.js.map +1 -1
- package/dist/processors/index.cjs +512 -0
- package/dist/processors/index.cjs.map +1 -0
- package/dist/processors/index.d.ts +38 -0
- package/dist/processors/index.d.ts.map +1 -0
- package/dist/processors/index.js +481 -0
- package/dist/processors/index.js.map +1 -0
- package/dist/processors/processors/batch-parts.d.ts +42 -0
- package/dist/processors/processors/batch-parts.d.ts.map +1 -0
- package/dist/processors/processors/index.d.ts +10 -0
- package/dist/processors/processors/index.d.ts.map +1 -0
- package/dist/processors/processors/language-detector.d.ts +151 -0
- package/dist/processors/processors/language-detector.d.ts.map +1 -0
- package/dist/processors/processors/moderation.d.ts +130 -0
- package/dist/processors/processors/moderation.d.ts.map +1 -0
- package/dist/processors/processors/pii-detector.d.ts +197 -0
- package/dist/processors/processors/pii-detector.d.ts.map +1 -0
- package/dist/processors/processors/prompt-injection-detector.d.ts +108 -0
- package/dist/processors/processors/prompt-injection-detector.d.ts.map +1 -0
- package/dist/processors/processors/structured-output.d.ts +42 -0
- package/dist/processors/processors/structured-output.d.ts.map +1 -0
- package/dist/processors/processors/system-prompt-scrubber.d.ts +92 -0
- package/dist/processors/processors/system-prompt-scrubber.d.ts.map +1 -0
- package/dist/processors/processors/token-limiter.d.ts +66 -0
- package/dist/processors/processors/token-limiter.d.ts.map +1 -0
- package/dist/processors/processors/unicode-normalizer.d.ts +34 -0
- package/dist/processors/processors/unicode-normalizer.d.ts.map +1 -0
- package/dist/processors/runner.d.ts +41 -0
- package/dist/processors/runner.d.ts.map +1 -0
- package/dist/relevance/index.cjs +4 -4
- package/dist/relevance/index.js +1 -1
- package/dist/scores/index.cjs +5 -5
- package/dist/scores/index.js +2 -2
- package/dist/server/index.cjs +2 -2
- package/dist/server/index.js +1 -1
- package/dist/storage/domains/operations/base.d.ts.map +1 -1
- package/dist/storage/index.cjs +15 -17
- package/dist/storage/index.cjs.map +1 -1
- package/dist/storage/index.js +4 -6
- package/dist/storage/index.js.map +1 -1
- package/dist/stream/aisdk/v4/transform.d.ts +26 -0
- package/dist/stream/aisdk/v4/transform.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/compat.d.ts +159 -0
- package/dist/stream/aisdk/v5/compat.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/execute.d.ts +29 -0
- package/dist/stream/aisdk/v5/execute.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/file.d.ts +38 -0
- package/dist/stream/aisdk/v5/file.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/input.d.ts +15 -0
- package/dist/stream/aisdk/v5/input.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/object/schema.d.ts +4 -0
- package/dist/stream/aisdk/v5/object/schema.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/object/stream-object.d.ts +34 -0
- package/dist/stream/aisdk/v5/object/stream-object.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/output-helpers.d.ts +76 -0
- package/dist/stream/aisdk/v5/output-helpers.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/output.d.ts +119 -0
- package/dist/stream/aisdk/v5/output.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/test-utils.d.ts +19 -0
- package/dist/stream/aisdk/v5/test-utils.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/transform.d.ts +31 -0
- package/dist/stream/aisdk/v5/transform.d.ts.map +1 -0
- package/dist/stream/base/input.d.ts +1 -1
- package/dist/stream/base/output.d.ts +89 -0
- package/dist/stream/base/output.d.ts.map +1 -0
- package/dist/stream/types.d.ts +30 -0
- package/dist/stream/types.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.cjs +2 -2
- package/dist/test-utils/llm-mock.cjs.map +1 -1
- package/dist/test-utils/llm-mock.d.ts +2 -2
- package/dist/test-utils/llm-mock.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.js +2 -2
- package/dist/test-utils/llm-mock.js.map +1 -1
- package/dist/tools/tool-builder/builder.d.ts +3 -2
- package/dist/tools/tool-builder/builder.d.ts.map +1 -1
- package/dist/tools/types.d.ts +9 -0
- 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 +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.cjs +19 -15
- package/dist/utils.d.ts +3 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -1
- package/dist/vector/index.cjs +2 -2
- 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/index.cjs +10 -10
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/legacy/index.cjs +22 -22
- package/dist/workflows/legacy/index.js +1 -1
- package/loop.d.ts +1 -0
- package/package.json +16 -1
- package/processors.d.ts +1 -0
- package/dist/agent/input-processor/processors/index.cjs +0 -28
- package/dist/agent/input-processor/processors/index.js +0 -3
- package/dist/agent/input-processor/runner.d.ts +0 -4
- package/dist/agent/input-processor/runner.d.ts.map +0 -1
- package/dist/chunk-6AR2Z5ZG.js.map +0 -1
- package/dist/chunk-7E2SNI5D.cjs.map +0 -1
- package/dist/chunk-DCOKWJ5G.cjs.map +0 -1
- package/dist/chunk-IDDUQR6P.cjs.map +0 -1
- package/dist/chunk-IL5SHDY4.js.map +0 -1
- package/dist/chunk-IP5NGA2S.cjs +0 -14
- package/dist/chunk-L6YBPFYF.js.map +0 -1
- package/dist/chunk-MH64VYGF.cjs.map +0 -1
- package/dist/chunk-MTRRRTB4.js.map +0 -1
- package/dist/chunk-N2KMAW6T.js.map +0 -1
- package/dist/chunk-N3VGOJZV.cjs.map +0 -1
- package/dist/chunk-R4HT5XUH.cjs.map +0 -1
- package/dist/chunk-TOODGJKM.js.map +0 -1
- package/dist/chunk-TZOR5M7H.js.map +0 -1
- package/dist/chunk-Z74LG5VH.cjs.map +0 -1
- package/dist/llm/model/base.d.ts +0 -26
- package/dist/llm/model/base.d.ts.map +0 -1
- /package/dist/agent/input-processor/{processors/index.cjs.map → index.cjs.map} +0 -0
- /package/dist/agent/input-processor/{processors/index.js.map → index.js.map} +0 -0
package/dist/ai-tracing/index.js
CHANGED
|
@@ -1,36 +1,47 @@
|
|
|
1
1
|
import { MastraError } from '../chunk-4O4YNORN.js';
|
|
2
|
-
import { MastraBase } from '../chunk-
|
|
3
|
-
import { ConsoleLogger, RegisteredLogger } from '../chunk-
|
|
2
|
+
import { MastraBase } from '../chunk-6GF5M4GX.js';
|
|
3
|
+
import { ConsoleLogger, LogLevel, RegisteredLogger } from '../chunk-X3GXU6TZ.js';
|
|
4
4
|
|
|
5
5
|
// src/ai-tracing/no-op.ts
|
|
6
6
|
var NoOpAISpan = class _NoOpAISpan {
|
|
7
7
|
id;
|
|
8
8
|
name;
|
|
9
9
|
type;
|
|
10
|
-
|
|
10
|
+
attributes;
|
|
11
|
+
parent;
|
|
11
12
|
trace;
|
|
12
13
|
traceId;
|
|
13
14
|
startTime;
|
|
14
15
|
endTime;
|
|
15
16
|
aiTracing;
|
|
17
|
+
input;
|
|
18
|
+
output;
|
|
19
|
+
errorInfo;
|
|
20
|
+
metadata;
|
|
16
21
|
constructor(options, aiTracing) {
|
|
17
22
|
this.id = "no-op";
|
|
18
23
|
this.name = options.name;
|
|
19
24
|
this.type = options.type;
|
|
25
|
+
this.attributes = options.attributes || {};
|
|
20
26
|
this.metadata = options.metadata;
|
|
27
|
+
this.parent = options.parent;
|
|
21
28
|
this.trace = options.parent ? options.parent.trace : this;
|
|
22
29
|
this.traceId = "no-op-trace";
|
|
23
30
|
this.startTime = /* @__PURE__ */ new Date();
|
|
24
31
|
this.aiTracing = aiTracing;
|
|
32
|
+
this.input = options.input;
|
|
33
|
+
}
|
|
34
|
+
end(_options) {
|
|
25
35
|
}
|
|
26
|
-
|
|
36
|
+
error(_options) {
|
|
27
37
|
}
|
|
28
|
-
|
|
38
|
+
createChildSpan(options) {
|
|
39
|
+
return new _NoOpAISpan({ ...options, parent: this }, this.aiTracing);
|
|
29
40
|
}
|
|
30
|
-
|
|
31
|
-
return new _NoOpAISpan({ type, name, metadata, parent: this }, this.aiTracing);
|
|
41
|
+
update(_options) {
|
|
32
42
|
}
|
|
33
|
-
|
|
43
|
+
get isRootSpan() {
|
|
44
|
+
return !this.parent;
|
|
34
45
|
}
|
|
35
46
|
};
|
|
36
47
|
|
|
@@ -63,9 +74,23 @@ var AITracingEventType = /* @__PURE__ */ ((AITracingEventType2) => {
|
|
|
63
74
|
var MastraAITracing = class extends MastraBase {
|
|
64
75
|
config;
|
|
65
76
|
constructor(config) {
|
|
66
|
-
super({ component: RegisteredLogger.
|
|
67
|
-
this.config =
|
|
68
|
-
|
|
77
|
+
super({ component: RegisteredLogger.AI_TRACING, name: config.serviceName });
|
|
78
|
+
this.config = {
|
|
79
|
+
serviceName: config.serviceName,
|
|
80
|
+
instanceName: config.instanceName,
|
|
81
|
+
sampling: config.sampling ?? { type: "always" /* ALWAYS */ },
|
|
82
|
+
exporters: config.exporters ?? [],
|
|
83
|
+
processors: config.processors ?? []
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Override setLogger to add AI tracing specific initialization log
|
|
88
|
+
*/
|
|
89
|
+
__setLogger(logger) {
|
|
90
|
+
super.__setLogger(logger);
|
|
91
|
+
this.logger.debug(
|
|
92
|
+
`[AI Tracing] Initialized [service=${this.config.serviceName}] [instance=${this.config.instanceName}] [sampling=${this.config.sampling.type}]`
|
|
93
|
+
);
|
|
69
94
|
}
|
|
70
95
|
// ============================================================================
|
|
71
96
|
// Protected getters for clean config access
|
|
@@ -82,18 +107,21 @@ var MastraAITracing = class extends MastraBase {
|
|
|
82
107
|
/**
|
|
83
108
|
* Start a new span of a specific AISpanType
|
|
84
109
|
*/
|
|
85
|
-
startSpan(
|
|
86
|
-
|
|
87
|
-
|
|
110
|
+
startSpan(options) {
|
|
111
|
+
const { type, name, input, attributes, metadata, parent, startOptions } = options;
|
|
112
|
+
const { runtimeContext } = startOptions || {};
|
|
113
|
+
if (!this.shouldSample({ runtimeContext })) {
|
|
114
|
+
return new NoOpAISpan({ type, name, input, attributes, metadata, parent }, this);
|
|
88
115
|
}
|
|
89
|
-
const
|
|
116
|
+
const spanOptions = {
|
|
90
117
|
type,
|
|
91
118
|
name,
|
|
119
|
+
input,
|
|
120
|
+
attributes,
|
|
92
121
|
metadata,
|
|
93
122
|
parent
|
|
94
123
|
};
|
|
95
|
-
const span = this.createSpan(
|
|
96
|
-
span.trace = parent ? parent.trace : span;
|
|
124
|
+
const span = this.createSpan(spanOptions);
|
|
97
125
|
this.wireSpanLifecycle(span);
|
|
98
126
|
this.emitSpanStarted(span);
|
|
99
127
|
return span;
|
|
@@ -138,12 +166,12 @@ var MastraAITracing = class extends MastraBase {
|
|
|
138
166
|
wireSpanLifecycle(span) {
|
|
139
167
|
const originalEnd = span.end.bind(span);
|
|
140
168
|
const originalUpdate = span.update.bind(span);
|
|
141
|
-
span.end = (
|
|
142
|
-
originalEnd(
|
|
169
|
+
span.end = (options) => {
|
|
170
|
+
originalEnd(options);
|
|
143
171
|
this.emitSpanEnded(span);
|
|
144
172
|
};
|
|
145
|
-
span.update = (
|
|
146
|
-
originalUpdate(
|
|
173
|
+
span.update = (options) => {
|
|
174
|
+
originalUpdate(options);
|
|
147
175
|
this.emitSpanUpdated(span);
|
|
148
176
|
};
|
|
149
177
|
}
|
|
@@ -186,7 +214,7 @@ var MastraAITracing = class extends MastraBase {
|
|
|
186
214
|
try {
|
|
187
215
|
processedSpan = processor.process(processedSpan);
|
|
188
216
|
} catch (error) {
|
|
189
|
-
this.logger.error(`Processor error [name=${processor.name}]`, error);
|
|
217
|
+
this.logger.error(`[AI Tracing] Processor error [name=${processor.name}]`, error);
|
|
190
218
|
}
|
|
191
219
|
}
|
|
192
220
|
return processedSpan;
|
|
@@ -201,7 +229,7 @@ var MastraAITracing = class extends MastraBase {
|
|
|
201
229
|
const processedSpan = this.processSpan(span);
|
|
202
230
|
if (processedSpan) {
|
|
203
231
|
this.exportEvent({ type: "span_started" /* SPAN_STARTED */, span: processedSpan }).catch((error) => {
|
|
204
|
-
this.logger.error("Failed to export span_started event", error);
|
|
232
|
+
this.logger.error("[AI Tracing] Failed to export span_started event", error);
|
|
205
233
|
});
|
|
206
234
|
}
|
|
207
235
|
}
|
|
@@ -212,7 +240,7 @@ var MastraAITracing = class extends MastraBase {
|
|
|
212
240
|
const processedSpan = this.processSpan(span);
|
|
213
241
|
if (processedSpan) {
|
|
214
242
|
this.exportEvent({ type: "span_ended" /* SPAN_ENDED */, span: processedSpan }).catch((error) => {
|
|
215
|
-
this.logger.error("Failed to export span_ended event", error);
|
|
243
|
+
this.logger.error("[AI Tracing] Failed to export span_ended event", error);
|
|
216
244
|
});
|
|
217
245
|
}
|
|
218
246
|
}
|
|
@@ -223,7 +251,7 @@ var MastraAITracing = class extends MastraBase {
|
|
|
223
251
|
const processedSpan = this.processSpan(span);
|
|
224
252
|
if (processedSpan) {
|
|
225
253
|
this.exportEvent({ type: "span_updated" /* SPAN_UPDATED */, span: processedSpan }).catch((error) => {
|
|
226
|
-
this.logger.error("Failed to export span_updated event", error);
|
|
254
|
+
this.logger.error("[AI Tracing] Failed to export span_updated event", error);
|
|
227
255
|
});
|
|
228
256
|
}
|
|
229
257
|
}
|
|
@@ -235,10 +263,10 @@ var MastraAITracing = class extends MastraBase {
|
|
|
235
263
|
try {
|
|
236
264
|
if (exporter.exportEvent) {
|
|
237
265
|
await exporter.exportEvent(event);
|
|
238
|
-
this.logger.debug(`Event exported [exporter=${exporter.name}] [type=${event.type}]`);
|
|
266
|
+
this.logger.debug(`[AI Tracing] Event exported [exporter=${exporter.name}] [type=${event.type}]`);
|
|
239
267
|
}
|
|
240
268
|
} catch (error) {
|
|
241
|
-
this.logger.error(`Export error [exporter=${exporter.name}]`, error);
|
|
269
|
+
this.logger.error(`[AI Tracing] Export error [exporter=${exporter.name}]`, error);
|
|
242
270
|
}
|
|
243
271
|
});
|
|
244
272
|
await Promise.allSettled(exportPromises);
|
|
@@ -250,17 +278,17 @@ var MastraAITracing = class extends MastraBase {
|
|
|
250
278
|
* Initialize AI tracing (called by Mastra during component registration)
|
|
251
279
|
*/
|
|
252
280
|
async init() {
|
|
253
|
-
this.logger.debug(`AI Tracing
|
|
254
|
-
this.logger.info(`AI Tracing
|
|
281
|
+
this.logger.debug(`[AI Tracing] Initialization started [name=${this.name}]`);
|
|
282
|
+
this.logger.info(`[AI Tracing] Initialized successfully [name=${this.name}]`);
|
|
255
283
|
}
|
|
256
284
|
/**
|
|
257
285
|
* Shutdown AI tracing and clean up resources
|
|
258
286
|
*/
|
|
259
287
|
async shutdown() {
|
|
260
|
-
this.logger.debug(`AI Tracing
|
|
288
|
+
this.logger.debug(`[AI Tracing] Shutdown started [name=${this.name}]`);
|
|
261
289
|
const shutdownPromises = [...this.exporters.map((e) => e.shutdown()), ...this.processors.map((p) => p.shutdown())];
|
|
262
290
|
await Promise.allSettled(shutdownPromises);
|
|
263
|
-
this.logger.info(`AI Tracing
|
|
291
|
+
this.logger.info(`[AI Tracing] Shutdown completed [name=${this.name}]`);
|
|
264
292
|
}
|
|
265
293
|
};
|
|
266
294
|
|
|
@@ -291,61 +319,96 @@ var DefaultAISpan = class {
|
|
|
291
319
|
id;
|
|
292
320
|
name;
|
|
293
321
|
type;
|
|
294
|
-
|
|
322
|
+
attributes;
|
|
323
|
+
parent;
|
|
295
324
|
trace;
|
|
296
325
|
traceId;
|
|
297
326
|
startTime;
|
|
298
327
|
endTime;
|
|
299
328
|
aiTracing;
|
|
329
|
+
input;
|
|
330
|
+
output;
|
|
331
|
+
errorInfo;
|
|
332
|
+
metadata;
|
|
300
333
|
constructor(options, aiTracing) {
|
|
301
334
|
this.id = generateSpanId();
|
|
302
335
|
this.name = options.name;
|
|
303
336
|
this.type = options.type;
|
|
337
|
+
this.attributes = options.attributes || {};
|
|
304
338
|
this.metadata = options.metadata;
|
|
339
|
+
this.parent = options.parent;
|
|
305
340
|
this.trace = options.parent ? options.parent.trace : this;
|
|
306
341
|
this.startTime = /* @__PURE__ */ new Date();
|
|
307
342
|
this.aiTracing = aiTracing;
|
|
343
|
+
this.input = options.input;
|
|
308
344
|
if (!options.parent) {
|
|
309
345
|
this.traceId = generateTraceId();
|
|
310
346
|
} else {
|
|
311
347
|
this.traceId = options.parent.trace.traceId;
|
|
312
348
|
}
|
|
313
349
|
}
|
|
314
|
-
end(
|
|
350
|
+
end(options) {
|
|
315
351
|
this.endTime = /* @__PURE__ */ new Date();
|
|
316
|
-
if (
|
|
317
|
-
this.
|
|
352
|
+
if (options?.output !== void 0) {
|
|
353
|
+
this.output = options.output;
|
|
354
|
+
}
|
|
355
|
+
if (options?.attributes) {
|
|
356
|
+
this.attributes = { ...this.attributes, ...options.attributes };
|
|
357
|
+
}
|
|
358
|
+
if (options?.metadata) {
|
|
359
|
+
this.metadata = { ...this.metadata, ...options.metadata };
|
|
318
360
|
}
|
|
319
361
|
}
|
|
320
|
-
error(
|
|
321
|
-
const
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
}
|
|
362
|
+
error(options) {
|
|
363
|
+
const { error, endSpan = true, attributes, metadata } = options;
|
|
364
|
+
this.errorInfo = error instanceof MastraError ? {
|
|
365
|
+
id: error.id,
|
|
366
|
+
details: error.details,
|
|
367
|
+
category: error.category,
|
|
368
|
+
domain: error.domain,
|
|
369
|
+
message: error.message
|
|
329
370
|
} : {
|
|
330
|
-
|
|
331
|
-
message: error.message
|
|
332
|
-
}
|
|
371
|
+
message: error.message
|
|
333
372
|
};
|
|
373
|
+
if (attributes) {
|
|
374
|
+
this.attributes = { ...this.attributes, ...attributes };
|
|
375
|
+
}
|
|
376
|
+
if (metadata) {
|
|
377
|
+
this.metadata = { ...this.metadata, ...metadata };
|
|
378
|
+
}
|
|
334
379
|
if (endSpan) {
|
|
335
|
-
this.end(
|
|
380
|
+
this.end();
|
|
336
381
|
} else {
|
|
337
|
-
this.update(
|
|
382
|
+
this.update({});
|
|
338
383
|
}
|
|
339
384
|
}
|
|
340
|
-
createChildSpan(
|
|
341
|
-
return this.aiTracing.startSpan(
|
|
385
|
+
createChildSpan(options) {
|
|
386
|
+
return this.aiTracing.startSpan({
|
|
387
|
+
...options,
|
|
388
|
+
parent: this
|
|
389
|
+
});
|
|
390
|
+
}
|
|
391
|
+
update(options) {
|
|
392
|
+
if (options?.input !== void 0) {
|
|
393
|
+
this.input = options.input;
|
|
394
|
+
}
|
|
395
|
+
if (options?.output !== void 0) {
|
|
396
|
+
this.output = options.output;
|
|
397
|
+
}
|
|
398
|
+
if (options?.attributes) {
|
|
399
|
+
this.attributes = { ...this.attributes, ...options.attributes };
|
|
400
|
+
}
|
|
401
|
+
if (options?.metadata) {
|
|
402
|
+
this.metadata = { ...this.metadata, ...options.metadata };
|
|
403
|
+
}
|
|
342
404
|
}
|
|
343
|
-
|
|
344
|
-
|
|
405
|
+
get isRootSpan() {
|
|
406
|
+
return !this.parent;
|
|
345
407
|
}
|
|
346
408
|
async export() {
|
|
347
409
|
return JSON.stringify({
|
|
348
410
|
id: this.id,
|
|
411
|
+
attributes: this.attributes,
|
|
349
412
|
metadata: this.metadata,
|
|
350
413
|
startTime: this.startTime,
|
|
351
414
|
endTime: this.endTime,
|
|
@@ -400,12 +463,16 @@ var SensitiveDataFilter = class {
|
|
|
400
463
|
};
|
|
401
464
|
try {
|
|
402
465
|
const filteredSpan = { ...span };
|
|
466
|
+
filteredSpan.attributes = deepFilter(span.attributes);
|
|
403
467
|
filteredSpan.metadata = deepFilter(span.metadata);
|
|
468
|
+
filteredSpan.input = deepFilter(span.input);
|
|
469
|
+
filteredSpan.output = deepFilter(span.output);
|
|
470
|
+
filteredSpan.errorInfo = deepFilter(span.errorInfo);
|
|
404
471
|
return filteredSpan;
|
|
405
472
|
} catch (error) {
|
|
406
473
|
const safeSpan = { ...span };
|
|
407
|
-
safeSpan.
|
|
408
|
-
"[FILTERING_ERROR]": "
|
|
474
|
+
safeSpan.attributes = {
|
|
475
|
+
"[FILTERING_ERROR]": "Attributes were completely redacted due to filtering error",
|
|
409
476
|
"[ERROR_MESSAGE]": error instanceof Error ? error.message : "Unknown filtering error"
|
|
410
477
|
};
|
|
411
478
|
return safeSpan;
|
|
@@ -422,18 +489,20 @@ var DefaultConsoleExporter = class {
|
|
|
422
489
|
this.logger = logger;
|
|
423
490
|
} else {
|
|
424
491
|
this.logger = new ConsoleLogger({
|
|
425
|
-
name: "default-console-exporter"
|
|
492
|
+
name: "default-console-exporter",
|
|
493
|
+
level: LogLevel.INFO
|
|
494
|
+
// Set to INFO so that info() calls actually log
|
|
426
495
|
});
|
|
427
496
|
}
|
|
428
497
|
}
|
|
429
498
|
async exportEvent(event) {
|
|
430
499
|
const span = event.span;
|
|
431
|
-
const
|
|
500
|
+
const formatAttributes = (attributes) => {
|
|
432
501
|
try {
|
|
433
|
-
return JSON.stringify(
|
|
502
|
+
return JSON.stringify(attributes, null, 2);
|
|
434
503
|
} catch (error) {
|
|
435
504
|
const errMsg = error instanceof Error ? error.message : "Unknown formatting error";
|
|
436
|
-
return `[Unable to serialize
|
|
505
|
+
return `[Unable to serialize attributes: ${errMsg}]`;
|
|
437
506
|
}
|
|
438
507
|
};
|
|
439
508
|
const formatDuration = (startTime, endTime) => {
|
|
@@ -448,7 +517,10 @@ var DefaultConsoleExporter = class {
|
|
|
448
517
|
this.logger.info(` Name: ${span.name}`);
|
|
449
518
|
this.logger.info(` ID: ${span.id}`);
|
|
450
519
|
this.logger.info(` Trace ID: ${span.traceId}`);
|
|
451
|
-
|
|
520
|
+
if (span.input !== void 0) {
|
|
521
|
+
this.logger.info(` Input: ${formatAttributes(span.input)}`);
|
|
522
|
+
}
|
|
523
|
+
this.logger.info(` Attributes: ${formatAttributes(span.attributes)}`);
|
|
452
524
|
this.logger.info("\u2500".repeat(80));
|
|
453
525
|
break;
|
|
454
526
|
case "span_ended" /* SPAN_ENDED */:
|
|
@@ -459,7 +531,16 @@ var DefaultConsoleExporter = class {
|
|
|
459
531
|
this.logger.info(` ID: ${span.id}`);
|
|
460
532
|
this.logger.info(` Duration: ${duration}`);
|
|
461
533
|
this.logger.info(` Trace ID: ${span.traceId}`);
|
|
462
|
-
|
|
534
|
+
if (span.input !== void 0) {
|
|
535
|
+
this.logger.info(` Input: ${formatAttributes(span.input)}`);
|
|
536
|
+
}
|
|
537
|
+
if (span.output !== void 0) {
|
|
538
|
+
this.logger.info(` Output: ${formatAttributes(span.output)}`);
|
|
539
|
+
}
|
|
540
|
+
if (span.errorInfo) {
|
|
541
|
+
this.logger.info(` Error: ${formatAttributes(span.errorInfo)}`);
|
|
542
|
+
}
|
|
543
|
+
this.logger.info(` Attributes: ${formatAttributes(span.attributes)}`);
|
|
463
544
|
this.logger.info("\u2500".repeat(80));
|
|
464
545
|
break;
|
|
465
546
|
case "span_updated" /* SPAN_UPDATED */:
|
|
@@ -468,7 +549,16 @@ var DefaultConsoleExporter = class {
|
|
|
468
549
|
this.logger.info(` Name: ${span.name}`);
|
|
469
550
|
this.logger.info(` ID: ${span.id}`);
|
|
470
551
|
this.logger.info(` Trace ID: ${span.traceId}`);
|
|
471
|
-
|
|
552
|
+
if (span.input !== void 0) {
|
|
553
|
+
this.logger.info(` Input: ${formatAttributes(span.input)}`);
|
|
554
|
+
}
|
|
555
|
+
if (span.output !== void 0) {
|
|
556
|
+
this.logger.info(` Output: ${formatAttributes(span.output)}`);
|
|
557
|
+
}
|
|
558
|
+
if (span.errorInfo) {
|
|
559
|
+
this.logger.info(` Error: ${formatAttributes(span.errorInfo)}`);
|
|
560
|
+
}
|
|
561
|
+
this.logger.info(` Updated Attributes: ${formatAttributes(span.attributes)}`);
|
|
472
562
|
this.logger.info("\u2500".repeat(80));
|
|
473
563
|
break;
|
|
474
564
|
default:
|
|
@@ -481,6 +571,7 @@ var DefaultConsoleExporter = class {
|
|
|
481
571
|
};
|
|
482
572
|
var aiTracingDefaultConfig = {
|
|
483
573
|
serviceName: "mastra-ai-service",
|
|
574
|
+
instanceName: "default",
|
|
484
575
|
sampling: { type: "always" /* ALWAYS */ },
|
|
485
576
|
exporters: [new DefaultConsoleExporter()],
|
|
486
577
|
// Uses its own fallback logger
|
|
@@ -502,10 +593,14 @@ var DefaultAITracing = class extends MastraAITracing {
|
|
|
502
593
|
var AITracingRegistry = class {
|
|
503
594
|
instances = /* @__PURE__ */ new Map();
|
|
504
595
|
defaultInstance;
|
|
596
|
+
selector;
|
|
505
597
|
/**
|
|
506
598
|
* Register a tracing instance
|
|
507
599
|
*/
|
|
508
600
|
register(name, instance, isDefault = false) {
|
|
601
|
+
if (this.instances.has(name)) {
|
|
602
|
+
throw new Error(`AI Tracing instance '${name}' already registered`);
|
|
603
|
+
}
|
|
509
604
|
this.instances.set(name, instance);
|
|
510
605
|
if (isDefault || !this.defaultInstance) {
|
|
511
606
|
this.defaultInstance = instance;
|
|
@@ -515,8 +610,29 @@ var AITracingRegistry = class {
|
|
|
515
610
|
* Get a tracing instance by name
|
|
516
611
|
*/
|
|
517
612
|
get(name) {
|
|
518
|
-
|
|
519
|
-
|
|
613
|
+
return this.instances.get(name);
|
|
614
|
+
}
|
|
615
|
+
/**
|
|
616
|
+
* Get the default tracing instance
|
|
617
|
+
*/
|
|
618
|
+
getDefault() {
|
|
619
|
+
return this.defaultInstance;
|
|
620
|
+
}
|
|
621
|
+
/**
|
|
622
|
+
* Set the tracing selector function
|
|
623
|
+
*/
|
|
624
|
+
setSelector(selector) {
|
|
625
|
+
this.selector = selector;
|
|
626
|
+
}
|
|
627
|
+
/**
|
|
628
|
+
* Get the selected tracing instance based on context
|
|
629
|
+
*/
|
|
630
|
+
getSelected(context) {
|
|
631
|
+
if (this.selector) {
|
|
632
|
+
const selected = this.selector(context, this.instances);
|
|
633
|
+
if (selected && this.instances.has(selected)) {
|
|
634
|
+
return this.instances.get(selected);
|
|
635
|
+
}
|
|
520
636
|
}
|
|
521
637
|
return this.defaultInstance;
|
|
522
638
|
}
|
|
@@ -524,19 +640,23 @@ var AITracingRegistry = class {
|
|
|
524
640
|
* Unregister a tracing instance
|
|
525
641
|
*/
|
|
526
642
|
unregister(name) {
|
|
527
|
-
const instance = this.instances.get(name);
|
|
528
|
-
if (instance && instance === this.defaultInstance) {
|
|
529
|
-
const remaining = Array.from(this.instances.values()).filter((i) => i !== instance);
|
|
530
|
-
this.defaultInstance = remaining[0];
|
|
531
|
-
}
|
|
532
643
|
return this.instances.delete(name);
|
|
533
644
|
}
|
|
534
645
|
/**
|
|
535
|
-
*
|
|
646
|
+
* Shutdown all instances and clear the registry
|
|
647
|
+
*/
|
|
648
|
+
async shutdown() {
|
|
649
|
+
const shutdownPromises = Array.from(this.instances.values()).map((instance) => instance.shutdown());
|
|
650
|
+
await Promise.allSettled(shutdownPromises);
|
|
651
|
+
this.instances.clear();
|
|
652
|
+
}
|
|
653
|
+
/**
|
|
654
|
+
* Clear all instances without shutdown
|
|
536
655
|
*/
|
|
537
656
|
clear() {
|
|
538
657
|
this.instances.clear();
|
|
539
658
|
this.defaultInstance = void 0;
|
|
659
|
+
this.selector = void 0;
|
|
540
660
|
}
|
|
541
661
|
/**
|
|
542
662
|
* Get all registered instances
|
|
@@ -552,12 +672,27 @@ function registerAITracing(name, instance, isDefault = false) {
|
|
|
552
672
|
function getAITracing(name) {
|
|
553
673
|
return aiTracingRegistry.get(name);
|
|
554
674
|
}
|
|
675
|
+
function getDefaultAITracing() {
|
|
676
|
+
return aiTracingRegistry.getDefault();
|
|
677
|
+
}
|
|
678
|
+
function setAITracingSelector(selector) {
|
|
679
|
+
aiTracingRegistry.setSelector(selector);
|
|
680
|
+
}
|
|
681
|
+
function getSelectedAITracing(context) {
|
|
682
|
+
return aiTracingRegistry.getSelected(context);
|
|
683
|
+
}
|
|
555
684
|
function unregisterAITracing(name) {
|
|
556
685
|
return aiTracingRegistry.unregister(name);
|
|
557
686
|
}
|
|
687
|
+
async function shutdownAITracingRegistry() {
|
|
688
|
+
await aiTracingRegistry.shutdown();
|
|
689
|
+
}
|
|
558
690
|
function clearAITracingRegistry() {
|
|
559
691
|
aiTracingRegistry.clear();
|
|
560
692
|
}
|
|
693
|
+
function getAllAITracing() {
|
|
694
|
+
return aiTracingRegistry.getAll();
|
|
695
|
+
}
|
|
561
696
|
function hasAITracing(name) {
|
|
562
697
|
const tracing = getAITracing(name);
|
|
563
698
|
if (!tracing) return false;
|
|
@@ -565,7 +700,44 @@ function hasAITracing(name) {
|
|
|
565
700
|
const sampling = config.sampling;
|
|
566
701
|
return sampling.type !== "never" /* NEVER */;
|
|
567
702
|
}
|
|
703
|
+
function isAITracingInstance(obj) {
|
|
704
|
+
return obj instanceof MastraAITracing;
|
|
705
|
+
}
|
|
706
|
+
function setupAITracing(config) {
|
|
707
|
+
const entries = Object.entries(config.instances);
|
|
708
|
+
entries.forEach(([name, tracingDef], index) => {
|
|
709
|
+
const instance = isAITracingInstance(tracingDef) ? tracingDef : new DefaultAITracing({ ...tracingDef, instanceName: name });
|
|
710
|
+
const isDefault = index === 0;
|
|
711
|
+
registerAITracing(name, instance, isDefault);
|
|
712
|
+
});
|
|
713
|
+
if (config.selector) {
|
|
714
|
+
setAITracingSelector(config.selector);
|
|
715
|
+
}
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
// src/ai-tracing/utils.ts
|
|
719
|
+
function sanitizeMetadata(metadata) {
|
|
720
|
+
if (!metadata) return {};
|
|
721
|
+
const sanitized = {};
|
|
722
|
+
for (const [key, value] of Object.entries(metadata)) {
|
|
723
|
+
if (isSerializable(value)) {
|
|
724
|
+
sanitized[key] = value;
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
return sanitized;
|
|
728
|
+
}
|
|
729
|
+
function isSerializable(value) {
|
|
730
|
+
try {
|
|
731
|
+
JSON.stringify(value);
|
|
732
|
+
return true;
|
|
733
|
+
} catch {
|
|
734
|
+
return false;
|
|
735
|
+
}
|
|
736
|
+
}
|
|
737
|
+
function omitKeys(obj, keysToOmit) {
|
|
738
|
+
return Object.fromEntries(Object.entries(obj).filter(([key]) => !keysToOmit.includes(key)));
|
|
739
|
+
}
|
|
568
740
|
|
|
569
|
-
export { AISpanType, AITracingEventType, DefaultAITracing, DefaultConsoleExporter, MastraAITracing, SamplingStrategyType, SensitiveDataFilter, aiTracingDefaultConfig, clearAITracingRegistry, getAITracing, hasAITracing, registerAITracing, unregisterAITracing };
|
|
741
|
+
export { AISpanType, AITracingEventType, DefaultAITracing, DefaultConsoleExporter, MastraAITracing, SamplingStrategyType, SensitiveDataFilter, aiTracingDefaultConfig, clearAITracingRegistry, getAITracing, getAllAITracing, getDefaultAITracing, getSelectedAITracing, hasAITracing, isSerializable, omitKeys, registerAITracing, sanitizeMetadata, setAITracingSelector, setupAITracing, shutdownAITracingRegistry, unregisterAITracing };
|
|
570
742
|
//# sourceMappingURL=index.js.map
|
|
571
743
|
//# sourceMappingURL=index.js.map
|