@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
|
@@ -180,6 +180,9 @@ function toLocalOMRecord(gr) {
|
|
|
180
180
|
bufferedReflectionInputTokens: gr.bufferedReflectionInputTokens ?? void 0
|
|
181
181
|
};
|
|
182
182
|
}
|
|
183
|
+
function isV2GatewayKey(key) {
|
|
184
|
+
return key.startsWith("msk-gateway-") || key.startsWith("mskv2_");
|
|
185
|
+
}
|
|
183
186
|
let _gatewayClient;
|
|
184
187
|
/**
|
|
185
188
|
* Get a GatewayMemoryClient instance, or null if gateway is not configured.
|
|
@@ -188,7 +191,7 @@ function getGatewayClient() {
|
|
|
188
191
|
if (_gatewayClient !== void 0) return _gatewayClient;
|
|
189
192
|
const url = process.env.MASTRA_GATEWAY_URL || "https://gateway-api.mastra.ai";
|
|
190
193
|
const key = process.env.MASTRA_GATEWAY_API_KEY;
|
|
191
|
-
if (!key) {
|
|
194
|
+
if (!key || isV2GatewayKey(key)) {
|
|
192
195
|
_gatewayClient = null;
|
|
193
196
|
return null;
|
|
194
197
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-memory-client.cjs","names":[],"sources":["../../../src/server/handlers/gateway-memory-client.ts"],"sourcesContent":["/**\n * HTTP client for the Gateway memory REST API.\n * Used to proxy memory operations from the local Mastra server to the remote gateway\n * when agents use `mastra/` model strings.\n */\n\ninterface GatewayThread {\n id: string;\n projectId: string;\n resourceId: string;\n title: string | null;\n metadata: Record<string, unknown> | null;\n createdAt: string;\n updatedAt: string;\n}\n\ninterface GatewayMessage {\n id: string;\n threadId: string;\n role: string;\n content: unknown;\n type: string;\n createdAt: string;\n}\n\ninterface GatewayBufferedObservationChunk {\n id?: string;\n cycleId: string;\n observations: string;\n tokenCount: number;\n messageIds?: string[];\n messageTokens: number;\n lastObservedAt?: string | null;\n createdAt?: string | null;\n suggestedContinuation?: string;\n currentTask?: string;\n threadTitle?: string;\n extractedValues?: Record<string, unknown>;\n extractionFailures?: Array<{ slug: string; error: string }>;\n}\n\ninterface GatewayOMRecord {\n id: string;\n scope: string;\n threadId: string | null;\n resourceId: string;\n createdAt: string;\n updatedAt: string;\n lastObservedAt: string | null;\n originType: string;\n generationCount: number;\n activeObservations: unknown;\n totalTokensObserved: number;\n observationTokenCount: number;\n pendingMessageTokens: number;\n isReflecting: boolean;\n isObserving: boolean;\n isBufferingObservation: boolean;\n isBufferingReflection: boolean;\n config?: Record<string, unknown>;\n bufferedObservationChunks?: GatewayBufferedObservationChunk[];\n bufferedReflection?: string | null;\n bufferedReflectionTokens?: number | null;\n bufferedReflectionInputTokens?: number | null;\n}\n\nexport class GatewayMemoryClient {\n private baseUrl: string;\n private apiKey: string;\n\n constructor(baseUrl: string, apiKey: string) {\n // Strip trailing slashes and /v1 suffix so both URL forms resolve correctly\n this.baseUrl = baseUrl.replace(/\\/+$/, '').replace(/\\/v1$/, '') + '/v1/memory';\n this.apiKey = apiKey;\n }\n\n private threadPath(threadId: string): string {\n return `/threads/${encodeURIComponent(threadId)}`;\n }\n\n private async request<T>(path: string, options: RequestInit = {}): Promise<T> {\n const url = `${this.baseUrl}${path}`;\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), 10_000);\n try {\n const res = await fetch(url, {\n ...options,\n signal: options.signal ?? controller.signal,\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${this.apiKey}`,\n ...((options.headers as Record<string, string>) || {}),\n },\n });\n\n if (!res.ok) {\n const body = await res.text().catch(() => '');\n throw new Error(`Gateway API error ${res.status}: ${body}`);\n }\n\n return res.json() as Promise<T>;\n } finally {\n clearTimeout(timeout);\n }\n }\n\n // ── Threads ──────────────────────────────────────────────────\n\n async listThreads(params: {\n resourceId?: string;\n limit?: number;\n offset?: number;\n }): Promise<{ threads: GatewayThread[]; total: number }> {\n const query = new URLSearchParams();\n if (params.resourceId) query.set('resourceId', params.resourceId);\n if (params.limit != null) query.set('limit', String(params.limit));\n if (params.offset != null) query.set('offset', String(params.offset));\n const qs = query.toString();\n return this.request(`/threads${qs ? '?' + qs : ''}`);\n }\n\n async getThread(threadId: string): Promise<{ thread: GatewayThread } | null> {\n try {\n return await this.request(this.threadPath(threadId));\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return null;\n throw e;\n }\n }\n\n async createThread(params: {\n id?: string;\n resourceId: string;\n title?: string;\n metadata?: Record<string, unknown>;\n }): Promise<{ thread: GatewayThread }> {\n return this.request('/threads', {\n method: 'POST',\n body: JSON.stringify(params),\n });\n }\n\n async updateThread(\n threadId: string,\n params: { title?: string; metadata?: Record<string, unknown> },\n ): Promise<{ thread: GatewayThread } | null> {\n try {\n return await this.request(this.threadPath(threadId), {\n method: 'PATCH',\n body: JSON.stringify(params),\n });\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return null;\n throw e;\n }\n }\n\n async deleteThread(threadId: string): Promise<{ ok: boolean }> {\n try {\n return await this.request(this.threadPath(threadId), { method: 'DELETE' });\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return { ok: false };\n throw e;\n }\n }\n\n // ── Messages ─────────────────────────────────────────────────\n\n async listMessages(\n threadId: string,\n params: { limit?: number; offset?: number; order?: string },\n ): Promise<{ messages: GatewayMessage[]; total: number } | null> {\n const query = new URLSearchParams();\n if (params.limit != null) query.set('limit', String(params.limit));\n if (params.offset != null) query.set('offset', String(params.offset));\n if (params.order) query.set('order', params.order);\n const qs = query.toString();\n try {\n return await this.request(`${this.threadPath(threadId)}/messages${qs ? '?' + qs : ''}`);\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return null;\n throw e;\n }\n }\n\n // ── Observational Memory ─────────────────────────────────────\n\n async getObservations(threadId: string, resourceId?: string): Promise<{ observations: unknown }> {\n const query = new URLSearchParams();\n if (resourceId) query.set('resourceId', resourceId);\n const qs = query.toString();\n return this.request(`${this.threadPath(threadId)}/observations${qs ? '?' + qs : ''}`);\n }\n\n async getObservationRecord(threadId: string, resourceId?: string): Promise<{ record: GatewayOMRecord | null }> {\n const query = new URLSearchParams();\n if (resourceId) query.set('resourceId', resourceId);\n const qs = query.toString();\n try {\n return await this.request(`${this.threadPath(threadId)}/observations/record${qs ? '?' + qs : ''}`);\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return { record: null };\n throw e;\n }\n }\n\n async getObservationHistory(\n threadId: string,\n params: { resourceId?: string; limit?: number; from?: Date; to?: Date; offset?: number },\n ): Promise<{ records: GatewayOMRecord[] }> {\n const query = new URLSearchParams();\n if (params.resourceId) query.set('resourceId', params.resourceId);\n if (params.limit != null) query.set('limit', String(params.limit));\n if (params.from) query.set('from', params.from.toISOString());\n if (params.to) query.set('to', params.to.toISOString());\n if (params.offset != null) query.set('offset', String(params.offset));\n const qs = query.toString();\n try {\n return await this.request(`${this.threadPath(threadId)}/observations/history${qs ? '?' + qs : ''}`);\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return { records: [] };\n throw e;\n }\n }\n}\n\n// ── Helpers ──────────────────────────────────────────────────────\n\n/**\n * Convert a gateway thread to the local server thread format.\n */\nexport function toLocalThread(gt: GatewayThread) {\n return {\n id: gt.id,\n resourceId: gt.resourceId,\n title: gt.title ?? '',\n metadata: gt.metadata ?? {},\n createdAt: new Date(gt.createdAt),\n updatedAt: new Date(gt.updatedAt),\n };\n}\n\n/**\n * Convert a gateway message to the local server message format.\n */\nexport function toLocalMessage(gm: GatewayMessage) {\n return {\n id: gm.id,\n threadId: gm.threadId,\n role: gm.role,\n content: gm.content,\n type: gm.type,\n createdAt: new Date(gm.createdAt),\n };\n}\n\n/**\n * Convert a gateway OM record to the local server OM record format.\n */\nexport function toLocalOMRecord(gr: GatewayOMRecord) {\n return {\n id: gr.id,\n scope: gr.scope as 'thread' | 'resource',\n threadId: gr.threadId,\n resourceId: gr.resourceId,\n createdAt: new Date(gr.createdAt),\n updatedAt: new Date(gr.updatedAt),\n lastObservedAt: gr.lastObservedAt ? new Date(gr.lastObservedAt) : undefined,\n originType: gr.originType as 'initial' | 'reflection' | 'observation',\n generationCount: gr.generationCount,\n activeObservations: (gr.activeObservations ?? '') as string,\n totalTokensObserved: gr.totalTokensObserved,\n observationTokenCount: gr.observationTokenCount,\n pendingMessageTokens: gr.pendingMessageTokens,\n isReflecting: gr.isReflecting,\n isObserving: gr.isObserving,\n isBufferingObservation: gr.isBufferingObservation,\n isBufferingReflection: gr.isBufferingReflection,\n config: gr.config ?? {},\n bufferedObservationChunks: gr.bufferedObservationChunks?.map(chunk => ({\n ...chunk,\n lastObservedAt: chunk.lastObservedAt ? new Date(chunk.lastObservedAt) : undefined,\n createdAt: chunk.createdAt ? new Date(chunk.createdAt) : undefined,\n })),\n bufferedReflection: gr.bufferedReflection ?? undefined,\n bufferedReflectionTokens: gr.bufferedReflectionTokens ?? undefined,\n bufferedReflectionInputTokens: gr.bufferedReflectionInputTokens ?? undefined,\n };\n}\n\n// Singleton-ish lazy instance\nlet _gatewayClient: GatewayMemoryClient | null | undefined;\n\n/**\n * Get a GatewayMemoryClient instance, or null if gateway is not configured.\n */\nexport function getGatewayClient(): GatewayMemoryClient | null {\n if (_gatewayClient !== undefined) return _gatewayClient;\n const url = process.env.MASTRA_GATEWAY_URL || 'https://gateway-api.mastra.ai';\n const key = process.env.MASTRA_GATEWAY_API_KEY;\n if (!key) {\n _gatewayClient = null;\n return null;\n }\n _gatewayClient = new GatewayMemoryClient(url, key);\n return _gatewayClient;\n}\n\n/**\n * Check if an agent uses a gateway model (mastra/ prefix).\n * Sync version — can only check agent.model string directly.\n */\n\nexport function isGatewayAgent(agent: any): boolean {\n if (!agent) return false;\n try {\n const agentAny = agent as Record<string, unknown>;\n if (typeof agentAny.model === 'string' && agentAny.model.startsWith('mastra/')) {\n return true;\n }\n } catch {\n // Ignore errors during detection\n }\n return false;\n}\n\n/**\n * Async version of isGatewayAgent that can await getLLM().\n * Checks multiple paths to detect if an agent uses a mastra/ gateway model:\n * 1. agent.model as raw string (most reliable for directly configured agents)\n * 2. Resolved LLM's underlying ModelRouterLanguageModel config.routerId\n * 3. Resolved LLM's getModel() to access the router's config\n */\n\nexport async function isGatewayAgentAsync(agent: any): Promise<boolean> {\n if (!agent) return false;\n try {\n const agentAny = agent as Record<string, unknown>;\n\n // Check 1: agent.model is a raw string like 'mastra/openai/gpt-5-mini'\n if (typeof agentAny.model === 'string' && agentAny.model.startsWith('mastra/')) {\n return true;\n }\n\n // Check 2: Resolve the LLM and check the router's config.routerId\n // llm.getModelId() returns stripped ID (e.g., 'gpt-5-mini'), so we need\n // to access the underlying ModelRouterLanguageModel's config.routerId\n if (typeof agent.getLLM === 'function') {\n const llm = await Promise.resolve(agent.getLLM({}));\n if (llm) {\n // Try to access the underlying model's routerId via getModel()\n const llmAny = llm as Record<string, unknown>;\n if (typeof llmAny.getModel === 'function') {\n const underlyingModel = (llmAny as { getModel: () => unknown }).getModel();\n const modelAny = underlyingModel as Record<string, unknown>;\n // ModelRouterLanguageModel stores routerId in private config\n if (modelAny?.config && typeof modelAny.config === 'object') {\n const routerId = (modelAny.config as Record<string, unknown>).routerId;\n if (typeof routerId === 'string' && routerId.startsWith('mastra/')) {\n return true;\n }\n }\n }\n }\n }\n } catch {\n // Detection failed — not a gateway agent\n }\n return false;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gateway-memory-client.cjs","names":[],"sources":["../../../src/server/handlers/gateway-memory-client.ts"],"sourcesContent":["/**\n * HTTP client for the Gateway memory REST API.\n * Used to proxy memory operations from the local Mastra server to the remote gateway\n * when agents use `mastra/` model strings.\n */\n\ninterface GatewayThread {\n id: string;\n projectId: string;\n resourceId: string;\n title: string | null;\n metadata: Record<string, unknown> | null;\n createdAt: string;\n updatedAt: string;\n}\n\ninterface GatewayMessage {\n id: string;\n threadId: string;\n role: string;\n content: unknown;\n type: string;\n createdAt: string;\n}\n\ninterface GatewayBufferedObservationChunk {\n id?: string;\n cycleId: string;\n observations: string;\n tokenCount: number;\n messageIds?: string[];\n messageTokens: number;\n lastObservedAt?: string | null;\n createdAt?: string | null;\n suggestedContinuation?: string;\n currentTask?: string;\n threadTitle?: string;\n extractedValues?: Record<string, unknown>;\n extractionFailures?: Array<{ slug: string; error: string }>;\n}\n\ninterface GatewayOMRecord {\n id: string;\n scope: string;\n threadId: string | null;\n resourceId: string;\n createdAt: string;\n updatedAt: string;\n lastObservedAt: string | null;\n originType: string;\n generationCount: number;\n activeObservations: unknown;\n totalTokensObserved: number;\n observationTokenCount: number;\n pendingMessageTokens: number;\n isReflecting: boolean;\n isObserving: boolean;\n isBufferingObservation: boolean;\n isBufferingReflection: boolean;\n config?: Record<string, unknown>;\n bufferedObservationChunks?: GatewayBufferedObservationChunk[];\n bufferedReflection?: string | null;\n bufferedReflectionTokens?: number | null;\n bufferedReflectionInputTokens?: number | null;\n}\n\nexport class GatewayMemoryClient {\n private baseUrl: string;\n private apiKey: string;\n\n constructor(baseUrl: string, apiKey: string) {\n // Strip trailing slashes and /v1 suffix so both URL forms resolve correctly\n this.baseUrl = baseUrl.replace(/\\/+$/, '').replace(/\\/v1$/, '') + '/v1/memory';\n this.apiKey = apiKey;\n }\n\n private threadPath(threadId: string): string {\n return `/threads/${encodeURIComponent(threadId)}`;\n }\n\n private async request<T>(path: string, options: RequestInit = {}): Promise<T> {\n const url = `${this.baseUrl}${path}`;\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), 10_000);\n try {\n const res = await fetch(url, {\n ...options,\n signal: options.signal ?? controller.signal,\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${this.apiKey}`,\n ...((options.headers as Record<string, string>) || {}),\n },\n });\n\n if (!res.ok) {\n const body = await res.text().catch(() => '');\n throw new Error(`Gateway API error ${res.status}: ${body}`);\n }\n\n return res.json() as Promise<T>;\n } finally {\n clearTimeout(timeout);\n }\n }\n\n // ── Threads ──────────────────────────────────────────────────\n\n async listThreads(params: {\n resourceId?: string;\n limit?: number;\n offset?: number;\n }): Promise<{ threads: GatewayThread[]; total: number }> {\n const query = new URLSearchParams();\n if (params.resourceId) query.set('resourceId', params.resourceId);\n if (params.limit != null) query.set('limit', String(params.limit));\n if (params.offset != null) query.set('offset', String(params.offset));\n const qs = query.toString();\n return this.request(`/threads${qs ? '?' + qs : ''}`);\n }\n\n async getThread(threadId: string): Promise<{ thread: GatewayThread } | null> {\n try {\n return await this.request(this.threadPath(threadId));\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return null;\n throw e;\n }\n }\n\n async createThread(params: {\n id?: string;\n resourceId: string;\n title?: string;\n metadata?: Record<string, unknown>;\n }): Promise<{ thread: GatewayThread }> {\n return this.request('/threads', {\n method: 'POST',\n body: JSON.stringify(params),\n });\n }\n\n async updateThread(\n threadId: string,\n params: { title?: string; metadata?: Record<string, unknown> },\n ): Promise<{ thread: GatewayThread } | null> {\n try {\n return await this.request(this.threadPath(threadId), {\n method: 'PATCH',\n body: JSON.stringify(params),\n });\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return null;\n throw e;\n }\n }\n\n async deleteThread(threadId: string): Promise<{ ok: boolean }> {\n try {\n return await this.request(this.threadPath(threadId), { method: 'DELETE' });\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return { ok: false };\n throw e;\n }\n }\n\n // ── Messages ─────────────────────────────────────────────────\n\n async listMessages(\n threadId: string,\n params: { limit?: number; offset?: number; order?: string },\n ): Promise<{ messages: GatewayMessage[]; total: number } | null> {\n const query = new URLSearchParams();\n if (params.limit != null) query.set('limit', String(params.limit));\n if (params.offset != null) query.set('offset', String(params.offset));\n if (params.order) query.set('order', params.order);\n const qs = query.toString();\n try {\n return await this.request(`${this.threadPath(threadId)}/messages${qs ? '?' + qs : ''}`);\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return null;\n throw e;\n }\n }\n\n // ── Observational Memory ─────────────────────────────────────\n\n async getObservations(threadId: string, resourceId?: string): Promise<{ observations: unknown }> {\n const query = new URLSearchParams();\n if (resourceId) query.set('resourceId', resourceId);\n const qs = query.toString();\n return this.request(`${this.threadPath(threadId)}/observations${qs ? '?' + qs : ''}`);\n }\n\n async getObservationRecord(threadId: string, resourceId?: string): Promise<{ record: GatewayOMRecord | null }> {\n const query = new URLSearchParams();\n if (resourceId) query.set('resourceId', resourceId);\n const qs = query.toString();\n try {\n return await this.request(`${this.threadPath(threadId)}/observations/record${qs ? '?' + qs : ''}`);\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return { record: null };\n throw e;\n }\n }\n\n async getObservationHistory(\n threadId: string,\n params: { resourceId?: string; limit?: number; from?: Date; to?: Date; offset?: number },\n ): Promise<{ records: GatewayOMRecord[] }> {\n const query = new URLSearchParams();\n if (params.resourceId) query.set('resourceId', params.resourceId);\n if (params.limit != null) query.set('limit', String(params.limit));\n if (params.from) query.set('from', params.from.toISOString());\n if (params.to) query.set('to', params.to.toISOString());\n if (params.offset != null) query.set('offset', String(params.offset));\n const qs = query.toString();\n try {\n return await this.request(`${this.threadPath(threadId)}/observations/history${qs ? '?' + qs : ''}`);\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return { records: [] };\n throw e;\n }\n }\n}\n\n// ── Helpers ──────────────────────────────────────────────────────\n\n/**\n * Convert a gateway thread to the local server thread format.\n */\nexport function toLocalThread(gt: GatewayThread) {\n return {\n id: gt.id,\n resourceId: gt.resourceId,\n title: gt.title ?? '',\n metadata: gt.metadata ?? {},\n createdAt: new Date(gt.createdAt),\n updatedAt: new Date(gt.updatedAt),\n };\n}\n\n/**\n * Convert a gateway message to the local server message format.\n */\nexport function toLocalMessage(gm: GatewayMessage) {\n return {\n id: gm.id,\n threadId: gm.threadId,\n role: gm.role,\n content: gm.content,\n type: gm.type,\n createdAt: new Date(gm.createdAt),\n };\n}\n\n/**\n * Convert a gateway OM record to the local server OM record format.\n */\nexport function toLocalOMRecord(gr: GatewayOMRecord) {\n return {\n id: gr.id,\n scope: gr.scope as 'thread' | 'resource',\n threadId: gr.threadId,\n resourceId: gr.resourceId,\n createdAt: new Date(gr.createdAt),\n updatedAt: new Date(gr.updatedAt),\n lastObservedAt: gr.lastObservedAt ? new Date(gr.lastObservedAt) : undefined,\n originType: gr.originType as 'initial' | 'reflection' | 'observation',\n generationCount: gr.generationCount,\n activeObservations: (gr.activeObservations ?? '') as string,\n totalTokensObserved: gr.totalTokensObserved,\n observationTokenCount: gr.observationTokenCount,\n pendingMessageTokens: gr.pendingMessageTokens,\n isReflecting: gr.isReflecting,\n isObserving: gr.isObserving,\n isBufferingObservation: gr.isBufferingObservation,\n isBufferingReflection: gr.isBufferingReflection,\n config: gr.config ?? {},\n bufferedObservationChunks: gr.bufferedObservationChunks?.map(chunk => ({\n ...chunk,\n lastObservedAt: chunk.lastObservedAt ? new Date(chunk.lastObservedAt) : undefined,\n createdAt: chunk.createdAt ? new Date(chunk.createdAt) : undefined,\n })),\n bufferedReflection: gr.bufferedReflection ?? undefined,\n bufferedReflectionTokens: gr.bufferedReflectionTokens ?? undefined,\n bufferedReflectionInputTokens: gr.bufferedReflectionInputTokens ?? undefined,\n };\n}\n\nfunction isV2GatewayKey(key: string): boolean {\n return key.startsWith('msk-gateway-') || key.startsWith('mskv2_');\n}\n\n// Singleton-ish lazy instance\nlet _gatewayClient: GatewayMemoryClient | null | undefined;\n\n/**\n * Get a GatewayMemoryClient instance, or null if gateway is not configured.\n */\nexport function getGatewayClient(): GatewayMemoryClient | null {\n if (_gatewayClient !== undefined) return _gatewayClient;\n const url = process.env.MASTRA_GATEWAY_URL || 'https://gateway-api.mastra.ai';\n const key = process.env.MASTRA_GATEWAY_API_KEY;\n // v2 (organization) keys are served by a gateway without the memory API, so memory stays local.\n if (!key || isV2GatewayKey(key)) {\n _gatewayClient = null;\n return null;\n }\n _gatewayClient = new GatewayMemoryClient(url, key);\n return _gatewayClient;\n}\n\n/**\n * Check if an agent uses a gateway model (mastra/ prefix).\n * Sync version — can only check agent.model string directly.\n */\n\nexport function isGatewayAgent(agent: any): boolean {\n if (!agent) return false;\n try {\n const agentAny = agent as Record<string, unknown>;\n if (typeof agentAny.model === 'string' && agentAny.model.startsWith('mastra/')) {\n return true;\n }\n } catch {\n // Ignore errors during detection\n }\n return false;\n}\n\n/**\n * Async version of isGatewayAgent that can await getLLM().\n * Checks multiple paths to detect if an agent uses a mastra/ gateway model:\n * 1. agent.model as raw string (most reliable for directly configured agents)\n * 2. Resolved LLM's underlying ModelRouterLanguageModel config.routerId\n * 3. Resolved LLM's getModel() to access the router's config\n */\n\nexport async function isGatewayAgentAsync(agent: any): Promise<boolean> {\n if (!agent) return false;\n try {\n const agentAny = agent as Record<string, unknown>;\n\n // Check 1: agent.model is a raw string like 'mastra/openai/gpt-5-mini'\n if (typeof agentAny.model === 'string' && agentAny.model.startsWith('mastra/')) {\n return true;\n }\n\n // Check 2: Resolve the LLM and check the router's config.routerId\n // llm.getModelId() returns stripped ID (e.g., 'gpt-5-mini'), so we need\n // to access the underlying ModelRouterLanguageModel's config.routerId\n if (typeof agent.getLLM === 'function') {\n const llm = await Promise.resolve(agent.getLLM({}));\n if (llm) {\n // Try to access the underlying model's routerId via getModel()\n const llmAny = llm as Record<string, unknown>;\n if (typeof llmAny.getModel === 'function') {\n const underlyingModel = (llmAny as { getModel: () => unknown }).getModel();\n const modelAny = underlyingModel as Record<string, unknown>;\n // ModelRouterLanguageModel stores routerId in private config\n if (modelAny?.config && typeof modelAny.config === 'object') {\n const routerId = (modelAny.config as Record<string, unknown>).routerId;\n if (typeof routerId === 'string' && routerId.startsWith('mastra/')) {\n return true;\n }\n }\n }\n }\n }\n } catch {\n // Detection failed — not a gateway agent\n }\n return false;\n}\n"],"mappings":";;;AAkEA,IAAa,sBAAb,MAAiC;CAC/B;CACA;CAEA,YAAY,SAAiB,QAAgB;EAE3C,KAAK,UAAU,QAAQ,QAAQ,QAAQ,EAAE,CAAC,CAAC,QAAQ,SAAS,EAAE,IAAI;EAClE,KAAK,SAAS;CAChB;CAEA,WAAmB,UAA0B;EAC3C,OAAO,YAAY,mBAAmB,QAAQ;CAChD;CAEA,MAAc,QAAW,MAAc,UAAuB,CAAC,GAAe;EAC5E,MAAM,MAAM,GAAG,KAAK,UAAU;EAC9B,MAAM,aAAa,IAAI,gBAAgB;EACvC,MAAM,UAAU,iBAAiB,WAAW,MAAM,GAAG,GAAM;EAC3D,IAAI;GACF,MAAM,MAAM,MAAM,MAAM,KAAK;IAC3B,GAAG;IACH,QAAQ,QAAQ,UAAU,WAAW;IACrC,SAAS;KACP,gBAAgB;KAChB,eAAe,UAAU,KAAK;KAC9B,GAAK,QAAQ,WAAsC,CAAC;IACtD;GACF,CAAC;GAED,IAAI,CAAC,IAAI,IAAI;IACX,MAAM,OAAO,MAAM,IAAI,KAAK,CAAC,CAAC,YAAY,EAAE;IAC5C,MAAM,IAAI,MAAM,qBAAqB,IAAI,OAAO,IAAI,MAAM;GAC5D;GAEA,OAAO,IAAI,KAAK;EAClB,UAAU;GACR,aAAa,OAAO;EACtB;CACF;CAIA,MAAM,YAAY,QAIuC;EACvD,MAAM,QAAQ,IAAI,gBAAgB;EAClC,IAAI,OAAO,YAAY,MAAM,IAAI,cAAc,OAAO,UAAU;EAChE,IAAI,OAAO,SAAS,MAAM,MAAM,IAAI,SAAS,OAAO,OAAO,KAAK,CAAC;EACjE,IAAI,OAAO,UAAU,MAAM,MAAM,IAAI,UAAU,OAAO,OAAO,MAAM,CAAC;EACpE,MAAM,KAAK,MAAM,SAAS;EAC1B,OAAO,KAAK,QAAQ,WAAW,KAAK,MAAM,KAAK,IAAI;CACrD;CAEA,MAAM,UAAU,UAA6D;EAC3E,IAAI;GACF,OAAO,MAAM,KAAK,QAAQ,KAAK,WAAW,QAAQ,CAAC;EACrD,SAAS,GAAY;GACnB,IAAI,aAAa,SAAS,EAAE,QAAQ,SAAS,KAAK,GAAG,OAAO;GAC5D,MAAM;EACR;CACF;CAEA,MAAM,aAAa,QAKoB;EACrC,OAAO,KAAK,QAAQ,YAAY;GAC9B,QAAQ;GACR,MAAM,KAAK,UAAU,MAAM;EAC7B,CAAC;CACH;CAEA,MAAM,aACJ,UACA,QAC2C;EAC3C,IAAI;GACF,OAAO,MAAM,KAAK,QAAQ,KAAK,WAAW,QAAQ,GAAG;IACnD,QAAQ;IACR,MAAM,KAAK,UAAU,MAAM;GAC7B,CAAC;EACH,SAAS,GAAY;GACnB,IAAI,aAAa,SAAS,EAAE,QAAQ,SAAS,KAAK,GAAG,OAAO;GAC5D,MAAM;EACR;CACF;CAEA,MAAM,aAAa,UAA4C;EAC7D,IAAI;GACF,OAAO,MAAM,KAAK,QAAQ,KAAK,WAAW,QAAQ,GAAG,EAAE,QAAQ,SAAS,CAAC;EAC3E,SAAS,GAAY;GACnB,IAAI,aAAa,SAAS,EAAE,QAAQ,SAAS,KAAK,GAAG,OAAO,EAAE,IAAI,MAAM;GACxE,MAAM;EACR;CACF;CAIA,MAAM,aACJ,UACA,QAC+D;EAC/D,MAAM,QAAQ,IAAI,gBAAgB;EAClC,IAAI,OAAO,SAAS,MAAM,MAAM,IAAI,SAAS,OAAO,OAAO,KAAK,CAAC;EACjE,IAAI,OAAO,UAAU,MAAM,MAAM,IAAI,UAAU,OAAO,OAAO,MAAM,CAAC;EACpE,IAAI,OAAO,OAAO,MAAM,IAAI,SAAS,OAAO,KAAK;EACjD,MAAM,KAAK,MAAM,SAAS;EAC1B,IAAI;GACF,OAAO,MAAM,KAAK,QAAQ,GAAG,KAAK,WAAW,QAAQ,EAAE,WAAW,KAAK,MAAM,KAAK,IAAI;EACxF,SAAS,GAAY;GACnB,IAAI,aAAa,SAAS,EAAE,QAAQ,SAAS,KAAK,GAAG,OAAO;GAC5D,MAAM;EACR;CACF;CAIA,MAAM,gBAAgB,UAAkB,YAAyD;EAC/F,MAAM,QAAQ,IAAI,gBAAgB;EAClC,IAAI,YAAY,MAAM,IAAI,cAAc,UAAU;EAClD,MAAM,KAAK,MAAM,SAAS;EAC1B,OAAO,KAAK,QAAQ,GAAG,KAAK,WAAW,QAAQ,EAAE,eAAe,KAAK,MAAM,KAAK,IAAI;CACtF;CAEA,MAAM,qBAAqB,UAAkB,YAAkE;EAC7G,MAAM,QAAQ,IAAI,gBAAgB;EAClC,IAAI,YAAY,MAAM,IAAI,cAAc,UAAU;EAClD,MAAM,KAAK,MAAM,SAAS;EAC1B,IAAI;GACF,OAAO,MAAM,KAAK,QAAQ,GAAG,KAAK,WAAW,QAAQ,EAAE,sBAAsB,KAAK,MAAM,KAAK,IAAI;EACnG,SAAS,GAAY;GACnB,IAAI,aAAa,SAAS,EAAE,QAAQ,SAAS,KAAK,GAAG,OAAO,EAAE,QAAQ,KAAK;GAC3E,MAAM;EACR;CACF;CAEA,MAAM,sBACJ,UACA,QACyC;EACzC,MAAM,QAAQ,IAAI,gBAAgB;EAClC,IAAI,OAAO,YAAY,MAAM,IAAI,cAAc,OAAO,UAAU;EAChE,IAAI,OAAO,SAAS,MAAM,MAAM,IAAI,SAAS,OAAO,OAAO,KAAK,CAAC;EACjE,IAAI,OAAO,MAAM,MAAM,IAAI,QAAQ,OAAO,KAAK,YAAY,CAAC;EAC5D,IAAI,OAAO,IAAI,MAAM,IAAI,MAAM,OAAO,GAAG,YAAY,CAAC;EACtD,IAAI,OAAO,UAAU,MAAM,MAAM,IAAI,UAAU,OAAO,OAAO,MAAM,CAAC;EACpE,MAAM,KAAK,MAAM,SAAS;EAC1B,IAAI;GACF,OAAO,MAAM,KAAK,QAAQ,GAAG,KAAK,WAAW,QAAQ,EAAE,uBAAuB,KAAK,MAAM,KAAK,IAAI;EACpG,SAAS,GAAY;GACnB,IAAI,aAAa,SAAS,EAAE,QAAQ,SAAS,KAAK,GAAG,OAAO,EAAE,SAAS,CAAC,EAAE;GAC1E,MAAM;EACR;CACF;AACF;;;;AAOA,SAAgB,cAAc,IAAmB;CAC/C,OAAO;EACL,IAAI,GAAG;EACP,YAAY,GAAG;EACf,OAAO,GAAG,SAAS;EACnB,UAAU,GAAG,YAAY,CAAC;EAC1B,WAAW,IAAI,KAAK,GAAG,SAAS;EAChC,WAAW,IAAI,KAAK,GAAG,SAAS;CAClC;AACF;;;;AAKA,SAAgB,eAAe,IAAoB;CACjD,OAAO;EACL,IAAI,GAAG;EACP,UAAU,GAAG;EACb,MAAM,GAAG;EACT,SAAS,GAAG;EACZ,MAAM,GAAG;EACT,WAAW,IAAI,KAAK,GAAG,SAAS;CAClC;AACF;;;;AAKA,SAAgB,gBAAgB,IAAqB;CACnD,OAAO;EACL,IAAI,GAAG;EACP,OAAO,GAAG;EACV,UAAU,GAAG;EACb,YAAY,GAAG;EACf,WAAW,IAAI,KAAK,GAAG,SAAS;EAChC,WAAW,IAAI,KAAK,GAAG,SAAS;EAChC,gBAAgB,GAAG,iBAAiB,IAAI,KAAK,GAAG,cAAc,IAAI,KAAA;EAClE,YAAY,GAAG;EACf,iBAAiB,GAAG;EACpB,oBAAqB,GAAG,sBAAsB;EAC9C,qBAAqB,GAAG;EACxB,uBAAuB,GAAG;EAC1B,sBAAsB,GAAG;EACzB,cAAc,GAAG;EACjB,aAAa,GAAG;EAChB,wBAAwB,GAAG;EAC3B,uBAAuB,GAAG;EAC1B,QAAQ,GAAG,UAAU,CAAC;EACtB,2BAA2B,GAAG,2BAA2B,KAAI,WAAU;GACrE,GAAG;GACH,gBAAgB,MAAM,iBAAiB,IAAI,KAAK,MAAM,cAAc,IAAI,KAAA;GACxE,WAAW,MAAM,YAAY,IAAI,KAAK,MAAM,SAAS,IAAI,KAAA;EAC3D,EAAE;EACF,oBAAoB,GAAG,sBAAsB,KAAA;EAC7C,0BAA0B,GAAG,4BAA4B,KAAA;EACzD,+BAA+B,GAAG,iCAAiC,KAAA;CACrE;AACF;AAEA,SAAS,eAAe,KAAsB;CAC5C,OAAO,IAAI,WAAW,cAAc,KAAK,IAAI,WAAW,QAAQ;AAClE;AAGA,IAAI;;;;AAKJ,SAAgB,mBAA+C;CAC7D,IAAI,mBAAmB,KAAA,GAAW,OAAO;CACzC,MAAM,MAAM,QAAQ,IAAI,sBAAsB;CAC9C,MAAM,MAAM,QAAQ,IAAI;CAExB,IAAI,CAAC,OAAO,eAAe,GAAG,GAAG;EAC/B,iBAAiB;EACjB,OAAO;CACT;CACA,iBAAiB,IAAI,oBAAoB,KAAK,GAAG;CACjD,OAAO;AACT;;;;;AAOA,SAAgB,eAAe,OAAqB;CAClD,IAAI,CAAC,OAAO,OAAO;CACnB,IAAI;EACF,MAAM,WAAW;EACjB,IAAI,OAAO,SAAS,UAAU,YAAY,SAAS,MAAM,WAAW,SAAS,GAC3E,OAAO;CAEX,QAAQ,CAER;CACA,OAAO;AACT;;;;;;;;AAUA,eAAsB,oBAAoB,OAA8B;CACtE,IAAI,CAAC,OAAO,OAAO;CACnB,IAAI;EACF,MAAM,WAAW;EAGjB,IAAI,OAAO,SAAS,UAAU,YAAY,SAAS,MAAM,WAAW,SAAS,GAC3E,OAAO;EAMT,IAAI,OAAO,MAAM,WAAW,YAAY;GACtC,MAAM,MAAM,MAAM,QAAQ,QAAQ,MAAM,OAAO,CAAC,CAAC,CAAC;GAClD,IAAI,KAAK;IAEP,MAAM,SAAS;IACf,IAAI,OAAO,OAAO,aAAa,YAAY;KAEzC,MAAM,WADmB,OAAuC,SACjC;KAE/B,IAAI,UAAU,UAAU,OAAO,SAAS,WAAW,UAAU;MAC3D,MAAM,WAAY,SAAS,OAAmC;MAC9D,IAAI,OAAO,aAAa,YAAY,SAAS,WAAW,SAAS,GAC/D,OAAO;KAEX;IACF;GACF;EACF;CACF,QAAQ,CAER;CACA,OAAO;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-memory-client.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/gateway-memory-client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"gateway-memory-client.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/gateway-memory-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -178,6 +178,9 @@ function toLocalOMRecord(gr) {
|
|
|
178
178
|
bufferedReflectionInputTokens: gr.bufferedReflectionInputTokens ?? void 0
|
|
179
179
|
};
|
|
180
180
|
}
|
|
181
|
+
function isV2GatewayKey(key) {
|
|
182
|
+
return key.startsWith("msk-gateway-") || key.startsWith("mskv2_");
|
|
183
|
+
}
|
|
181
184
|
let _gatewayClient;
|
|
182
185
|
/**
|
|
183
186
|
* Get a GatewayMemoryClient instance, or null if gateway is not configured.
|
|
@@ -186,7 +189,7 @@ function getGatewayClient() {
|
|
|
186
189
|
if (_gatewayClient !== void 0) return _gatewayClient;
|
|
187
190
|
const url = process.env.MASTRA_GATEWAY_URL || "https://gateway-api.mastra.ai";
|
|
188
191
|
const key = process.env.MASTRA_GATEWAY_API_KEY;
|
|
189
|
-
if (!key) {
|
|
192
|
+
if (!key || isV2GatewayKey(key)) {
|
|
190
193
|
_gatewayClient = null;
|
|
191
194
|
return null;
|
|
192
195
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-memory-client.js","names":[],"sources":["../../../src/server/handlers/gateway-memory-client.ts"],"sourcesContent":["/**\n * HTTP client for the Gateway memory REST API.\n * Used to proxy memory operations from the local Mastra server to the remote gateway\n * when agents use `mastra/` model strings.\n */\n\ninterface GatewayThread {\n id: string;\n projectId: string;\n resourceId: string;\n title: string | null;\n metadata: Record<string, unknown> | null;\n createdAt: string;\n updatedAt: string;\n}\n\ninterface GatewayMessage {\n id: string;\n threadId: string;\n role: string;\n content: unknown;\n type: string;\n createdAt: string;\n}\n\ninterface GatewayBufferedObservationChunk {\n id?: string;\n cycleId: string;\n observations: string;\n tokenCount: number;\n messageIds?: string[];\n messageTokens: number;\n lastObservedAt?: string | null;\n createdAt?: string | null;\n suggestedContinuation?: string;\n currentTask?: string;\n threadTitle?: string;\n extractedValues?: Record<string, unknown>;\n extractionFailures?: Array<{ slug: string; error: string }>;\n}\n\ninterface GatewayOMRecord {\n id: string;\n scope: string;\n threadId: string | null;\n resourceId: string;\n createdAt: string;\n updatedAt: string;\n lastObservedAt: string | null;\n originType: string;\n generationCount: number;\n activeObservations: unknown;\n totalTokensObserved: number;\n observationTokenCount: number;\n pendingMessageTokens: number;\n isReflecting: boolean;\n isObserving: boolean;\n isBufferingObservation: boolean;\n isBufferingReflection: boolean;\n config?: Record<string, unknown>;\n bufferedObservationChunks?: GatewayBufferedObservationChunk[];\n bufferedReflection?: string | null;\n bufferedReflectionTokens?: number | null;\n bufferedReflectionInputTokens?: number | null;\n}\n\nexport class GatewayMemoryClient {\n private baseUrl: string;\n private apiKey: string;\n\n constructor(baseUrl: string, apiKey: string) {\n // Strip trailing slashes and /v1 suffix so both URL forms resolve correctly\n this.baseUrl = baseUrl.replace(/\\/+$/, '').replace(/\\/v1$/, '') + '/v1/memory';\n this.apiKey = apiKey;\n }\n\n private threadPath(threadId: string): string {\n return `/threads/${encodeURIComponent(threadId)}`;\n }\n\n private async request<T>(path: string, options: RequestInit = {}): Promise<T> {\n const url = `${this.baseUrl}${path}`;\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), 10_000);\n try {\n const res = await fetch(url, {\n ...options,\n signal: options.signal ?? controller.signal,\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${this.apiKey}`,\n ...((options.headers as Record<string, string>) || {}),\n },\n });\n\n if (!res.ok) {\n const body = await res.text().catch(() => '');\n throw new Error(`Gateway API error ${res.status}: ${body}`);\n }\n\n return res.json() as Promise<T>;\n } finally {\n clearTimeout(timeout);\n }\n }\n\n // ── Threads ──────────────────────────────────────────────────\n\n async listThreads(params: {\n resourceId?: string;\n limit?: number;\n offset?: number;\n }): Promise<{ threads: GatewayThread[]; total: number }> {\n const query = new URLSearchParams();\n if (params.resourceId) query.set('resourceId', params.resourceId);\n if (params.limit != null) query.set('limit', String(params.limit));\n if (params.offset != null) query.set('offset', String(params.offset));\n const qs = query.toString();\n return this.request(`/threads${qs ? '?' + qs : ''}`);\n }\n\n async getThread(threadId: string): Promise<{ thread: GatewayThread } | null> {\n try {\n return await this.request(this.threadPath(threadId));\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return null;\n throw e;\n }\n }\n\n async createThread(params: {\n id?: string;\n resourceId: string;\n title?: string;\n metadata?: Record<string, unknown>;\n }): Promise<{ thread: GatewayThread }> {\n return this.request('/threads', {\n method: 'POST',\n body: JSON.stringify(params),\n });\n }\n\n async updateThread(\n threadId: string,\n params: { title?: string; metadata?: Record<string, unknown> },\n ): Promise<{ thread: GatewayThread } | null> {\n try {\n return await this.request(this.threadPath(threadId), {\n method: 'PATCH',\n body: JSON.stringify(params),\n });\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return null;\n throw e;\n }\n }\n\n async deleteThread(threadId: string): Promise<{ ok: boolean }> {\n try {\n return await this.request(this.threadPath(threadId), { method: 'DELETE' });\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return { ok: false };\n throw e;\n }\n }\n\n // ── Messages ─────────────────────────────────────────────────\n\n async listMessages(\n threadId: string,\n params: { limit?: number; offset?: number; order?: string },\n ): Promise<{ messages: GatewayMessage[]; total: number } | null> {\n const query = new URLSearchParams();\n if (params.limit != null) query.set('limit', String(params.limit));\n if (params.offset != null) query.set('offset', String(params.offset));\n if (params.order) query.set('order', params.order);\n const qs = query.toString();\n try {\n return await this.request(`${this.threadPath(threadId)}/messages${qs ? '?' + qs : ''}`);\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return null;\n throw e;\n }\n }\n\n // ── Observational Memory ─────────────────────────────────────\n\n async getObservations(threadId: string, resourceId?: string): Promise<{ observations: unknown }> {\n const query = new URLSearchParams();\n if (resourceId) query.set('resourceId', resourceId);\n const qs = query.toString();\n return this.request(`${this.threadPath(threadId)}/observations${qs ? '?' + qs : ''}`);\n }\n\n async getObservationRecord(threadId: string, resourceId?: string): Promise<{ record: GatewayOMRecord | null }> {\n const query = new URLSearchParams();\n if (resourceId) query.set('resourceId', resourceId);\n const qs = query.toString();\n try {\n return await this.request(`${this.threadPath(threadId)}/observations/record${qs ? '?' + qs : ''}`);\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return { record: null };\n throw e;\n }\n }\n\n async getObservationHistory(\n threadId: string,\n params: { resourceId?: string; limit?: number; from?: Date; to?: Date; offset?: number },\n ): Promise<{ records: GatewayOMRecord[] }> {\n const query = new URLSearchParams();\n if (params.resourceId) query.set('resourceId', params.resourceId);\n if (params.limit != null) query.set('limit', String(params.limit));\n if (params.from) query.set('from', params.from.toISOString());\n if (params.to) query.set('to', params.to.toISOString());\n if (params.offset != null) query.set('offset', String(params.offset));\n const qs = query.toString();\n try {\n return await this.request(`${this.threadPath(threadId)}/observations/history${qs ? '?' + qs : ''}`);\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return { records: [] };\n throw e;\n }\n }\n}\n\n// ── Helpers ──────────────────────────────────────────────────────\n\n/**\n * Convert a gateway thread to the local server thread format.\n */\nexport function toLocalThread(gt: GatewayThread) {\n return {\n id: gt.id,\n resourceId: gt.resourceId,\n title: gt.title ?? '',\n metadata: gt.metadata ?? {},\n createdAt: new Date(gt.createdAt),\n updatedAt: new Date(gt.updatedAt),\n };\n}\n\n/**\n * Convert a gateway message to the local server message format.\n */\nexport function toLocalMessage(gm: GatewayMessage) {\n return {\n id: gm.id,\n threadId: gm.threadId,\n role: gm.role,\n content: gm.content,\n type: gm.type,\n createdAt: new Date(gm.createdAt),\n };\n}\n\n/**\n * Convert a gateway OM record to the local server OM record format.\n */\nexport function toLocalOMRecord(gr: GatewayOMRecord) {\n return {\n id: gr.id,\n scope: gr.scope as 'thread' | 'resource',\n threadId: gr.threadId,\n resourceId: gr.resourceId,\n createdAt: new Date(gr.createdAt),\n updatedAt: new Date(gr.updatedAt),\n lastObservedAt: gr.lastObservedAt ? new Date(gr.lastObservedAt) : undefined,\n originType: gr.originType as 'initial' | 'reflection' | 'observation',\n generationCount: gr.generationCount,\n activeObservations: (gr.activeObservations ?? '') as string,\n totalTokensObserved: gr.totalTokensObserved,\n observationTokenCount: gr.observationTokenCount,\n pendingMessageTokens: gr.pendingMessageTokens,\n isReflecting: gr.isReflecting,\n isObserving: gr.isObserving,\n isBufferingObservation: gr.isBufferingObservation,\n isBufferingReflection: gr.isBufferingReflection,\n config: gr.config ?? {},\n bufferedObservationChunks: gr.bufferedObservationChunks?.map(chunk => ({\n ...chunk,\n lastObservedAt: chunk.lastObservedAt ? new Date(chunk.lastObservedAt) : undefined,\n createdAt: chunk.createdAt ? new Date(chunk.createdAt) : undefined,\n })),\n bufferedReflection: gr.bufferedReflection ?? undefined,\n bufferedReflectionTokens: gr.bufferedReflectionTokens ?? undefined,\n bufferedReflectionInputTokens: gr.bufferedReflectionInputTokens ?? undefined,\n };\n}\n\n// Singleton-ish lazy instance\nlet _gatewayClient: GatewayMemoryClient | null | undefined;\n\n/**\n * Get a GatewayMemoryClient instance, or null if gateway is not configured.\n */\nexport function getGatewayClient(): GatewayMemoryClient | null {\n if (_gatewayClient !== undefined) return _gatewayClient;\n const url = process.env.MASTRA_GATEWAY_URL || 'https://gateway-api.mastra.ai';\n const key = process.env.MASTRA_GATEWAY_API_KEY;\n if (!key) {\n _gatewayClient = null;\n return null;\n }\n _gatewayClient = new GatewayMemoryClient(url, key);\n return _gatewayClient;\n}\n\n/**\n * Check if an agent uses a gateway model (mastra/ prefix).\n * Sync version — can only check agent.model string directly.\n */\n\nexport function isGatewayAgent(agent: any): boolean {\n if (!agent) return false;\n try {\n const agentAny = agent as Record<string, unknown>;\n if (typeof agentAny.model === 'string' && agentAny.model.startsWith('mastra/')) {\n return true;\n }\n } catch {\n // Ignore errors during detection\n }\n return false;\n}\n\n/**\n * Async version of isGatewayAgent that can await getLLM().\n * Checks multiple paths to detect if an agent uses a mastra/ gateway model:\n * 1. agent.model as raw string (most reliable for directly configured agents)\n * 2. Resolved LLM's underlying ModelRouterLanguageModel config.routerId\n * 3. Resolved LLM's getModel() to access the router's config\n */\n\nexport async function isGatewayAgentAsync(agent: any): Promise<boolean> {\n if (!agent) return false;\n try {\n const agentAny = agent as Record<string, unknown>;\n\n // Check 1: agent.model is a raw string like 'mastra/openai/gpt-5-mini'\n if (typeof agentAny.model === 'string' && agentAny.model.startsWith('mastra/')) {\n return true;\n }\n\n // Check 2: Resolve the LLM and check the router's config.routerId\n // llm.getModelId() returns stripped ID (e.g., 'gpt-5-mini'), so we need\n // to access the underlying ModelRouterLanguageModel's config.routerId\n if (typeof agent.getLLM === 'function') {\n const llm = await Promise.resolve(agent.getLLM({}));\n if (llm) {\n // Try to access the underlying model's routerId via getModel()\n const llmAny = llm as Record<string, unknown>;\n if (typeof llmAny.getModel === 'function') {\n const underlyingModel = (llmAny as { getModel: () => unknown }).getModel();\n const modelAny = underlyingModel as Record<string, unknown>;\n // ModelRouterLanguageModel stores routerId in private config\n if (modelAny?.config && typeof modelAny.config === 'object') {\n const routerId = (modelAny.config as Record<string, unknown>).routerId;\n if (typeof routerId === 'string' && routerId.startsWith('mastra/')) {\n return true;\n }\n }\n }\n }\n }\n } catch {\n // Detection failed — not a gateway agent\n }\n return false;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gateway-memory-client.js","names":[],"sources":["../../../src/server/handlers/gateway-memory-client.ts"],"sourcesContent":["/**\n * HTTP client for the Gateway memory REST API.\n * Used to proxy memory operations from the local Mastra server to the remote gateway\n * when agents use `mastra/` model strings.\n */\n\ninterface GatewayThread {\n id: string;\n projectId: string;\n resourceId: string;\n title: string | null;\n metadata: Record<string, unknown> | null;\n createdAt: string;\n updatedAt: string;\n}\n\ninterface GatewayMessage {\n id: string;\n threadId: string;\n role: string;\n content: unknown;\n type: string;\n createdAt: string;\n}\n\ninterface GatewayBufferedObservationChunk {\n id?: string;\n cycleId: string;\n observations: string;\n tokenCount: number;\n messageIds?: string[];\n messageTokens: number;\n lastObservedAt?: string | null;\n createdAt?: string | null;\n suggestedContinuation?: string;\n currentTask?: string;\n threadTitle?: string;\n extractedValues?: Record<string, unknown>;\n extractionFailures?: Array<{ slug: string; error: string }>;\n}\n\ninterface GatewayOMRecord {\n id: string;\n scope: string;\n threadId: string | null;\n resourceId: string;\n createdAt: string;\n updatedAt: string;\n lastObservedAt: string | null;\n originType: string;\n generationCount: number;\n activeObservations: unknown;\n totalTokensObserved: number;\n observationTokenCount: number;\n pendingMessageTokens: number;\n isReflecting: boolean;\n isObserving: boolean;\n isBufferingObservation: boolean;\n isBufferingReflection: boolean;\n config?: Record<string, unknown>;\n bufferedObservationChunks?: GatewayBufferedObservationChunk[];\n bufferedReflection?: string | null;\n bufferedReflectionTokens?: number | null;\n bufferedReflectionInputTokens?: number | null;\n}\n\nexport class GatewayMemoryClient {\n private baseUrl: string;\n private apiKey: string;\n\n constructor(baseUrl: string, apiKey: string) {\n // Strip trailing slashes and /v1 suffix so both URL forms resolve correctly\n this.baseUrl = baseUrl.replace(/\\/+$/, '').replace(/\\/v1$/, '') + '/v1/memory';\n this.apiKey = apiKey;\n }\n\n private threadPath(threadId: string): string {\n return `/threads/${encodeURIComponent(threadId)}`;\n }\n\n private async request<T>(path: string, options: RequestInit = {}): Promise<T> {\n const url = `${this.baseUrl}${path}`;\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), 10_000);\n try {\n const res = await fetch(url, {\n ...options,\n signal: options.signal ?? controller.signal,\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${this.apiKey}`,\n ...((options.headers as Record<string, string>) || {}),\n },\n });\n\n if (!res.ok) {\n const body = await res.text().catch(() => '');\n throw new Error(`Gateway API error ${res.status}: ${body}`);\n }\n\n return res.json() as Promise<T>;\n } finally {\n clearTimeout(timeout);\n }\n }\n\n // ── Threads ──────────────────────────────────────────────────\n\n async listThreads(params: {\n resourceId?: string;\n limit?: number;\n offset?: number;\n }): Promise<{ threads: GatewayThread[]; total: number }> {\n const query = new URLSearchParams();\n if (params.resourceId) query.set('resourceId', params.resourceId);\n if (params.limit != null) query.set('limit', String(params.limit));\n if (params.offset != null) query.set('offset', String(params.offset));\n const qs = query.toString();\n return this.request(`/threads${qs ? '?' + qs : ''}`);\n }\n\n async getThread(threadId: string): Promise<{ thread: GatewayThread } | null> {\n try {\n return await this.request(this.threadPath(threadId));\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return null;\n throw e;\n }\n }\n\n async createThread(params: {\n id?: string;\n resourceId: string;\n title?: string;\n metadata?: Record<string, unknown>;\n }): Promise<{ thread: GatewayThread }> {\n return this.request('/threads', {\n method: 'POST',\n body: JSON.stringify(params),\n });\n }\n\n async updateThread(\n threadId: string,\n params: { title?: string; metadata?: Record<string, unknown> },\n ): Promise<{ thread: GatewayThread } | null> {\n try {\n return await this.request(this.threadPath(threadId), {\n method: 'PATCH',\n body: JSON.stringify(params),\n });\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return null;\n throw e;\n }\n }\n\n async deleteThread(threadId: string): Promise<{ ok: boolean }> {\n try {\n return await this.request(this.threadPath(threadId), { method: 'DELETE' });\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return { ok: false };\n throw e;\n }\n }\n\n // ── Messages ─────────────────────────────────────────────────\n\n async listMessages(\n threadId: string,\n params: { limit?: number; offset?: number; order?: string },\n ): Promise<{ messages: GatewayMessage[]; total: number } | null> {\n const query = new URLSearchParams();\n if (params.limit != null) query.set('limit', String(params.limit));\n if (params.offset != null) query.set('offset', String(params.offset));\n if (params.order) query.set('order', params.order);\n const qs = query.toString();\n try {\n return await this.request(`${this.threadPath(threadId)}/messages${qs ? '?' + qs : ''}`);\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return null;\n throw e;\n }\n }\n\n // ── Observational Memory ─────────────────────────────────────\n\n async getObservations(threadId: string, resourceId?: string): Promise<{ observations: unknown }> {\n const query = new URLSearchParams();\n if (resourceId) query.set('resourceId', resourceId);\n const qs = query.toString();\n return this.request(`${this.threadPath(threadId)}/observations${qs ? '?' + qs : ''}`);\n }\n\n async getObservationRecord(threadId: string, resourceId?: string): Promise<{ record: GatewayOMRecord | null }> {\n const query = new URLSearchParams();\n if (resourceId) query.set('resourceId', resourceId);\n const qs = query.toString();\n try {\n return await this.request(`${this.threadPath(threadId)}/observations/record${qs ? '?' + qs : ''}`);\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return { record: null };\n throw e;\n }\n }\n\n async getObservationHistory(\n threadId: string,\n params: { resourceId?: string; limit?: number; from?: Date; to?: Date; offset?: number },\n ): Promise<{ records: GatewayOMRecord[] }> {\n const query = new URLSearchParams();\n if (params.resourceId) query.set('resourceId', params.resourceId);\n if (params.limit != null) query.set('limit', String(params.limit));\n if (params.from) query.set('from', params.from.toISOString());\n if (params.to) query.set('to', params.to.toISOString());\n if (params.offset != null) query.set('offset', String(params.offset));\n const qs = query.toString();\n try {\n return await this.request(`${this.threadPath(threadId)}/observations/history${qs ? '?' + qs : ''}`);\n } catch (e: unknown) {\n if (e instanceof Error && e.message.includes('404')) return { records: [] };\n throw e;\n }\n }\n}\n\n// ── Helpers ──────────────────────────────────────────────────────\n\n/**\n * Convert a gateway thread to the local server thread format.\n */\nexport function toLocalThread(gt: GatewayThread) {\n return {\n id: gt.id,\n resourceId: gt.resourceId,\n title: gt.title ?? '',\n metadata: gt.metadata ?? {},\n createdAt: new Date(gt.createdAt),\n updatedAt: new Date(gt.updatedAt),\n };\n}\n\n/**\n * Convert a gateway message to the local server message format.\n */\nexport function toLocalMessage(gm: GatewayMessage) {\n return {\n id: gm.id,\n threadId: gm.threadId,\n role: gm.role,\n content: gm.content,\n type: gm.type,\n createdAt: new Date(gm.createdAt),\n };\n}\n\n/**\n * Convert a gateway OM record to the local server OM record format.\n */\nexport function toLocalOMRecord(gr: GatewayOMRecord) {\n return {\n id: gr.id,\n scope: gr.scope as 'thread' | 'resource',\n threadId: gr.threadId,\n resourceId: gr.resourceId,\n createdAt: new Date(gr.createdAt),\n updatedAt: new Date(gr.updatedAt),\n lastObservedAt: gr.lastObservedAt ? new Date(gr.lastObservedAt) : undefined,\n originType: gr.originType as 'initial' | 'reflection' | 'observation',\n generationCount: gr.generationCount,\n activeObservations: (gr.activeObservations ?? '') as string,\n totalTokensObserved: gr.totalTokensObserved,\n observationTokenCount: gr.observationTokenCount,\n pendingMessageTokens: gr.pendingMessageTokens,\n isReflecting: gr.isReflecting,\n isObserving: gr.isObserving,\n isBufferingObservation: gr.isBufferingObservation,\n isBufferingReflection: gr.isBufferingReflection,\n config: gr.config ?? {},\n bufferedObservationChunks: gr.bufferedObservationChunks?.map(chunk => ({\n ...chunk,\n lastObservedAt: chunk.lastObservedAt ? new Date(chunk.lastObservedAt) : undefined,\n createdAt: chunk.createdAt ? new Date(chunk.createdAt) : undefined,\n })),\n bufferedReflection: gr.bufferedReflection ?? undefined,\n bufferedReflectionTokens: gr.bufferedReflectionTokens ?? undefined,\n bufferedReflectionInputTokens: gr.bufferedReflectionInputTokens ?? undefined,\n };\n}\n\nfunction isV2GatewayKey(key: string): boolean {\n return key.startsWith('msk-gateway-') || key.startsWith('mskv2_');\n}\n\n// Singleton-ish lazy instance\nlet _gatewayClient: GatewayMemoryClient | null | undefined;\n\n/**\n * Get a GatewayMemoryClient instance, or null if gateway is not configured.\n */\nexport function getGatewayClient(): GatewayMemoryClient | null {\n if (_gatewayClient !== undefined) return _gatewayClient;\n const url = process.env.MASTRA_GATEWAY_URL || 'https://gateway-api.mastra.ai';\n const key = process.env.MASTRA_GATEWAY_API_KEY;\n // v2 (organization) keys are served by a gateway without the memory API, so memory stays local.\n if (!key || isV2GatewayKey(key)) {\n _gatewayClient = null;\n return null;\n }\n _gatewayClient = new GatewayMemoryClient(url, key);\n return _gatewayClient;\n}\n\n/**\n * Check if an agent uses a gateway model (mastra/ prefix).\n * Sync version — can only check agent.model string directly.\n */\n\nexport function isGatewayAgent(agent: any): boolean {\n if (!agent) return false;\n try {\n const agentAny = agent as Record<string, unknown>;\n if (typeof agentAny.model === 'string' && agentAny.model.startsWith('mastra/')) {\n return true;\n }\n } catch {\n // Ignore errors during detection\n }\n return false;\n}\n\n/**\n * Async version of isGatewayAgent that can await getLLM().\n * Checks multiple paths to detect if an agent uses a mastra/ gateway model:\n * 1. agent.model as raw string (most reliable for directly configured agents)\n * 2. Resolved LLM's underlying ModelRouterLanguageModel config.routerId\n * 3. Resolved LLM's getModel() to access the router's config\n */\n\nexport async function isGatewayAgentAsync(agent: any): Promise<boolean> {\n if (!agent) return false;\n try {\n const agentAny = agent as Record<string, unknown>;\n\n // Check 1: agent.model is a raw string like 'mastra/openai/gpt-5-mini'\n if (typeof agentAny.model === 'string' && agentAny.model.startsWith('mastra/')) {\n return true;\n }\n\n // Check 2: Resolve the LLM and check the router's config.routerId\n // llm.getModelId() returns stripped ID (e.g., 'gpt-5-mini'), so we need\n // to access the underlying ModelRouterLanguageModel's config.routerId\n if (typeof agent.getLLM === 'function') {\n const llm = await Promise.resolve(agent.getLLM({}));\n if (llm) {\n // Try to access the underlying model's routerId via getModel()\n const llmAny = llm as Record<string, unknown>;\n if (typeof llmAny.getModel === 'function') {\n const underlyingModel = (llmAny as { getModel: () => unknown }).getModel();\n const modelAny = underlyingModel as Record<string, unknown>;\n // ModelRouterLanguageModel stores routerId in private config\n if (modelAny?.config && typeof modelAny.config === 'object') {\n const routerId = (modelAny.config as Record<string, unknown>).routerId;\n if (typeof routerId === 'string' && routerId.startsWith('mastra/')) {\n return true;\n }\n }\n }\n }\n }\n } catch {\n // Detection failed — not a gateway agent\n }\n return false;\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../rolldown-runtime-10nMEhjP.cjs");
|
|
3
|
-
const require_knowledge = require("../../knowledge-
|
|
3
|
+
const require_knowledge = require("../../knowledge-Q_SCnD9m.cjs");
|
|
4
4
|
exports.GET_KNOWLEDGE_ACTIVITY_ROUTE = require_knowledge.GET_KNOWLEDGE_ACTIVITY_ROUTE;
|
|
5
5
|
exports.GET_KNOWLEDGE_GRAPH_ROUTE = require_knowledge.GET_KNOWLEDGE_GRAPH_ROUTE;
|
|
6
6
|
exports.GET_KNOWLEDGE_LINK_COUNTS_ROUTE = require_knowledge.GET_KNOWLEDGE_LINK_COUNTS_ROUTE;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as GET_KNOWLEDGE_ACTIVITY_ROUTE, n as GET_KNOWLEDGE_GRAPH_ROUTE, r as GET_KNOWLEDGE_LINK_COUNTS_ROUTE, i as GET_KNOWLEDGE_PAGE_LINKS_ROUTE, a as GET_KNOWLEDGE_PAGE_ROUTE, o as GET_KNOWLEDGE_TREE_ROUTE, s as LIST_KNOWLEDGE_ROUTE, c as SEARCH_KNOWLEDGE_ROUTE, l as STREAM_KNOWLEDGE_EVENTS_ROUTE } from "../../knowledge-
|
|
1
|
+
export { t as GET_KNOWLEDGE_ACTIVITY_ROUTE, n as GET_KNOWLEDGE_GRAPH_ROUTE, r as GET_KNOWLEDGE_LINK_COUNTS_ROUTE, i as GET_KNOWLEDGE_PAGE_LINKS_ROUTE, a as GET_KNOWLEDGE_PAGE_ROUTE, o as GET_KNOWLEDGE_TREE_ROUTE, s as LIST_KNOWLEDGE_ROUTE, c as SEARCH_KNOWLEDGE_ROUTE, l as STREAM_KNOWLEDGE_EVENTS_ROUTE } from "../../knowledge-Cd2cCq-Y.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../rolldown-runtime-10nMEhjP.cjs");
|
|
3
|
-
const require_logs = require("../../logs-
|
|
3
|
+
const require_logs = require("../../logs-DWIbFIw6.cjs");
|
|
4
4
|
exports.LIST_LOGS_BY_RUN_ID_ROUTE = require_logs.LIST_LOGS_BY_RUN_ID_ROUTE;
|
|
5
5
|
exports.LIST_LOGS_ROUTE = require_logs.LIST_LOGS_ROUTE;
|
|
6
6
|
exports.LIST_LOG_TRANSPORTS_ROUTE = require_logs.LIST_LOG_TRANSPORTS_ROUTE;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as LIST_LOGS_BY_RUN_ID_ROUTE, n as LIST_LOGS_ROUTE, r as LIST_LOG_TRANSPORTS_ROUTE } from "../../logs-
|
|
1
|
+
export { t as LIST_LOGS_BY_RUN_ID_ROUTE, n as LIST_LOGS_ROUTE, r as LIST_LOG_TRANSPORTS_ROUTE } from "../../logs-C5L6gRGr.js";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../rolldown-runtime-10nMEhjP.cjs");
|
|
3
3
|
const require_http_exception = require("../../http-exception-Co3MbFUf.cjs");
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const require_mcp_client_versions = require("../../mcp-client-versions-BS99SD4O.cjs");
|
|
5
|
+
const require_route_builder = require("../../route-builder-DHqDrSSy.cjs");
|
|
6
|
+
const require_utils = require("../../utils-CL-m2SWZ.cjs");
|
|
6
7
|
const require_server_handlers_error = require("./error.cjs");
|
|
7
8
|
const require_server_handlers_version_helpers = require("./version-helpers.cjs");
|
|
8
|
-
const require_mcp_client_versions = require("../../mcp-client-versions-BS99SD4O.cjs");
|
|
9
9
|
// src/server/handlers/mcp-client-versions.ts
|
|
10
10
|
/**
|
|
11
11
|
* GET /stored/mcp-clients/:mcpClientId/versions - List all versions for an MCP client
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as HTTPException } from "../../http-exception-CzaWkxMl.js";
|
|
2
|
-
import { n as
|
|
3
|
-
import {
|
|
2
|
+
import { a as createMCPClientVersionResponseSchema, c as listMCPClientVersionsQuerySchema, d as mcpClientVersionPathParams, i as createMCPClientVersionBodySchema, l as listMCPClientVersionsResponseSchema, n as compareMCPClientVersionsQuerySchema, o as deleteMCPClientVersionResponseSchema, p as restoreMCPClientVersionResponseSchema, r as compareMCPClientVersionsResponseSchema, s as getMCPClientVersionResponseSchema, t as activateMCPClientVersionResponseSchema, u as mcpClientVersionIdPathParams } from "../../mcp-client-versions-Rd-ry9Qa.js";
|
|
3
|
+
import { n as createRoute } from "../../route-builder-BKEzjw_M.js";
|
|
4
|
+
import { i as getStoredResourceScope, n as assertStoredResourceScope } from "../../utils-y-cW3mQU.js";
|
|
4
5
|
import { handleError } from "./error.js";
|
|
5
6
|
import { MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS, calculateChangedFields, computeVersionDiffs, createVersionWithRetry, enforceRetentionLimit, extractConfigFromVersion } from "./version-helpers.js";
|
|
6
|
-
import { a as createMCPClientVersionResponseSchema, c as listMCPClientVersionsQuerySchema, d as mcpClientVersionPathParams, i as createMCPClientVersionBodySchema, l as listMCPClientVersionsResponseSchema, n as compareMCPClientVersionsQuerySchema, o as deleteMCPClientVersionResponseSchema, p as restoreMCPClientVersionResponseSchema, r as compareMCPClientVersionsResponseSchema, s as getMCPClientVersionResponseSchema, t as activateMCPClientVersionResponseSchema, u as mcpClientVersionIdPathParams } from "../../mcp-client-versions-Rd-ry9Qa.js";
|
|
7
7
|
// src/server/handlers/mcp-client-versions.ts
|
|
8
8
|
/**
|
|
9
9
|
* GET /stored/mcp-clients/:mcpClientId/versions - List all versions for an MCP client
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../rolldown-runtime-10nMEhjP.cjs");
|
|
3
|
-
const require_mcp = require("../../mcp-
|
|
3
|
+
const require_mcp = require("../../mcp-CKvOVfHn.cjs");
|
|
4
4
|
exports.ANSWER_MCP_SERVER_TASK_ROUTE = require_mcp.ANSWER_MCP_SERVER_TASK_ROUTE;
|
|
5
5
|
exports.CANCEL_MCP_SERVER_TASK_ROUTE = require_mcp.CANCEL_MCP_SERVER_TASK_ROUTE;
|
|
6
6
|
exports.EMIT_MCP_SERVER_EVENT_ROUTE = require_mcp.EMIT_MCP_SERVER_EVENT_ROUTE;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as ANSWER_MCP_SERVER_TASK_ROUTE, n as CANCEL_MCP_SERVER_TASK_ROUTE, r as EMIT_MCP_SERVER_EVENT_ROUTE, i as EXECUTE_MCP_SERVER_TOOL_ROUTE, a as FIND_MCP_SERVER_TASK_ROUTE, o as GET_MCP_SERVER_DETAIL_ROUTE, s as GET_MCP_SERVER_TOOL_DETAIL_ROUTE, c as LIST_MCP_SERVERS_ROUTE, l as LIST_MCP_SERVER_EVENTS_ROUTE, u as LIST_MCP_SERVER_RESOURCES_ROUTE, d as LIST_MCP_SERVER_TASKS_ROUTE, f as LIST_MCP_SERVER_TOOLS_ROUTE, p as MCP_HTTP_TRANSPORT_ROUTE, m as MCP_SSE_MESSAGES_ROUTE, h as MCP_SSE_TRANSPORT_ROUTE, g as POLL_MCP_SERVER_EVENT_ROUTE, _ as READ_MCP_SERVER_RESOURCE_ROUTE, v as STREAM_MCP_SERVER_EVENT_ROUTE } from "../../mcp-
|
|
1
|
+
export { t as ANSWER_MCP_SERVER_TASK_ROUTE, n as CANCEL_MCP_SERVER_TASK_ROUTE, r as EMIT_MCP_SERVER_EVENT_ROUTE, i as EXECUTE_MCP_SERVER_TOOL_ROUTE, a as FIND_MCP_SERVER_TASK_ROUTE, o as GET_MCP_SERVER_DETAIL_ROUTE, s as GET_MCP_SERVER_TOOL_DETAIL_ROUTE, c as LIST_MCP_SERVERS_ROUTE, l as LIST_MCP_SERVER_EVENTS_ROUTE, u as LIST_MCP_SERVER_RESOURCES_ROUTE, d as LIST_MCP_SERVER_TASKS_ROUTE, f as LIST_MCP_SERVER_TOOLS_ROUTE, p as MCP_HTTP_TRANSPORT_ROUTE, m as MCP_SSE_MESSAGES_ROUTE, h as MCP_SSE_TRANSPORT_ROUTE, g as POLL_MCP_SERVER_EVENT_ROUTE, _ as READ_MCP_SERVER_RESOURCE_ROUTE, v as STREAM_MCP_SERVER_EVENT_ROUTE } from "../../mcp-CntC59iU.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../rolldown-runtime-10nMEhjP.cjs");
|
|
3
|
-
const require_memory = require("../../memory-
|
|
3
|
+
const require_memory = require("../../memory-DIos0BE-.cjs");
|
|
4
4
|
exports.AWAIT_BUFFER_STATUS_ROUTE = require_memory.AWAIT_BUFFER_STATUS_ROUTE;
|
|
5
5
|
exports.CLONE_THREAD_ROUTE = require_memory.CLONE_THREAD_ROUTE;
|
|
6
6
|
exports.CREATE_THREAD_NETWORK_ROUTE = require_memory.CREATE_THREAD_NETWORK_ROUTE;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/memory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAsM1D,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAS/D;AAgQD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as AWAIT_BUFFER_STATUS_ROUTE, n as CLONE_THREAD_ROUTE, r as CREATE_THREAD_NETWORK_ROUTE, i as CREATE_THREAD_ROUTE, a as DELETE_MESSAGES_NETWORK_ROUTE, o as DELETE_MESSAGES_ROUTE, s as DELETE_THREAD_NETWORK_ROUTE, c as DELETE_THREAD_ROUTE, l as GET_MEMORY_CONFIG_ROUTE, u as GET_MEMORY_STATUS_NETWORK_ROUTE, d as GET_MEMORY_STATUS_ROUTE, f as GET_OBSERVATIONAL_MEMORY_ROUTE, p as GET_THREAD_BY_ID_NETWORK_ROUTE, m as GET_THREAD_BY_ID_ROUTE, h as GET_WORKING_MEMORY_ROUTE, g as LIST_MESSAGES_NETWORK_ROUTE, _ as LIST_MESSAGES_ROUTE, v as LIST_THREADS_NETWORK_ROUTE, y as LIST_THREADS_ROUTE, b as SAVE_MESSAGES_NETWORK_ROUTE, x as SAVE_MESSAGES_ROUTE, S as SEARCH_MEMORY_ROUTE, C as TRANSFER_THREAD_ROUTE, w as UPDATE_THREAD_NETWORK_ROUTE, T as UPDATE_THREAD_ROUTE, E as UPDATE_WORKING_MEMORY_ROUTE, D as getTextContent } from "../../memory-
|
|
1
|
+
export { t as AWAIT_BUFFER_STATUS_ROUTE, n as CLONE_THREAD_ROUTE, r as CREATE_THREAD_NETWORK_ROUTE, i as CREATE_THREAD_ROUTE, a as DELETE_MESSAGES_NETWORK_ROUTE, o as DELETE_MESSAGES_ROUTE, s as DELETE_THREAD_NETWORK_ROUTE, c as DELETE_THREAD_ROUTE, l as GET_MEMORY_CONFIG_ROUTE, u as GET_MEMORY_STATUS_NETWORK_ROUTE, d as GET_MEMORY_STATUS_ROUTE, f as GET_OBSERVATIONAL_MEMORY_ROUTE, p as GET_THREAD_BY_ID_NETWORK_ROUTE, m as GET_THREAD_BY_ID_ROUTE, h as GET_WORKING_MEMORY_ROUTE, g as LIST_MESSAGES_NETWORK_ROUTE, _ as LIST_MESSAGES_ROUTE, v as LIST_THREADS_NETWORK_ROUTE, y as LIST_THREADS_ROUTE, b as SAVE_MESSAGES_NETWORK_ROUTE, x as SAVE_MESSAGES_ROUTE, S as SEARCH_MEMORY_ROUTE, C as TRANSFER_THREAD_ROUTE, w as UPDATE_THREAD_NETWORK_ROUTE, T as UPDATE_THREAD_ROUTE, E as UPDATE_WORKING_MEMORY_ROUTE, D as getTextContent } from "../../memory-JzgWJevA.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../rolldown-runtime-10nMEhjP.cjs");
|
|
3
|
-
const require_observability_new_endpoints = require("../../observability-new-endpoints-
|
|
3
|
+
const require_observability_new_endpoints = require("../../observability-new-endpoints-B6fo20v5.cjs");
|
|
4
4
|
exports.AGGREGATE_SPANS = require_observability_new_endpoints.AGGREGATE_SPANS;
|
|
5
5
|
exports.AGGREGATE_TRACES = require_observability_new_endpoints.AGGREGATE_TRACES;
|
|
6
6
|
exports.CREATE_FEEDBACK = require_observability_new_endpoints.CREATE_FEEDBACK;
|