@mastra/server 1.82.0-alpha.3 → 1.83.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_types/@internal_core@0.1.4/dist/storage/index.d.ts +24 -2
- package/dist/_types/@mastra_schema-compat@1.3.17/dist/_types/{@internal_ai-v6@0.0.94 → @internal_ai-v6@0.0.95}/dist/index.d.ts +96 -15
- package/dist/_types/@mastra_schema-compat@1.3.17/dist/provider-compats/anthropic.d.ts +1 -1
- package/dist/_types/@mastra_schema-compat@1.3.17/dist/provider-compats/deepseek.d.ts +1 -1
- package/dist/_types/@mastra_schema-compat@1.3.17/dist/provider-compats/meta.d.ts +1 -1
- package/dist/_types/@mastra_schema-compat@1.3.17/dist/schema.types.d.ts +3 -3
- package/dist/{a2a-CoiG3TAj.js → a2a-DCpd3CTv.js} +4 -4
- package/dist/{a2a-CoiG3TAj.js.map → a2a-DCpd3CTv.js.map} +1 -1
- package/dist/{a2a-DvqRdny6.cjs → a2a-kz7NjjCg.cjs} +4 -4
- package/dist/{a2a-DvqRdny6.cjs.map → a2a-kz7NjjCg.cjs.map} +1 -1
- package/dist/{agent-builder-C_L1i2eE.js → agent-builder-CocfOSi8.js} +7 -7
- package/dist/{agent-builder-C_L1i2eE.js.map → agent-builder-CocfOSi8.js.map} +1 -1
- package/dist/{agent-builder-D0Up9Fw1.cjs → agent-builder-uDstZROq.cjs} +7 -7
- package/dist/{agent-builder-D0Up9Fw1.cjs.map → agent-builder-uDstZROq.cjs.map} +1 -1
- package/dist/{agents-CgcW6lHt.js → agents-BI8ez-FT.js} +7 -7
- package/dist/{agents-CgcW6lHt.js.map → agents-BI8ez-FT.js.map} +1 -1
- package/dist/{agents-DOHGWXDa.cjs → agents-DsfsDhIT.cjs} +7 -7
- package/dist/{agents-DOHGWXDa.cjs.map → agents-DsfsDhIT.cjs.map} +1 -1
- package/dist/{api-schema-manifest-Ci2qUYHc.js → api-schema-manifest-ChxbN16M.js} +3 -3
- package/dist/{api-schema-manifest-Ci2qUYHc.js.map → api-schema-manifest-ChxbN16M.js.map} +1 -1
- package/dist/{api-schema-manifest-DCHOlOuJ.cjs → api-schema-manifest-DtYTPvh9.cjs} +3 -3
- package/dist/{api-schema-manifest-DCHOlOuJ.cjs.map → api-schema-manifest-DtYTPvh9.cjs.map} +1 -1
- package/dist/{background-tasks-BHhn4YZA.js → background-tasks-BIuEr2of.js} +3 -3
- package/dist/{background-tasks-BHhn4YZA.js.map → background-tasks-BIuEr2of.js.map} +1 -1
- package/dist/{background-tasks-Ci2tlxJC.cjs → background-tasks-BXTIp0QV.cjs} +3 -3
- package/dist/{background-tasks-Ci2tlxJC.cjs.map → background-tasks-BXTIp0QV.cjs.map} +1 -1
- package/dist/{builder-registry-m_gHCe12.js → builder-registry-Dd7pbJ5A.js} +4 -4
- package/dist/{builder-registry-m_gHCe12.js.map → builder-registry-Dd7pbJ5A.js.map} +1 -1
- package/dist/{builder-registry-D1_hGKCJ.cjs → builder-registry-DrBUA6EZ.cjs} +4 -4
- package/dist/{builder-registry-D1_hGKCJ.cjs.map → builder-registry-DrBUA6EZ.cjs.map} +1 -1
- package/dist/{channels-hhQ3vD30.js → channels-B6hwVMbV.js} +4 -4
- package/dist/{channels-hhQ3vD30.js.map → channels-B6hwVMbV.js.map} +1 -1
- package/dist/{channels-Bfkp5vYI.cjs → channels-DbfSH5O2.cjs} +4 -4
- package/dist/{channels-Bfkp5vYI.cjs.map → channels-DbfSH5O2.cjs.map} +1 -1
- package/dist/{conversations-xS7yHuG1.js → conversations-BbZYXKIa.js} +5 -5
- package/dist/{conversations-xS7yHuG1.js.map → conversations-BbZYXKIa.js.map} +1 -1
- package/dist/{conversations-Ch_VuVwY.cjs → conversations-QuKJVEFe.cjs} +5 -5
- package/dist/{conversations-Ch_VuVwY.cjs.map → conversations-QuKJVEFe.cjs.map} +1 -1
- package/dist/{dist-BKNKucT9.cjs → dist-Ctfk9X6u.cjs} +208 -247
- package/dist/dist-Ctfk9X6u.cjs.map +1 -0
- package/dist/dist-DJjVMQiv.js +1 -0
- package/dist/{dist-CIYZuix4.js → dist-OKFDPspq.js} +208 -247
- package/dist/dist-OKFDPspq.js.map +1 -0
- package/dist/{dist-DgKeISkr.cjs → dist-ZYvqJK9p.cjs} +1 -1
- package/dist/docs/SKILL.md +3 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/docs/references/docs-knowledge-overview.md +106 -0
- package/dist/docs/references/docs-server-custom-adapters.md +4 -0
- package/dist/docs/references/docs-studio-knowledge.md +45 -24
- package/dist/docs/references/reference-server-invoke-route.md +86 -0
- package/dist/docs/references/reference-server-routes.md +63 -0
- package/dist/{dynamic-workflows-DDauBnDt.js → dynamic-workflows-CyaZLmHX.js} +2 -2
- package/dist/{dynamic-workflows-DDauBnDt.js.map → dynamic-workflows-CyaZLmHX.js.map} +1 -1
- package/dist/{dynamic-workflows-CpCkqM1g.cjs → dynamic-workflows-ZmzWJXxG.cjs} +2 -2
- package/dist/{dynamic-workflows-CpCkqM1g.cjs.map → dynamic-workflows-ZmzWJXxG.cjs.map} +1 -1
- package/dist/{editor-builder-Ceen28s8.js → editor-builder-CbfX5bvL.js} +4 -4
- package/dist/{editor-builder-Ceen28s8.js.map → editor-builder-CbfX5bvL.js.map} +1 -1
- package/dist/{editor-builder-CKfy5eZY.cjs → editor-builder-CjJlqR9a.cjs} +4 -4
- package/dist/{editor-builder-CKfy5eZY.cjs.map → editor-builder-CjJlqR9a.cjs.map} +1 -1
- package/dist/{helpers-DNq3LtLq.js → helpers-B29a1nM3.js} +51 -48
- package/dist/helpers-B29a1nM3.js.map +1 -0
- package/dist/{helpers-BKtUXhz2.cjs → helpers-CylvUIZm.cjs} +56 -47
- package/dist/helpers-CylvUIZm.cjs.map +1 -0
- package/dist/{knowledge-Ba74qr0v.js → knowledge-Cd2cCq-Y.js} +4 -4
- package/dist/{knowledge-Ba74qr0v.js.map → knowledge-Cd2cCq-Y.js.map} +1 -1
- package/dist/{knowledge-urR7FFG8.cjs → knowledge-Q_SCnD9m.cjs} +4 -4
- package/dist/{knowledge-urR7FFG8.cjs.map → knowledge-Q_SCnD9m.cjs.map} +1 -1
- package/dist/{logs-B57_NKDn.js → logs-C5L6gRGr.js} +4 -4
- package/dist/{logs-B57_NKDn.js.map → logs-C5L6gRGr.js.map} +1 -1
- package/dist/{logs-BJN3M88A.cjs → logs-DWIbFIw6.cjs} +4 -4
- package/dist/{logs-BJN3M88A.cjs.map → logs-DWIbFIw6.cjs.map} +1 -1
- package/dist/{mcp-B9BILfJP.cjs → mcp-CKvOVfHn.cjs} +3 -3
- package/dist/{mcp-B9BILfJP.cjs.map → mcp-CKvOVfHn.cjs.map} +1 -1
- package/dist/{mcp-BkmWZD6M.js → mcp-CntC59iU.js} +3 -3
- package/dist/{mcp-BkmWZD6M.js.map → mcp-CntC59iU.js.map} +1 -1
- package/dist/{memory-Dqod_AK9.cjs → memory-DIos0BE-.cjs} +57 -15
- package/dist/{memory-Dqod_AK9.cjs.map → memory-DIos0BE-.cjs.map} +1 -1
- package/dist/{memory-ipOCmg0C.js → memory-JzgWJevA.js} +57 -15
- package/dist/{memory-ipOCmg0C.js.map → memory-JzgWJevA.js.map} +1 -1
- package/dist/{observability-DBtyAJnb.js → observability-BCTkIhJT.js} +3 -3
- package/dist/{observability-DBtyAJnb.js.map → observability-BCTkIhJT.js.map} +1 -1
- package/dist/{observability-BtdW6mjq.cjs → observability-mnHHbnoc.cjs} +3 -3
- package/dist/{observability-BtdW6mjq.cjs.map → observability-mnHHbnoc.cjs.map} +1 -1
- package/dist/{observability-new-endpoints-jjCgXuTF.cjs → observability-new-endpoints-B6fo20v5.cjs} +129 -955
- package/dist/observability-new-endpoints-B6fo20v5.cjs.map +1 -0
- package/dist/{observability-new-endpoints-Di7m_-xc.js → observability-new-endpoints-DHn8uKyr.js} +51 -877
- package/dist/observability-new-endpoints-DHn8uKyr.js.map +1 -0
- package/dist/observability-signal-context-BYOFtbM_.cjs +1317 -0
- package/dist/observability-signal-context-BYOFtbM_.cjs.map +1 -0
- package/dist/observability-signal-context-CL5-rCWM.js +952 -0
- package/dist/observability-signal-context-CL5-rCWM.js.map +1 -0
- package/dist/{plans-nHOnlGzr.js → plans-9hdkc-t8.js} +4 -4
- package/dist/{plans-nHOnlGzr.js.map → plans-9hdkc-t8.js.map} +1 -1
- package/dist/{plans-Djcp3C0d.cjs → plans-DMs8SVBG.cjs} +4 -4
- package/dist/{plans-Djcp3C0d.cjs.map → plans-DMs8SVBG.cjs.map} +1 -1
- package/dist/{probe-image-size-DGTRKrgq.js → probe-image-size-Cxm5QtwO.js} +2 -2
- package/dist/{probe-image-size-DGTRKrgq.js.map → probe-image-size-Cxm5QtwO.js.map} +1 -1
- package/dist/{probe-image-size-BAwk1h6w.cjs → probe-image-size-bDuzMW0E.cjs} +2 -2
- package/dist/{probe-image-size-BAwk1h6w.cjs.map → probe-image-size-bDuzMW0E.cjs.map} +1 -1
- package/dist/{responses-CEet9y8G.js → responses-B5_syoSo.js} +5 -5
- package/dist/{responses-CEet9y8G.js.map → responses-B5_syoSo.js.map} +1 -1
- package/dist/{responses-BdOStKtX.cjs → responses-CNKJoC5a.cjs} +5 -5
- package/dist/{responses-BdOStKtX.cjs.map → responses-CNKJoC5a.cjs.map} +1 -1
- package/dist/{route-builder-BxPrwNog.js → route-builder-BKEzjw_M.js} +2 -2
- package/dist/{route-builder-BxPrwNog.js.map → route-builder-BKEzjw_M.js.map} +1 -1
- package/dist/{route-builder-CvARmqnA.cjs → route-builder-DHqDrSSy.cjs} +2 -2
- package/dist/{route-builder-CvARmqnA.cjs.map → route-builder-DHqDrSSy.cjs.map} +1 -1
- package/dist/{routes-DU_FlwJP.cjs → routes-BYQ38dFx.cjs} +32 -32
- package/dist/{routes-DU_FlwJP.cjs.map → routes-BYQ38dFx.cjs.map} +1 -1
- package/dist/{routes-5FpkkzND.js → routes-C0pgNcG-.js} +32 -32
- package/dist/{routes-5FpkkzND.js.map → routes-C0pgNcG-.js.map} +1 -1
- package/dist/{schedules-D8ShgpY3.cjs → schedules-CvWX2yKR.cjs} +3 -3
- package/dist/{schedules-D8ShgpY3.cjs.map → schedules-CvWX2yKR.cjs.map} +1 -1
- package/dist/{schedules-CGViSLZC.js → schedules-D9CKB18-.js} +3 -3
- package/dist/{schedules-CGViSLZC.js.map → schedules-D9CKB18-.js.map} +1 -1
- package/dist/{schema-Bf12g7KC-DBc4NSds.js → schema-Bf12g7KC-5EUrrnSf.js} +96 -96
- package/dist/{schema-Bf12g7KC-DBc4NSds.js.map → schema-Bf12g7KC-5EUrrnSf.js.map} +1 -1
- package/dist/{schema-Bf12g7KC-plP4Ir6h.cjs → schema-Bf12g7KC-C5XzpQxe.cjs} +96 -96
- package/dist/{schema-Bf12g7KC-plP4Ir6h.cjs.map → schema-Bf12g7KC-C5XzpQxe.cjs.map} +1 -1
- package/dist/{scores-BaDFGpmr.js → scores-B3mS6vqB.js} +4 -4
- package/dist/{scores-BaDFGpmr.js.map → scores-B3mS6vqB.js.map} +1 -1
- package/dist/{scores-Bw6Tuga5.cjs → scores-Dxa8dDfV.cjs} +4 -4
- package/dist/{scores-Bw6Tuga5.cjs.map → scores-Dxa8dDfV.cjs.map} +1 -1
- package/dist/server/auth/helpers.d.ts +20 -0
- package/dist/server/auth/helpers.d.ts.map +1 -1
- package/dist/server/auth/index.cjs +2 -1
- package/dist/server/auth/index.js +2 -2
- package/dist/server/handlers/a2a.cjs +1 -1
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-builder.cjs +1 -1
- package/dist/server/handlers/agent-builder.js +1 -1
- package/dist/server/handlers/agent-controller.cjs +4 -4
- package/dist/server/handlers/agent-controller.js +4 -4
- package/dist/server/handlers/agent-versions.cjs +4 -4
- package/dist/server/handlers/agent-versions.js +4 -4
- package/dist/server/handlers/agents.cjs +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/auth.cjs +4 -4
- package/dist/server/handlers/auth.js +4 -4
- package/dist/server/handlers/authorship.cjs +1 -1
- package/dist/server/handlers/authorship.js +1 -1
- package/dist/server/handlers/background-tasks.cjs +1 -1
- package/dist/server/handlers/background-tasks.js +1 -1
- package/dist/server/handlers/builder-registry.cjs +1 -1
- package/dist/server/handlers/builder-registry.js +1 -1
- package/dist/server/handlers/channels.cjs +1 -1
- package/dist/server/handlers/channels.js +1 -1
- package/dist/server/handlers/conversations.cjs +1 -1
- package/dist/server/handlers/conversations.js +1 -1
- package/dist/server/handlers/datasets.cjs +3 -3
- package/dist/server/handlers/datasets.js +3 -3
- package/dist/server/handlers/dynamic-workflows.cjs +1 -1
- package/dist/server/handlers/dynamic-workflows.js +1 -1
- package/dist/server/handlers/editor-builder.cjs +1 -1
- package/dist/server/handlers/editor-builder.js +1 -1
- package/dist/server/handlers/favorites-enrichment.cjs +1 -1
- package/dist/server/handlers/favorites-enrichment.js +1 -1
- package/dist/server/handlers/gateway-memory-client.cjs +4 -1
- package/dist/server/handlers/gateway-memory-client.cjs.map +1 -1
- package/dist/server/handlers/gateway-memory-client.d.ts.map +1 -1
- package/dist/server/handlers/gateway-memory-client.js +4 -1
- package/dist/server/handlers/gateway-memory-client.js.map +1 -1
- package/dist/server/handlers/knowledge.cjs +1 -1
- package/dist/server/handlers/knowledge.js +1 -1
- package/dist/server/handlers/logs.cjs +1 -1
- package/dist/server/handlers/logs.js +1 -1
- package/dist/server/handlers/mcp-client-versions.cjs +3 -3
- package/dist/server/handlers/mcp-client-versions.js +3 -3
- package/dist/server/handlers/mcp.cjs +1 -1
- package/dist/server/handlers/mcp.js +1 -1
- package/dist/server/handlers/memory.cjs +1 -1
- package/dist/server/handlers/memory.d.ts.map +1 -1
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/observability-new-endpoints.cjs +1 -1
- package/dist/server/handlers/observability-new-endpoints.d.ts +84 -8
- package/dist/server/handlers/observability-new-endpoints.d.ts.map +1 -1
- package/dist/server/handlers/observability-new-endpoints.js +1 -1
- package/dist/server/handlers/observability-shared.cjs +1 -1
- package/dist/server/handlers/observability-shared.js +1 -1
- package/dist/server/handlers/observability-signal-context.cjs +4 -0
- package/dist/server/handlers/observability-signal-context.d.ts +42 -0
- package/dist/server/handlers/observability-signal-context.d.ts.map +1 -0
- package/dist/server/handlers/observability-signal-context.js +1 -0
- package/dist/server/handlers/observability.cjs +2 -2
- package/dist/server/handlers/observability.js +2 -2
- package/dist/server/handlers/plans.cjs +1 -1
- package/dist/server/handlers/plans.js +1 -1
- package/dist/server/handlers/processor-providers.cjs +2 -2
- package/dist/server/handlers/processor-providers.js +2 -2
- package/dist/server/handlers/processors.cjs +2 -2
- package/dist/server/handlers/processors.js +2 -2
- package/dist/server/handlers/prompt-block-versions.cjs +3 -3
- package/dist/server/handlers/prompt-block-versions.js +3 -3
- package/dist/server/handlers/responses.cjs +1 -1
- package/dist/server/handlers/responses.js +1 -1
- package/dist/server/handlers/responses.storage.cjs +1 -1
- package/dist/server/handlers/responses.storage.js +1 -1
- package/dist/server/handlers/schedules.cjs +1 -1
- package/dist/server/handlers/schedules.js +1 -1
- package/dist/server/handlers/scorer-versions.cjs +3 -3
- package/dist/server/handlers/scorer-versions.js +3 -3
- package/dist/server/handlers/scores.cjs +1 -1
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/stored-agent-favorites.cjs +5 -5
- package/dist/server/handlers/stored-agent-favorites.js +5 -5
- package/dist/server/handlers/stored-agents.cjs +7 -7
- package/dist/server/handlers/stored-agents.js +7 -7
- package/dist/server/handlers/stored-mcp-clients.cjs +3 -3
- package/dist/server/handlers/stored-mcp-clients.js +3 -3
- package/dist/server/handlers/stored-prompt-blocks.cjs +3 -3
- package/dist/server/handlers/stored-prompt-blocks.js +3 -3
- package/dist/server/handlers/stored-scorers.cjs +3 -3
- package/dist/server/handlers/stored-scorers.js +3 -3
- package/dist/server/handlers/stored-skill-favorites.cjs +5 -5
- package/dist/server/handlers/stored-skill-favorites.js +5 -5
- package/dist/server/handlers/stored-skills.cjs +5 -5
- package/dist/server/handlers/stored-skills.js +5 -5
- package/dist/server/handlers/stored-workspaces.cjs +3 -3
- package/dist/server/handlers/stored-workspaces.js +3 -3
- package/dist/server/handlers/system.cjs +3 -3
- package/dist/server/handlers/system.js +3 -3
- package/dist/server/handlers/tool-providers.cjs +3 -3
- package/dist/server/handlers/tool-providers.js +3 -3
- package/dist/server/handlers/tools.cjs +1 -1
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/utils.cjs +1 -1
- package/dist/server/handlers/utils.js +1 -1
- package/dist/server/handlers/validate-agent-instructions.cjs +1 -1
- package/dist/server/handlers/validate-agent-instructions.js +1 -1
- package/dist/server/handlers/vector.cjs +1 -1
- package/dist/server/handlers/vector.js +1 -1
- package/dist/server/handlers/workflow-builder.cjs +1 -1
- package/dist/server/handlers/workflow-builder.js +1 -1
- package/dist/server/handlers/workflows.cjs +1 -1
- package/dist/server/handlers/workflows.d.ts.map +1 -1
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers/workspace.cjs +1 -1
- package/dist/server/handlers/workspace.d.ts +23 -23
- package/dist/server/handlers/workspace.js +1 -1
- package/dist/server/handlers.cjs +16 -16
- package/dist/server/handlers.js +16 -16
- package/dist/server/schemas/agents.d.ts +1 -1
- package/dist/server/schemas/index.cjs +20 -20
- package/dist/server/schemas/index.js +20 -20
- package/dist/server/server-adapter/index.cjs +231 -61
- package/dist/server/server-adapter/index.cjs.map +1 -1
- package/dist/server/server-adapter/index.d.ts +67 -1
- package/dist/server/server-adapter/index.d.ts.map +1 -1
- package/dist/server/server-adapter/index.js +226 -63
- package/dist/server/server-adapter/index.js.map +1 -1
- package/dist/server/server-adapter/mcp-auth.d.ts +16 -1
- package/dist/server/server-adapter/mcp-auth.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/observability.d.ts +42 -4
- package/dist/server/server-adapter/routes/observability.d.ts.map +1 -1
- package/dist/{tools-CI5oeJWT.cjs → tools-C9W7WvyI.cjs} +7 -7
- package/dist/{tools-CI5oeJWT.cjs.map → tools-C9W7WvyI.cjs.map} +1 -1
- package/dist/{tools-BAmCNGM5.js → tools-Ce7SFoT1.js} +7 -7
- package/dist/{tools-BAmCNGM5.js.map → tools-Ce7SFoT1.js.map} +1 -1
- package/dist/{utils-9PRHHTGC.cjs → utils-BXEJ6FZC.cjs} +2 -2
- package/dist/{utils-9PRHHTGC.cjs.map → utils-BXEJ6FZC.cjs.map} +1 -1
- package/dist/{utils-BhBJHsqX.cjs → utils-CL-m2SWZ.cjs} +3 -3
- package/dist/{utils-BhBJHsqX.cjs.map → utils-CL-m2SWZ.cjs.map} +1 -1
- package/dist/{utils-B15w-1hm.js → utils-CTYtskHa.js} +2 -2
- package/dist/{utils-B15w-1hm.js.map → utils-CTYtskHa.js.map} +1 -1
- package/dist/{utils-Dy_dQTlK.js → utils-y-cW3mQU.js} +3 -3
- package/dist/{utils-Dy_dQTlK.js.map → utils-y-cW3mQU.js.map} +1 -1
- package/dist/{vector-BZ1bKtwM.cjs → vector-6k7Ft7EX.cjs} +3 -3
- package/dist/{vector-BZ1bKtwM.cjs.map → vector-6k7Ft7EX.cjs.map} +1 -1
- package/dist/{vector-BAs5o6mH.js → vector-BWFSDXvg.js} +3 -3
- package/dist/{vector-BAs5o6mH.js.map → vector-BWFSDXvg.js.map} +1 -1
- package/dist/{workflow-builder-CaSfD6oL.js → workflow-builder-BNk301jl.js} +4 -4
- package/dist/{workflow-builder-CaSfD6oL.js.map → workflow-builder-BNk301jl.js.map} +1 -1
- package/dist/{workflow-builder-tr_D_ZDN.cjs → workflow-builder-CsOEskDo.cjs} +4 -4
- package/dist/{workflow-builder-tr_D_ZDN.cjs.map → workflow-builder-CsOEskDo.cjs.map} +1 -1
- package/dist/{workflows-BxXS5AfE.js → workflows-BAFGmHCW.js} +24 -13
- package/dist/workflows-BAFGmHCW.js.map +1 -0
- package/dist/{workflows-Cdi6w8JW.cjs → workflows-CJz5Eh0B.cjs} +76 -65
- package/dist/workflows-CJz5Eh0B.cjs.map +1 -0
- package/dist/{workspace-BU6sQpbV.cjs → workspace-C7PytFzz.cjs} +3 -3
- package/dist/{workspace-BU6sQpbV.cjs.map → workspace-C7PytFzz.cjs.map} +1 -1
- package/dist/{workspace-CS-GYTve.js → workspace-CYwDvH0G.js} +3 -3
- package/dist/{workspace-CS-GYTve.js.map → workspace-CYwDvH0G.js.map} +1 -1
- package/package.json +9 -9
- package/dist/dist-BKNKucT9.cjs.map +0 -1
- package/dist/dist-CIYZuix4.js.map +0 -1
- package/dist/dist-mNQb9_wX.js +0 -1
- package/dist/helpers-BKtUXhz2.cjs.map +0 -1
- package/dist/helpers-DNq3LtLq.js.map +0 -1
- package/dist/observability-new-endpoints-Di7m_-xc.js.map +0 -1
- package/dist/observability-new-endpoints-jjCgXuTF.cjs.map +0 -1
- package/dist/workflows-BxXS5AfE.js.map +0 -1
- package/dist/workflows-Cdi6w8JW.cjs.map +0 -1
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/@internal_core@0.1.4/dist/request-context/index.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/@internal_core@0.1.4/dist/routes/index.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/@internal_core@0.1.4/dist/types/index.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/checks.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/coerce.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/compat.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/deep-partial.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/errors.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/external.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/from-json-schema.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/in-out.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/index.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/iso.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/parse.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/classic/schemas.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/api.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/checks.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/compile.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/core.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/doc.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/errors.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/index.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/json-schema-generator.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/json-schema-processors.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/json-schema.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/memoizer.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/parse.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/regexes.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/registries.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/schemas.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/standard-schema.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/to-json-schema.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/util.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/core/versions.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/index.d.cts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ar.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/az.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/be.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/bg.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/bn.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ca.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ckb.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/cs.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/da.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/de.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/el.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/en.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/eo.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/es.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/fa.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/fi.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/fr-CA.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/fr.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/gu.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/he.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/hi.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/hr.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/hu.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/hy.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/id.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/index.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/is.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/it.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ja.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ka.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/kh.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/km.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/kn.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ko.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/lt.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/mk.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ms.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ne.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/nl.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/nn.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/no.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ota.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/pl.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ps.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/pt-BR.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/pt.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ro.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ru.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/sk.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/sl.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/sv.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ta.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/tg.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/th.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/tk.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/tr.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ua.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/uk.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/ur.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/uz.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/vi.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/yo.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/zh-CN.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/_types/zod@4.6.7/v4/locales/zh-TW.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/dist/routes/index.d.ts +0 -0
- /package/dist/_types/{@internal_voice@0.0.43 → @internal_voice@0.0.44}/package.json +0 -0
- /package/dist/_types/@mastra_schema-compat@1.3.17/dist/_types/{@internal_ai-sdk-v4@0.0.94 → @internal_ai-sdk-v4@0.0.95}/dist/index.d.ts +0 -0
- /package/dist/_types/@mastra_schema-compat@1.3.17/dist/_types/{@internal_ai-sdk-v5@0.0.94 → @internal_ai-sdk-v5@0.0.95}/dist/index.d.ts +0 -0
|
@@ -0,0 +1,952 @@
|
|
|
1
|
+
import { s as MASTRA_RESOURCE_ID_KEY } from "./constants-CXAvBYcz.js";
|
|
2
|
+
import { t as HTTPException } from "./http-exception-CzaWkxMl.js";
|
|
3
|
+
import { z } from "zod/v4";
|
|
4
|
+
// ../_internal-core/dist/storage/index.js
|
|
5
|
+
/** Types of entities that can produce observability spans. */
|
|
6
|
+
let EntityType = /* @__PURE__ */ function(EntityType) {
|
|
7
|
+
/** Agent/Model execution */
|
|
8
|
+
EntityType["AGENT"] = "agent";
|
|
9
|
+
/** Scorer definition/execution */
|
|
10
|
+
EntityType["SCORER"] = "scorer";
|
|
11
|
+
/** RAG ingestion pipeline execution */
|
|
12
|
+
EntityType["RAG_INGESTION"] = "rag_ingestion";
|
|
13
|
+
/** Trajectory evaluation target */
|
|
14
|
+
EntityType["TRAJECTORY"] = "trajectory";
|
|
15
|
+
/** Input Processor */
|
|
16
|
+
EntityType["INPUT_PROCESSOR"] = "input_processor";
|
|
17
|
+
/** Input Step Processor */
|
|
18
|
+
EntityType["INPUT_STEP_PROCESSOR"] = "input_step_processor";
|
|
19
|
+
/** Output Processor */
|
|
20
|
+
EntityType["OUTPUT_PROCESSOR"] = "output_processor";
|
|
21
|
+
/** Output Step Processor */
|
|
22
|
+
EntityType["OUTPUT_STEP_PROCESSOR"] = "output_step_processor";
|
|
23
|
+
/** Tool Result Processor */
|
|
24
|
+
EntityType["TOOL_RESULT_PROCESSOR"] = "tool_result_processor";
|
|
25
|
+
/** Workflow Step */
|
|
26
|
+
EntityType["WORKFLOW_STEP"] = "workflow_step";
|
|
27
|
+
/** Tool */
|
|
28
|
+
EntityType["TOOL"] = "tool";
|
|
29
|
+
/** MCP server */
|
|
30
|
+
EntityType["MCP_SERVER"] = "mcp_server";
|
|
31
|
+
/** Workflow */
|
|
32
|
+
EntityType["WORKFLOW_RUN"] = "workflow_run";
|
|
33
|
+
/** Memory */
|
|
34
|
+
EntityType["MEMORY"] = "memory";
|
|
35
|
+
/** Classifier */
|
|
36
|
+
EntityType["CLASSIFIER"] = "classifier";
|
|
37
|
+
return EntityType;
|
|
38
|
+
}({});
|
|
39
|
+
z.date().describe("Database record creation time"), z.date().describe("Database record last update time").nullable();
|
|
40
|
+
/**
|
|
41
|
+
* Pagination arguments for list queries (page and perPage only)
|
|
42
|
+
* Uses z.coerce to handle string → number conversion from query params
|
|
43
|
+
*/
|
|
44
|
+
const paginationArgsSchema = z.object({
|
|
45
|
+
page: z.coerce.number().int().min(0).optional().default(0).describe("Zero-indexed page number"),
|
|
46
|
+
perPage: z.coerce.number().int().min(1).max(100).optional().default(10).describe("Number of items per page")
|
|
47
|
+
}).describe("Pagination options for list queries");
|
|
48
|
+
/**
|
|
49
|
+
* Pagination response info
|
|
50
|
+
* Used across all paginated endpoints
|
|
51
|
+
*/
|
|
52
|
+
const paginationInfoSchema = z.object({
|
|
53
|
+
total: z.number().describe("Total number of items available"),
|
|
54
|
+
page: z.number().describe("Current page"),
|
|
55
|
+
perPage: z.union([z.number(), z.literal(false)]).describe("Number of items per page, or false if pagination is disabled"),
|
|
56
|
+
hasMore: z.boolean().describe("True if more pages are available")
|
|
57
|
+
});
|
|
58
|
+
/** Opaque cursor used to resume incremental polling for observability list endpoints. */
|
|
59
|
+
const deltaCursorSchema = z.string().min(1).describe("Opaque cursor value for incremental polling");
|
|
60
|
+
/** Explicit list mode selector for observability list endpoints. */
|
|
61
|
+
const listModeSchema = z.enum(["page", "delta"]).describe("List mode: 'page' | 'delta', defaults to 'page' when omitted.");
|
|
62
|
+
/** Max number of updates returned from a delta poll window. */
|
|
63
|
+
const deltaLimitSchema = z.coerce.number().int().min(1).max(100).optional().describe("Maximum number of updates to return in one delta poll");
|
|
64
|
+
/** Default page-mode pagination used to preserve legacy list arg behavior. */
|
|
65
|
+
const defaultPaginationArgs = {
|
|
66
|
+
page: 0,
|
|
67
|
+
perPage: 10
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Enforces the shared page-vs-delta parameter rules for observability list endpoints.
|
|
71
|
+
* Keeps validation centralized while allowing endpoints to keep their own filters and orderBy schemas.
|
|
72
|
+
*/
|
|
73
|
+
function refineObservabilityListMode(value, ctx) {
|
|
74
|
+
if (value.mode === "delta") {
|
|
75
|
+
if (value.pagination !== void 0) ctx.addIssue({
|
|
76
|
+
code: "custom",
|
|
77
|
+
path: ["pagination"],
|
|
78
|
+
message: "pagination is not allowed in delta mode"
|
|
79
|
+
});
|
|
80
|
+
if (value.orderBy !== void 0) ctx.addIssue({
|
|
81
|
+
code: "custom",
|
|
82
|
+
path: ["orderBy"],
|
|
83
|
+
message: "orderBy is not allowed in delta mode"
|
|
84
|
+
});
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (value.after !== void 0) ctx.addIssue({
|
|
88
|
+
code: "custom",
|
|
89
|
+
path: ["after"],
|
|
90
|
+
message: "after is only allowed in delta mode"
|
|
91
|
+
});
|
|
92
|
+
if (value.limit !== void 0) ctx.addIssue({
|
|
93
|
+
code: "custom",
|
|
94
|
+
path: ["limit"],
|
|
95
|
+
message: "limit is only allowed in delta mode"
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Normalizes observability list args into the legacy-friendly shape expected by existing stores.
|
|
100
|
+
* Page mode remains the default, and pagination/orderBy/limit are always populated.
|
|
101
|
+
*/
|
|
102
|
+
function normalizeObservabilityListArgs(value, defaults) {
|
|
103
|
+
return {
|
|
104
|
+
mode: value.mode === "delta" ? "delta" : "page",
|
|
105
|
+
filters: value.filters,
|
|
106
|
+
pagination: value.pagination ?? defaults.pagination ?? defaultPaginationArgs,
|
|
107
|
+
orderBy: value.orderBy ?? defaults.orderBy,
|
|
108
|
+
after: value.after,
|
|
109
|
+
limit: value.limit ?? defaults.limit ?? 10
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/** Metadata returned for a delta poll window. */
|
|
113
|
+
const deltaInfoSchema = z.object({
|
|
114
|
+
limit: z.number().describe("Maximum number of updates requested for this delta poll"),
|
|
115
|
+
hasMore: z.boolean().describe("True when more matching updates remain after this response")
|
|
116
|
+
}).describe("Incremental polling metadata");
|
|
117
|
+
/**
|
|
118
|
+
* Date range for filtering by time
|
|
119
|
+
* Uses z.coerce to handle ISO string → Date conversion from query params
|
|
120
|
+
*/
|
|
121
|
+
const dateRangeSchema = z.object({
|
|
122
|
+
start: z.coerce.date().optional().describe("Start of date range (inclusive by default)"),
|
|
123
|
+
end: z.coerce.date().optional().describe("End of date range (inclusive by default)"),
|
|
124
|
+
startExclusive: z.boolean().optional().describe("When true, excludes the start date from results (uses > instead of >=)"),
|
|
125
|
+
endExclusive: z.boolean().optional().describe("When true, excludes the end date from results (uses < instead of <=)")
|
|
126
|
+
}).describe("Date range filter for timestamps");
|
|
127
|
+
const sortDirectionSchema = z.enum(["ASC", "DESC"]).describe("Sort direction: 'ASC' | 'DESC'");
|
|
128
|
+
/** Aggregation type schema shared across OLAP-style observability queries. */
|
|
129
|
+
const aggregationTypeSchema = z.enum([
|
|
130
|
+
"sum",
|
|
131
|
+
"avg",
|
|
132
|
+
"min",
|
|
133
|
+
"max",
|
|
134
|
+
"count",
|
|
135
|
+
"count_distinct",
|
|
136
|
+
"last"
|
|
137
|
+
]).describe("Aggregation function");
|
|
138
|
+
/** Aggregation interval schema shared across OLAP-style observability queries. */
|
|
139
|
+
const aggregationIntervalSchema = z.enum([
|
|
140
|
+
"1m",
|
|
141
|
+
"5m",
|
|
142
|
+
"15m",
|
|
143
|
+
"1h",
|
|
144
|
+
"1d"
|
|
145
|
+
]).describe("Time bucket interval");
|
|
146
|
+
/** Compare period for aggregate queries with period-over-period comparison. */
|
|
147
|
+
const comparePeriodSchema = z.enum([
|
|
148
|
+
"previous_period",
|
|
149
|
+
"previous_day",
|
|
150
|
+
"previous_week"
|
|
151
|
+
]).describe("Comparison period for aggregate queries");
|
|
152
|
+
/** Shared groupBy schema for OLAP-style breakdown and time-series queries. */
|
|
153
|
+
const groupBySchema = z.array(z.string()).min(1).describe("Fields to group by");
|
|
154
|
+
/** Shared percentiles schema for percentile queries. */
|
|
155
|
+
const percentilesSchema = z.array(z.number().min(0).max(1)).min(1).describe("Percentile values (0-1)");
|
|
156
|
+
/** Shared fields for aggregate OLAP responses across observability signals. */
|
|
157
|
+
const aggregateResponseFields = {
|
|
158
|
+
value: z.number().nullable().describe("Aggregated value"),
|
|
159
|
+
previousValue: z.number().nullable().optional().describe("Value from comparison period"),
|
|
160
|
+
changePercent: z.number().nullable().optional().describe("Percentage change from comparison period")
|
|
161
|
+
};
|
|
162
|
+
/** Shared field for OLAP breakdown dimension values. */
|
|
163
|
+
const dimensionsField = z.record(z.string(), z.string().nullable()).describe("Dimension values for this group");
|
|
164
|
+
/** Shared field for non-null OLAP aggregated values. */
|
|
165
|
+
const aggregatedValueField = z.number().describe("Aggregated value");
|
|
166
|
+
/** Shared field for OLAP bucket timestamps. */
|
|
167
|
+
const bucketTimestampField = z.date().describe("Bucket timestamp");
|
|
168
|
+
/** Shared field for percentile identifiers in OLAP responses. */
|
|
169
|
+
const percentileField = z.number().describe("Percentile value");
|
|
170
|
+
/** Shared field for percentile values within a time bucket. */
|
|
171
|
+
const percentileBucketValueField = z.number().describe("Percentile value at this bucket");
|
|
172
|
+
const entityTypeField = z.nativeEnum(EntityType).describe(`Entity type (e.g., 'agent' | 'processor' | 'tool' | 'workflow')`);
|
|
173
|
+
const entityIdField = z.string().describe("ID of the entity (e.g., \"weatherAgent\", \"orderWorkflow\")");
|
|
174
|
+
const entityNameField = z.string().describe("Name of the entity");
|
|
175
|
+
const userIdField = z.string().describe("Human end-user who triggered execution");
|
|
176
|
+
const organizationIdField = z.string().describe("Multi-tenant organization/account");
|
|
177
|
+
const resourceIdField = z.string().describe("Broader resource context (Mastra memory compatibility)");
|
|
178
|
+
const runIdField = z.string().describe("Unique execution run identifier");
|
|
179
|
+
const sessionIdField = z.string().describe("Session identifier for grouping traces");
|
|
180
|
+
const threadIdField = z.string().describe("Conversation thread identifier");
|
|
181
|
+
const requestIdField = z.string().describe("HTTP request ID for log correlation");
|
|
182
|
+
const environmentField = z.string().describe(`Environment (e.g., "production" | "staging" | "development")`);
|
|
183
|
+
const sourceField = z.string().describe(`Source of execution (e.g., "local" | "cloud" | "ci")`);
|
|
184
|
+
const executionSourceField = z.string().describe(`Source of execution (e.g., "local" | "cloud" | "ci")`);
|
|
185
|
+
const serviceNameField = z.string().describe("Name of the service");
|
|
186
|
+
const parentEntityTypeField = z.nativeEnum(EntityType).describe("Entity type of the parent entity");
|
|
187
|
+
const parentEntityIdField = z.string().describe("ID of the parent entity");
|
|
188
|
+
const parentEntityNameField = z.string().describe("Name of the parent entity");
|
|
189
|
+
const rootEntityTypeField = z.nativeEnum(EntityType).describe("Entity type of the root entity");
|
|
190
|
+
const rootEntityIdField = z.string().describe("ID of the root entity");
|
|
191
|
+
const rootEntityNameField = z.string().describe("Name of the root entity");
|
|
192
|
+
const entityVersionIdField = z.string().describe("Version ID of the entity that produced this signal (e.g., agent version, workflow version)");
|
|
193
|
+
const parentEntityVersionIdField = z.string().describe("Version ID of the parent entity that produced this signal");
|
|
194
|
+
const rootEntityVersionIdField = z.string().describe("Version ID of the root entity that produced this signal");
|
|
195
|
+
const experimentIdField = z.string().describe("Experiment or eval run identifier");
|
|
196
|
+
const scopeField = z.record(z.string(), z.unknown()).describe("Arbitrary package/app version info (e.g., {\"core\": \"1.0.0\", \"memory\": \"1.0.0\", \"gitSha\": \"abcd1234\"})");
|
|
197
|
+
const metadataField = z.record(z.string(), z.unknown()).describe("User-defined metadata for custom filtering");
|
|
198
|
+
const tagsField = z.array(z.string()).describe("Labels for filtering");
|
|
199
|
+
/**
|
|
200
|
+
* Base context fields shared across tracing and non-tracing observability records.
|
|
201
|
+
* Source/provenance is intentionally excluded because tracing uses `source`
|
|
202
|
+
* while signals use `executionSource`.
|
|
203
|
+
*/
|
|
204
|
+
const contextFieldsBase = {
|
|
205
|
+
entityType: entityTypeField.nullish(),
|
|
206
|
+
entityId: entityIdField.nullish(),
|
|
207
|
+
entityName: entityNameField.nullish(),
|
|
208
|
+
parentEntityType: parentEntityTypeField.nullish(),
|
|
209
|
+
parentEntityId: parentEntityIdField.nullish(),
|
|
210
|
+
parentEntityName: parentEntityNameField.nullish(),
|
|
211
|
+
rootEntityType: rootEntityTypeField.nullish(),
|
|
212
|
+
rootEntityId: rootEntityIdField.nullish(),
|
|
213
|
+
rootEntityName: rootEntityNameField.nullish(),
|
|
214
|
+
userId: userIdField.nullish(),
|
|
215
|
+
organizationId: organizationIdField.nullish(),
|
|
216
|
+
resourceId: resourceIdField.nullish(),
|
|
217
|
+
runId: runIdField.nullish(),
|
|
218
|
+
sessionId: sessionIdField.nullish(),
|
|
219
|
+
threadId: threadIdField.nullish(),
|
|
220
|
+
requestId: requestIdField.nullish(),
|
|
221
|
+
environment: environmentField.nullish(),
|
|
222
|
+
serviceName: serviceNameField.nullish(),
|
|
223
|
+
scope: scopeField.nullish(),
|
|
224
|
+
entityVersionId: entityVersionIdField.nullish(),
|
|
225
|
+
parentEntityVersionId: parentEntityVersionIdField.nullish(),
|
|
226
|
+
rootEntityVersionId: rootEntityVersionIdField.nullish(),
|
|
227
|
+
experimentId: experimentIdField.nullish()
|
|
228
|
+
};
|
|
229
|
+
/**
|
|
230
|
+
* Context fields shared across observability signals other than spans (metrics, logs, scores, feedback).
|
|
231
|
+
* These use `executionSource` to avoid colliding with signal-specific provenance fields.
|
|
232
|
+
*/
|
|
233
|
+
const contextFields = {
|
|
234
|
+
...contextFieldsBase,
|
|
235
|
+
executionSource: executionSourceField.nullish(),
|
|
236
|
+
tags: tagsField.nullish()
|
|
237
|
+
};
|
|
238
|
+
({ ...contextFieldsBase }), sourceField.nullish();
|
|
239
|
+
/**
|
|
240
|
+
* Common filter fields shared across observability signal filters (metrics, logs, scores, feedback).
|
|
241
|
+
* All fields are optional — each signal extends this with signal-specific filters.
|
|
242
|
+
*/
|
|
243
|
+
const commonFilterFields = {
|
|
244
|
+
timestamp: dateRangeSchema.optional().describe("Filter by timestamp range"),
|
|
245
|
+
traceId: z.string().optional().describe("Filter by trace ID"),
|
|
246
|
+
spanId: z.string().optional().describe("Filter by span ID"),
|
|
247
|
+
entityType: entityTypeField.optional(),
|
|
248
|
+
entityName: entityNameField.optional(),
|
|
249
|
+
entityVersionId: entityVersionIdField.optional(),
|
|
250
|
+
parentEntityVersionId: parentEntityVersionIdField.optional(),
|
|
251
|
+
rootEntityVersionId: rootEntityVersionIdField.optional(),
|
|
252
|
+
userId: userIdField.optional(),
|
|
253
|
+
organizationId: organizationIdField.optional(),
|
|
254
|
+
experimentId: experimentIdField.optional(),
|
|
255
|
+
serviceName: serviceNameField.optional(),
|
|
256
|
+
environment: environmentField.optional(),
|
|
257
|
+
parentEntityType: parentEntityTypeField.optional(),
|
|
258
|
+
parentEntityName: parentEntityNameField.optional(),
|
|
259
|
+
rootEntityType: rootEntityTypeField.optional(),
|
|
260
|
+
rootEntityName: rootEntityNameField.optional(),
|
|
261
|
+
resourceId: resourceIdField.optional(),
|
|
262
|
+
runId: runIdField.optional(),
|
|
263
|
+
sessionId: sessionIdField.optional(),
|
|
264
|
+
threadId: threadIdField.optional(),
|
|
265
|
+
requestId: requestIdField.optional(),
|
|
266
|
+
executionSource: executionSourceField.optional(),
|
|
267
|
+
tags: z.array(z.string()).optional().describe("Filter by tags (must have all specified tags)")
|
|
268
|
+
};
|
|
269
|
+
/** Zod schema for trace ID field */
|
|
270
|
+
const traceIdField = z.string().describe("Unique trace identifier");
|
|
271
|
+
/** Zod schema for span ID field */
|
|
272
|
+
const spanIdField = z.string().describe("Unique span identifier within a trace");
|
|
273
|
+
/** Log level schema for validation */
|
|
274
|
+
const logLevelSchema = z.enum([
|
|
275
|
+
"debug",
|
|
276
|
+
"info",
|
|
277
|
+
"warn",
|
|
278
|
+
"error",
|
|
279
|
+
"fatal"
|
|
280
|
+
]);
|
|
281
|
+
const messageField = z.string().describe("Log message");
|
|
282
|
+
const logDataField = z.record(z.string(), z.unknown()).describe("Structured data attached to the log");
|
|
283
|
+
/**
|
|
284
|
+
* Schema for logs as stored in the database.
|
|
285
|
+
* Includes all fields from ExportedLog plus storage-specific fields.
|
|
286
|
+
*/
|
|
287
|
+
const logRecordSchema = z.object({
|
|
288
|
+
logId: z.string().nullish().describe("Unique id for this log event"),
|
|
289
|
+
timestamp: z.date().describe("When the log was created"),
|
|
290
|
+
level: logLevelSchema.describe("Log severity level"),
|
|
291
|
+
message: messageField,
|
|
292
|
+
data: logDataField.nullish(),
|
|
293
|
+
traceId: traceIdField.nullish(),
|
|
294
|
+
spanId: spanIdField.nullish(),
|
|
295
|
+
...contextFields,
|
|
296
|
+
/**
|
|
297
|
+
* @deprecated Use `executionSource` instead.
|
|
298
|
+
*/
|
|
299
|
+
source: z.string().nullish().describe("Execution source"),
|
|
300
|
+
metadata: metadataField.nullish()
|
|
301
|
+
}).describe("Log record as stored in the database");
|
|
302
|
+
z.object({
|
|
303
|
+
level: logLevelSchema,
|
|
304
|
+
message: messageField,
|
|
305
|
+
data: logDataField.optional(),
|
|
306
|
+
tags: tagsField.optional()
|
|
307
|
+
}).describe("User-provided log input");
|
|
308
|
+
/** Schema for creating a log record */
|
|
309
|
+
const createLogRecordSchema = logRecordSchema;
|
|
310
|
+
z.object({ logs: z.array(createLogRecordSchema) }).describe("Arguments for batch creating logs");
|
|
311
|
+
/** Schema for filtering logs in list queries */
|
|
312
|
+
const logsFilterSchema = z.object({
|
|
313
|
+
...commonFilterFields,
|
|
314
|
+
/**
|
|
315
|
+
* @deprecated Use `executionSource` instead.
|
|
316
|
+
*/
|
|
317
|
+
source: z.string().optional().describe("Filter by execution source"),
|
|
318
|
+
level: z.union([logLevelSchema, z.array(logLevelSchema)]).optional().describe("Filter by log level(s)")
|
|
319
|
+
}).describe("Filters for querying logs");
|
|
320
|
+
/** Fields available for ordering log results */
|
|
321
|
+
const logsOrderByFieldSchema = z.enum(["timestamp"]).describe("Field to order by: 'timestamp'");
|
|
322
|
+
/** Order by configuration for log queries */
|
|
323
|
+
const logsOrderBySchema = z.object({
|
|
324
|
+
field: logsOrderByFieldSchema.default("timestamp").describe("Field to order by"),
|
|
325
|
+
direction: sortDirectionSchema.default("DESC").describe("Sort direction")
|
|
326
|
+
}).describe("Order by configuration");
|
|
327
|
+
z.object({
|
|
328
|
+
mode: listModeSchema.optional(),
|
|
329
|
+
filters: logsFilterSchema.optional().describe("Optional filters to apply"),
|
|
330
|
+
pagination: paginationArgsSchema.optional(),
|
|
331
|
+
orderBy: logsOrderBySchema.optional(),
|
|
332
|
+
after: deltaCursorSchema.optional(),
|
|
333
|
+
limit: deltaLimitSchema
|
|
334
|
+
}).strict().superRefine(refineObservabilityListMode).transform((value) => normalizeObservabilityListArgs(value, { orderBy: {
|
|
335
|
+
field: "timestamp",
|
|
336
|
+
direction: "DESC"
|
|
337
|
+
} })).describe("Arguments for listing logs");
|
|
338
|
+
/** Schema for listLogs operation response */
|
|
339
|
+
const listLogsResponseSchema = z.object({
|
|
340
|
+
pagination: paginationInfoSchema.optional(),
|
|
341
|
+
delta: deltaInfoSchema.optional(),
|
|
342
|
+
deltaCursor: deltaCursorSchema.optional(),
|
|
343
|
+
logs: z.array(logRecordSchema)
|
|
344
|
+
}).describe("Response from listing logs");
|
|
345
|
+
const scorerIdField = z.string().describe("Identifier of the scorer (e.g., relevance, accuracy)");
|
|
346
|
+
const scorerNameField = z.string().describe("Display name of the scorer");
|
|
347
|
+
const scorerVersionField = z.string().describe("Version of the scorer");
|
|
348
|
+
const scoreSourceField = z.string().describe("How the score was produced (e.g., manual, automated, experiment)");
|
|
349
|
+
const scoreValueField = z.number().describe("Score value (range defined by scorer)");
|
|
350
|
+
const scoreReasonField = z.string().describe("Explanation for the score");
|
|
351
|
+
/**
|
|
352
|
+
* Schema for scores as stored in the database.
|
|
353
|
+
* Includes all fields from ExportedScore plus storage-specific fields.
|
|
354
|
+
*/
|
|
355
|
+
const scoreRecordSchema = z.object({
|
|
356
|
+
scoreId: z.string().nullish().describe("Unique id for this score event"),
|
|
357
|
+
timestamp: z.date().describe("When the score was recorded"),
|
|
358
|
+
traceId: traceIdField.nullish().describe("Trace that anchors the scored target when available"),
|
|
359
|
+
spanId: spanIdField.nullish().describe("Span ID this score applies to"),
|
|
360
|
+
scorerId: scorerIdField,
|
|
361
|
+
scorerName: scorerNameField.nullish(),
|
|
362
|
+
scorerVersion: scorerVersionField.nullish(),
|
|
363
|
+
scoreSource: scoreSourceField.nullish(),
|
|
364
|
+
/**
|
|
365
|
+
* @deprecated Use `scoreSource` instead.
|
|
366
|
+
*/
|
|
367
|
+
source: scoreSourceField.nullish(),
|
|
368
|
+
score: scoreValueField,
|
|
369
|
+
reason: scoreReasonField.nullish(),
|
|
370
|
+
...contextFields,
|
|
371
|
+
/** Trace ID of the scoring run (links to trace that generated this score) */
|
|
372
|
+
scoreTraceId: z.string().nullish().describe("Trace ID of the scoring run for debugging score generation"),
|
|
373
|
+
metadata: z.record(z.string(), z.unknown()).nullish().describe("User-defined metadata")
|
|
374
|
+
}).describe("Score record as stored in the database");
|
|
375
|
+
z.object({
|
|
376
|
+
scorerId: scorerIdField,
|
|
377
|
+
scorerName: scorerNameField.optional(),
|
|
378
|
+
scorerVersion: scorerVersionField.optional(),
|
|
379
|
+
scoreSource: scoreSourceField.optional(),
|
|
380
|
+
/**
|
|
381
|
+
* @deprecated Use `scoreSource` instead.
|
|
382
|
+
*/
|
|
383
|
+
source: scoreSourceField.optional(),
|
|
384
|
+
score: scoreValueField,
|
|
385
|
+
reason: scoreReasonField.optional(),
|
|
386
|
+
metadata: z.record(z.string(), z.unknown()).optional().describe("Additional scorer-specific metadata"),
|
|
387
|
+
experimentId: experimentIdField.optional(),
|
|
388
|
+
scoreTraceId: z.string().optional().describe("Trace ID of the scoring run for debugging score generation"),
|
|
389
|
+
targetEntityType: entityTypeField.optional().describe("Entity type the scorer evaluated when known")
|
|
390
|
+
}).describe("User-provided score input");
|
|
391
|
+
/** Schema for creating a score record */
|
|
392
|
+
const createScoreRecordSchema = scoreRecordSchema;
|
|
393
|
+
z.object({ score: createScoreRecordSchema }).describe("Arguments for creating a score");
|
|
394
|
+
/** Schema for createScore operation body in client/server */
|
|
395
|
+
const createScoreBodySchema = z.object({
|
|
396
|
+
contextMode: z.enum(["resolve", "provided"]).optional().describe("Context handling; defaults to provided on OSS and resolve on Platform"),
|
|
397
|
+
score: createScoreRecordSchema.omit({ timestamp: true }).extend({
|
|
398
|
+
timestamp: z.iso.datetime({ offset: true }).optional().describe("Original record timestamp; preserve across retries and replacements"),
|
|
399
|
+
traceId: traceIdField.regex(/\S/, "traceId must not be empty or whitespace-only")
|
|
400
|
+
})
|
|
401
|
+
}).describe("Arguments for creating a score");
|
|
402
|
+
/** Schema for createScore operation response */
|
|
403
|
+
const createScoreResponseSchema = z.object({
|
|
404
|
+
success: z.boolean(),
|
|
405
|
+
data: z.object({
|
|
406
|
+
scoreId: z.string(),
|
|
407
|
+
traceId: z.string(),
|
|
408
|
+
spanId: z.string().nullable(),
|
|
409
|
+
timestamp: z.iso.datetime()
|
|
410
|
+
}).optional()
|
|
411
|
+
}).describe("Response from creating a score");
|
|
412
|
+
z.object({ scores: z.array(createScoreRecordSchema) }).describe("Arguments for batch recording scores");
|
|
413
|
+
const DELETE_SCORES_MAX_IDS = 1e3;
|
|
414
|
+
/** Schema for deleteScores operation arguments */
|
|
415
|
+
const deleteScoresArgsSchema = z.object({
|
|
416
|
+
scoreIds: z.array(z.string()).max(DELETE_SCORES_MAX_IDS).describe(`IDs of the score events to delete (maximum ${DELETE_SCORES_MAX_IDS})`),
|
|
417
|
+
organizationId: organizationIdField.optional().describe("Restrict deletion to scores in this organization"),
|
|
418
|
+
resourceId: resourceIdField.optional().describe("Restrict deletion to scores for this resource")
|
|
419
|
+
}).describe("Arguments for deleting scores by id");
|
|
420
|
+
/** Schema for deleteScores operation response */
|
|
421
|
+
const deleteScoresResponseSchema = z.object({ success: z.boolean() }).describe("Response from deleting scores");
|
|
422
|
+
/** Schema for filtering scores in list queries */
|
|
423
|
+
const scoresFilterSchema = z.object({
|
|
424
|
+
...commonFilterFields,
|
|
425
|
+
scorerId: z.union([z.string(), z.array(z.string())]).optional().describe("Filter by scorer ID(s)"),
|
|
426
|
+
scoreSource: scoreSourceField.optional().describe("Filter by how the score was produced"),
|
|
427
|
+
metadata: metadataField.nullish().describe("Filter by metadata key-value pairs (exact match per key)"),
|
|
428
|
+
/**
|
|
429
|
+
* @deprecated Use `scoreSource` instead.
|
|
430
|
+
*/
|
|
431
|
+
source: scoreSourceField.optional().describe("Filter by how the score was produced")
|
|
432
|
+
}).describe("Filters for querying scores");
|
|
433
|
+
/** Fields available for ordering score results */
|
|
434
|
+
const scoresOrderByFieldSchema = z.enum(["timestamp", "score"]).describe("Field to order by: 'timestamp' | 'score'");
|
|
435
|
+
/** Order by configuration for score queries */
|
|
436
|
+
const scoresOrderBySchema = z.object({
|
|
437
|
+
field: scoresOrderByFieldSchema.default("timestamp").describe("Field to order by"),
|
|
438
|
+
direction: sortDirectionSchema.default("DESC").describe("Sort direction")
|
|
439
|
+
}).describe("Order by configuration");
|
|
440
|
+
z.object({
|
|
441
|
+
mode: listModeSchema.optional(),
|
|
442
|
+
filters: scoresFilterSchema.optional(),
|
|
443
|
+
pagination: paginationArgsSchema.optional(),
|
|
444
|
+
orderBy: scoresOrderBySchema.optional(),
|
|
445
|
+
after: deltaCursorSchema.optional(),
|
|
446
|
+
limit: deltaLimitSchema
|
|
447
|
+
}).strict().superRefine(refineObservabilityListMode).transform((value) => normalizeObservabilityListArgs(value, { orderBy: {
|
|
448
|
+
field: "timestamp",
|
|
449
|
+
direction: "DESC"
|
|
450
|
+
} })).describe("Arguments for listing scores");
|
|
451
|
+
/** Schema for listScores operation response */
|
|
452
|
+
const listScoresResponseSchema = z.object({
|
|
453
|
+
pagination: paginationInfoSchema.optional(),
|
|
454
|
+
delta: deltaInfoSchema.optional(),
|
|
455
|
+
deltaCursor: deltaCursorSchema.optional(),
|
|
456
|
+
scores: z.array(scoreRecordSchema)
|
|
457
|
+
}).describe("Response from listing scores");
|
|
458
|
+
const getScoreAggregateArgsSchema = z.object({
|
|
459
|
+
scorerId: scorerIdField,
|
|
460
|
+
scoreSource: scoreSourceField.optional(),
|
|
461
|
+
aggregation: aggregationTypeSchema,
|
|
462
|
+
filters: scoresFilterSchema.optional(),
|
|
463
|
+
comparePeriod: comparePeriodSchema.optional()
|
|
464
|
+
}).describe("Arguments for getting a score aggregate");
|
|
465
|
+
const getScoreAggregateResponseSchema = z.object(aggregateResponseFields);
|
|
466
|
+
const getScoreBreakdownArgsSchema = z.object({
|
|
467
|
+
scorerId: scorerIdField,
|
|
468
|
+
scoreSource: scoreSourceField.optional(),
|
|
469
|
+
groupBy: groupBySchema,
|
|
470
|
+
aggregation: aggregationTypeSchema,
|
|
471
|
+
filters: scoresFilterSchema.optional()
|
|
472
|
+
}).describe("Arguments for getting a score breakdown");
|
|
473
|
+
const getScoreBreakdownResponseSchema = z.object({ groups: z.array(z.object({
|
|
474
|
+
dimensions: dimensionsField,
|
|
475
|
+
value: aggregatedValueField
|
|
476
|
+
})) });
|
|
477
|
+
const getScoreTimeSeriesArgsSchema = z.object({
|
|
478
|
+
scorerId: scorerIdField,
|
|
479
|
+
scoreSource: scoreSourceField.optional(),
|
|
480
|
+
interval: aggregationIntervalSchema,
|
|
481
|
+
aggregation: aggregationTypeSchema,
|
|
482
|
+
filters: scoresFilterSchema.optional(),
|
|
483
|
+
groupBy: groupBySchema.optional()
|
|
484
|
+
}).describe("Arguments for getting score time series");
|
|
485
|
+
const getScoreTimeSeriesResponseSchema = z.object({ series: z.array(z.object({
|
|
486
|
+
name: z.string().describe("Series name (scorer ID or group key)"),
|
|
487
|
+
points: z.array(z.object({
|
|
488
|
+
timestamp: bucketTimestampField,
|
|
489
|
+
value: aggregatedValueField
|
|
490
|
+
}))
|
|
491
|
+
})) });
|
|
492
|
+
const getScorePercentilesArgsSchema = z.object({
|
|
493
|
+
scorerId: scorerIdField,
|
|
494
|
+
scoreSource: scoreSourceField.optional(),
|
|
495
|
+
percentiles: percentilesSchema,
|
|
496
|
+
interval: aggregationIntervalSchema,
|
|
497
|
+
filters: scoresFilterSchema.optional()
|
|
498
|
+
}).describe("Arguments for getting score percentiles");
|
|
499
|
+
const getScorePercentilesResponseSchema = z.object({ series: z.array(z.object({
|
|
500
|
+
percentile: percentileField,
|
|
501
|
+
points: z.array(z.object({
|
|
502
|
+
timestamp: bucketTimestampField,
|
|
503
|
+
value: percentileBucketValueField
|
|
504
|
+
}))
|
|
505
|
+
})) });
|
|
506
|
+
const feedbackSourceField = z.string().describe("Source of feedback (e.g., 'user', 'system', 'manual')");
|
|
507
|
+
const feedbackTypeField = z.string().describe("Type of feedback (e.g., 'thumbs', 'rating', 'correction')");
|
|
508
|
+
const feedbackValueField = z.union([z.number(), z.string()]).describe("Feedback value (rating number or correction text)");
|
|
509
|
+
const feedbackCommentField = z.string().describe("Additional comment or context");
|
|
510
|
+
const feedbackUserIdField = z.string().describe("User who provided the feedback");
|
|
511
|
+
const feedbackReviewStatusSchema = z.enum(["needs-review", "reviewed"]);
|
|
512
|
+
function normalizeLegacyFeedbackActor(input) {
|
|
513
|
+
if (!input || typeof input !== "object" || Array.isArray(input)) return input;
|
|
514
|
+
const record = { ...input };
|
|
515
|
+
if (typeof record.userId === "string" && record.feedbackUserId === void 0) {
|
|
516
|
+
record.feedbackUserId = record.userId;
|
|
517
|
+
delete record.userId;
|
|
518
|
+
}
|
|
519
|
+
return record;
|
|
520
|
+
}
|
|
521
|
+
/**
|
|
522
|
+
* Schema for feedback as stored in the database.
|
|
523
|
+
* Includes all fields from ExportedFeedback plus storage-specific fields.
|
|
524
|
+
*/
|
|
525
|
+
const feedbackRecordObjectSchema = z.object({
|
|
526
|
+
feedbackId: z.string().nullish().describe("Unique id for this feedback event"),
|
|
527
|
+
timestamp: z.date().describe("When the feedback was recorded"),
|
|
528
|
+
traceId: traceIdField.nullish().describe("Trace that anchors the feedback target when available"),
|
|
529
|
+
spanId: spanIdField.nullish().describe("Span ID this feedback applies to"),
|
|
530
|
+
feedbackSource: feedbackSourceField.nullish(),
|
|
531
|
+
/**
|
|
532
|
+
* @deprecated Use `feedbackSource` instead.
|
|
533
|
+
*/
|
|
534
|
+
source: feedbackSourceField.nullish(),
|
|
535
|
+
feedbackType: feedbackTypeField,
|
|
536
|
+
value: feedbackValueField,
|
|
537
|
+
comment: feedbackCommentField.nullish(),
|
|
538
|
+
feedbackUserId: feedbackUserIdField.nullish(),
|
|
539
|
+
...contextFields,
|
|
540
|
+
sourceId: z.string().nullish().describe("ID of the source record this feedback is linked to (e.g. experiment result ID)"),
|
|
541
|
+
metadata: z.record(z.string(), z.unknown()).nullish().describe("User-defined metadata"),
|
|
542
|
+
reviewStatus: feedbackReviewStatusSchema.describe("Feedback review workflow status")
|
|
543
|
+
});
|
|
544
|
+
/** Feedback record fields accepted on creation: `reviewStatus` is optional and defaults to `needs-review` in storage */
|
|
545
|
+
const createFeedbackRecordObjectSchema = feedbackRecordObjectSchema.extend({ reviewStatus: feedbackReviewStatusSchema.optional().describe("Feedback review workflow status") });
|
|
546
|
+
const feedbackRecordSchema = z.object(feedbackRecordObjectSchema.shape).describe("Feedback record as stored in the database");
|
|
547
|
+
/**
|
|
548
|
+
* Schema for user-provided feedback input (minimal required fields).
|
|
549
|
+
* The span/trace context adds traceId/spanId before emitting ExportedFeedback.
|
|
550
|
+
*/
|
|
551
|
+
const feedbackInputObjectSchema = z.object({
|
|
552
|
+
feedbackSource: feedbackSourceField.optional(),
|
|
553
|
+
/**
|
|
554
|
+
* @deprecated Use `feedbackSource` instead.
|
|
555
|
+
*/
|
|
556
|
+
source: feedbackSourceField.optional(),
|
|
557
|
+
feedbackType: feedbackTypeField,
|
|
558
|
+
value: feedbackValueField,
|
|
559
|
+
comment: feedbackCommentField.optional(),
|
|
560
|
+
feedbackUserId: feedbackUserIdField.optional(),
|
|
561
|
+
/**
|
|
562
|
+
* @deprecated Use `feedbackUserId` instead.
|
|
563
|
+
*/
|
|
564
|
+
userId: feedbackUserIdField.optional(),
|
|
565
|
+
metadata: z.record(z.string(), z.unknown()).optional().describe("Additional feedback-specific metadata"),
|
|
566
|
+
experimentId: experimentIdField.optional(),
|
|
567
|
+
sourceId: z.string().optional().describe("ID of the source record this feedback is linked to")
|
|
568
|
+
});
|
|
569
|
+
z.object(feedbackInputObjectSchema.shape).describe("User-provided feedback input");
|
|
570
|
+
z.object(createFeedbackRecordObjectSchema.shape).describe("Feedback record accepted on creation");
|
|
571
|
+
z.object({ feedback: z.preprocess(normalizeLegacyFeedbackActor, createFeedbackRecordObjectSchema) }).describe("Arguments for creating feedback");
|
|
572
|
+
/** Schema for createFeedback operation body in client/server */
|
|
573
|
+
const createFeedbackBodySchema = z.object({
|
|
574
|
+
contextMode: z.enum(["resolve", "provided"]).optional().describe("Context handling; defaults to provided on OSS and resolve on Platform"),
|
|
575
|
+
feedback: createFeedbackRecordObjectSchema.omit({ timestamp: true }).extend({
|
|
576
|
+
timestamp: z.iso.datetime({ offset: true }).optional().describe("Original record timestamp; preserve across retries and replacements"),
|
|
577
|
+
traceId: traceIdField.regex(/\S/, "traceId must not be empty or whitespace-only")
|
|
578
|
+
})
|
|
579
|
+
}).describe("Arguments for creating feedback");
|
|
580
|
+
/** Schema for createFeedback operation response */
|
|
581
|
+
const createFeedbackResponseSchema = z.object({
|
|
582
|
+
success: z.boolean(),
|
|
583
|
+
data: z.object({
|
|
584
|
+
feedbackId: z.string(),
|
|
585
|
+
traceId: z.string(),
|
|
586
|
+
spanId: z.string().nullable(),
|
|
587
|
+
timestamp: z.iso.datetime()
|
|
588
|
+
}).optional()
|
|
589
|
+
}).describe("Response from creating feedback");
|
|
590
|
+
z.object({ feedbacks: z.array(z.preprocess(normalizeLegacyFeedbackActor, createFeedbackRecordObjectSchema)) }).describe("Arguments for batch recording feedback");
|
|
591
|
+
z.object({
|
|
592
|
+
feedbackId: z.string(),
|
|
593
|
+
reviewStatus: feedbackReviewStatusSchema
|
|
594
|
+
}).describe("Arguments for updating a feedback record's review status");
|
|
595
|
+
const DELETE_FEEDBACK_MAX_IDS = 1e3;
|
|
596
|
+
/** Schema for deleteFeedback operation arguments */
|
|
597
|
+
const deleteFeedbackArgsSchema = z.object({
|
|
598
|
+
feedbackIds: z.array(z.string()).max(DELETE_FEEDBACK_MAX_IDS).describe(`IDs of the feedback events to delete (maximum ${DELETE_FEEDBACK_MAX_IDS})`),
|
|
599
|
+
organizationId: organizationIdField.optional().describe("Restrict deletion to feedback in this organization"),
|
|
600
|
+
resourceId: resourceIdField.optional().describe("Restrict deletion to feedback for this resource")
|
|
601
|
+
}).describe("Arguments for deleting feedback by id");
|
|
602
|
+
/** Schema for deleteFeedback operation response */
|
|
603
|
+
const deleteFeedbackResponseSchema = z.object({ success: z.boolean() }).describe("Response from deleting feedback");
|
|
604
|
+
/** Schema for filtering feedback in list queries */
|
|
605
|
+
const feedbackFilterObjectSchema = z.object({
|
|
606
|
+
...commonFilterFields,
|
|
607
|
+
feedbackType: z.union([z.string(), z.array(z.string())]).optional().describe("Filter by feedback type(s)"),
|
|
608
|
+
feedbackSource: feedbackSourceField.optional(),
|
|
609
|
+
/**
|
|
610
|
+
* @deprecated Use `feedbackSource` instead.
|
|
611
|
+
*/
|
|
612
|
+
source: feedbackSourceField.optional(),
|
|
613
|
+
feedbackUserId: feedbackUserIdField.optional(),
|
|
614
|
+
reviewStatus: feedbackReviewStatusSchema.optional()
|
|
615
|
+
});
|
|
616
|
+
const feedbackFilterSchema = z.object(feedbackFilterObjectSchema.shape).describe("Filters for querying feedback");
|
|
617
|
+
/** Fields available for ordering feedback results */
|
|
618
|
+
const feedbackOrderByFieldSchema = z.enum(["timestamp"]).describe("Field to order by: 'timestamp'");
|
|
619
|
+
/** Order by configuration for feedback queries */
|
|
620
|
+
const feedbackOrderBySchema = z.object({
|
|
621
|
+
field: feedbackOrderByFieldSchema.default("timestamp").describe("Field to order by"),
|
|
622
|
+
direction: sortDirectionSchema.default("DESC").describe("Sort direction")
|
|
623
|
+
}).describe("Order by configuration");
|
|
624
|
+
z.object({
|
|
625
|
+
mode: listModeSchema.optional(),
|
|
626
|
+
filters: z.preprocess(normalizeLegacyFeedbackActor, feedbackFilterObjectSchema).optional(),
|
|
627
|
+
pagination: paginationArgsSchema.optional(),
|
|
628
|
+
orderBy: feedbackOrderBySchema.optional(),
|
|
629
|
+
after: deltaCursorSchema.optional(),
|
|
630
|
+
limit: deltaLimitSchema
|
|
631
|
+
}).strict().superRefine(refineObservabilityListMode).transform((value) => normalizeObservabilityListArgs(value, { orderBy: {
|
|
632
|
+
field: "timestamp",
|
|
633
|
+
direction: "DESC"
|
|
634
|
+
} })).describe("Arguments for listing feedback");
|
|
635
|
+
/** Schema for listFeedback operation response */
|
|
636
|
+
const listFeedbackResponseSchema = z.object({
|
|
637
|
+
pagination: paginationInfoSchema.optional(),
|
|
638
|
+
delta: deltaInfoSchema.optional(),
|
|
639
|
+
deltaCursor: deltaCursorSchema.optional(),
|
|
640
|
+
feedback: z.array(feedbackRecordSchema)
|
|
641
|
+
}).describe("Response from listing feedback");
|
|
642
|
+
const getFeedbackAggregateArgsSchema = z.object({
|
|
643
|
+
feedbackType: feedbackTypeField,
|
|
644
|
+
feedbackSource: feedbackSourceField.optional(),
|
|
645
|
+
aggregation: aggregationTypeSchema,
|
|
646
|
+
filters: feedbackFilterSchema.optional(),
|
|
647
|
+
comparePeriod: comparePeriodSchema.optional()
|
|
648
|
+
}).describe("Arguments for getting a feedback aggregate over numeric values");
|
|
649
|
+
const getFeedbackAggregateResponseSchema = z.object(aggregateResponseFields);
|
|
650
|
+
const getFeedbackBreakdownArgsSchema = z.object({
|
|
651
|
+
feedbackType: feedbackTypeField,
|
|
652
|
+
feedbackSource: feedbackSourceField.optional(),
|
|
653
|
+
groupBy: groupBySchema,
|
|
654
|
+
aggregation: aggregationTypeSchema,
|
|
655
|
+
filters: feedbackFilterSchema.optional()
|
|
656
|
+
}).describe("Arguments for getting a feedback breakdown over numeric values");
|
|
657
|
+
const getFeedbackBreakdownResponseSchema = z.object({ groups: z.array(z.object({
|
|
658
|
+
dimensions: dimensionsField,
|
|
659
|
+
value: aggregatedValueField
|
|
660
|
+
})) });
|
|
661
|
+
const getFeedbackTimeSeriesArgsSchema = z.object({
|
|
662
|
+
feedbackType: feedbackTypeField,
|
|
663
|
+
feedbackSource: feedbackSourceField.optional(),
|
|
664
|
+
interval: aggregationIntervalSchema,
|
|
665
|
+
aggregation: aggregationTypeSchema,
|
|
666
|
+
filters: feedbackFilterSchema.optional(),
|
|
667
|
+
groupBy: groupBySchema.optional()
|
|
668
|
+
}).describe("Arguments for getting feedback time series over numeric values");
|
|
669
|
+
const getFeedbackTimeSeriesResponseSchema = z.object({ series: z.array(z.object({
|
|
670
|
+
name: z.string().describe("Series name (feedback type or group key)"),
|
|
671
|
+
points: z.array(z.object({
|
|
672
|
+
timestamp: bucketTimestampField,
|
|
673
|
+
value: aggregatedValueField
|
|
674
|
+
}))
|
|
675
|
+
})) });
|
|
676
|
+
const getFeedbackPercentilesArgsSchema = z.object({
|
|
677
|
+
feedbackType: feedbackTypeField,
|
|
678
|
+
feedbackSource: feedbackSourceField.optional(),
|
|
679
|
+
percentiles: percentilesSchema,
|
|
680
|
+
interval: aggregationIntervalSchema,
|
|
681
|
+
filters: feedbackFilterSchema.optional()
|
|
682
|
+
}).describe("Arguments for getting feedback percentiles over numeric values");
|
|
683
|
+
const getFeedbackPercentilesResponseSchema = z.object({ series: z.array(z.object({
|
|
684
|
+
percentile: percentileField,
|
|
685
|
+
points: z.array(z.object({
|
|
686
|
+
timestamp: bucketTimestampField,
|
|
687
|
+
value: percentileBucketValueField
|
|
688
|
+
}))
|
|
689
|
+
})) });
|
|
690
|
+
z.enum([
|
|
691
|
+
"counter",
|
|
692
|
+
"gauge",
|
|
693
|
+
"histogram"
|
|
694
|
+
]);
|
|
695
|
+
const metricNameField = z.string().describe("Metric name (e.g., mastra_agent_duration_ms)");
|
|
696
|
+
const metricValueField = z.number().describe("Metric value");
|
|
697
|
+
const labelsField = z.record(z.string(), z.string()).describe("Metric labels for dimensional filtering");
|
|
698
|
+
const providerField = z.string().describe("Model provider");
|
|
699
|
+
const modelField = z.string().describe("Model");
|
|
700
|
+
const estimatedCostField = z.number().describe("Estimated cost");
|
|
701
|
+
const costUnitField = z.string().describe("Unit for the estimated cost (e.g., usd)");
|
|
702
|
+
const costMetadField = z.record(z.string(), z.unknown()).nullish().describe("Structured costing metadata");
|
|
703
|
+
/**
|
|
704
|
+
* Schema for metrics as stored in the database.
|
|
705
|
+
* Each record is a single metric observation.
|
|
706
|
+
*/
|
|
707
|
+
const metricRecordSchema = z.object({
|
|
708
|
+
metricId: z.string().nullish().describe("Unique id for this metric event"),
|
|
709
|
+
timestamp: z.date().describe("When the metric was recorded"),
|
|
710
|
+
name: metricNameField,
|
|
711
|
+
value: metricValueField,
|
|
712
|
+
traceId: traceIdField.nullish(),
|
|
713
|
+
spanId: spanIdField.nullish(),
|
|
714
|
+
...contextFields,
|
|
715
|
+
/**
|
|
716
|
+
* @deprecated Use `executionSource` instead.
|
|
717
|
+
*/
|
|
718
|
+
source: z.string().nullish().describe("Execution source"),
|
|
719
|
+
provider: providerField.nullish(),
|
|
720
|
+
model: modelField.nullish(),
|
|
721
|
+
estimatedCost: estimatedCostField.nullish(),
|
|
722
|
+
costUnit: costUnitField.nullish(),
|
|
723
|
+
costMetadata: costMetadField.nullish(),
|
|
724
|
+
labels: labelsField.default({}),
|
|
725
|
+
metadata: metadataField.nullish()
|
|
726
|
+
}).describe("Metric record as stored in the database");
|
|
727
|
+
z.object({
|
|
728
|
+
name: metricNameField,
|
|
729
|
+
value: metricValueField,
|
|
730
|
+
labels: labelsField.optional()
|
|
731
|
+
}).describe("User-provided metric input");
|
|
732
|
+
/** Schema for creating a metric record (without db timestamps) */
|
|
733
|
+
const createMetricRecordSchema = metricRecordSchema;
|
|
734
|
+
z.object({ metrics: z.array(createMetricRecordSchema) }).describe("Arguments for batch recording metrics");
|
|
735
|
+
z.object({
|
|
736
|
+
type: aggregationTypeSchema,
|
|
737
|
+
interval: aggregationIntervalSchema.optional(),
|
|
738
|
+
groupBy: groupBySchema.optional()
|
|
739
|
+
}).describe("Metrics aggregation configuration");
|
|
740
|
+
/** Schema for filtering metrics in queries */
|
|
741
|
+
const metricsFilterSchema = z.object({
|
|
742
|
+
...commonFilterFields,
|
|
743
|
+
traceIds: z.array(traceIdField).nonempty().max(1e3).optional().describe("Filter by one or more trace IDs"),
|
|
744
|
+
experimentIds: z.array(experimentIdField).nonempty().max(1e3).optional().describe("Filter by one or more experiment IDs"),
|
|
745
|
+
name: z.array(z.string()).nonempty().optional().describe("Filter by metric name(s)"),
|
|
746
|
+
/**
|
|
747
|
+
* @deprecated Use `executionSource` instead.
|
|
748
|
+
*/
|
|
749
|
+
source: z.string().optional().describe("Filter by execution source"),
|
|
750
|
+
provider: providerField.optional(),
|
|
751
|
+
model: modelField.optional(),
|
|
752
|
+
costUnit: costUnitField.optional(),
|
|
753
|
+
labels: z.record(z.string(), z.string()).optional().describe("Exact match on label key-value pairs")
|
|
754
|
+
}).describe("Filters for querying metrics");
|
|
755
|
+
/** Fields available for ordering metric list results */
|
|
756
|
+
const metricsOrderByFieldSchema = z.enum(["timestamp"]).describe("Field to order by: 'timestamp'");
|
|
757
|
+
/** Order by configuration for metric list queries */
|
|
758
|
+
const metricsOrderBySchema = z.object({
|
|
759
|
+
field: metricsOrderByFieldSchema.default("timestamp").describe("Field to order by"),
|
|
760
|
+
direction: sortDirectionSchema.default("DESC").describe("Sort direction")
|
|
761
|
+
}).describe("Order by configuration");
|
|
762
|
+
z.object({
|
|
763
|
+
mode: listModeSchema.optional(),
|
|
764
|
+
filters: metricsFilterSchema.optional(),
|
|
765
|
+
pagination: paginationArgsSchema.optional(),
|
|
766
|
+
orderBy: metricsOrderBySchema.optional(),
|
|
767
|
+
after: deltaCursorSchema.optional(),
|
|
768
|
+
limit: deltaLimitSchema
|
|
769
|
+
}).strict().superRefine(refineObservabilityListMode).transform((value) => normalizeObservabilityListArgs(value, { orderBy: {
|
|
770
|
+
field: "timestamp",
|
|
771
|
+
direction: "DESC"
|
|
772
|
+
} })).describe("Arguments for listing metrics");
|
|
773
|
+
/** Schema for listMetrics operation response */
|
|
774
|
+
const listMetricsResponseSchema = z.object({
|
|
775
|
+
pagination: paginationInfoSchema.optional(),
|
|
776
|
+
delta: deltaInfoSchema.optional(),
|
|
777
|
+
deltaCursor: deltaCursorSchema.optional(),
|
|
778
|
+
metrics: z.array(metricRecordSchema)
|
|
779
|
+
}).describe("Response from listing metrics");
|
|
780
|
+
const distinctColumnSchema = z.enum([
|
|
781
|
+
"entityType",
|
|
782
|
+
"entityName",
|
|
783
|
+
"parentEntityType",
|
|
784
|
+
"parentEntityName",
|
|
785
|
+
"rootEntityType",
|
|
786
|
+
"rootEntityName",
|
|
787
|
+
"name",
|
|
788
|
+
"provider",
|
|
789
|
+
"model",
|
|
790
|
+
"environment",
|
|
791
|
+
"executionSource",
|
|
792
|
+
"serviceName",
|
|
793
|
+
"threadId",
|
|
794
|
+
"resourceId"
|
|
795
|
+
]).optional().describe("Column to apply count_distinct over (required when aggregation is 'count_distinct'). Restricted to allowlisted metric dimensions.");
|
|
796
|
+
/** Shared by the metric args schemas and dashboard metric queries, which rebuild those objects. */
|
|
797
|
+
const requireDistinctColumnRefinement = {
|
|
798
|
+
check: (data) => data.aggregation !== "count_distinct" || data.distinctColumn !== void 0,
|
|
799
|
+
options: {
|
|
800
|
+
message: "distinctColumn is required when aggregation is 'count_distinct'",
|
|
801
|
+
path: ["distinctColumn"]
|
|
802
|
+
}
|
|
803
|
+
};
|
|
804
|
+
const getMetricAggregateArgsSchema = z.object({
|
|
805
|
+
name: z.array(z.string()).nonempty().describe("Metric name(s) to aggregate"),
|
|
806
|
+
aggregation: aggregationTypeSchema,
|
|
807
|
+
distinctColumn: distinctColumnSchema,
|
|
808
|
+
filters: metricsFilterSchema.optional(),
|
|
809
|
+
comparePeriod: comparePeriodSchema.optional()
|
|
810
|
+
}).refine(requireDistinctColumnRefinement.check, requireDistinctColumnRefinement.options).describe("Arguments for getting a metric aggregate");
|
|
811
|
+
const getMetricAggregateResponseSchema = z.object({
|
|
812
|
+
...aggregateResponseFields,
|
|
813
|
+
estimatedCost: z.number().nullable().optional().describe("Aggregated estimated cost from the same filtered row set"),
|
|
814
|
+
costUnit: z.string().nullable().optional().describe("Shared cost unit for the aggregated rows, or null when mixed/unknown"),
|
|
815
|
+
previousEstimatedCost: z.number().nullable().optional().describe("Aggregated estimated cost from the comparison period"),
|
|
816
|
+
costChangePercent: z.number().nullable().optional().describe("Percentage change in estimated cost from comparison period")
|
|
817
|
+
});
|
|
818
|
+
const getMetricBreakdownArgsSchema = z.object({
|
|
819
|
+
name: z.array(z.string()).nonempty().describe("Metric name(s) to break down"),
|
|
820
|
+
groupBy: groupBySchema,
|
|
821
|
+
aggregation: aggregationTypeSchema,
|
|
822
|
+
distinctColumn: distinctColumnSchema,
|
|
823
|
+
filters: metricsFilterSchema.optional(),
|
|
824
|
+
limit: z.number().int().positive().max(1e3).optional().describe("Maximum number of groups to return (server-side TopK). Required for high-cardinality groupBy."),
|
|
825
|
+
orderDirection: sortDirectionSchema.optional().describe("Sort direction for the aggregated value (defaults to 'DESC' at the storage layer; pairs with limit for top/bottom-N).")
|
|
826
|
+
}).refine(requireDistinctColumnRefinement.check, requireDistinctColumnRefinement.options).describe("Arguments for getting a metric breakdown");
|
|
827
|
+
const getMetricBreakdownResponseSchema = z.object({ groups: z.array(z.object({
|
|
828
|
+
dimensions: dimensionsField,
|
|
829
|
+
value: aggregatedValueField,
|
|
830
|
+
estimatedCost: z.number().nullable().optional().describe("Summed estimated cost for this group"),
|
|
831
|
+
costUnit: z.string().nullable().optional().describe("Shared cost unit for this group, or null when mixed/unknown")
|
|
832
|
+
})) });
|
|
833
|
+
const getMetricTimeSeriesArgsSchema = z.object({
|
|
834
|
+
name: z.array(z.string()).nonempty().describe("Metric name(s)"),
|
|
835
|
+
interval: aggregationIntervalSchema,
|
|
836
|
+
aggregation: aggregationTypeSchema,
|
|
837
|
+
distinctColumn: distinctColumnSchema,
|
|
838
|
+
filters: metricsFilterSchema.optional(),
|
|
839
|
+
groupBy: groupBySchema.optional()
|
|
840
|
+
}).refine(requireDistinctColumnRefinement.check, requireDistinctColumnRefinement.options).describe("Arguments for getting metric time series");
|
|
841
|
+
const getMetricTimeSeriesResponseSchema = z.object({ series: z.array(z.object({
|
|
842
|
+
name: z.string().describe("Series name (metric name or group key)"),
|
|
843
|
+
costUnit: z.string().nullable().optional().describe("Shared cost unit for this series, or null when mixed/unknown"),
|
|
844
|
+
points: z.array(z.object({
|
|
845
|
+
timestamp: bucketTimestampField,
|
|
846
|
+
value: aggregatedValueField,
|
|
847
|
+
estimatedCost: z.number().nullable().optional().describe("Summed estimated cost in this bucket")
|
|
848
|
+
}))
|
|
849
|
+
})) });
|
|
850
|
+
const getMetricPercentilesArgsSchema = z.object({
|
|
851
|
+
name: z.string().describe("Metric name"),
|
|
852
|
+
percentiles: percentilesSchema,
|
|
853
|
+
interval: aggregationIntervalSchema,
|
|
854
|
+
filters: metricsFilterSchema.optional()
|
|
855
|
+
}).describe("Arguments for getting metric percentiles");
|
|
856
|
+
const getMetricPercentilesResponseSchema = z.object({ series: z.array(z.object({
|
|
857
|
+
percentile: percentileField,
|
|
858
|
+
points: z.array(z.object({
|
|
859
|
+
timestamp: bucketTimestampField,
|
|
860
|
+
value: percentileBucketValueField
|
|
861
|
+
}))
|
|
862
|
+
})) });
|
|
863
|
+
const getMetricNamesArgsSchema = z.object({
|
|
864
|
+
prefix: z.string().optional().describe("Filter metric names by prefix"),
|
|
865
|
+
limit: z.coerce.number().int().min(1).optional().describe("Maximum number of names to return")
|
|
866
|
+
}).describe("Arguments for getting metric names");
|
|
867
|
+
const getMetricNamesResponseSchema = z.object({ names: z.array(z.string()).describe("Distinct metric names") });
|
|
868
|
+
const getMetricLabelKeysArgsSchema = z.object({ metricName: z.string().describe("Metric name to get label keys for") }).describe("Arguments for getting metric label keys");
|
|
869
|
+
const getMetricLabelKeysResponseSchema = z.object({ keys: z.array(z.string()).describe("Distinct label keys for the metric") });
|
|
870
|
+
const getMetricLabelValuesArgsSchema = z.object({
|
|
871
|
+
metricName: z.string().describe("Metric name"),
|
|
872
|
+
labelKey: z.string().describe("Label key to get values for"),
|
|
873
|
+
prefix: z.string().optional().describe("Filter values by prefix"),
|
|
874
|
+
limit: z.coerce.number().int().min(1).optional().describe("Maximum number of values to return")
|
|
875
|
+
}).describe("Arguments for getting label values");
|
|
876
|
+
const getMetricLabelValuesResponseSchema = z.object({ values: z.array(z.string()).describe("Distinct label values") });
|
|
877
|
+
z.object({}).describe("Arguments for getting entity types");
|
|
878
|
+
const getEntityTypesResponseSchema = z.object({ entityTypes: z.array(entityTypeField).describe("Distinct entity types") });
|
|
879
|
+
const getEntityNamesArgsSchema = z.object({ entityType: entityTypeField.optional().describe("Optional entity type filter") }).describe("Arguments for getting entity names");
|
|
880
|
+
const getEntityNamesResponseSchema = z.object({ names: z.array(z.string()).describe("Distinct entity names") });
|
|
881
|
+
z.object({}).describe("Arguments for getting service names");
|
|
882
|
+
const getServiceNamesResponseSchema = z.object({ serviceNames: z.array(z.string()).describe("Distinct service names") });
|
|
883
|
+
z.object({}).describe("Arguments for getting environments");
|
|
884
|
+
const getEnvironmentsResponseSchema = z.object({ environments: z.array(z.string()).describe("Distinct environments") });
|
|
885
|
+
const getTagsArgsSchema = z.object({ entityType: entityTypeField.optional().describe("Optional entity type filter") }).describe("Arguments for getting tags");
|
|
886
|
+
const getTagsResponseSchema = z.object({ tags: z.array(z.string()).describe("Distinct tags") });
|
|
887
|
+
// src/server/handlers/observability-signal-context.ts
|
|
888
|
+
const contextSchema = z.object(contextFields);
|
|
889
|
+
function missingAnchor(code) {
|
|
890
|
+
const error = code === "TRACE_NOT_FOUND" ? "Trace not found" : "Span not found";
|
|
891
|
+
throw new HTTPException(404, {
|
|
892
|
+
message: error,
|
|
893
|
+
res: Response.json({
|
|
894
|
+
success: false,
|
|
895
|
+
code,
|
|
896
|
+
error
|
|
897
|
+
}, { status: 404 })
|
|
898
|
+
});
|
|
899
|
+
}
|
|
900
|
+
/** Mirrors recorded-span correlation context, requiring a persisted root for its tags. */
|
|
901
|
+
async function resolveSignalContext(store, requestContext, record, mode = "provided") {
|
|
902
|
+
const organizationId = requestContext.get("organizationId");
|
|
903
|
+
const resourceId = requestContext.get(MASTRA_RESOURCE_ID_KEY);
|
|
904
|
+
const scope = {
|
|
905
|
+
...typeof organizationId === "string" && organizationId ? { organizationId } : {},
|
|
906
|
+
...typeof resourceId === "string" && resourceId ? { resourceId } : {}
|
|
907
|
+
};
|
|
908
|
+
if (mode === "provided") return {
|
|
909
|
+
...contextSchema.parse(record),
|
|
910
|
+
...scope,
|
|
911
|
+
metadata: record.metadata
|
|
912
|
+
};
|
|
913
|
+
const spans = ((await store.getTrace({ traceId: record.traceId }))?.spans ?? []).filter((span) => span.traceId === record.traceId && (!scope.organizationId || span.organizationId === scope.organizationId) && (!scope.resourceId || span.resourceId === scope.resourceId));
|
|
914
|
+
const latestFirst = (a, b) => (b.endedAt?.getTime() ?? 0) - (a.endedAt?.getTime() ?? 0) || (a.spanId === b.spanId ? 0 : a.spanId > b.spanId ? -1 : 1);
|
|
915
|
+
const root = spans.filter((span) => span.parentSpanId == null).sort(latestFirst)[0];
|
|
916
|
+
if (!root) missingAnchor("TRACE_NOT_FOUND");
|
|
917
|
+
const target = record.spanId == null ? root : spans.find((span) => span.spanId === record.spanId);
|
|
918
|
+
if (!target) missingAnchor("SPAN_NOT_FOUND");
|
|
919
|
+
const spansById = new Map(spans.map((span) => [span.spanId, span]));
|
|
920
|
+
let selectedRoot = target;
|
|
921
|
+
const visited = /* @__PURE__ */ new Set();
|
|
922
|
+
while (selectedRoot.parentSpanId != null) {
|
|
923
|
+
if (visited.has(selectedRoot.spanId)) missingAnchor("TRACE_NOT_FOUND");
|
|
924
|
+
visited.add(selectedRoot.spanId);
|
|
925
|
+
const ancestor = spansById.get(selectedRoot.parentSpanId);
|
|
926
|
+
if (!ancestor) missingAnchor("TRACE_NOT_FOUND");
|
|
927
|
+
selectedRoot = ancestor;
|
|
928
|
+
}
|
|
929
|
+
const parent = target.parentSpanId == null ? void 0 : spansById.get(target.parentSpanId);
|
|
930
|
+
return {
|
|
931
|
+
...contextSchema.parse(Object.fromEntries(Object.keys(contextFields).map((key) => [key, null]))),
|
|
932
|
+
...contextSchema.parse(target),
|
|
933
|
+
executionSource: target.source ?? null,
|
|
934
|
+
tags: selectedRoot.tags ?? null,
|
|
935
|
+
rootEntityType: selectedRoot.entityType ?? null,
|
|
936
|
+
rootEntityId: selectedRoot.entityId ?? null,
|
|
937
|
+
rootEntityName: selectedRoot.entityName ?? null,
|
|
938
|
+
rootEntityVersionId: selectedRoot.entityVersionId ?? null,
|
|
939
|
+
parentEntityType: parent?.entityType ?? target.parentEntityType ?? null,
|
|
940
|
+
parentEntityId: parent?.entityId ?? target.parentEntityId ?? null,
|
|
941
|
+
parentEntityName: parent?.entityName ?? target.parentEntityName ?? null,
|
|
942
|
+
parentEntityVersionId: parent?.entityVersionId ?? target.parentEntityVersionId ?? null,
|
|
943
|
+
...scope,
|
|
944
|
+
metadata: {
|
|
945
|
+
...target.metadata,
|
|
946
|
+
...record.metadata
|
|
947
|
+
}
|
|
948
|
+
};
|
|
949
|
+
}
|
|
950
|
+
export { listMetricsResponseSchema as $, getMetricLabelKeysArgsSchema as A, getScoreAggregateArgsSchema as B, getFeedbackPercentilesResponseSchema as C, getMetricAggregateResponseSchema as D, getMetricAggregateArgsSchema as E, getMetricNamesResponseSchema as F, getScorePercentilesResponseSchema as G, getScoreBreakdownArgsSchema as H, getMetricPercentilesArgsSchema as I, getServiceNamesResponseSchema as J, getScoreTimeSeriesArgsSchema as K, getMetricPercentilesResponseSchema as L, getMetricLabelValuesArgsSchema as M, getMetricLabelValuesResponseSchema as N, getMetricBreakdownArgsSchema as O, getMetricNamesArgsSchema as P, listLogsResponseSchema as Q, getMetricTimeSeriesArgsSchema as R, getFeedbackPercentilesArgsSchema as S, getFeedbackTimeSeriesResponseSchema as T, getScoreBreakdownResponseSchema as U, getScoreAggregateResponseSchema as V, getScorePercentilesArgsSchema as W, getTagsResponseSchema as X, getTagsArgsSchema as Y, listFeedbackResponseSchema as Z, getEnvironmentsResponseSchema as _, createScoreResponseSchema as a, scoreRecordSchema as at, getFeedbackBreakdownArgsSchema as b, deleteScoresArgsSchema as c, feedbackOrderBySchema as d, listScoresResponseSchema as et, feedbackRecordSchema as f, getEntityTypesResponseSchema as g, getEntityNamesResponseSchema as h, createScoreBodySchema as i, metricsOrderBySchema as it, getMetricLabelKeysResponseSchema as j, getMetricBreakdownResponseSchema as k, deleteScoresResponseSchema as l, getEntityNamesArgsSchema as m, createFeedbackBodySchema as n, logsOrderBySchema as nt, deleteFeedbackArgsSchema as o, scoresFilterSchema as ot, feedbackReviewStatusSchema as p, getScoreTimeSeriesResponseSchema as q, createFeedbackResponseSchema as r, metricsFilterSchema as rt, deleteFeedbackResponseSchema as s, scoresOrderBySchema as st, resolveSignalContext as t, logsFilterSchema as tt, feedbackFilterSchema as u, getFeedbackAggregateArgsSchema as v, getFeedbackTimeSeriesArgsSchema as w, getFeedbackBreakdownResponseSchema as x, getFeedbackAggregateResponseSchema as y, getMetricTimeSeriesResponseSchema as z };
|
|
951
|
+
|
|
952
|
+
//# sourceMappingURL=observability-signal-context-CL5-rCWM.js.map
|