@mastra/core 1.20.0 → 1.21.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/CHANGELOG.md +34 -0
- package/dist/_types/@internal_core/dist/index.d.ts +12 -2
- package/dist/agent/agent-legacy.d.ts +2 -1
- package/dist/agent/agent-legacy.d.ts.map +1 -1
- package/dist/agent/agent.d.ts +32 -2
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/index.cjs +8 -8
- package/dist/agent/index.js +1 -1
- package/dist/{chunk-RB7WTRE2.js → chunk-2JJQDDEN.js} +8 -6
- package/dist/chunk-2JJQDDEN.js.map +1 -0
- package/dist/{chunk-2QO3IQWR.cjs → chunk-2STTKMFO.cjs} +82 -82
- package/dist/{chunk-2QO3IQWR.cjs.map → chunk-2STTKMFO.cjs.map} +1 -1
- package/dist/{chunk-3FW24B6P.cjs → chunk-3EPAGV3T.cjs} +4 -4
- package/dist/{chunk-3FW24B6P.cjs.map → chunk-3EPAGV3T.cjs.map} +1 -1
- package/dist/{chunk-F3OO446O.cjs → chunk-3OK3LWP4.cjs} +34 -32
- package/dist/chunk-3OK3LWP4.cjs.map +1 -0
- package/dist/{chunk-7JKIBZI7.js → chunk-5QQZSWLU.js} +4 -4
- package/dist/{chunk-7JKIBZI7.js.map → chunk-5QQZSWLU.js.map} +1 -1
- package/dist/{chunk-7URCVA7N.js → chunk-6PJQGNFV.js} +10 -10
- package/dist/chunk-6PJQGNFV.js.map +1 -0
- package/dist/{chunk-ED6CLXQI.cjs → chunk-75LYWKFT.cjs} +25 -25
- package/dist/chunk-75LYWKFT.cjs.map +1 -0
- package/dist/{chunk-53NCHPV5.cjs → chunk-AL5ACSAH.cjs} +7 -7
- package/dist/{chunk-53NCHPV5.cjs.map → chunk-AL5ACSAH.cjs.map} +1 -1
- package/dist/{chunk-S3JFAGMH.js → chunk-B4KB75RH.js} +67 -21
- package/dist/chunk-B4KB75RH.js.map +1 -0
- package/dist/{chunk-3R4YK3VD.js → chunk-CJA2FWKT.js} +3 -3
- package/dist/{chunk-3R4YK3VD.js.map → chunk-CJA2FWKT.js.map} +1 -1
- package/dist/{chunk-FQCASJGT.js → chunk-D7NEB3NV.js} +5 -5
- package/dist/{chunk-FQCASJGT.js.map → chunk-D7NEB3NV.js.map} +1 -1
- package/dist/{chunk-CRGRF7QL.cjs → chunk-E4TMODUG.cjs} +75 -29
- package/dist/chunk-E4TMODUG.cjs.map +1 -0
- package/dist/{chunk-Q4YIRO5A.js → chunk-ESQI2JRD.js} +5 -3
- package/dist/chunk-ESQI2JRD.js.map +1 -0
- package/dist/{chunk-57OYWNNV.cjs → chunk-EX2LVHTL.cjs} +97 -288
- package/dist/chunk-EX2LVHTL.cjs.map +1 -0
- package/dist/{chunk-J7AHOVB2.cjs → chunk-F6ZURDS4.cjs} +368 -218
- package/dist/chunk-F6ZURDS4.cjs.map +1 -0
- package/dist/chunk-FAULJTC5.js +290 -0
- package/dist/chunk-FAULJTC5.js.map +1 -0
- package/dist/{chunk-T72NHA2O.cjs → chunk-FJT6H2US.cjs} +3 -3
- package/dist/chunk-FJT6H2US.cjs.map +1 -0
- package/dist/{chunk-BCOOJFBB.js → chunk-GGJSRBFY.js} +13 -7
- package/dist/chunk-GGJSRBFY.js.map +1 -0
- package/dist/{chunk-CU6QKXLW.js → chunk-HU6OWHBI.js} +3 -3
- package/dist/{chunk-CU6QKXLW.js.map → chunk-HU6OWHBI.js.map} +1 -1
- package/dist/{chunk-JBOVTCTQ.cjs → chunk-I7AUCCNO.cjs} +69 -69
- package/dist/{chunk-JBOVTCTQ.cjs.map → chunk-I7AUCCNO.cjs.map} +1 -1
- package/dist/{chunk-GFRRPVRL.cjs → chunk-IG6JCDCL.cjs} +185 -185
- package/dist/{chunk-GFRRPVRL.cjs.map → chunk-IG6JCDCL.cjs.map} +1 -1
- package/dist/{chunk-UFXC6VJW.js → chunk-JB7HORUI.js} +3 -3
- package/dist/{chunk-UFXC6VJW.js.map → chunk-JB7HORUI.js.map} +1 -1
- package/dist/{chunk-2H6WEHWI.js → chunk-JBLN5IVV.js} +4 -4
- package/dist/{chunk-2H6WEHWI.js.map → chunk-JBLN5IVV.js.map} +1 -1
- package/dist/{chunk-HOAKFZ6P.js → chunk-JIA3SJK6.js} +198 -48
- package/dist/chunk-JIA3SJK6.js.map +1 -0
- package/dist/{chunk-MIWHSH7L.js → chunk-KLHD3PBK.js} +3 -3
- package/dist/chunk-KLHD3PBK.js.map +1 -0
- package/dist/{chunk-5PAHRQLU.js → chunk-ODUJYYA5.js} +32 -7
- package/dist/chunk-ODUJYYA5.js.map +1 -0
- package/dist/chunk-QRJSP5G2.cjs +300 -0
- package/dist/chunk-QRJSP5G2.cjs.map +1 -0
- package/dist/{chunk-7PYYVPF5.js → chunk-RF42EKVR.js} +6 -6
- package/dist/{chunk-7PYYVPF5.js.map → chunk-RF42EKVR.js.map} +1 -1
- package/dist/{chunk-L6AZQNL2.cjs → chunk-S6B5GIFC.cjs} +31 -25
- package/dist/chunk-S6B5GIFC.cjs.map +1 -0
- package/dist/{chunk-YEQJIM5W.cjs → chunk-TMRHUTY6.cjs} +15 -15
- package/dist/{chunk-YEQJIM5W.cjs.map → chunk-TMRHUTY6.cjs.map} +1 -1
- package/dist/{chunk-BZW4PQNA.cjs → chunk-UUNTJ256.cjs} +9 -7
- package/dist/chunk-UUNTJ256.cjs.map +1 -0
- package/dist/{chunk-RDHIVATT.cjs → chunk-VAACVUEO.cjs} +9 -9
- package/dist/{chunk-RDHIVATT.cjs.map → chunk-VAACVUEO.cjs.map} +1 -1
- package/dist/{chunk-UCCVELTP.js → chunk-VJKW6RRY.js} +7 -7
- package/dist/{chunk-UCCVELTP.js.map → chunk-VJKW6RRY.js.map} +1 -1
- package/dist/{chunk-2NISBCML.js → chunk-WG7QIVL7.js} +92 -280
- package/dist/chunk-WG7QIVL7.js.map +1 -0
- package/dist/{chunk-QG7NJ3JU.cjs → chunk-XANKVDSM.cjs} +10 -10
- package/dist/{chunk-QG7NJ3JU.cjs.map → chunk-XANKVDSM.cjs.map} +1 -1
- package/dist/{chunk-HVVHMUI4.cjs → chunk-Z745DCGY.cjs} +34 -9
- package/dist/chunk-Z745DCGY.cjs.map +1 -0
- package/dist/datasets/experiment/scorer.d.ts.map +1 -1
- package/dist/datasets/index.cjs +17 -17
- package/dist/datasets/index.js +2 -2
- package/dist/docs/SKILL.md +3 -3
- package/dist/docs/assets/SOURCE_MAP.json +522 -522
- package/dist/docs/references/docs-server-mastra-client.md +12 -10
- package/dist/docs/references/docs-server-mastra-server.md +13 -1
- package/dist/docs/references/docs-studio-observability.md +9 -1
- package/dist/docs/references/docs-studio-overview.md +1 -1
- package/dist/docs/references/reference-agents-getLLM.md +9 -3
- package/dist/docs/references/reference.md +2 -0
- package/dist/evals/base.d.ts +29 -6
- package/dist/evals/base.d.ts.map +1 -1
- package/dist/evals/index.cjs +23 -23
- package/dist/evals/index.js +3 -3
- package/dist/evals/scoreTraces/index.cjs +21 -37
- package/dist/evals/scoreTraces/index.cjs.map +1 -1
- package/dist/evals/scoreTraces/index.js +18 -34
- package/dist/evals/scoreTraces/index.js.map +1 -1
- package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts +2 -3
- package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -1
- package/dist/evals/types.d.ts.map +1 -1
- package/dist/harness/index.cjs +9 -9
- package/dist/harness/index.js +6 -6
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/dist/llm/index.cjs +16 -16
- package/dist/llm/index.js +5 -5
- package/dist/llm/model/provider-types.generated.d.ts +1 -0
- package/dist/logger/index.cjs +6 -6
- package/dist/logger/index.js +1 -1
- package/dist/loop/index.cjs +14 -14
- package/dist/loop/index.js +1 -1
- package/dist/mastra/hooks.d.ts +3 -0
- package/dist/mastra/hooks.d.ts.map +1 -1
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.d.ts +3 -3
- package/dist/mastra/index.d.ts.map +1 -1
- package/dist/mastra/index.js +1 -1
- package/dist/memory/index.cjs +14 -14
- package/dist/memory/index.js +1 -1
- package/dist/models-dev-4HBR4MAS.js +3 -0
- package/dist/{models-dev-WTF6UG4D.js.map → models-dev-4HBR4MAS.js.map} +1 -1
- package/dist/models-dev-W2D3QNCX.cjs +12 -0
- package/dist/{models-dev-TKKI7LVH.cjs.map → models-dev-W2D3QNCX.cjs.map} +1 -1
- package/dist/netlify-A6TIZLU7.cjs +12 -0
- package/dist/{netlify-QCPWAYI2.cjs.map → netlify-A6TIZLU7.cjs.map} +1 -1
- package/dist/netlify-YRVEP6E4.js +3 -0
- package/dist/{netlify-V6N4TT4H.js.map → netlify-YRVEP6E4.js.map} +1 -1
- package/dist/observability/index.cjs +36 -32
- package/dist/observability/index.js +2 -2
- package/dist/observability/no-op.d.ts +1 -1
- package/dist/observability/no-op.d.ts.map +1 -1
- package/dist/observability/types/core.d.ts +15 -1
- package/dist/observability/types/core.d.ts.map +1 -1
- package/dist/observability/types/feedback.d.ts +2 -2
- package/dist/observability/types/feedback.d.ts.map +1 -1
- package/dist/observability/types/scores.d.ts +16 -7
- package/dist/observability/types/scores.d.ts.map +1 -1
- package/dist/observability/types/tracing.d.ts +27 -1
- package/dist/observability/types/tracing.d.ts.map +1 -1
- package/dist/observability/utils.d.ts +12 -1
- package/dist/observability/utils.d.ts.map +1 -1
- package/dist/processor-provider/index.cjs +10 -10
- package/dist/processor-provider/index.js +1 -1
- package/dist/processors/index.cjs +44 -44
- package/dist/processors/index.js +1 -1
- package/dist/provider-registry-6ONBOGD7.cjs +40 -0
- package/dist/{provider-registry-C54SHAP6.cjs.map → provider-registry-6ONBOGD7.cjs.map} +1 -1
- package/dist/provider-registry-AIPF3CGZ.js +3 -0
- package/dist/{provider-registry-34O53EL4.js.map → provider-registry-AIPF3CGZ.js.map} +1 -1
- package/dist/provider-registry.json +4 -2
- package/dist/relevance/index.cjs +3 -3
- package/dist/relevance/index.js +1 -1
- package/dist/storage/constants.cjs +56 -56
- package/dist/storage/constants.js +1 -1
- package/dist/storage/domains/observability/base.d.ts +4 -0
- package/dist/storage/domains/observability/base.d.ts.map +1 -1
- package/dist/storage/domains/observability/record-builders.d.ts.map +1 -1
- package/dist/storage/index.cjs +286 -286
- package/dist/storage/index.js +3 -3
- package/dist/stream/index.cjs +8 -8
- package/dist/stream/index.js +1 -1
- package/dist/test-utils/llm-mock.cjs +4 -4
- package/dist/test-utils/llm-mock.js +1 -1
- package/dist/tool-loop-agent/index.cjs +4 -4
- package/dist/tool-loop-agent/index.js +1 -1
- package/dist/utils.cjs +25 -25
- package/dist/utils.js +1 -1
- package/dist/vector/index.cjs +7 -7
- package/dist/vector/index.js +1 -1
- package/dist/workflows/evented/index.cjs +10 -10
- package/dist/workflows/evented/index.js +1 -1
- package/dist/workflows/index.cjs +24 -24
- package/dist/workflows/index.js +1 -1
- package/package.json +4 -4
- package/src/llm/model/provider-types.generated.d.ts +1 -0
- package/dist/chunk-2NISBCML.js.map +0 -1
- package/dist/chunk-57OYWNNV.cjs.map +0 -1
- package/dist/chunk-5PAHRQLU.js.map +0 -1
- package/dist/chunk-7URCVA7N.js.map +0 -1
- package/dist/chunk-AC5GUOWY.js +0 -72
- package/dist/chunk-AC5GUOWY.js.map +0 -1
- package/dist/chunk-BCOOJFBB.js.map +0 -1
- package/dist/chunk-BZW4PQNA.cjs.map +0 -1
- package/dist/chunk-CRGRF7QL.cjs.map +0 -1
- package/dist/chunk-ED6CLXQI.cjs.map +0 -1
- package/dist/chunk-EZHHTAJU.cjs +0 -78
- package/dist/chunk-EZHHTAJU.cjs.map +0 -1
- package/dist/chunk-F3OO446O.cjs.map +0 -1
- package/dist/chunk-HOAKFZ6P.js.map +0 -1
- package/dist/chunk-HVVHMUI4.cjs.map +0 -1
- package/dist/chunk-J7AHOVB2.cjs.map +0 -1
- package/dist/chunk-L6AZQNL2.cjs.map +0 -1
- package/dist/chunk-MIWHSH7L.js.map +0 -1
- package/dist/chunk-Q4YIRO5A.js.map +0 -1
- package/dist/chunk-RB7WTRE2.js.map +0 -1
- package/dist/chunk-S3JFAGMH.js.map +0 -1
- package/dist/chunk-T72NHA2O.cjs.map +0 -1
- package/dist/models-dev-TKKI7LVH.cjs +0 -12
- package/dist/models-dev-WTF6UG4D.js +0 -3
- package/dist/netlify-QCPWAYI2.cjs +0 -12
- package/dist/netlify-V6N4TT4H.js +0 -3
- package/dist/provider-registry-34O53EL4.js +0 -3
- package/dist/provider-registry-C54SHAP6.cjs +0 -40
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/evals/scoreTraces/scoreTraces.ts","../../../src/evals/scoreTraces/utils.ts","../../../src/evals/scoreTraces/scoreTracesWorkflow.ts"],"names":["MastraError","createStep","z","resolveObservabilityContext","pMap","span","saveScorePayloadSchema","createWorkflow"],"mappings":"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","file":"index.cjs","sourcesContent":["import { MastraError } from '../../error';\nimport type { Mastra } from '../../mastra';\n\nexport async function scoreTraces({\n scorerId,\n targets,\n mastra,\n}: {\n scorerId: string;\n targets: { traceId: string; spanId?: string }[];\n mastra: Mastra;\n}) {\n const workflow = mastra.__getInternalWorkflow('__batch-scoring-traces');\n try {\n const run = await workflow.createRun();\n\n await run.start({ inputData: { targets, scorerId } });\n } catch (error) {\n const mastraError = new MastraError(\n {\n category: 'SYSTEM',\n domain: 'SCORER',\n id: 'MASTRA_SCORER_FAILED_TO_RUN_TRACE_SCORING',\n details: {\n scorerId,\n targets: JSON.stringify(targets),\n },\n },\n error,\n );\n mastra.getLogger()?.trackException(mastraError);\n }\n}\n","import type { MastraDBMessage } from '../../agent';\nimport { SpanType } from '../../observability';\nimport type { SpanRecord, TraceRecord } from '../../storage';\nimport type { ScorerRunInputForAgent, ScorerRunOutputForAgent } from '../types';\n\n// Types for span input/output structures\ninterface SpanMessage {\n role: string;\n content: string | Array<{ type: string; text: string }>;\n}\n\ninterface SpanInputWithMessages {\n messages: SpanMessage[];\n}\n\ninterface SpanOutputWithText {\n text?: string;\n}\n\n// Type guards for span data\nfunction isSpanMessage(value: unknown): value is SpanMessage {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'role' in value &&\n typeof (value as SpanMessage).role === 'string' &&\n 'content' in value\n );\n}\n\nfunction hasMessagesArray(value: unknown): value is SpanInputWithMessages {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'messages' in value &&\n Array.isArray((value as SpanInputWithMessages).messages)\n );\n}\n\nfunction hasTextProperty(value: unknown): value is SpanOutputWithText {\n return typeof value === 'object' && value !== null && 'text' in value;\n}\n\n// // Span tree structure for efficient lookups\ninterface SpanTree {\n spanMap: Map<string, SpanRecord>;\n childrenMap: Map<string, SpanRecord[]>;\n rootSpans: SpanRecord[];\n}\n\n/**\n * Build a hierarchical span tree with efficient lookup maps\n */\nexport function buildSpanTree(spans: SpanRecord[]): SpanTree {\n const spanMap = new Map<string, SpanRecord>();\n const childrenMap = new Map<string, SpanRecord[]>();\n const rootSpans: SpanRecord[] = [];\n\n // First pass: build span map\n for (const span of spans) {\n spanMap.set(span.spanId, span);\n }\n\n // Second pass: build parent-child relationships\n for (const span of spans) {\n if (span.parentSpanId == null) {\n // Root span (parentSpanId is null or undefined)\n rootSpans.push(span);\n } else {\n const siblings = childrenMap.get(span.parentSpanId) || [];\n siblings.push(span);\n childrenMap.set(span.parentSpanId, siblings);\n }\n }\n\n // Sort children by startedAt timestamp for temporal ordering\n for (const children of childrenMap.values()) {\n children.sort((a, b) => new Date(a.startedAt).getTime() - new Date(b.startedAt).getTime());\n }\n\n // Sort root spans by startedAt\n rootSpans.sort((a, b) => new Date(a.startedAt).getTime() - new Date(b.startedAt).getTime());\n\n return { spanMap, childrenMap, rootSpans };\n}\n\n/**\n * Extract children spans of a specific type\n */\nfunction getChildrenOfType<T extends SpanRecord>(spanTree: SpanTree, parentSpanId: string, spanType: SpanType): T[] {\n const children = spanTree.childrenMap.get(parentSpanId) || [];\n return children.filter(span => span.spanType === spanType) as T[];\n}\n\n/**\n * Normalize message content to string format\n * For arrays with multiple text parts, returns only the last text part (AI SDK convention)\n */\nfunction normalizeMessageContent(content: string | Array<{ type: string; text: string }>): string {\n if (typeof content === 'string') {\n return content;\n }\n\n // Extract text parts and return only the last one (AI SDK convention)\n const textParts = content.filter(part => part.type === 'text');\n return textParts.length > 0 ? textParts[textParts.length - 1]?.text || '' : '';\n}\n\n/**\n * Create MastraDBMessage directly from span message data\n */\nfunction createMastraDBMessage(\n message: { role: string; content: string | Array<{ type: string; text: string }> },\n createdAt: Date,\n id: string = '',\n): MastraDBMessage {\n const contentText = normalizeMessageContent(message.content);\n const role = message.role as 'user' | 'assistant' | 'system';\n\n return {\n id,\n role,\n content: {\n format: 2,\n parts: [{ type: 'text', text: contentText }],\n content: contentText,\n },\n createdAt: new Date(createdAt),\n };\n}\n\n/**\n * Extract input messages from agent run span\n */\nfunction extractInputMessages(agentSpan: SpanRecord): MastraDBMessage[] {\n const input = agentSpan.input;\n\n // Handle different input formats\n if (typeof input === 'string') {\n return [\n createMastraDBMessage(\n {\n role: 'user',\n content: input,\n },\n agentSpan.startedAt,\n ),\n ];\n }\n\n if (Array.isArray(input)) {\n const messages = input.filter(isSpanMessage) as SpanMessage[];\n return messages.map(msg => createMastraDBMessage(msg, agentSpan.startedAt));\n }\n\n if (hasMessagesArray(input)) {\n const messages = input.messages.filter(isSpanMessage) as SpanMessage[];\n return messages.map(msg => createMastraDBMessage(msg, agentSpan.startedAt));\n }\n return [];\n}\n\n/**\n * Extract system messages from LLM span\n */\nfunction extractSystemMessages(llmSpan: SpanRecord): Array<{ role: 'system'; content: string }> {\n const input = llmSpan.input;\n if (!hasMessagesArray(input)) {\n return [];\n }\n return input.messages\n .filter((msg): msg is SpanMessage & { role: 'system' } => isSpanMessage(msg) && msg.role === 'system')\n .map(msg => ({\n role: 'system' as const,\n content: normalizeMessageContent(msg.content),\n }));\n}\n\n/**\n * Extract conversation history (remembered messages) from LLM span\n * Excludes system messages and the current input message\n */\nfunction extractRememberedMessages(llmSpan: SpanRecord, currentInputContent: string): MastraDBMessage[] {\n const input = llmSpan.input;\n if (!hasMessagesArray(input)) {\n return [];\n }\n const filtered = input.messages.filter(isSpanMessage) as unknown as SpanMessage[];\n const messages = filtered\n .filter(msg => msg.role !== 'system')\n .filter(msg => normalizeMessageContent(msg.content) !== currentInputContent);\n\n return messages.map(msg => createMastraDBMessage(msg, llmSpan.startedAt));\n}\n\n/**\n * Reconstruct tool invocations from tool call spans\n */\nfunction reconstructToolInvocations(spanTree: SpanTree, parentSpanId: string) {\n const toolSpans = getChildrenOfType<SpanRecord>(spanTree, parentSpanId, SpanType.TOOL_CALL);\n\n return toolSpans.map(toolSpan => ({\n toolCallId: toolSpan.spanId,\n toolName: toolSpan.entityName ?? toolSpan.entityId ?? 'unknown',\n toolId: toolSpan.entityId,\n args: toolSpan.input || {},\n result: toolSpan.output || {},\n state: 'result' as const,\n }));\n}\n\n/**\n * Validate trace structure and throw descriptive errors\n */\nexport function validateTrace(trace: TraceRecord): void {\n if (!trace) {\n throw new Error('Trace is null or undefined');\n }\n\n if (!trace.spans || !Array.isArray(trace.spans)) {\n throw new Error('Trace must have a spans array');\n }\n\n if (trace.spans.length === 0) {\n throw new Error('Trace has no spans');\n }\n\n // Check for circular references in parent-child relationships\n const spanIds = new Set(trace.spans.map(span => span.spanId));\n for (const span of trace.spans) {\n if (span.parentSpanId && !spanIds.has(span.parentSpanId)) {\n throw new Error(`Span ${span.spanId} references non-existent parent ${span.parentSpanId}`);\n }\n }\n}\n\n/**\n * Find the most recent model span that contains conversation history\n */\nfunction findPrimaryLLMSpan(spanTree: SpanTree, rootAgentSpan: SpanRecord): SpanRecord {\n const directLLMSpans = getChildrenOfType<SpanRecord>(spanTree, rootAgentSpan.spanId, SpanType.MODEL_GENERATION);\n if (directLLMSpans.length > 0) {\n // There should only be one model generation span per agent run which is a direct child of the root agent span\n return directLLMSpans[0]!;\n }\n\n throw new Error('No model generation span found in trace');\n}\n\n/**\n * Extract common trace validation and span tree building logic\n */\nfunction prepareTraceForTransformation(trace: TraceRecord) {\n validateTrace(trace);\n const spanTree = buildSpanTree(trace.spans);\n\n // Find the root agent run span\n const rootAgentSpan = spanTree.rootSpans.find(span => span.spanType === 'agent_run') as SpanRecord | undefined;\n\n if (!rootAgentSpan) {\n throw new Error('No root agent_run span found in trace');\n }\n\n return { spanTree, rootAgentSpan };\n}\n\nexport function transformTraceToScorerInputAndOutput(trace: TraceRecord): {\n input: ScorerRunInputForAgent;\n output: ScorerRunOutputForAgent;\n} {\n const { spanTree, rootAgentSpan } = prepareTraceForTransformation(trace);\n\n if (!rootAgentSpan.output) {\n throw new Error('Root agent span has no output');\n }\n\n // Build input\n const primaryLLMSpan = findPrimaryLLMSpan(spanTree, rootAgentSpan);\n const inputMessages = extractInputMessages(rootAgentSpan);\n const systemMessages = extractSystemMessages(primaryLLMSpan);\n\n // Extract remembered messages from LLM span (excluding current input)\n const currentInputContent = inputMessages[0]?.content.content || '';\n const rememberedMessages = extractRememberedMessages(primaryLLMSpan, currentInputContent);\n\n const input = {\n inputMessages,\n rememberedMessages,\n systemMessages,\n taggedSystemMessages: {}, // Todo: Support tagged system messages\n };\n\n // Build output\n const toolInvocations = reconstructToolInvocations(spanTree, rootAgentSpan.spanId);\n const responseText = hasTextProperty(rootAgentSpan.output) ? (rootAgentSpan.output.text ?? '') : '';\n\n // Build parts array: tool invocations first, then text\n const parts: Array<{ type: 'tool-invocation'; toolInvocation: any } | { type: 'text'; text: string }> = [];\n\n // Add tool invocation parts\n for (const toolInvocation of toolInvocations) {\n parts.push({\n type: 'tool-invocation',\n toolInvocation,\n });\n }\n\n // Add text part if present\n if (responseText.trim()) {\n parts.push({\n type: 'text',\n text: responseText,\n });\n }\n\n const responseMessage: MastraDBMessage = {\n id: '',\n role: 'assistant',\n content: {\n format: 2,\n parts: parts as any, // Type assertion needed due to providerMetadata optional field\n content: responseText,\n toolInvocations, // Always include, even if empty array\n },\n createdAt: new Date(rootAgentSpan.endedAt || rootAgentSpan.startedAt),\n };\n\n const output: MastraDBMessage[] = [responseMessage];\n\n return {\n input,\n output,\n };\n}\n","import pMap from 'p-map';\nimport { z } from 'zod/v4';\nimport { ErrorCategory, ErrorDomain, MastraError } from '../../error';\nimport { InternalSpans, resolveObservabilityContext } from '../../observability';\nimport type { ObservabilityContext } from '../../observability';\nimport type { SpanRecord, TraceRecord, MastraStorage } from '../../storage';\nimport { createStep, createWorkflow } from '../../workflows/evented';\nimport type { MastraScorer, ScorerRun } from '../base';\nimport type { ScoreRowData } from '../types';\nimport { saveScorePayloadSchema } from '../types';\nimport { transformTraceToScorerInputAndOutput } from './utils';\n\nconst getTraceStep = createStep({\n id: '__process-trace-scoring',\n inputSchema: z.object({\n targets: z.array(\n z.object({\n traceId: z.string(),\n spanId: z.string().optional(),\n }),\n ),\n scorerId: z.string(),\n }),\n outputSchema: z.any(),\n execute: async ({ inputData, mastra, ...rest }) => {\n const observabilityContext = resolveObservabilityContext(rest);\n const logger = mastra.getLogger();\n if (!logger) {\n console.warn(\n '[scoreTracesWorkflow] Logger not initialized: no debug or error logs will be recorded for scoring traces.',\n );\n }\n\n const storage = mastra.getStorage();\n if (!storage) {\n const mastraError = new MastraError({\n id: 'MASTRA_STORAGE_NOT_FOUND_FOR_TRACE_SCORING',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: 'Storage not found for trace scoring',\n details: {\n scorerId: inputData.scorerId,\n },\n });\n logger?.trackException(mastraError);\n return;\n }\n\n let scorer: MastraScorer | undefined;\n try {\n scorer = mastra.getScorerById(inputData.scorerId);\n } catch (error) {\n const mastraError = new MastraError(\n {\n id: 'MASTRA_SCORER_NOT_FOUND_FOR_TRACE_SCORING',\n domain: ErrorDomain.SCORER,\n category: ErrorCategory.SYSTEM,\n text: `Scorer not found for trace scoring`,\n details: {\n scorerId: inputData.scorerId,\n },\n },\n error,\n );\n logger?.trackException(mastraError);\n return;\n }\n\n await pMap(\n inputData.targets,\n async target => {\n try {\n await runScorerOnTarget({ storage, scorer, target, ...observabilityContext });\n } catch (error) {\n const mastraError = new MastraError(\n {\n id: 'MASTRA_SCORER_FAILED_TO_RUN_SCORER_ON_TRACE',\n domain: ErrorDomain.SCORER,\n category: ErrorCategory.SYSTEM,\n details: {\n scorerId: scorer.id,\n spanId: target.spanId || '',\n traceId: target.traceId,\n },\n },\n error,\n );\n logger?.trackException(mastraError);\n }\n },\n { concurrency: 3 },\n );\n },\n});\n\nexport async function runScorerOnTarget({\n storage,\n scorer,\n target,\n ...observabilityContext\n}: {\n storage: MastraStorage;\n scorer: MastraScorer;\n target: { traceId: string; spanId?: string };\n} & Partial<ObservabilityContext>) {\n // TODO: add storage api to get a single span\n const observabilityStore = await storage.getStore('observability');\n if (!observabilityStore) {\n throw new MastraError({\n id: 'MASTRA_OBSERVABILITY_STORAGE_NOT_AVAILABLE',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: 'Observability storage domain is not available',\n });\n }\n const trace = await observabilityStore.getTrace({ traceId: target.traceId });\n if (!trace) {\n throw new Error(`Trace not found for scoring, traceId: ${target.traceId}`);\n }\n\n let span: SpanRecord | undefined;\n if (target.spanId) {\n span = trace.spans.find(span => span.spanId === target.spanId);\n } else {\n span = trace.spans.find(span => span.parentSpanId === null);\n }\n\n if (!span) {\n throw new Error(\n `Span not found for scoring, traceId: ${target.traceId}, spanId: ${target.spanId ?? 'Not provided'}`,\n );\n }\n\n const scorerRun = buildScorerRun({\n scorerType: scorer.type === 'agent' ? 'agent' : undefined,\n ...observabilityContext,\n trace,\n targetSpan: span,\n });\n\n const result = await scorer.run(scorerRun);\n const scorerResult = {\n ...result,\n scorer: {\n id: scorer.id,\n name: scorer.name || scorer.id,\n description: scorer.description,\n hasJudge: !!scorer.judge,\n },\n traceId: target.traceId,\n spanId: target.spanId,\n entityId: span.entityId || span.entityName || 'unknown',\n entityType: span.spanType,\n entity: { traceId: span.traceId, spanId: span.spanId },\n source: 'TEST',\n scorerId: scorer.id,\n };\n\n const savedScoreRecord = await validateAndSaveScore({ storage, scorerResult });\n await attachScoreToSpan({ storage, span, scoreRecord: savedScoreRecord });\n}\n\n/**\n * Saves the score to the legacy ScoresStorage domain.\n * TODO: Remove once all consumers migrate to observability scores (see attachScoreToSpan).\n */\nasync function validateAndSaveScore({ storage, scorerResult }: { storage: MastraStorage; scorerResult: ScorerRun }) {\n const scoresStore = await storage.getStore('scores');\n if (!scoresStore) {\n throw new MastraError({\n id: 'MASTRA_SCORES_STORAGE_NOT_AVAILABLE',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: 'Scores storage domain is not available',\n });\n }\n const payloadToSave = saveScorePayloadSchema.parse(scorerResult);\n const result = await scoresStore.saveScore(payloadToSave);\n return result.score;\n}\n\nfunction buildScorerRun({\n scorerType,\n trace,\n targetSpan,\n ...observabilityContext\n}: {\n scorerType?: string;\n trace: TraceRecord;\n targetSpan: SpanRecord;\n} & Partial<ObservabilityContext>): ScorerRun {\n if (scorerType === 'agent') {\n const { input, output } = transformTraceToScorerInputAndOutput(trace);\n return { input, output, ...observabilityContext };\n }\n return { input: targetSpan.input, output: targetSpan.output, ...observabilityContext };\n}\n\n/**\n * Writes the score to the observability domain via two paths, each wrapped in\n * a try/catch so that one failing doesn't block the other:\n *\n * 1. **updateSpan** — attaches a score link to the span record. Works for\n * traditional CRUD stores (libsql, pg, etc.) but fails for event-sourced /\n * append-only stores (DuckDB) that don't support arbitrary span updates.\n *\n * 2. **createScore** — inserts a row into the observability scores table so\n * it can be queried via listScores() with traceId/spanId filters. Works for\n * stores that implement the new observability scores domain.\n *\n * TODO: Once all stores implement createScore and all consumers migrate to\n * the observability scores domain, remove the updateSpan path (and the old\n * ScoresStorage.saveScore() call in validateAndSaveScore above).\n */\nasync function attachScoreToSpan({\n storage,\n span,\n scoreRecord,\n}: {\n storage: MastraStorage;\n span: SpanRecord;\n scoreRecord: ScoreRowData;\n}) {\n const observabilityStore = await storage.getStore('observability');\n if (!observabilityStore) {\n throw new MastraError({\n id: 'MASTRA_OBSERVABILITY_STORAGE_NOT_AVAILABLE',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: 'Observability storage domain is not available',\n });\n }\n\n // Path 1: Legacy — attach score link to span (fails silently on append-only stores)\n try {\n const existingLinks = span.links || [];\n const link = {\n type: 'score',\n scoreId: scoreRecord.id,\n scorerId: scoreRecord.scorerId ?? scoreRecord.scorer?.id,\n score: scoreRecord.score,\n createdAt: scoreRecord.createdAt,\n };\n await observabilityStore.updateSpan({\n spanId: span.spanId,\n traceId: span.traceId,\n updates: { links: [...existingLinks, link] },\n });\n } catch {\n // Expected for event-sourced stores (e.g. DuckDB) that don't support updateSpan\n }\n\n // Path 2: New — write to observability scores table (fails silently on stores that don't implement it yet)\n try {\n await observabilityStore.createScore({\n score: {\n timestamp: scoreRecord.createdAt ? new Date(scoreRecord.createdAt) : new Date(),\n traceId: span.traceId,\n spanId: span.spanId,\n scorerId: scoreRecord.scorerId ?? (scoreRecord.scorer?.id as string),\n score: scoreRecord.score,\n reason: scoreRecord.reason ?? null,\n experimentId: null,\n scoreTraceId: null,\n metadata: scoreRecord.metadata ?? null,\n },\n });\n } catch {\n // Expected for stores that haven't implemented observability createScore yet\n }\n}\n\nexport const scoreTracesWorkflow = createWorkflow({\n id: '__batch-scoring-traces',\n inputSchema: z.object({\n targets: z.array(\n z.object({\n traceId: z.string(),\n spanId: z.string().optional(),\n }),\n ),\n scorerId: z.string(),\n }),\n outputSchema: z.any(),\n steps: [getTraceStep],\n options: {\n tracingPolicy: {\n internal: InternalSpans.ALL,\n },\n validateInputs: false,\n },\n});\n\nscoreTracesWorkflow.then(getTraceStep).commit();\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/evals/scoreTraces/scoreTraces.ts","../../../src/evals/scoreTraces/utils.ts","../../../src/evals/scoreTraces/scoreTracesWorkflow.ts"],"names":["MastraError","createStep","z","pMap","span","getEntityTypeForSpan","saveScorePayloadSchema","createWorkflow"],"mappings":"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","file":"index.cjs","sourcesContent":["import { MastraError } from '../../error';\nimport type { Mastra } from '../../mastra';\n\nexport async function scoreTraces({\n scorerId,\n targets,\n mastra,\n}: {\n scorerId: string;\n targets: { traceId: string; spanId?: string }[];\n mastra: Mastra;\n}) {\n const workflow = mastra.__getInternalWorkflow('__batch-scoring-traces');\n try {\n const run = await workflow.createRun();\n\n await run.start({ inputData: { targets, scorerId } });\n } catch (error) {\n const mastraError = new MastraError(\n {\n category: 'SYSTEM',\n domain: 'SCORER',\n id: 'MASTRA_SCORER_FAILED_TO_RUN_TRACE_SCORING',\n details: {\n scorerId,\n targets: JSON.stringify(targets),\n },\n },\n error,\n );\n mastra.getLogger()?.trackException(mastraError);\n }\n}\n","import type { MastraDBMessage } from '../../agent';\nimport { SpanType } from '../../observability';\nimport type { SpanRecord, TraceRecord } from '../../storage';\nimport type { ScorerRunInputForAgent, ScorerRunOutputForAgent } from '../types';\n\n// Types for span input/output structures\ninterface SpanMessage {\n role: string;\n content: string | Array<{ type: string; text: string }>;\n}\n\ninterface SpanInputWithMessages {\n messages: SpanMessage[];\n}\n\ninterface SpanOutputWithText {\n text?: string;\n}\n\n// Type guards for span data\nfunction isSpanMessage(value: unknown): value is SpanMessage {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'role' in value &&\n typeof (value as SpanMessage).role === 'string' &&\n 'content' in value\n );\n}\n\nfunction hasMessagesArray(value: unknown): value is SpanInputWithMessages {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'messages' in value &&\n Array.isArray((value as SpanInputWithMessages).messages)\n );\n}\n\nfunction hasTextProperty(value: unknown): value is SpanOutputWithText {\n return typeof value === 'object' && value !== null && 'text' in value;\n}\n\n// // Span tree structure for efficient lookups\ninterface SpanTree {\n spanMap: Map<string, SpanRecord>;\n childrenMap: Map<string, SpanRecord[]>;\n rootSpans: SpanRecord[];\n}\n\n/**\n * Build a hierarchical span tree with efficient lookup maps\n */\nexport function buildSpanTree(spans: SpanRecord[]): SpanTree {\n const spanMap = new Map<string, SpanRecord>();\n const childrenMap = new Map<string, SpanRecord[]>();\n const rootSpans: SpanRecord[] = [];\n\n // First pass: build span map\n for (const span of spans) {\n spanMap.set(span.spanId, span);\n }\n\n // Second pass: build parent-child relationships\n for (const span of spans) {\n if (span.parentSpanId == null) {\n // Root span (parentSpanId is null or undefined)\n rootSpans.push(span);\n } else {\n const siblings = childrenMap.get(span.parentSpanId) || [];\n siblings.push(span);\n childrenMap.set(span.parentSpanId, siblings);\n }\n }\n\n // Sort children by startedAt timestamp for temporal ordering\n for (const children of childrenMap.values()) {\n children.sort((a, b) => new Date(a.startedAt).getTime() - new Date(b.startedAt).getTime());\n }\n\n // Sort root spans by startedAt\n rootSpans.sort((a, b) => new Date(a.startedAt).getTime() - new Date(b.startedAt).getTime());\n\n return { spanMap, childrenMap, rootSpans };\n}\n\n/**\n * Extract children spans of a specific type\n */\nfunction getChildrenOfType<T extends SpanRecord>(spanTree: SpanTree, parentSpanId: string, spanType: SpanType): T[] {\n const children = spanTree.childrenMap.get(parentSpanId) || [];\n return children.filter(span => span.spanType === spanType) as T[];\n}\n\n/**\n * Normalize message content to string format\n * For arrays with multiple text parts, returns only the last text part (AI SDK convention)\n */\nfunction normalizeMessageContent(content: string | Array<{ type: string; text: string }>): string {\n if (typeof content === 'string') {\n return content;\n }\n\n // Extract text parts and return only the last one (AI SDK convention)\n const textParts = content.filter(part => part.type === 'text');\n return textParts.length > 0 ? textParts[textParts.length - 1]?.text || '' : '';\n}\n\n/**\n * Create MastraDBMessage directly from span message data\n */\nfunction createMastraDBMessage(\n message: { role: string; content: string | Array<{ type: string; text: string }> },\n createdAt: Date,\n id: string = '',\n): MastraDBMessage {\n const contentText = normalizeMessageContent(message.content);\n const role = message.role as 'user' | 'assistant' | 'system';\n\n return {\n id,\n role,\n content: {\n format: 2,\n parts: [{ type: 'text', text: contentText }],\n content: contentText,\n },\n createdAt: new Date(createdAt),\n };\n}\n\n/**\n * Extract input messages from agent run span\n */\nfunction extractInputMessages(agentSpan: SpanRecord): MastraDBMessage[] {\n const input = agentSpan.input;\n\n // Handle different input formats\n if (typeof input === 'string') {\n return [\n createMastraDBMessage(\n {\n role: 'user',\n content: input,\n },\n agentSpan.startedAt,\n ),\n ];\n }\n\n if (Array.isArray(input)) {\n const messages = input.filter(isSpanMessage) as SpanMessage[];\n return messages.map(msg => createMastraDBMessage(msg, agentSpan.startedAt));\n }\n\n if (hasMessagesArray(input)) {\n const messages = input.messages.filter(isSpanMessage) as SpanMessage[];\n return messages.map(msg => createMastraDBMessage(msg, agentSpan.startedAt));\n }\n return [];\n}\n\n/**\n * Extract system messages from LLM span\n */\nfunction extractSystemMessages(llmSpan: SpanRecord): Array<{ role: 'system'; content: string }> {\n const input = llmSpan.input;\n if (!hasMessagesArray(input)) {\n return [];\n }\n return input.messages\n .filter((msg): msg is SpanMessage & { role: 'system' } => isSpanMessage(msg) && msg.role === 'system')\n .map(msg => ({\n role: 'system' as const,\n content: normalizeMessageContent(msg.content),\n }));\n}\n\n/**\n * Extract conversation history (remembered messages) from LLM span\n * Excludes system messages and the current input message\n */\nfunction extractRememberedMessages(llmSpan: SpanRecord, currentInputContent: string): MastraDBMessage[] {\n const input = llmSpan.input;\n if (!hasMessagesArray(input)) {\n return [];\n }\n const filtered = input.messages.filter(isSpanMessage) as unknown as SpanMessage[];\n const messages = filtered\n .filter(msg => msg.role !== 'system')\n .filter(msg => normalizeMessageContent(msg.content) !== currentInputContent);\n\n return messages.map(msg => createMastraDBMessage(msg, llmSpan.startedAt));\n}\n\n/**\n * Reconstruct tool invocations from tool call spans\n */\nfunction reconstructToolInvocations(spanTree: SpanTree, parentSpanId: string) {\n const toolSpans = getChildrenOfType<SpanRecord>(spanTree, parentSpanId, SpanType.TOOL_CALL);\n\n return toolSpans.map(toolSpan => ({\n toolCallId: toolSpan.spanId,\n toolName: toolSpan.entityName ?? toolSpan.entityId ?? 'unknown',\n toolId: toolSpan.entityId,\n args: toolSpan.input || {},\n result: toolSpan.output || {},\n state: 'result' as const,\n }));\n}\n\n/**\n * Validate trace structure and throw descriptive errors\n */\nexport function validateTrace(trace: TraceRecord): void {\n if (!trace) {\n throw new Error('Trace is null or undefined');\n }\n\n if (!trace.spans || !Array.isArray(trace.spans)) {\n throw new Error('Trace must have a spans array');\n }\n\n if (trace.spans.length === 0) {\n throw new Error('Trace has no spans');\n }\n\n // Check for circular references in parent-child relationships\n const spanIds = new Set(trace.spans.map(span => span.spanId));\n for (const span of trace.spans) {\n if (span.parentSpanId && !spanIds.has(span.parentSpanId)) {\n throw new Error(`Span ${span.spanId} references non-existent parent ${span.parentSpanId}`);\n }\n }\n}\n\n/**\n * Find the most recent model span that contains conversation history\n */\nfunction findPrimaryLLMSpan(spanTree: SpanTree, rootAgentSpan: SpanRecord): SpanRecord {\n const directLLMSpans = getChildrenOfType<SpanRecord>(spanTree, rootAgentSpan.spanId, SpanType.MODEL_GENERATION);\n if (directLLMSpans.length > 0) {\n // There should only be one model generation span per agent run which is a direct child of the root agent span\n return directLLMSpans[0]!;\n }\n\n throw new Error('No model generation span found in trace');\n}\n\n/**\n * Extract common trace validation and span tree building logic\n */\nfunction prepareTraceForTransformation(trace: TraceRecord) {\n validateTrace(trace);\n const spanTree = buildSpanTree(trace.spans);\n\n // Find the root agent run span\n const rootAgentSpan = spanTree.rootSpans.find(span => span.spanType === 'agent_run') as SpanRecord | undefined;\n\n if (!rootAgentSpan) {\n throw new Error('No root agent_run span found in trace');\n }\n\n return { spanTree, rootAgentSpan };\n}\n\nexport function transformTraceToScorerInputAndOutput(trace: TraceRecord): {\n input: ScorerRunInputForAgent;\n output: ScorerRunOutputForAgent;\n} {\n const { spanTree, rootAgentSpan } = prepareTraceForTransformation(trace);\n\n if (!rootAgentSpan.output) {\n throw new Error('Root agent span has no output');\n }\n\n // Build input\n const primaryLLMSpan = findPrimaryLLMSpan(spanTree, rootAgentSpan);\n const inputMessages = extractInputMessages(rootAgentSpan);\n const systemMessages = extractSystemMessages(primaryLLMSpan);\n\n // Extract remembered messages from LLM span (excluding current input)\n const currentInputContent = inputMessages[0]?.content.content || '';\n const rememberedMessages = extractRememberedMessages(primaryLLMSpan, currentInputContent);\n\n const input = {\n inputMessages,\n rememberedMessages,\n systemMessages,\n taggedSystemMessages: {}, // Todo: Support tagged system messages\n };\n\n // Build output\n const toolInvocations = reconstructToolInvocations(spanTree, rootAgentSpan.spanId);\n const responseText = hasTextProperty(rootAgentSpan.output) ? (rootAgentSpan.output.text ?? '') : '';\n\n // Build parts array: tool invocations first, then text\n const parts: Array<{ type: 'tool-invocation'; toolInvocation: any } | { type: 'text'; text: string }> = [];\n\n // Add tool invocation parts\n for (const toolInvocation of toolInvocations) {\n parts.push({\n type: 'tool-invocation',\n toolInvocation,\n });\n }\n\n // Add text part if present\n if (responseText.trim()) {\n parts.push({\n type: 'text',\n text: responseText,\n });\n }\n\n const responseMessage: MastraDBMessage = {\n id: '',\n role: 'assistant',\n content: {\n format: 2,\n parts: parts as any, // Type assertion needed due to providerMetadata optional field\n content: responseText,\n toolInvocations, // Always include, even if empty array\n },\n createdAt: new Date(rootAgentSpan.endedAt || rootAgentSpan.startedAt),\n };\n\n const output: MastraDBMessage[] = [responseMessage];\n\n return {\n input,\n output,\n };\n}\n","import pMap from 'p-map';\nimport { z } from 'zod/v4';\nimport { ErrorCategory, ErrorDomain, MastraError } from '../../error';\nimport { getEntityTypeForSpan } from '../../observability';\nimport type { SpanRecord, TraceRecord, MastraStorage } from '../../storage';\nimport { createStep, createWorkflow } from '../../workflows/evented';\nimport type { MastraScorer, ScorerRun } from '../base';\nimport type { ScoreRowData } from '../types';\nimport { saveScorePayloadSchema } from '../types';\nimport { transformTraceToScorerInputAndOutput } from './utils';\n\nconst getTraceStep = createStep({\n id: '__process-trace-scoring',\n inputSchema: z.object({\n targets: z.array(\n z.object({\n traceId: z.string(),\n spanId: z.string().optional(),\n }),\n ),\n scorerId: z.string(),\n }),\n outputSchema: z.any(),\n execute: async ({ inputData, mastra }) => {\n const logger = mastra.getLogger();\n if (!logger) {\n console.warn(\n '[scoreTracesWorkflow] Logger not initialized: no debug or error logs will be recorded for scoring traces.',\n );\n }\n\n const storage = mastra.getStorage();\n if (!storage) {\n const mastraError = new MastraError({\n id: 'MASTRA_STORAGE_NOT_FOUND_FOR_TRACE_SCORING',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: 'Storage not found for trace scoring',\n details: {\n scorerId: inputData.scorerId,\n },\n });\n logger?.trackException(mastraError);\n return;\n }\n\n let scorer: MastraScorer | undefined;\n try {\n scorer = mastra.getScorerById(inputData.scorerId);\n } catch (error) {\n const mastraError = new MastraError(\n {\n id: 'MASTRA_SCORER_NOT_FOUND_FOR_TRACE_SCORING',\n domain: ErrorDomain.SCORER,\n category: ErrorCategory.SYSTEM,\n text: `Scorer not found for trace scoring`,\n details: {\n scorerId: inputData.scorerId,\n },\n },\n error,\n );\n logger?.trackException(mastraError);\n return;\n }\n\n await pMap(\n inputData.targets,\n async target => {\n try {\n await runScorerOnTarget({ storage, scorer, target });\n } catch (error) {\n const mastraError = new MastraError(\n {\n id: 'MASTRA_SCORER_FAILED_TO_RUN_SCORER_ON_TRACE',\n domain: ErrorDomain.SCORER,\n category: ErrorCategory.SYSTEM,\n details: {\n scorerId: scorer.id,\n spanId: target.spanId || '',\n traceId: target.traceId,\n },\n },\n error,\n );\n logger?.trackException(mastraError);\n }\n },\n { concurrency: 3 },\n );\n },\n});\n\nexport async function runScorerOnTarget({\n storage,\n scorer,\n target,\n}: {\n storage: MastraStorage;\n scorer: MastraScorer;\n target: { traceId: string; spanId?: string };\n}) {\n // TODO: add storage api to get a single span\n const observabilityStore = await storage.getStore('observability');\n if (!observabilityStore) {\n throw new MastraError({\n id: 'MASTRA_OBSERVABILITY_STORAGE_NOT_AVAILABLE',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: 'Observability storage domain is not available',\n });\n }\n const trace = await observabilityStore.getTrace({ traceId: target.traceId });\n if (!trace) {\n throw new Error(`Trace not found for scoring, traceId: ${target.traceId}`);\n }\n\n let span: SpanRecord | undefined;\n if (target.spanId) {\n span = trace.spans.find(span => span.spanId === target.spanId);\n } else {\n span = trace.spans.find(span => span.parentSpanId === null);\n }\n\n if (!span) {\n throw new Error(\n `Span not found for scoring, traceId: ${target.traceId}, spanId: ${target.spanId ?? 'Not provided'}`,\n );\n }\n\n const scorerRun = buildScorerRun({\n scorerType: scorer.type === 'agent' ? 'agent' : undefined,\n trace,\n targetSpan: span,\n });\n const result = await scorer.run({\n ...scorerRun,\n scoreSource: 'trace',\n targetScope: 'span',\n targetEntityType: getEntityTypeForSpan(span),\n targetTraceId: target.traceId,\n targetSpanId: span.spanId,\n });\n\n const scorerResult = {\n ...result,\n scorer: {\n id: scorer.id,\n name: scorer.name || scorer.id,\n description: scorer.description,\n hasJudge: !!scorer.judge,\n },\n traceId: target.traceId,\n spanId: span.spanId,\n entityId: span.entityId || span.entityName || 'unknown',\n entityType: span.spanType,\n entity: { traceId: span.traceId, spanId: span.spanId },\n source: 'TEST',\n scorerId: scorer.id,\n };\n\n // Legacy score-store emission. This path is being deprecated.\n const savedScoreRecord = await validateAndSaveScore({ storage, scorerResult });\n await attachScoreToSpan({ storage, span, scoreRecord: savedScoreRecord });\n}\n\n/**\n * @deprecated Legacy scores-store path. New score emission should use `mastra.observability.addScore()`.\n */\nasync function validateAndSaveScore({ storage, scorerResult }: { storage: MastraStorage; scorerResult: ScorerRun }) {\n const scoresStore = await storage.getStore('scores');\n if (!scoresStore) {\n throw new MastraError({\n id: 'MASTRA_SCORES_STORAGE_NOT_AVAILABLE',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: 'Scores storage domain is not available',\n });\n }\n const payloadToSave = saveScorePayloadSchema.parse(scorerResult);\n const result = await scoresStore.saveScore(payloadToSave);\n return result.score;\n}\n\nfunction buildScorerRun({\n scorerType,\n trace,\n targetSpan,\n}: {\n scorerType?: string;\n trace: TraceRecord;\n targetSpan: SpanRecord;\n}): ScorerRun {\n if (scorerType === 'agent') {\n const { input, output } = transformTraceToScorerInputAndOutput(trace);\n return { input, output };\n }\n return { input: targetSpan.input, output: targetSpan.output };\n}\n\n/**\n * @deprecated Legacy score-attach path. New score emission should use `mastra.observability.addScore()`\n * which autmatically attach scores to spans.\n */\nasync function attachScoreToSpan({\n storage,\n span,\n scoreRecord,\n}: {\n storage: MastraStorage;\n span: SpanRecord;\n scoreRecord: ScoreRowData;\n}) {\n const observabilityStore = await storage.getStore('observability');\n if (!observabilityStore) {\n throw new MastraError({\n id: 'MASTRA_OBSERVABILITY_STORAGE_NOT_AVAILABLE',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: 'Observability storage domain is not available',\n });\n }\n\n // Path 1: Legacy — attach score link to span\n try {\n const existingLinks = span.links || [];\n const link = {\n type: 'score',\n scoreId: scoreRecord.id,\n scorerId: scoreRecord.scorerId ?? scoreRecord.scorer?.id,\n score: scoreRecord.score,\n createdAt: scoreRecord.createdAt,\n };\n await observabilityStore.updateSpan({\n spanId: span.spanId,\n traceId: span.traceId,\n updates: { links: [...existingLinks, link] },\n });\n } catch {\n // Expected for event-sourced stores (e.g. DuckDB) that don't support updateSpan\n }\n}\n\nexport const scoreTracesWorkflow = createWorkflow({\n id: '__batch-scoring-traces',\n inputSchema: z.object({\n targets: z.array(\n z.object({\n traceId: z.string(),\n spanId: z.string().optional(),\n }),\n ),\n scorerId: z.string(),\n }),\n outputSchema: z.any(),\n steps: [getTraceStep],\n options: {\n validateInputs: false,\n },\n});\n\nscoreTracesWorkflow.then(getTraceStep).commit();\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createStep, createWorkflow } from '../../chunk-
|
|
2
|
-
import { saveScorePayloadSchema } from '../../chunk-
|
|
3
|
-
import {
|
|
1
|
+
import { createStep, createWorkflow } from '../../chunk-RF42EKVR.js';
|
|
2
|
+
import { saveScorePayloadSchema } from '../../chunk-ESQI2JRD.js';
|
|
3
|
+
import { getEntityTypeForSpan } from '../../chunk-WG7QIVL7.js';
|
|
4
4
|
import { MastraError } from '../../chunk-FJEVLHJT.js';
|
|
5
5
|
import pMap from 'p-map';
|
|
6
6
|
import { z } from 'zod/v4';
|
|
@@ -240,8 +240,7 @@ var getTraceStep = createStep({
|
|
|
240
240
|
scorerId: z.string()
|
|
241
241
|
}),
|
|
242
242
|
outputSchema: z.any(),
|
|
243
|
-
execute: async ({ inputData, mastra
|
|
244
|
-
const observabilityContext = resolveObservabilityContext(rest);
|
|
243
|
+
execute: async ({ inputData, mastra }) => {
|
|
245
244
|
const logger = mastra.getLogger();
|
|
246
245
|
if (!logger) {
|
|
247
246
|
console.warn(
|
|
@@ -285,7 +284,7 @@ var getTraceStep = createStep({
|
|
|
285
284
|
inputData.targets,
|
|
286
285
|
async (target) => {
|
|
287
286
|
try {
|
|
288
|
-
await runScorerOnTarget({ storage, scorer, target
|
|
287
|
+
await runScorerOnTarget({ storage, scorer, target });
|
|
289
288
|
} catch (error) {
|
|
290
289
|
const mastraError = new MastraError(
|
|
291
290
|
{
|
|
@@ -310,8 +309,7 @@ var getTraceStep = createStep({
|
|
|
310
309
|
async function runScorerOnTarget({
|
|
311
310
|
storage,
|
|
312
311
|
scorer,
|
|
313
|
-
target
|
|
314
|
-
...observabilityContext
|
|
312
|
+
target
|
|
315
313
|
}) {
|
|
316
314
|
const observabilityStore = await storage.getStore("observability");
|
|
317
315
|
if (!observabilityStore) {
|
|
@@ -339,11 +337,17 @@ async function runScorerOnTarget({
|
|
|
339
337
|
}
|
|
340
338
|
const scorerRun = buildScorerRun({
|
|
341
339
|
scorerType: scorer.type === "agent" ? "agent" : void 0,
|
|
342
|
-
...observabilityContext,
|
|
343
340
|
trace,
|
|
344
341
|
targetSpan: span
|
|
345
342
|
});
|
|
346
|
-
const result = await scorer.run(
|
|
343
|
+
const result = await scorer.run({
|
|
344
|
+
...scorerRun,
|
|
345
|
+
scoreSource: "trace",
|
|
346
|
+
targetScope: "span",
|
|
347
|
+
targetEntityType: getEntityTypeForSpan(span),
|
|
348
|
+
targetTraceId: target.traceId,
|
|
349
|
+
targetSpanId: span.spanId
|
|
350
|
+
});
|
|
347
351
|
const scorerResult = {
|
|
348
352
|
...result,
|
|
349
353
|
scorer: {
|
|
@@ -353,7 +357,7 @@ async function runScorerOnTarget({
|
|
|
353
357
|
hasJudge: !!scorer.judge
|
|
354
358
|
},
|
|
355
359
|
traceId: target.traceId,
|
|
356
|
-
spanId:
|
|
360
|
+
spanId: span.spanId,
|
|
357
361
|
entityId: span.entityId || span.entityName || "unknown",
|
|
358
362
|
entityType: span.spanType,
|
|
359
363
|
entity: { traceId: span.traceId, spanId: span.spanId },
|
|
@@ -380,14 +384,13 @@ async function validateAndSaveScore({ storage, scorerResult }) {
|
|
|
380
384
|
function buildScorerRun({
|
|
381
385
|
scorerType,
|
|
382
386
|
trace,
|
|
383
|
-
targetSpan
|
|
384
|
-
...observabilityContext
|
|
387
|
+
targetSpan
|
|
385
388
|
}) {
|
|
386
389
|
if (scorerType === "agent") {
|
|
387
390
|
const { input, output } = transformTraceToScorerInputAndOutput(trace);
|
|
388
|
-
return { input, output
|
|
391
|
+
return { input, output };
|
|
389
392
|
}
|
|
390
|
-
return { input: targetSpan.input, output: targetSpan.output
|
|
393
|
+
return { input: targetSpan.input, output: targetSpan.output };
|
|
391
394
|
}
|
|
392
395
|
async function attachScoreToSpan({
|
|
393
396
|
storage,
|
|
@@ -419,22 +422,6 @@ async function attachScoreToSpan({
|
|
|
419
422
|
});
|
|
420
423
|
} catch {
|
|
421
424
|
}
|
|
422
|
-
try {
|
|
423
|
-
await observabilityStore.createScore({
|
|
424
|
-
score: {
|
|
425
|
-
timestamp: scoreRecord.createdAt ? new Date(scoreRecord.createdAt) : /* @__PURE__ */ new Date(),
|
|
426
|
-
traceId: span.traceId,
|
|
427
|
-
spanId: span.spanId,
|
|
428
|
-
scorerId: scoreRecord.scorerId ?? scoreRecord.scorer?.id,
|
|
429
|
-
score: scoreRecord.score,
|
|
430
|
-
reason: scoreRecord.reason ?? null,
|
|
431
|
-
experimentId: null,
|
|
432
|
-
scoreTraceId: null,
|
|
433
|
-
metadata: scoreRecord.metadata ?? null
|
|
434
|
-
}
|
|
435
|
-
});
|
|
436
|
-
} catch {
|
|
437
|
-
}
|
|
438
425
|
}
|
|
439
426
|
var scoreTracesWorkflow = createWorkflow({
|
|
440
427
|
id: "__batch-scoring-traces",
|
|
@@ -450,9 +437,6 @@ var scoreTracesWorkflow = createWorkflow({
|
|
|
450
437
|
outputSchema: z.any(),
|
|
451
438
|
steps: [getTraceStep],
|
|
452
439
|
options: {
|
|
453
|
-
tracingPolicy: {
|
|
454
|
-
internal: 15 /* ALL */
|
|
455
|
-
},
|
|
456
440
|
validateInputs: false
|
|
457
441
|
}
|
|
458
442
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/evals/scoreTraces/scoreTraces.ts","../../../src/evals/scoreTraces/utils.ts","../../../src/evals/scoreTraces/scoreTracesWorkflow.ts"],"names":["span"],"mappings":";;;;;;;;AAGA,eAAsB,WAAA,CAAY;AAAA,EAChC,QAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA,EAIG;AACD,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,qBAAA,CAAsB,wBAAwB,CAAA;AACtE,EAAA,IAAI;AACF,IAAA,MAAM,GAAA,GAAM,MAAM,QAAA,CAAS,SAAA,EAAU;AAErC,IAAA,MAAM,GAAA,CAAI,MAAM,EAAE,SAAA,EAAW,EAAE,OAAA,EAAS,QAAA,IAAY,CAAA;AAAA,EACtD,SAAS,KAAA,EAAO;AACd,IAAA,MAAM,cAAc,IAAI,WAAA;AAAA,MACtB;AAAA,QACE,QAAA,EAAU,QAAA;AAAA,QACV,MAAA,EAAQ,QAAA;AAAA,QACR,EAAA,EAAI,2CAAA;AAAA,QACJ,OAAA,EAAS;AAAA,UACP,QAAA;AAAA,UACA,OAAA,EAAS,IAAA,CAAK,SAAA,CAAU,OAAO;AAAA;AACjC,OACF;AAAA,MACA;AAAA,KACF;AACA,IAAA,MAAA,CAAO,SAAA,EAAU,EAAG,cAAA,CAAe,WAAW,CAAA;AAAA,EAChD;AACF;;;ACZA,SAAS,cAAc,KAAA,EAAsC;AAC3D,EAAA,OACE,OAAO,KAAA,KAAU,QAAA,IACjB,KAAA,KAAU,IAAA,IACV,MAAA,IAAU,KAAA,IACV,OAAQ,KAAA,CAAsB,IAAA,KAAS,QAAA,IACvC,SAAA,IAAa,KAAA;AAEjB;AAEA,SAAS,iBAAiB,KAAA,EAAgD;AACxE,EAAA,OACE,OAAO,KAAA,KAAU,QAAA,IACjB,KAAA,KAAU,IAAA,IACV,cAAc,KAAA,IACd,KAAA,CAAM,OAAA,CAAS,KAAA,CAAgC,QAAQ,CAAA;AAE3D;AAEA,SAAS,gBAAgB,KAAA,EAA6C;AACpE,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,KAAU,QAAQ,MAAA,IAAU,KAAA;AAClE;AAYO,SAAS,cAAc,KAAA,EAA+B;AAC3D,EAAA,MAAM,OAAA,uBAAc,GAAA,EAAwB;AAC5C,EAAA,MAAM,WAAA,uBAAkB,GAAA,EAA0B;AAClD,EAAA,MAAM,YAA0B,EAAC;AAGjC,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,IAAA,OAAA,CAAQ,GAAA,CAAI,IAAA,CAAK,MAAA,EAAQ,IAAI,CAAA;AAAA,EAC/B;AAGA,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,IAAA,IAAI,IAAA,CAAK,gBAAgB,IAAA,EAAM;AAE7B,MAAA,SAAA,CAAU,KAAK,IAAI,CAAA;AAAA,IACrB,CAAA,MAAO;AACL,MAAA,MAAM,WAAW,WAAA,CAAY,GAAA,CAAI,IAAA,CAAK,YAAY,KAAK,EAAC;AACxD,MAAA,QAAA,CAAS,KAAK,IAAI,CAAA;AAClB,MAAA,WAAA,CAAY,GAAA,CAAI,IAAA,CAAK,YAAA,EAAc,QAAQ,CAAA;AAAA,IAC7C;AAAA,EACF;AAGA,EAAA,KAAA,MAAW,QAAA,IAAY,WAAA,CAAY,MAAA,EAAO,EAAG;AAC3C,IAAA,QAAA,CAAS,KAAK,CAAC,CAAA,EAAG,CAAA,KAAM,IAAI,KAAK,CAAA,CAAE,SAAS,CAAA,CAAE,OAAA,KAAY,IAAI,IAAA,CAAK,EAAE,SAAS,CAAA,CAAE,SAAS,CAAA;AAAA,EAC3F;AAGA,EAAA,SAAA,CAAU,KAAK,CAAC,CAAA,EAAG,CAAA,KAAM,IAAI,KAAK,CAAA,CAAE,SAAS,CAAA,CAAE,OAAA,KAAY,IAAI,IAAA,CAAK,EAAE,SAAS,CAAA,CAAE,SAAS,CAAA;AAE1F,EAAA,OAAO,EAAE,OAAA,EAAS,WAAA,EAAa,SAAA,EAAU;AAC3C;AAKA,SAAS,iBAAA,CAAwC,QAAA,EAAoB,YAAA,EAAsB,QAAA,EAAyB;AAClH,EAAA,MAAM,WAAW,QAAA,CAAS,WAAA,CAAY,GAAA,CAAI,YAAY,KAAK,EAAC;AAC5D,EAAA,OAAO,QAAA,CAAS,MAAA,CAAO,CAAA,IAAA,KAAQ,IAAA,CAAK,aAAa,QAAQ,CAAA;AAC3D;AAMA,SAAS,wBAAwB,OAAA,EAAiE;AAChG,EAAA,IAAI,OAAO,YAAY,QAAA,EAAU;AAC/B,IAAA,OAAO,OAAA;AAAA,EACT;AAGA,EAAA,MAAM,YAAY,OAAA,CAAQ,MAAA,CAAO,CAAA,IAAA,KAAQ,IAAA,CAAK,SAAS,MAAM,CAAA;AAC7D,EAAA,OAAO,SAAA,CAAU,SAAS,CAAA,GAAI,SAAA,CAAU,UAAU,MAAA,GAAS,CAAC,CAAA,EAAG,IAAA,IAAQ,EAAA,GAAK,EAAA;AAC9E;AAKA,SAAS,qBAAA,CACP,OAAA,EACA,SAAA,EACA,EAAA,GAAa,EAAA,EACI;AACjB,EAAA,MAAM,WAAA,GAAc,uBAAA,CAAwB,OAAA,CAAQ,OAAO,CAAA;AAC3D,EAAA,MAAM,OAAO,OAAA,CAAQ,IAAA;AAErB,EAAA,OAAO;AAAA,IACL,EAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ,CAAA;AAAA,MACR,OAAO,CAAC,EAAE,MAAM,MAAA,EAAQ,IAAA,EAAM,aAAa,CAAA;AAAA,MAC3C,OAAA,EAAS;AAAA,KACX;AAAA,IACA,SAAA,EAAW,IAAI,IAAA,CAAK,SAAS;AAAA,GAC/B;AACF;AAKA,SAAS,qBAAqB,SAAA,EAA0C;AACtE,EAAA,MAAM,QAAQ,SAAA,CAAU,KAAA;AAGxB,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,OAAO;AAAA,MACL,qBAAA;AAAA,QACE;AAAA,UACE,IAAA,EAAM,MAAA;AAAA,UACN,OAAA,EAAS;AAAA,SACX;AAAA,QACA,SAAA,CAAU;AAAA;AACZ,KACF;AAAA,EACF;AAEA,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACxB,IAAA,MAAM,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,aAAa,CAAA;AAC3C,IAAA,OAAO,SAAS,GAAA,CAAI,CAAA,GAAA,KAAO,sBAAsB,GAAA,EAAK,SAAA,CAAU,SAAS,CAAC,CAAA;AAAA,EAC5E;AAEA,EAAA,IAAI,gBAAA,CAAiB,KAAK,CAAA,EAAG;AAC3B,IAAA,MAAM,QAAA,GAAW,KAAA,CAAM,QAAA,CAAS,MAAA,CAAO,aAAa,CAAA;AACpD,IAAA,OAAO,SAAS,GAAA,CAAI,CAAA,GAAA,KAAO,sBAAsB,GAAA,EAAK,SAAA,CAAU,SAAS,CAAC,CAAA;AAAA,EAC5E;AACA,EAAA,OAAO,EAAC;AACV;AAKA,SAAS,sBAAsB,OAAA,EAAiE;AAC9F,EAAA,MAAM,QAAQ,OAAA,CAAQ,KAAA;AACtB,EAAA,IAAI,CAAC,gBAAA,CAAiB,KAAK,CAAA,EAAG;AAC5B,IAAA,OAAO,EAAC;AAAA,EACV;AACA,EAAA,OAAO,KAAA,CAAM,QAAA,CACV,MAAA,CAAO,CAAC,GAAA,KAAiD,aAAA,CAAc,GAAG,CAAA,IAAK,GAAA,CAAI,IAAA,KAAS,QAAQ,CAAA,CACpG,IAAI,CAAA,GAAA,MAAQ;AAAA,IACX,IAAA,EAAM,QAAA;AAAA,IACN,OAAA,EAAS,uBAAA,CAAwB,GAAA,CAAI,OAAO;AAAA,GAC9C,CAAE,CAAA;AACN;AAMA,SAAS,yBAAA,CAA0B,SAAqB,mBAAA,EAAgD;AACtG,EAAA,MAAM,QAAQ,OAAA,CAAQ,KAAA;AACtB,EAAA,IAAI,CAAC,gBAAA,CAAiB,KAAK,CAAA,EAAG;AAC5B,IAAA,OAAO,EAAC;AAAA,EACV;AACA,EAAA,MAAM,QAAA,GAAW,KAAA,CAAM,QAAA,CAAS,MAAA,CAAO,aAAa,CAAA;AACpD,EAAA,MAAM,QAAA,GAAW,QAAA,CACd,MAAA,CAAO,CAAA,GAAA,KAAO,IAAI,IAAA,KAAS,QAAQ,CAAA,CACnC,MAAA,CAAO,CAAA,GAAA,KAAO,uBAAA,CAAwB,GAAA,CAAI,OAAO,MAAM,mBAAmB,CAAA;AAE7E,EAAA,OAAO,SAAS,GAAA,CAAI,CAAA,GAAA,KAAO,sBAAsB,GAAA,EAAK,OAAA,CAAQ,SAAS,CAAC,CAAA;AAC1E;AAKA,SAAS,0BAAA,CAA2B,UAAoB,YAAA,EAAsB;AAC5E,EAAA,MAAM,SAAA,GAAY,iBAAA,CAA8B,QAAA,EAAU,YAAA,EAAA,WAAA,iBAAgC;AAE1F,EAAA,OAAO,SAAA,CAAU,IAAI,CAAA,QAAA,MAAa;AAAA,IAChC,YAAY,QAAA,CAAS,MAAA;AAAA,IACrB,QAAA,EAAU,QAAA,CAAS,UAAA,IAAc,QAAA,CAAS,QAAA,IAAY,SAAA;AAAA,IACtD,QAAQ,QAAA,CAAS,QAAA;AAAA,IACjB,IAAA,EAAM,QAAA,CAAS,KAAA,IAAS,EAAC;AAAA,IACzB,MAAA,EAAQ,QAAA,CAAS,MAAA,IAAU,EAAC;AAAA,IAC5B,KAAA,EAAO;AAAA,GACT,CAAE,CAAA;AACJ;AAKO,SAAS,cAAc,KAAA,EAA0B;AACtD,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,MAAM,4BAA4B,CAAA;AAAA,EAC9C;AAEA,EAAA,IAAI,CAAC,MAAM,KAAA,IAAS,CAAC,MAAM,OAAA,CAAQ,KAAA,CAAM,KAAK,CAAA,EAAG;AAC/C,IAAA,MAAM,IAAI,MAAM,+BAA+B,CAAA;AAAA,EACjD;AAEA,EAAA,IAAI,KAAA,CAAM,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG;AAC5B,IAAA,MAAM,IAAI,MAAM,oBAAoB,CAAA;AAAA,EACtC;AAGA,EAAA,MAAM,OAAA,GAAU,IAAI,GAAA,CAAI,KAAA,CAAM,MAAM,GAAA,CAAI,CAAA,IAAA,KAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC5D,EAAA,KAAA,MAAW,IAAA,IAAQ,MAAM,KAAA,EAAO;AAC9B,IAAA,IAAI,KAAK,YAAA,IAAgB,CAAC,QAAQ,GAAA,CAAI,IAAA,CAAK,YAAY,CAAA,EAAG;AACxD,MAAA,MAAM,IAAI,MAAM,CAAA,KAAA,EAAQ,IAAA,CAAK,MAAM,CAAA,gCAAA,EAAmC,IAAA,CAAK,YAAY,CAAA,CAAE,CAAA;AAAA,IAC3F;AAAA,EACF;AACF;AAKA,SAAS,kBAAA,CAAmB,UAAoB,aAAA,EAAuC;AACrF,EAAA,MAAM,cAAA,GAAiB,iBAAA,CAA8B,QAAA,EAAU,aAAA,CAAc,MAAA,EAAA,kBAAA,wBAAiC;AAC9G,EAAA,IAAI,cAAA,CAAe,SAAS,CAAA,EAAG;AAE7B,IAAA,OAAO,eAAe,CAAC,CAAA;AAAA,EACzB;AAEA,EAAA,MAAM,IAAI,MAAM,yCAAyC,CAAA;AAC3D;AAKA,SAAS,8BAA8B,KAAA,EAAoB;AACzD,EAAA,aAAA,CAAc,KAAK,CAAA;AACnB,EAAA,MAAM,QAAA,GAAW,aAAA,CAAc,KAAA,CAAM,KAAK,CAAA;AAG1C,EAAA,MAAM,gBAAgB,QAAA,CAAS,SAAA,CAAU,KAAK,CAAA,IAAA,KAAQ,IAAA,CAAK,aAAa,WAAW,CAAA;AAEnF,EAAA,IAAI,CAAC,aAAA,EAAe;AAClB,IAAA,MAAM,IAAI,MAAM,uCAAuC,CAAA;AAAA,EACzD;AAEA,EAAA,OAAO,EAAE,UAAU,aAAA,EAAc;AACnC;AAEO,SAAS,qCAAqC,KAAA,EAGnD;AACA,EAAA,MAAM,EAAE,QAAA,EAAU,aAAA,EAAc,GAAI,8BAA8B,KAAK,CAAA;AAEvE,EAAA,IAAI,CAAC,cAAc,MAAA,EAAQ;AACzB,IAAA,MAAM,IAAI,MAAM,+BAA+B,CAAA;AAAA,EACjD;AAGA,EAAA,MAAM,cAAA,GAAiB,kBAAA,CAAmB,QAAA,EAAU,aAAa,CAAA;AACjE,EAAA,MAAM,aAAA,GAAgB,qBAAqB,aAAa,CAAA;AACxD,EAAA,MAAM,cAAA,GAAiB,sBAAsB,cAAc,CAAA;AAG3D,EAAA,MAAM,mBAAA,GAAsB,aAAA,CAAc,CAAC,CAAA,EAAG,QAAQ,OAAA,IAAW,EAAA;AACjE,EAAA,MAAM,kBAAA,GAAqB,yBAAA,CAA0B,cAAA,EAAgB,mBAAmB,CAAA;AAExF,EAAA,MAAM,KAAA,GAAQ;AAAA,IACZ,aAAA;AAAA,IACA,kBAAA;AAAA,IACA,cAAA;AAAA,IACA,sBAAsB;AAAC;AAAA,GACzB;AAGA,EAAA,MAAM,eAAA,GAAkB,0BAAA,CAA2B,QAAA,EAAU,aAAA,CAAc,MAAM,CAAA;AACjF,EAAA,MAAM,YAAA,GAAe,gBAAgB,aAAA,CAAc,MAAM,IAAK,aAAA,CAAc,MAAA,CAAO,QAAQ,EAAA,GAAM,EAAA;AAGjG,EAAA,MAAM,QAAkG,EAAC;AAGzG,EAAA,KAAA,MAAW,kBAAkB,eAAA,EAAiB;AAC5C,IAAA,KAAA,CAAM,IAAA,CAAK;AAAA,MACT,IAAA,EAAM,iBAAA;AAAA,MACN;AAAA,KACD,CAAA;AAAA,EACH;AAGA,EAAA,IAAI,YAAA,CAAa,MAAK,EAAG;AACvB,IAAA,KAAA,CAAM,IAAA,CAAK;AAAA,MACT,IAAA,EAAM,MAAA;AAAA,MACN,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AAEA,EAAA,MAAM,eAAA,GAAmC;AAAA,IACvC,EAAA,EAAI,EAAA;AAAA,IACJ,IAAA,EAAM,WAAA;AAAA,IACN,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ,CAAA;AAAA,MACR,KAAA;AAAA;AAAA,MACA,OAAA,EAAS,YAAA;AAAA,MACT;AAAA;AAAA,KACF;AAAA,IACA,WAAW,IAAI,IAAA,CAAK,aAAA,CAAc,OAAA,IAAW,cAAc,SAAS;AAAA,GACtE;AAEA,EAAA,MAAM,MAAA,GAA4B,CAAC,eAAe,CAAA;AAElD,EAAA,OAAO;AAAA,IACL,KAAA;AAAA,IACA;AAAA,GACF;AACF;;;ACjUA,IAAM,eAAe,UAAA,CAAW;AAAA,EAC9B,EAAA,EAAI,yBAAA;AAAA,EACJ,WAAA,EAAa,EAAE,MAAA,CAAO;AAAA,IACpB,SAAS,CAAA,CAAE,KAAA;AAAA,MACT,EAAE,MAAA,CAAO;AAAA,QACP,OAAA,EAAS,EAAE,MAAA,EAAO;AAAA,QAClB,MAAA,EAAQ,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,OAC7B;AAAA,KACH;AAAA,IACA,QAAA,EAAU,EAAE,MAAA;AAAO,GACpB,CAAA;AAAA,EACD,YAAA,EAAc,EAAE,GAAA,EAAI;AAAA,EACpB,SAAS,OAAO,EAAE,WAAW,MAAA,EAAQ,GAAG,MAAK,KAAM;AACjD,IAAA,MAAM,oBAAA,GAAuB,4BAA4B,IAAI,CAAA;AAC7D,IAAA,MAAM,MAAA,GAAS,OAAO,SAAA,EAAU;AAChC,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,OAAA,CAAQ,IAAA;AAAA,QACN;AAAA,OACF;AAAA,IACF;AAEA,IAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAClC,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,MAAM,WAAA,GAAc,IAAI,WAAA,CAAY;AAAA,QAClC,EAAA,EAAI,4CAAA;AAAA,QACJ,MAAA,EAAA,SAAA;AAAA,QACA,QAAA,EAAA,QAAA;AAAA,QACA,IAAA,EAAM,qCAAA;AAAA,QACN,OAAA,EAAS;AAAA,UACP,UAAU,SAAA,CAAU;AAAA;AACtB,OACD,CAAA;AACD,MAAA,MAAA,EAAQ,eAAe,WAAW,CAAA;AAClC,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,MAAA;AACJ,IAAA,IAAI;AACF,MAAA,MAAA,GAAS,MAAA,CAAO,aAAA,CAAc,SAAA,CAAU,QAAQ,CAAA;AAAA,IAClD,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,cAAc,IAAI,WAAA;AAAA,QACtB;AAAA,UACE,EAAA,EAAI,2CAAA;AAAA,UACJ,MAAA,EAAA,QAAA;AAAA,UACA,QAAA,EAAA,QAAA;AAAA,UACA,IAAA,EAAM,CAAA,kCAAA,CAAA;AAAA,UACN,OAAA,EAAS;AAAA,YACP,UAAU,SAAA,CAAU;AAAA;AACtB,SACF;AAAA,QACA;AAAA,OACF;AACA,MAAA,MAAA,EAAQ,eAAe,WAAW,CAAA;AAClC,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,IAAA;AAAA,MACJ,SAAA,CAAU,OAAA;AAAA,MACV,OAAM,MAAA,KAAU;AACd,QAAA,IAAI;AACF,UAAA,MAAM,kBAAkB,EAAE,OAAA,EAAS,QAAQ,MAAA,EAAQ,GAAG,sBAAsB,CAAA;AAAA,QAC9E,SAAS,KAAA,EAAO;AACd,UAAA,MAAM,cAAc,IAAI,WAAA;AAAA,YACtB;AAAA,cACE,EAAA,EAAI,6CAAA;AAAA,cACJ,MAAA,EAAA,QAAA;AAAA,cACA,QAAA,EAAA,QAAA;AAAA,cACA,OAAA,EAAS;AAAA,gBACP,UAAU,MAAA,CAAO,EAAA;AAAA,gBACjB,MAAA,EAAQ,OAAO,MAAA,IAAU,EAAA;AAAA,gBACzB,SAAS,MAAA,CAAO;AAAA;AAClB,aACF;AAAA,YACA;AAAA,WACF;AACA,UAAA,MAAA,EAAQ,eAAe,WAAW,CAAA;AAAA,QACpC;AAAA,MACF,CAAA;AAAA,MACA,EAAE,aAAa,CAAA;AAAE,KACnB;AAAA,EACF;AACF,CAAC,CAAA;AAED,eAAsB,iBAAA,CAAkB;AAAA,EACtC,OAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,GAAG;AACL,CAAA,EAImC;AAEjC,EAAA,MAAM,kBAAA,GAAqB,MAAM,OAAA,CAAQ,QAAA,CAAS,eAAe,CAAA;AACjE,EAAA,IAAI,CAAC,kBAAA,EAAoB;AACvB,IAAA,MAAM,IAAI,WAAA,CAAY;AAAA,MACpB,EAAA,EAAI,4CAAA;AAAA,MACJ,MAAA,EAAA,SAAA;AAAA,MACA,QAAA,EAAA,QAAA;AAAA,MACA,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AACA,EAAA,MAAM,KAAA,GAAQ,MAAM,kBAAA,CAAmB,QAAA,CAAS,EAAE,OAAA,EAAS,MAAA,CAAO,SAAS,CAAA;AAC3E,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,sCAAA,EAAyC,MAAA,CAAO,OAAO,CAAA,CAAE,CAAA;AAAA,EAC3E;AAEA,EAAA,IAAI,IAAA;AACJ,EAAA,IAAI,OAAO,MAAA,EAAQ;AACjB,IAAA,IAAA,GAAO,KAAA,CAAM,MAAM,IAAA,CAAK,CAAAA,UAAQA,KAAAA,CAAK,MAAA,KAAW,OAAO,MAAM,CAAA;AAAA,EAC/D,CAAA,MAAO;AACL,IAAA,IAAA,GAAO,MAAM,KAAA,CAAM,IAAA,CAAK,CAAAA,KAAAA,KAAQA,KAAAA,CAAK,iBAAiB,IAAI,CAAA;AAAA,EAC5D;AAEA,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,wCAAwC,MAAA,CAAO,OAAO,CAAA,UAAA,EAAa,MAAA,CAAO,UAAU,cAAc,CAAA;AAAA,KACpG;AAAA,EACF;AAEA,EAAA,MAAM,YAAY,cAAA,CAAe;AAAA,IAC/B,UAAA,EAAY,MAAA,CAAO,IAAA,KAAS,OAAA,GAAU,OAAA,GAAU,MAAA;AAAA,IAChD,GAAG,oBAAA;AAAA,IACH,KAAA;AAAA,IACA,UAAA,EAAY;AAAA,GACb,CAAA;AAED,EAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,GAAA,CAAI,SAAS,CAAA;AACzC,EAAA,MAAM,YAAA,GAAe;AAAA,IACnB,GAAG,MAAA;AAAA,IACH,MAAA,EAAQ;AAAA,MACN,IAAI,MAAA,CAAO,EAAA;AAAA,MACX,IAAA,EAAM,MAAA,CAAO,IAAA,IAAQ,MAAA,CAAO,EAAA;AAAA,MAC5B,aAAa,MAAA,CAAO,WAAA;AAAA,MACpB,QAAA,EAAU,CAAC,CAAC,MAAA,CAAO;AAAA,KACrB;AAAA,IACA,SAAS,MAAA,CAAO,OAAA;AAAA,IAChB,QAAQ,MAAA,CAAO,MAAA;AAAA,IACf,QAAA,EAAU,IAAA,CAAK,QAAA,IAAY,IAAA,CAAK,UAAA,IAAc,SAAA;AAAA,IAC9C,YAAY,IAAA,CAAK,QAAA;AAAA,IACjB,QAAQ,EAAE,OAAA,EAAS,KAAK,OAAA,EAAS,MAAA,EAAQ,KAAK,MAAA,EAAO;AAAA,IACrD,MAAA,EAAQ,MAAA;AAAA,IACR,UAAU,MAAA,CAAO;AAAA,GACnB;AAEA,EAAA,MAAM,mBAAmB,MAAM,oBAAA,CAAqB,EAAE,OAAA,EAAS,cAAc,CAAA;AAC7E,EAAA,MAAM,kBAAkB,EAAE,OAAA,EAAS,IAAA,EAAM,WAAA,EAAa,kBAAkB,CAAA;AAC1E;AAMA,eAAe,oBAAA,CAAqB,EAAE,OAAA,EAAS,YAAA,EAAa,EAAwD;AAClH,EAAA,MAAM,WAAA,GAAc,MAAM,OAAA,CAAQ,QAAA,CAAS,QAAQ,CAAA;AACnD,EAAA,IAAI,CAAC,WAAA,EAAa;AAChB,IAAA,MAAM,IAAI,WAAA,CAAY;AAAA,MACpB,EAAA,EAAI,qCAAA;AAAA,MACJ,MAAA,EAAA,SAAA;AAAA,MACA,QAAA,EAAA,QAAA;AAAA,MACA,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AACA,EAAA,MAAM,aAAA,GAAgB,sBAAA,CAAuB,KAAA,CAAM,YAAY,CAAA;AAC/D,EAAA,MAAM,MAAA,GAAS,MAAM,WAAA,CAAY,SAAA,CAAU,aAAa,CAAA;AACxD,EAAA,OAAO,MAAA,CAAO,KAAA;AAChB;AAEA,SAAS,cAAA,CAAe;AAAA,EACtB,UAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA,GAAG;AACL,CAAA,EAI8C;AAC5C,EAAA,IAAI,eAAe,OAAA,EAAS;AAC1B,IAAA,MAAM,EAAE,KAAA,EAAO,MAAA,EAAO,GAAI,qCAAqC,KAAK,CAAA;AACpE,IAAA,OAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,GAAG,oBAAA,EAAqB;AAAA,EAClD;AACA,EAAA,OAAO,EAAE,OAAO,UAAA,CAAW,KAAA,EAAO,QAAQ,UAAA,CAAW,MAAA,EAAQ,GAAG,oBAAA,EAAqB;AACvF;AAkBA,eAAe,iBAAA,CAAkB;AAAA,EAC/B,OAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAA,EAIG;AACD,EAAA,MAAM,kBAAA,GAAqB,MAAM,OAAA,CAAQ,QAAA,CAAS,eAAe,CAAA;AACjE,EAAA,IAAI,CAAC,kBAAA,EAAoB;AACvB,IAAA,MAAM,IAAI,WAAA,CAAY;AAAA,MACpB,EAAA,EAAI,4CAAA;AAAA,MACJ,MAAA,EAAA,SAAA;AAAA,MACA,QAAA,EAAA,QAAA;AAAA,MACA,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AAGA,EAAA,IAAI;AACF,IAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,KAAA,IAAS,EAAC;AACrC,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,IAAA,EAAM,OAAA;AAAA,MACN,SAAS,WAAA,CAAY,EAAA;AAAA,MACrB,QAAA,EAAU,WAAA,CAAY,QAAA,IAAY,WAAA,CAAY,MAAA,EAAQ,EAAA;AAAA,MACtD,OAAO,WAAA,CAAY,KAAA;AAAA,MACnB,WAAW,WAAA,CAAY;AAAA,KACzB;AACA,IAAA,MAAM,mBAAmB,UAAA,CAAW;AAAA,MAClC,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,SAAS,EAAE,KAAA,EAAO,CAAC,GAAG,aAAA,EAAe,IAAI,CAAA;AAAE,KAC5C,CAAA;AAAA,EACH,CAAA,CAAA,MAAQ;AAAA,EAER;AAGA,EAAA,IAAI;AACF,IAAA,MAAM,mBAAmB,WAAA,CAAY;AAAA,MACnC,KAAA,EAAO;AAAA,QACL,SAAA,EAAW,YAAY,SAAA,GAAY,IAAI,KAAK,WAAA,CAAY,SAAS,CAAA,mBAAI,IAAI,IAAA,EAAK;AAAA,QAC9E,SAAS,IAAA,CAAK,OAAA;AAAA,QACd,QAAQ,IAAA,CAAK,MAAA;AAAA,QACb,QAAA,EAAU,WAAA,CAAY,QAAA,IAAa,WAAA,CAAY,MAAA,EAAQ,EAAA;AAAA,QACvD,OAAO,WAAA,CAAY,KAAA;AAAA,QACnB,MAAA,EAAQ,YAAY,MAAA,IAAU,IAAA;AAAA,QAC9B,YAAA,EAAc,IAAA;AAAA,QACd,YAAA,EAAc,IAAA;AAAA,QACd,QAAA,EAAU,YAAY,QAAA,IAAY;AAAA;AACpC,KACD,CAAA;AAAA,EACH,CAAA,CAAA,MAAQ;AAAA,EAER;AACF;AAEO,IAAM,sBAAsB,cAAA,CAAe;AAAA,EAChD,EAAA,EAAI,wBAAA;AAAA,EACJ,WAAA,EAAa,EAAE,MAAA,CAAO;AAAA,IACpB,SAAS,CAAA,CAAE,KAAA;AAAA,MACT,EAAE,MAAA,CAAO;AAAA,QACP,OAAA,EAAS,EAAE,MAAA,EAAO;AAAA,QAClB,MAAA,EAAQ,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,OAC7B;AAAA,KACH;AAAA,IACA,QAAA,EAAU,EAAE,MAAA;AAAO,GACpB,CAAA;AAAA,EACD,YAAA,EAAc,EAAE,GAAA,EAAI;AAAA,EACpB,KAAA,EAAO,CAAC,YAAY,CAAA;AAAA,EACpB,OAAA,EAAS;AAAA,IACP,aAAA,EAAe;AAAA,MACb,QAAA,EAAA,EAAA;AAAA,KACF;AAAA,IACA,cAAA,EAAgB;AAAA;AAEpB,CAAC;AAED,mBAAA,CAAoB,IAAA,CAAK,YAAY,CAAA,CAAE,MAAA,EAAO","file":"index.js","sourcesContent":["import { MastraError } from '../../error';\nimport type { Mastra } from '../../mastra';\n\nexport async function scoreTraces({\n scorerId,\n targets,\n mastra,\n}: {\n scorerId: string;\n targets: { traceId: string; spanId?: string }[];\n mastra: Mastra;\n}) {\n const workflow = mastra.__getInternalWorkflow('__batch-scoring-traces');\n try {\n const run = await workflow.createRun();\n\n await run.start({ inputData: { targets, scorerId } });\n } catch (error) {\n const mastraError = new MastraError(\n {\n category: 'SYSTEM',\n domain: 'SCORER',\n id: 'MASTRA_SCORER_FAILED_TO_RUN_TRACE_SCORING',\n details: {\n scorerId,\n targets: JSON.stringify(targets),\n },\n },\n error,\n );\n mastra.getLogger()?.trackException(mastraError);\n }\n}\n","import type { MastraDBMessage } from '../../agent';\nimport { SpanType } from '../../observability';\nimport type { SpanRecord, TraceRecord } from '../../storage';\nimport type { ScorerRunInputForAgent, ScorerRunOutputForAgent } from '../types';\n\n// Types for span input/output structures\ninterface SpanMessage {\n role: string;\n content: string | Array<{ type: string; text: string }>;\n}\n\ninterface SpanInputWithMessages {\n messages: SpanMessage[];\n}\n\ninterface SpanOutputWithText {\n text?: string;\n}\n\n// Type guards for span data\nfunction isSpanMessage(value: unknown): value is SpanMessage {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'role' in value &&\n typeof (value as SpanMessage).role === 'string' &&\n 'content' in value\n );\n}\n\nfunction hasMessagesArray(value: unknown): value is SpanInputWithMessages {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'messages' in value &&\n Array.isArray((value as SpanInputWithMessages).messages)\n );\n}\n\nfunction hasTextProperty(value: unknown): value is SpanOutputWithText {\n return typeof value === 'object' && value !== null && 'text' in value;\n}\n\n// // Span tree structure for efficient lookups\ninterface SpanTree {\n spanMap: Map<string, SpanRecord>;\n childrenMap: Map<string, SpanRecord[]>;\n rootSpans: SpanRecord[];\n}\n\n/**\n * Build a hierarchical span tree with efficient lookup maps\n */\nexport function buildSpanTree(spans: SpanRecord[]): SpanTree {\n const spanMap = new Map<string, SpanRecord>();\n const childrenMap = new Map<string, SpanRecord[]>();\n const rootSpans: SpanRecord[] = [];\n\n // First pass: build span map\n for (const span of spans) {\n spanMap.set(span.spanId, span);\n }\n\n // Second pass: build parent-child relationships\n for (const span of spans) {\n if (span.parentSpanId == null) {\n // Root span (parentSpanId is null or undefined)\n rootSpans.push(span);\n } else {\n const siblings = childrenMap.get(span.parentSpanId) || [];\n siblings.push(span);\n childrenMap.set(span.parentSpanId, siblings);\n }\n }\n\n // Sort children by startedAt timestamp for temporal ordering\n for (const children of childrenMap.values()) {\n children.sort((a, b) => new Date(a.startedAt).getTime() - new Date(b.startedAt).getTime());\n }\n\n // Sort root spans by startedAt\n rootSpans.sort((a, b) => new Date(a.startedAt).getTime() - new Date(b.startedAt).getTime());\n\n return { spanMap, childrenMap, rootSpans };\n}\n\n/**\n * Extract children spans of a specific type\n */\nfunction getChildrenOfType<T extends SpanRecord>(spanTree: SpanTree, parentSpanId: string, spanType: SpanType): T[] {\n const children = spanTree.childrenMap.get(parentSpanId) || [];\n return children.filter(span => span.spanType === spanType) as T[];\n}\n\n/**\n * Normalize message content to string format\n * For arrays with multiple text parts, returns only the last text part (AI SDK convention)\n */\nfunction normalizeMessageContent(content: string | Array<{ type: string; text: string }>): string {\n if (typeof content === 'string') {\n return content;\n }\n\n // Extract text parts and return only the last one (AI SDK convention)\n const textParts = content.filter(part => part.type === 'text');\n return textParts.length > 0 ? textParts[textParts.length - 1]?.text || '' : '';\n}\n\n/**\n * Create MastraDBMessage directly from span message data\n */\nfunction createMastraDBMessage(\n message: { role: string; content: string | Array<{ type: string; text: string }> },\n createdAt: Date,\n id: string = '',\n): MastraDBMessage {\n const contentText = normalizeMessageContent(message.content);\n const role = message.role as 'user' | 'assistant' | 'system';\n\n return {\n id,\n role,\n content: {\n format: 2,\n parts: [{ type: 'text', text: contentText }],\n content: contentText,\n },\n createdAt: new Date(createdAt),\n };\n}\n\n/**\n * Extract input messages from agent run span\n */\nfunction extractInputMessages(agentSpan: SpanRecord): MastraDBMessage[] {\n const input = agentSpan.input;\n\n // Handle different input formats\n if (typeof input === 'string') {\n return [\n createMastraDBMessage(\n {\n role: 'user',\n content: input,\n },\n agentSpan.startedAt,\n ),\n ];\n }\n\n if (Array.isArray(input)) {\n const messages = input.filter(isSpanMessage) as SpanMessage[];\n return messages.map(msg => createMastraDBMessage(msg, agentSpan.startedAt));\n }\n\n if (hasMessagesArray(input)) {\n const messages = input.messages.filter(isSpanMessage) as SpanMessage[];\n return messages.map(msg => createMastraDBMessage(msg, agentSpan.startedAt));\n }\n return [];\n}\n\n/**\n * Extract system messages from LLM span\n */\nfunction extractSystemMessages(llmSpan: SpanRecord): Array<{ role: 'system'; content: string }> {\n const input = llmSpan.input;\n if (!hasMessagesArray(input)) {\n return [];\n }\n return input.messages\n .filter((msg): msg is SpanMessage & { role: 'system' } => isSpanMessage(msg) && msg.role === 'system')\n .map(msg => ({\n role: 'system' as const,\n content: normalizeMessageContent(msg.content),\n }));\n}\n\n/**\n * Extract conversation history (remembered messages) from LLM span\n * Excludes system messages and the current input message\n */\nfunction extractRememberedMessages(llmSpan: SpanRecord, currentInputContent: string): MastraDBMessage[] {\n const input = llmSpan.input;\n if (!hasMessagesArray(input)) {\n return [];\n }\n const filtered = input.messages.filter(isSpanMessage) as unknown as SpanMessage[];\n const messages = filtered\n .filter(msg => msg.role !== 'system')\n .filter(msg => normalizeMessageContent(msg.content) !== currentInputContent);\n\n return messages.map(msg => createMastraDBMessage(msg, llmSpan.startedAt));\n}\n\n/**\n * Reconstruct tool invocations from tool call spans\n */\nfunction reconstructToolInvocations(spanTree: SpanTree, parentSpanId: string) {\n const toolSpans = getChildrenOfType<SpanRecord>(spanTree, parentSpanId, SpanType.TOOL_CALL);\n\n return toolSpans.map(toolSpan => ({\n toolCallId: toolSpan.spanId,\n toolName: toolSpan.entityName ?? toolSpan.entityId ?? 'unknown',\n toolId: toolSpan.entityId,\n args: toolSpan.input || {},\n result: toolSpan.output || {},\n state: 'result' as const,\n }));\n}\n\n/**\n * Validate trace structure and throw descriptive errors\n */\nexport function validateTrace(trace: TraceRecord): void {\n if (!trace) {\n throw new Error('Trace is null or undefined');\n }\n\n if (!trace.spans || !Array.isArray(trace.spans)) {\n throw new Error('Trace must have a spans array');\n }\n\n if (trace.spans.length === 0) {\n throw new Error('Trace has no spans');\n }\n\n // Check for circular references in parent-child relationships\n const spanIds = new Set(trace.spans.map(span => span.spanId));\n for (const span of trace.spans) {\n if (span.parentSpanId && !spanIds.has(span.parentSpanId)) {\n throw new Error(`Span ${span.spanId} references non-existent parent ${span.parentSpanId}`);\n }\n }\n}\n\n/**\n * Find the most recent model span that contains conversation history\n */\nfunction findPrimaryLLMSpan(spanTree: SpanTree, rootAgentSpan: SpanRecord): SpanRecord {\n const directLLMSpans = getChildrenOfType<SpanRecord>(spanTree, rootAgentSpan.spanId, SpanType.MODEL_GENERATION);\n if (directLLMSpans.length > 0) {\n // There should only be one model generation span per agent run which is a direct child of the root agent span\n return directLLMSpans[0]!;\n }\n\n throw new Error('No model generation span found in trace');\n}\n\n/**\n * Extract common trace validation and span tree building logic\n */\nfunction prepareTraceForTransformation(trace: TraceRecord) {\n validateTrace(trace);\n const spanTree = buildSpanTree(trace.spans);\n\n // Find the root agent run span\n const rootAgentSpan = spanTree.rootSpans.find(span => span.spanType === 'agent_run') as SpanRecord | undefined;\n\n if (!rootAgentSpan) {\n throw new Error('No root agent_run span found in trace');\n }\n\n return { spanTree, rootAgentSpan };\n}\n\nexport function transformTraceToScorerInputAndOutput(trace: TraceRecord): {\n input: ScorerRunInputForAgent;\n output: ScorerRunOutputForAgent;\n} {\n const { spanTree, rootAgentSpan } = prepareTraceForTransformation(trace);\n\n if (!rootAgentSpan.output) {\n throw new Error('Root agent span has no output');\n }\n\n // Build input\n const primaryLLMSpan = findPrimaryLLMSpan(spanTree, rootAgentSpan);\n const inputMessages = extractInputMessages(rootAgentSpan);\n const systemMessages = extractSystemMessages(primaryLLMSpan);\n\n // Extract remembered messages from LLM span (excluding current input)\n const currentInputContent = inputMessages[0]?.content.content || '';\n const rememberedMessages = extractRememberedMessages(primaryLLMSpan, currentInputContent);\n\n const input = {\n inputMessages,\n rememberedMessages,\n systemMessages,\n taggedSystemMessages: {}, // Todo: Support tagged system messages\n };\n\n // Build output\n const toolInvocations = reconstructToolInvocations(spanTree, rootAgentSpan.spanId);\n const responseText = hasTextProperty(rootAgentSpan.output) ? (rootAgentSpan.output.text ?? '') : '';\n\n // Build parts array: tool invocations first, then text\n const parts: Array<{ type: 'tool-invocation'; toolInvocation: any } | { type: 'text'; text: string }> = [];\n\n // Add tool invocation parts\n for (const toolInvocation of toolInvocations) {\n parts.push({\n type: 'tool-invocation',\n toolInvocation,\n });\n }\n\n // Add text part if present\n if (responseText.trim()) {\n parts.push({\n type: 'text',\n text: responseText,\n });\n }\n\n const responseMessage: MastraDBMessage = {\n id: '',\n role: 'assistant',\n content: {\n format: 2,\n parts: parts as any, // Type assertion needed due to providerMetadata optional field\n content: responseText,\n toolInvocations, // Always include, even if empty array\n },\n createdAt: new Date(rootAgentSpan.endedAt || rootAgentSpan.startedAt),\n };\n\n const output: MastraDBMessage[] = [responseMessage];\n\n return {\n input,\n output,\n };\n}\n","import pMap from 'p-map';\nimport { z } from 'zod/v4';\nimport { ErrorCategory, ErrorDomain, MastraError } from '../../error';\nimport { InternalSpans, resolveObservabilityContext } from '../../observability';\nimport type { ObservabilityContext } from '../../observability';\nimport type { SpanRecord, TraceRecord, MastraStorage } from '../../storage';\nimport { createStep, createWorkflow } from '../../workflows/evented';\nimport type { MastraScorer, ScorerRun } from '../base';\nimport type { ScoreRowData } from '../types';\nimport { saveScorePayloadSchema } from '../types';\nimport { transformTraceToScorerInputAndOutput } from './utils';\n\nconst getTraceStep = createStep({\n id: '__process-trace-scoring',\n inputSchema: z.object({\n targets: z.array(\n z.object({\n traceId: z.string(),\n spanId: z.string().optional(),\n }),\n ),\n scorerId: z.string(),\n }),\n outputSchema: z.any(),\n execute: async ({ inputData, mastra, ...rest }) => {\n const observabilityContext = resolveObservabilityContext(rest);\n const logger = mastra.getLogger();\n if (!logger) {\n console.warn(\n '[scoreTracesWorkflow] Logger not initialized: no debug or error logs will be recorded for scoring traces.',\n );\n }\n\n const storage = mastra.getStorage();\n if (!storage) {\n const mastraError = new MastraError({\n id: 'MASTRA_STORAGE_NOT_FOUND_FOR_TRACE_SCORING',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: 'Storage not found for trace scoring',\n details: {\n scorerId: inputData.scorerId,\n },\n });\n logger?.trackException(mastraError);\n return;\n }\n\n let scorer: MastraScorer | undefined;\n try {\n scorer = mastra.getScorerById(inputData.scorerId);\n } catch (error) {\n const mastraError = new MastraError(\n {\n id: 'MASTRA_SCORER_NOT_FOUND_FOR_TRACE_SCORING',\n domain: ErrorDomain.SCORER,\n category: ErrorCategory.SYSTEM,\n text: `Scorer not found for trace scoring`,\n details: {\n scorerId: inputData.scorerId,\n },\n },\n error,\n );\n logger?.trackException(mastraError);\n return;\n }\n\n await pMap(\n inputData.targets,\n async target => {\n try {\n await runScorerOnTarget({ storage, scorer, target, ...observabilityContext });\n } catch (error) {\n const mastraError = new MastraError(\n {\n id: 'MASTRA_SCORER_FAILED_TO_RUN_SCORER_ON_TRACE',\n domain: ErrorDomain.SCORER,\n category: ErrorCategory.SYSTEM,\n details: {\n scorerId: scorer.id,\n spanId: target.spanId || '',\n traceId: target.traceId,\n },\n },\n error,\n );\n logger?.trackException(mastraError);\n }\n },\n { concurrency: 3 },\n );\n },\n});\n\nexport async function runScorerOnTarget({\n storage,\n scorer,\n target,\n ...observabilityContext\n}: {\n storage: MastraStorage;\n scorer: MastraScorer;\n target: { traceId: string; spanId?: string };\n} & Partial<ObservabilityContext>) {\n // TODO: add storage api to get a single span\n const observabilityStore = await storage.getStore('observability');\n if (!observabilityStore) {\n throw new MastraError({\n id: 'MASTRA_OBSERVABILITY_STORAGE_NOT_AVAILABLE',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: 'Observability storage domain is not available',\n });\n }\n const trace = await observabilityStore.getTrace({ traceId: target.traceId });\n if (!trace) {\n throw new Error(`Trace not found for scoring, traceId: ${target.traceId}`);\n }\n\n let span: SpanRecord | undefined;\n if (target.spanId) {\n span = trace.spans.find(span => span.spanId === target.spanId);\n } else {\n span = trace.spans.find(span => span.parentSpanId === null);\n }\n\n if (!span) {\n throw new Error(\n `Span not found for scoring, traceId: ${target.traceId}, spanId: ${target.spanId ?? 'Not provided'}`,\n );\n }\n\n const scorerRun = buildScorerRun({\n scorerType: scorer.type === 'agent' ? 'agent' : undefined,\n ...observabilityContext,\n trace,\n targetSpan: span,\n });\n\n const result = await scorer.run(scorerRun);\n const scorerResult = {\n ...result,\n scorer: {\n id: scorer.id,\n name: scorer.name || scorer.id,\n description: scorer.description,\n hasJudge: !!scorer.judge,\n },\n traceId: target.traceId,\n spanId: target.spanId,\n entityId: span.entityId || span.entityName || 'unknown',\n entityType: span.spanType,\n entity: { traceId: span.traceId, spanId: span.spanId },\n source: 'TEST',\n scorerId: scorer.id,\n };\n\n const savedScoreRecord = await validateAndSaveScore({ storage, scorerResult });\n await attachScoreToSpan({ storage, span, scoreRecord: savedScoreRecord });\n}\n\n/**\n * Saves the score to the legacy ScoresStorage domain.\n * TODO: Remove once all consumers migrate to observability scores (see attachScoreToSpan).\n */\nasync function validateAndSaveScore({ storage, scorerResult }: { storage: MastraStorage; scorerResult: ScorerRun }) {\n const scoresStore = await storage.getStore('scores');\n if (!scoresStore) {\n throw new MastraError({\n id: 'MASTRA_SCORES_STORAGE_NOT_AVAILABLE',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: 'Scores storage domain is not available',\n });\n }\n const payloadToSave = saveScorePayloadSchema.parse(scorerResult);\n const result = await scoresStore.saveScore(payloadToSave);\n return result.score;\n}\n\nfunction buildScorerRun({\n scorerType,\n trace,\n targetSpan,\n ...observabilityContext\n}: {\n scorerType?: string;\n trace: TraceRecord;\n targetSpan: SpanRecord;\n} & Partial<ObservabilityContext>): ScorerRun {\n if (scorerType === 'agent') {\n const { input, output } = transformTraceToScorerInputAndOutput(trace);\n return { input, output, ...observabilityContext };\n }\n return { input: targetSpan.input, output: targetSpan.output, ...observabilityContext };\n}\n\n/**\n * Writes the score to the observability domain via two paths, each wrapped in\n * a try/catch so that one failing doesn't block the other:\n *\n * 1. **updateSpan** — attaches a score link to the span record. Works for\n * traditional CRUD stores (libsql, pg, etc.) but fails for event-sourced /\n * append-only stores (DuckDB) that don't support arbitrary span updates.\n *\n * 2. **createScore** — inserts a row into the observability scores table so\n * it can be queried via listScores() with traceId/spanId filters. Works for\n * stores that implement the new observability scores domain.\n *\n * TODO: Once all stores implement createScore and all consumers migrate to\n * the observability scores domain, remove the updateSpan path (and the old\n * ScoresStorage.saveScore() call in validateAndSaveScore above).\n */\nasync function attachScoreToSpan({\n storage,\n span,\n scoreRecord,\n}: {\n storage: MastraStorage;\n span: SpanRecord;\n scoreRecord: ScoreRowData;\n}) {\n const observabilityStore = await storage.getStore('observability');\n if (!observabilityStore) {\n throw new MastraError({\n id: 'MASTRA_OBSERVABILITY_STORAGE_NOT_AVAILABLE',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: 'Observability storage domain is not available',\n });\n }\n\n // Path 1: Legacy — attach score link to span (fails silently on append-only stores)\n try {\n const existingLinks = span.links || [];\n const link = {\n type: 'score',\n scoreId: scoreRecord.id,\n scorerId: scoreRecord.scorerId ?? scoreRecord.scorer?.id,\n score: scoreRecord.score,\n createdAt: scoreRecord.createdAt,\n };\n await observabilityStore.updateSpan({\n spanId: span.spanId,\n traceId: span.traceId,\n updates: { links: [...existingLinks, link] },\n });\n } catch {\n // Expected for event-sourced stores (e.g. DuckDB) that don't support updateSpan\n }\n\n // Path 2: New — write to observability scores table (fails silently on stores that don't implement it yet)\n try {\n await observabilityStore.createScore({\n score: {\n timestamp: scoreRecord.createdAt ? new Date(scoreRecord.createdAt) : new Date(),\n traceId: span.traceId,\n spanId: span.spanId,\n scorerId: scoreRecord.scorerId ?? (scoreRecord.scorer?.id as string),\n score: scoreRecord.score,\n reason: scoreRecord.reason ?? null,\n experimentId: null,\n scoreTraceId: null,\n metadata: scoreRecord.metadata ?? null,\n },\n });\n } catch {\n // Expected for stores that haven't implemented observability createScore yet\n }\n}\n\nexport const scoreTracesWorkflow = createWorkflow({\n id: '__batch-scoring-traces',\n inputSchema: z.object({\n targets: z.array(\n z.object({\n traceId: z.string(),\n spanId: z.string().optional(),\n }),\n ),\n scorerId: z.string(),\n }),\n outputSchema: z.any(),\n steps: [getTraceStep],\n options: {\n tracingPolicy: {\n internal: InternalSpans.ALL,\n },\n validateInputs: false,\n },\n});\n\nscoreTracesWorkflow.then(getTraceStep).commit();\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/evals/scoreTraces/scoreTraces.ts","../../../src/evals/scoreTraces/utils.ts","../../../src/evals/scoreTraces/scoreTracesWorkflow.ts"],"names":["span"],"mappings":"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","file":"index.js","sourcesContent":["import { MastraError } from '../../error';\nimport type { Mastra } from '../../mastra';\n\nexport async function scoreTraces({\n scorerId,\n targets,\n mastra,\n}: {\n scorerId: string;\n targets: { traceId: string; spanId?: string }[];\n mastra: Mastra;\n}) {\n const workflow = mastra.__getInternalWorkflow('__batch-scoring-traces');\n try {\n const run = await workflow.createRun();\n\n await run.start({ inputData: { targets, scorerId } });\n } catch (error) {\n const mastraError = new MastraError(\n {\n category: 'SYSTEM',\n domain: 'SCORER',\n id: 'MASTRA_SCORER_FAILED_TO_RUN_TRACE_SCORING',\n details: {\n scorerId,\n targets: JSON.stringify(targets),\n },\n },\n error,\n );\n mastra.getLogger()?.trackException(mastraError);\n }\n}\n","import type { MastraDBMessage } from '../../agent';\nimport { SpanType } from '../../observability';\nimport type { SpanRecord, TraceRecord } from '../../storage';\nimport type { ScorerRunInputForAgent, ScorerRunOutputForAgent } from '../types';\n\n// Types for span input/output structures\ninterface SpanMessage {\n role: string;\n content: string | Array<{ type: string; text: string }>;\n}\n\ninterface SpanInputWithMessages {\n messages: SpanMessage[];\n}\n\ninterface SpanOutputWithText {\n text?: string;\n}\n\n// Type guards for span data\nfunction isSpanMessage(value: unknown): value is SpanMessage {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'role' in value &&\n typeof (value as SpanMessage).role === 'string' &&\n 'content' in value\n );\n}\n\nfunction hasMessagesArray(value: unknown): value is SpanInputWithMessages {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'messages' in value &&\n Array.isArray((value as SpanInputWithMessages).messages)\n );\n}\n\nfunction hasTextProperty(value: unknown): value is SpanOutputWithText {\n return typeof value === 'object' && value !== null && 'text' in value;\n}\n\n// // Span tree structure for efficient lookups\ninterface SpanTree {\n spanMap: Map<string, SpanRecord>;\n childrenMap: Map<string, SpanRecord[]>;\n rootSpans: SpanRecord[];\n}\n\n/**\n * Build a hierarchical span tree with efficient lookup maps\n */\nexport function buildSpanTree(spans: SpanRecord[]): SpanTree {\n const spanMap = new Map<string, SpanRecord>();\n const childrenMap = new Map<string, SpanRecord[]>();\n const rootSpans: SpanRecord[] = [];\n\n // First pass: build span map\n for (const span of spans) {\n spanMap.set(span.spanId, span);\n }\n\n // Second pass: build parent-child relationships\n for (const span of spans) {\n if (span.parentSpanId == null) {\n // Root span (parentSpanId is null or undefined)\n rootSpans.push(span);\n } else {\n const siblings = childrenMap.get(span.parentSpanId) || [];\n siblings.push(span);\n childrenMap.set(span.parentSpanId, siblings);\n }\n }\n\n // Sort children by startedAt timestamp for temporal ordering\n for (const children of childrenMap.values()) {\n children.sort((a, b) => new Date(a.startedAt).getTime() - new Date(b.startedAt).getTime());\n }\n\n // Sort root spans by startedAt\n rootSpans.sort((a, b) => new Date(a.startedAt).getTime() - new Date(b.startedAt).getTime());\n\n return { spanMap, childrenMap, rootSpans };\n}\n\n/**\n * Extract children spans of a specific type\n */\nfunction getChildrenOfType<T extends SpanRecord>(spanTree: SpanTree, parentSpanId: string, spanType: SpanType): T[] {\n const children = spanTree.childrenMap.get(parentSpanId) || [];\n return children.filter(span => span.spanType === spanType) as T[];\n}\n\n/**\n * Normalize message content to string format\n * For arrays with multiple text parts, returns only the last text part (AI SDK convention)\n */\nfunction normalizeMessageContent(content: string | Array<{ type: string; text: string }>): string {\n if (typeof content === 'string') {\n return content;\n }\n\n // Extract text parts and return only the last one (AI SDK convention)\n const textParts = content.filter(part => part.type === 'text');\n return textParts.length > 0 ? textParts[textParts.length - 1]?.text || '' : '';\n}\n\n/**\n * Create MastraDBMessage directly from span message data\n */\nfunction createMastraDBMessage(\n message: { role: string; content: string | Array<{ type: string; text: string }> },\n createdAt: Date,\n id: string = '',\n): MastraDBMessage {\n const contentText = normalizeMessageContent(message.content);\n const role = message.role as 'user' | 'assistant' | 'system';\n\n return {\n id,\n role,\n content: {\n format: 2,\n parts: [{ type: 'text', text: contentText }],\n content: contentText,\n },\n createdAt: new Date(createdAt),\n };\n}\n\n/**\n * Extract input messages from agent run span\n */\nfunction extractInputMessages(agentSpan: SpanRecord): MastraDBMessage[] {\n const input = agentSpan.input;\n\n // Handle different input formats\n if (typeof input === 'string') {\n return [\n createMastraDBMessage(\n {\n role: 'user',\n content: input,\n },\n agentSpan.startedAt,\n ),\n ];\n }\n\n if (Array.isArray(input)) {\n const messages = input.filter(isSpanMessage) as SpanMessage[];\n return messages.map(msg => createMastraDBMessage(msg, agentSpan.startedAt));\n }\n\n if (hasMessagesArray(input)) {\n const messages = input.messages.filter(isSpanMessage) as SpanMessage[];\n return messages.map(msg => createMastraDBMessage(msg, agentSpan.startedAt));\n }\n return [];\n}\n\n/**\n * Extract system messages from LLM span\n */\nfunction extractSystemMessages(llmSpan: SpanRecord): Array<{ role: 'system'; content: string }> {\n const input = llmSpan.input;\n if (!hasMessagesArray(input)) {\n return [];\n }\n return input.messages\n .filter((msg): msg is SpanMessage & { role: 'system' } => isSpanMessage(msg) && msg.role === 'system')\n .map(msg => ({\n role: 'system' as const,\n content: normalizeMessageContent(msg.content),\n }));\n}\n\n/**\n * Extract conversation history (remembered messages) from LLM span\n * Excludes system messages and the current input message\n */\nfunction extractRememberedMessages(llmSpan: SpanRecord, currentInputContent: string): MastraDBMessage[] {\n const input = llmSpan.input;\n if (!hasMessagesArray(input)) {\n return [];\n }\n const filtered = input.messages.filter(isSpanMessage) as unknown as SpanMessage[];\n const messages = filtered\n .filter(msg => msg.role !== 'system')\n .filter(msg => normalizeMessageContent(msg.content) !== currentInputContent);\n\n return messages.map(msg => createMastraDBMessage(msg, llmSpan.startedAt));\n}\n\n/**\n * Reconstruct tool invocations from tool call spans\n */\nfunction reconstructToolInvocations(spanTree: SpanTree, parentSpanId: string) {\n const toolSpans = getChildrenOfType<SpanRecord>(spanTree, parentSpanId, SpanType.TOOL_CALL);\n\n return toolSpans.map(toolSpan => ({\n toolCallId: toolSpan.spanId,\n toolName: toolSpan.entityName ?? toolSpan.entityId ?? 'unknown',\n toolId: toolSpan.entityId,\n args: toolSpan.input || {},\n result: toolSpan.output || {},\n state: 'result' as const,\n }));\n}\n\n/**\n * Validate trace structure and throw descriptive errors\n */\nexport function validateTrace(trace: TraceRecord): void {\n if (!trace) {\n throw new Error('Trace is null or undefined');\n }\n\n if (!trace.spans || !Array.isArray(trace.spans)) {\n throw new Error('Trace must have a spans array');\n }\n\n if (trace.spans.length === 0) {\n throw new Error('Trace has no spans');\n }\n\n // Check for circular references in parent-child relationships\n const spanIds = new Set(trace.spans.map(span => span.spanId));\n for (const span of trace.spans) {\n if (span.parentSpanId && !spanIds.has(span.parentSpanId)) {\n throw new Error(`Span ${span.spanId} references non-existent parent ${span.parentSpanId}`);\n }\n }\n}\n\n/**\n * Find the most recent model span that contains conversation history\n */\nfunction findPrimaryLLMSpan(spanTree: SpanTree, rootAgentSpan: SpanRecord): SpanRecord {\n const directLLMSpans = getChildrenOfType<SpanRecord>(spanTree, rootAgentSpan.spanId, SpanType.MODEL_GENERATION);\n if (directLLMSpans.length > 0) {\n // There should only be one model generation span per agent run which is a direct child of the root agent span\n return directLLMSpans[0]!;\n }\n\n throw new Error('No model generation span found in trace');\n}\n\n/**\n * Extract common trace validation and span tree building logic\n */\nfunction prepareTraceForTransformation(trace: TraceRecord) {\n validateTrace(trace);\n const spanTree = buildSpanTree(trace.spans);\n\n // Find the root agent run span\n const rootAgentSpan = spanTree.rootSpans.find(span => span.spanType === 'agent_run') as SpanRecord | undefined;\n\n if (!rootAgentSpan) {\n throw new Error('No root agent_run span found in trace');\n }\n\n return { spanTree, rootAgentSpan };\n}\n\nexport function transformTraceToScorerInputAndOutput(trace: TraceRecord): {\n input: ScorerRunInputForAgent;\n output: ScorerRunOutputForAgent;\n} {\n const { spanTree, rootAgentSpan } = prepareTraceForTransformation(trace);\n\n if (!rootAgentSpan.output) {\n throw new Error('Root agent span has no output');\n }\n\n // Build input\n const primaryLLMSpan = findPrimaryLLMSpan(spanTree, rootAgentSpan);\n const inputMessages = extractInputMessages(rootAgentSpan);\n const systemMessages = extractSystemMessages(primaryLLMSpan);\n\n // Extract remembered messages from LLM span (excluding current input)\n const currentInputContent = inputMessages[0]?.content.content || '';\n const rememberedMessages = extractRememberedMessages(primaryLLMSpan, currentInputContent);\n\n const input = {\n inputMessages,\n rememberedMessages,\n systemMessages,\n taggedSystemMessages: {}, // Todo: Support tagged system messages\n };\n\n // Build output\n const toolInvocations = reconstructToolInvocations(spanTree, rootAgentSpan.spanId);\n const responseText = hasTextProperty(rootAgentSpan.output) ? (rootAgentSpan.output.text ?? '') : '';\n\n // Build parts array: tool invocations first, then text\n const parts: Array<{ type: 'tool-invocation'; toolInvocation: any } | { type: 'text'; text: string }> = [];\n\n // Add tool invocation parts\n for (const toolInvocation of toolInvocations) {\n parts.push({\n type: 'tool-invocation',\n toolInvocation,\n });\n }\n\n // Add text part if present\n if (responseText.trim()) {\n parts.push({\n type: 'text',\n text: responseText,\n });\n }\n\n const responseMessage: MastraDBMessage = {\n id: '',\n role: 'assistant',\n content: {\n format: 2,\n parts: parts as any, // Type assertion needed due to providerMetadata optional field\n content: responseText,\n toolInvocations, // Always include, even if empty array\n },\n createdAt: new Date(rootAgentSpan.endedAt || rootAgentSpan.startedAt),\n };\n\n const output: MastraDBMessage[] = [responseMessage];\n\n return {\n input,\n output,\n };\n}\n","import pMap from 'p-map';\nimport { z } from 'zod/v4';\nimport { ErrorCategory, ErrorDomain, MastraError } from '../../error';\nimport { getEntityTypeForSpan } from '../../observability';\nimport type { SpanRecord, TraceRecord, MastraStorage } from '../../storage';\nimport { createStep, createWorkflow } from '../../workflows/evented';\nimport type { MastraScorer, ScorerRun } from '../base';\nimport type { ScoreRowData } from '../types';\nimport { saveScorePayloadSchema } from '../types';\nimport { transformTraceToScorerInputAndOutput } from './utils';\n\nconst getTraceStep = createStep({\n id: '__process-trace-scoring',\n inputSchema: z.object({\n targets: z.array(\n z.object({\n traceId: z.string(),\n spanId: z.string().optional(),\n }),\n ),\n scorerId: z.string(),\n }),\n outputSchema: z.any(),\n execute: async ({ inputData, mastra }) => {\n const logger = mastra.getLogger();\n if (!logger) {\n console.warn(\n '[scoreTracesWorkflow] Logger not initialized: no debug or error logs will be recorded for scoring traces.',\n );\n }\n\n const storage = mastra.getStorage();\n if (!storage) {\n const mastraError = new MastraError({\n id: 'MASTRA_STORAGE_NOT_FOUND_FOR_TRACE_SCORING',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: 'Storage not found for trace scoring',\n details: {\n scorerId: inputData.scorerId,\n },\n });\n logger?.trackException(mastraError);\n return;\n }\n\n let scorer: MastraScorer | undefined;\n try {\n scorer = mastra.getScorerById(inputData.scorerId);\n } catch (error) {\n const mastraError = new MastraError(\n {\n id: 'MASTRA_SCORER_NOT_FOUND_FOR_TRACE_SCORING',\n domain: ErrorDomain.SCORER,\n category: ErrorCategory.SYSTEM,\n text: `Scorer not found for trace scoring`,\n details: {\n scorerId: inputData.scorerId,\n },\n },\n error,\n );\n logger?.trackException(mastraError);\n return;\n }\n\n await pMap(\n inputData.targets,\n async target => {\n try {\n await runScorerOnTarget({ storage, scorer, target });\n } catch (error) {\n const mastraError = new MastraError(\n {\n id: 'MASTRA_SCORER_FAILED_TO_RUN_SCORER_ON_TRACE',\n domain: ErrorDomain.SCORER,\n category: ErrorCategory.SYSTEM,\n details: {\n scorerId: scorer.id,\n spanId: target.spanId || '',\n traceId: target.traceId,\n },\n },\n error,\n );\n logger?.trackException(mastraError);\n }\n },\n { concurrency: 3 },\n );\n },\n});\n\nexport async function runScorerOnTarget({\n storage,\n scorer,\n target,\n}: {\n storage: MastraStorage;\n scorer: MastraScorer;\n target: { traceId: string; spanId?: string };\n}) {\n // TODO: add storage api to get a single span\n const observabilityStore = await storage.getStore('observability');\n if (!observabilityStore) {\n throw new MastraError({\n id: 'MASTRA_OBSERVABILITY_STORAGE_NOT_AVAILABLE',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: 'Observability storage domain is not available',\n });\n }\n const trace = await observabilityStore.getTrace({ traceId: target.traceId });\n if (!trace) {\n throw new Error(`Trace not found for scoring, traceId: ${target.traceId}`);\n }\n\n let span: SpanRecord | undefined;\n if (target.spanId) {\n span = trace.spans.find(span => span.spanId === target.spanId);\n } else {\n span = trace.spans.find(span => span.parentSpanId === null);\n }\n\n if (!span) {\n throw new Error(\n `Span not found for scoring, traceId: ${target.traceId}, spanId: ${target.spanId ?? 'Not provided'}`,\n );\n }\n\n const scorerRun = buildScorerRun({\n scorerType: scorer.type === 'agent' ? 'agent' : undefined,\n trace,\n targetSpan: span,\n });\n const result = await scorer.run({\n ...scorerRun,\n scoreSource: 'trace',\n targetScope: 'span',\n targetEntityType: getEntityTypeForSpan(span),\n targetTraceId: target.traceId,\n targetSpanId: span.spanId,\n });\n\n const scorerResult = {\n ...result,\n scorer: {\n id: scorer.id,\n name: scorer.name || scorer.id,\n description: scorer.description,\n hasJudge: !!scorer.judge,\n },\n traceId: target.traceId,\n spanId: span.spanId,\n entityId: span.entityId || span.entityName || 'unknown',\n entityType: span.spanType,\n entity: { traceId: span.traceId, spanId: span.spanId },\n source: 'TEST',\n scorerId: scorer.id,\n };\n\n // Legacy score-store emission. This path is being deprecated.\n const savedScoreRecord = await validateAndSaveScore({ storage, scorerResult });\n await attachScoreToSpan({ storage, span, scoreRecord: savedScoreRecord });\n}\n\n/**\n * @deprecated Legacy scores-store path. New score emission should use `mastra.observability.addScore()`.\n */\nasync function validateAndSaveScore({ storage, scorerResult }: { storage: MastraStorage; scorerResult: ScorerRun }) {\n const scoresStore = await storage.getStore('scores');\n if (!scoresStore) {\n throw new MastraError({\n id: 'MASTRA_SCORES_STORAGE_NOT_AVAILABLE',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: 'Scores storage domain is not available',\n });\n }\n const payloadToSave = saveScorePayloadSchema.parse(scorerResult);\n const result = await scoresStore.saveScore(payloadToSave);\n return result.score;\n}\n\nfunction buildScorerRun({\n scorerType,\n trace,\n targetSpan,\n}: {\n scorerType?: string;\n trace: TraceRecord;\n targetSpan: SpanRecord;\n}): ScorerRun {\n if (scorerType === 'agent') {\n const { input, output } = transformTraceToScorerInputAndOutput(trace);\n return { input, output };\n }\n return { input: targetSpan.input, output: targetSpan.output };\n}\n\n/**\n * @deprecated Legacy score-attach path. New score emission should use `mastra.observability.addScore()`\n * which autmatically attach scores to spans.\n */\nasync function attachScoreToSpan({\n storage,\n span,\n scoreRecord,\n}: {\n storage: MastraStorage;\n span: SpanRecord;\n scoreRecord: ScoreRowData;\n}) {\n const observabilityStore = await storage.getStore('observability');\n if (!observabilityStore) {\n throw new MastraError({\n id: 'MASTRA_OBSERVABILITY_STORAGE_NOT_AVAILABLE',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: 'Observability storage domain is not available',\n });\n }\n\n // Path 1: Legacy — attach score link to span\n try {\n const existingLinks = span.links || [];\n const link = {\n type: 'score',\n scoreId: scoreRecord.id,\n scorerId: scoreRecord.scorerId ?? scoreRecord.scorer?.id,\n score: scoreRecord.score,\n createdAt: scoreRecord.createdAt,\n };\n await observabilityStore.updateSpan({\n spanId: span.spanId,\n traceId: span.traceId,\n updates: { links: [...existingLinks, link] },\n });\n } catch {\n // Expected for event-sourced stores (e.g. DuckDB) that don't support updateSpan\n }\n}\n\nexport const scoreTracesWorkflow = createWorkflow({\n id: '__batch-scoring-traces',\n inputSchema: z.object({\n targets: z.array(\n z.object({\n traceId: z.string(),\n spanId: z.string().optional(),\n }),\n ),\n scorerId: z.string(),\n }),\n outputSchema: z.any(),\n steps: [getTraceStep],\n options: {\n validateInputs: false,\n },\n});\n\nscoreTracesWorkflow.then(getTraceStep).commit();\n"]}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import type { ObservabilityContext } from '../../observability/index.js';
|
|
2
1
|
import type { MastraStorage } from '../../storage/index.js';
|
|
3
2
|
import type { MastraScorer } from '../base.js';
|
|
4
|
-
export declare function runScorerOnTarget({ storage, scorer, target,
|
|
3
|
+
export declare function runScorerOnTarget({ storage, scorer, target, }: {
|
|
5
4
|
storage: MastraStorage;
|
|
6
5
|
scorer: MastraScorer;
|
|
7
6
|
target: {
|
|
8
7
|
traceId: string;
|
|
9
8
|
spanId?: string;
|
|
10
9
|
};
|
|
11
|
-
}
|
|
10
|
+
}): Promise<void>;
|
|
12
11
|
export declare const scoreTracesWorkflow: import("../../workflows/evented").EventedWorkflow<import("../../workflows/evented").EventedEngineType, import("../../workflows").Step<"__process-trace-scoring", unknown, {
|
|
13
12
|
targets: {
|
|
14
13
|
traceId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scoreTracesWorkflow.d.ts","sourceRoot":"","sources":["../../../src/evals/scoreTraces/scoreTracesWorkflow.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"scoreTracesWorkflow.d.ts","sourceRoot":"","sources":["../../../src/evals/scoreTraces/scoreTracesWorkflow.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA2B,aAAa,EAAE,MAAM,eAAe,CAAC;AAE5E,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,SAAS,CAAC;AAuFvD,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,MAAM,EACN,MAAM,GACP,EAAE;IACD,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C,iBA+DA;AA+ED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;EAgB9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/evals/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/evals/types.ts"],"names":[],"mappings":"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"}
|
package/dist/harness/index.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunk75LYWKFT_cjs = require('../chunk-75LYWKFT.cjs');
|
|
4
|
+
var chunkF6ZURDS4_cjs = require('../chunk-F6ZURDS4.cjs');
|
|
5
5
|
var chunkSAAJ6W3X_cjs = require('../chunk-SAAJ6W3X.cjs');
|
|
6
|
-
var
|
|
6
|
+
var chunkXANKVDSM_cjs = require('../chunk-XANKVDSM.cjs');
|
|
7
7
|
var chunk2OYWVA6F_cjs = require('../chunk-2OYWVA6F.cjs');
|
|
8
8
|
var chunkXB4FLS7A_cjs = require('../chunk-XB4FLS7A.cjs');
|
|
9
9
|
var chunk5WBEMKE2_cjs = require('../chunk-5WBEMKE2.cjs');
|
|
@@ -313,7 +313,7 @@ Use this tool when:
|
|
|
313
313
|
};
|
|
314
314
|
}
|
|
315
315
|
const workspace = context?.workspace;
|
|
316
|
-
const subagent = new
|
|
316
|
+
const subagent = new chunkF6ZURDS4_cjs.Agent({
|
|
317
317
|
id: `subagent-${definition.id}`,
|
|
318
318
|
name: `${definition.name} Subagent`,
|
|
319
319
|
instructions: definition.instructions,
|
|
@@ -562,7 +562,7 @@ var Harness = class {
|
|
|
562
562
|
*/
|
|
563
563
|
async init() {
|
|
564
564
|
if (this.config.storage) {
|
|
565
|
-
this.#internalMastra = new
|
|
565
|
+
this.#internalMastra = new chunk75LYWKFT_cjs.Mastra({ logger: false, storage: this.config.storage });
|
|
566
566
|
await this.#internalMastra.getStorage().init();
|
|
567
567
|
}
|
|
568
568
|
if (this.config.workspace && !this.workspaceInitialized && !this.workspaceFn) {
|
|
@@ -814,7 +814,7 @@ var Harness = class {
|
|
|
814
814
|
}
|
|
815
815
|
}
|
|
816
816
|
try {
|
|
817
|
-
const { PROVIDER_REGISTRY } = await import('../provider-registry-
|
|
817
|
+
const { PROVIDER_REGISTRY } = await import('../provider-registry-6ONBOGD7.cjs');
|
|
818
818
|
const registry = PROVIDER_REGISTRY;
|
|
819
819
|
const providerConfig = registry[provider];
|
|
820
820
|
const envVars = providerConfig?.apiKeyEnvVar;
|
|
@@ -834,7 +834,7 @@ var Harness = class {
|
|
|
834
834
|
*/
|
|
835
835
|
async listAvailableModels() {
|
|
836
836
|
try {
|
|
837
|
-
const { PROVIDER_REGISTRY } = await import('../provider-registry-
|
|
837
|
+
const { PROVIDER_REGISTRY } = await import('../provider-registry-6ONBOGD7.cjs');
|
|
838
838
|
if (!PROVIDER_REGISTRY) return [];
|
|
839
839
|
const registry = PROVIDER_REGISTRY;
|
|
840
840
|
const providers = Object.keys(registry);
|
|
@@ -893,7 +893,7 @@ var Harness = class {
|
|
|
893
893
|
}
|
|
894
894
|
async getProviderApiKeyEnvVar(provider) {
|
|
895
895
|
try {
|
|
896
|
-
const { PROVIDER_REGISTRY } = await import('../provider-registry-
|
|
896
|
+
const { PROVIDER_REGISTRY } = await import('../provider-registry-6ONBOGD7.cjs');
|
|
897
897
|
const registry = PROVIDER_REGISTRY;
|
|
898
898
|
const envVars = registry[provider]?.apiKeyEnvVar;
|
|
899
899
|
return Array.isArray(envVars) ? envVars[0] : envVars;
|
|
@@ -2544,7 +2544,7 @@ ${textContent}
|
|
|
2544
2544
|
case "tool_update": {
|
|
2545
2545
|
const tool = ds.activeTools.get(event.toolCallId);
|
|
2546
2546
|
if (tool) {
|
|
2547
|
-
tool.partialResult = typeof event.partialResult === "string" ? event.partialResult :
|
|
2547
|
+
tool.partialResult = typeof event.partialResult === "string" ? event.partialResult : chunkXANKVDSM_cjs.safeStringify(event.partialResult);
|
|
2548
2548
|
}
|
|
2549
2549
|
break;
|
|
2550
2550
|
}
|