@mastra/server 1.75.0 → 1.76.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_types/@internal_voice/dist/routes/index.d.ts +15 -0
- package/dist/{agent-builder-BlD120ac.js → agent-builder-B8kc4OBs.js} +2 -2
- package/dist/{agent-builder-BlD120ac.js.map → agent-builder-B8kc4OBs.js.map} +1 -1
- package/dist/{agent-builder-CvwtAD7k.cjs → agent-builder-DDYdQvlQ.cjs} +2 -2
- package/dist/{agent-builder-CvwtAD7k.cjs.map → agent-builder-DDYdQvlQ.cjs.map} +1 -1
- package/dist/{agent-versions-CivkX9fT.cjs → agent-versions-CzXJWn1T.cjs} +3 -3
- package/dist/{agent-versions-CivkX9fT.cjs.map → agent-versions-CzXJWn1T.cjs.map} +1 -1
- package/dist/{agent-versions-oCebJ7rc.js → agent-versions-W600H1ME.js} +3 -3
- package/dist/{agent-versions-oCebJ7rc.js.map → agent-versions-W600H1ME.js.map} +1 -1
- package/dist/{agents-COAEoXsc.cjs → agents-CKSEPpk1.cjs} +3 -3
- package/dist/{agents-COAEoXsc.cjs.map → agents-CKSEPpk1.cjs.map} +1 -1
- package/dist/{agents-BuKPiseS.js → agents-CW_JJZOf.js} +3 -3
- package/dist/{agents-BuKPiseS.js.map → agents-CW_JJZOf.js.map} +1 -1
- package/dist/{api-schema-manifest-D_esmkjG.cjs → api-schema-manifest-BzyUr2nd.cjs} +2 -2
- package/dist/{api-schema-manifest-D_esmkjG.cjs.map → api-schema-manifest-BzyUr2nd.cjs.map} +1 -1
- package/dist/{api-schema-manifest-I5zotQbd.js → api-schema-manifest-DktVob9z.js} +2 -2
- package/dist/{api-schema-manifest-I5zotQbd.js.map → api-schema-manifest-DktVob9z.js.map} +1 -1
- package/dist/{background-tasks-DJ9Qd7tc.cjs → background-tasks-CIp3Ltam.cjs} +2 -2
- package/dist/{background-tasks-DJ9Qd7tc.cjs.map → background-tasks-CIp3Ltam.cjs.map} +1 -1
- package/dist/{background-tasks-DcyjA57t.js → background-tasks-DgskLon8.js} +2 -2
- package/dist/{background-tasks-DcyjA57t.js.map → background-tasks-DgskLon8.js.map} +1 -1
- package/dist/{common-BkgcoK-2.cjs → common-DhKNoXGp.cjs} +2 -1
- package/dist/common-DhKNoXGp.cjs.map +1 -0
- package/dist/{common-tSamNYpt.js → common-Y30XtCyr.js} +2 -1
- package/dist/common-Y30XtCyr.js.map +1 -0
- package/dist/{conversations-DX7ATgEB.cjs → conversations-Bj5TLNqF.cjs} +2 -2
- package/dist/{conversations-DX7ATgEB.cjs.map → conversations-Bj5TLNqF.cjs.map} +1 -1
- package/dist/{conversations-U3fod5tw.js → conversations-BzBHVFYe.js} +2 -2
- package/dist/{conversations-U3fod5tw.js.map → conversations-BzBHVFYe.js.map} +1 -1
- package/dist/{datasets-Bz7SKu-q.cjs → datasets-C2aXB8At.cjs} +2 -2
- package/dist/{datasets-Bz7SKu-q.cjs.map → datasets-C2aXB8At.cjs.map} +1 -1
- package/dist/{datasets-CgNMo16l.js → datasets-CDQDQxos.js} +2 -2
- package/dist/{datasets-CgNMo16l.js.map → datasets-CDQDQxos.js.map} +1 -1
- package/dist/{dist-DpUNsgQx.cjs → dist-Ce_1oIl2.cjs} +105 -15
- package/dist/{dist-DpUNsgQx.cjs.map → dist-Ce_1oIl2.cjs.map} +1 -1
- package/dist/{dist-DMtuYRLk.js → dist-CtNeEn6M.js} +105 -15
- package/dist/{dist-DMtuYRLk.js.map → dist-CtNeEn6M.js.map} +1 -1
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/docs/references/reference-observability-tracing-trace-query.md +46 -20
- package/dist/{editor-builder-DJl5x_Kj.cjs → editor-builder-BtcTQbAC.cjs} +2 -2
- package/dist/{editor-builder-DJl5x_Kj.cjs.map → editor-builder-BtcTQbAC.cjs.map} +1 -1
- package/dist/{editor-builder-CdLGv1Ka.js → editor-builder-CYkaYf6-.js} +2 -2
- package/dist/{editor-builder-CdLGv1Ka.js.map → editor-builder-CYkaYf6-.js.map} +1 -1
- package/dist/{editor-builder-DRlsFCN0.cjs → editor-builder-CmUsqdZq.cjs} +2 -2
- package/dist/{editor-builder-DRlsFCN0.cjs.map → editor-builder-CmUsqdZq.cjs.map} +1 -1
- package/dist/{editor-builder-DU3y5Ant.js → editor-builder-DHXbVwxu.js} +2 -2
- package/dist/{editor-builder-DU3y5Ant.js.map → editor-builder-DHXbVwxu.js.map} +1 -1
- package/dist/{logs-B2Nd15Oe.js → logs-Bd_xpsYw.js} +2 -2
- package/dist/{logs-B2Nd15Oe.js.map → logs-Bd_xpsYw.js.map} +1 -1
- package/dist/{logs-B0037Tlj.cjs → logs-CY8AGOCO.cjs} +2 -2
- package/dist/{logs-B0037Tlj.cjs.map → logs-CY8AGOCO.cjs.map} +1 -1
- package/dist/{mcp-BK6cmwww.js → mcp-DzpwLXEY.js} +2 -2
- package/dist/{mcp-BK6cmwww.js.map → mcp-DzpwLXEY.js.map} +1 -1
- package/dist/{mcp-Jus386Vq.cjs → mcp-ShaKO7gA.cjs} +2 -2
- package/dist/{mcp-Jus386Vq.cjs.map → mcp-ShaKO7gA.cjs.map} +1 -1
- package/dist/{mcp-client-versions-Zkez3ruO.cjs → mcp-client-versions-Cq97zXiK.cjs} +2 -2
- package/dist/{mcp-client-versions-Zkez3ruO.cjs.map → mcp-client-versions-Cq97zXiK.cjs.map} +1 -1
- package/dist/{mcp-client-versions-Df5bgWm1.js → mcp-client-versions-DxBkzcYH.js} +2 -2
- package/dist/{mcp-client-versions-Df5bgWm1.js.map → mcp-client-versions-DxBkzcYH.js.map} +1 -1
- package/dist/{memory-BxApjlTN.js → memory-B58Q2LgU.js} +20 -3
- package/dist/{memory-BxApjlTN.js.map → memory-B58Q2LgU.js.map} +1 -1
- package/dist/{memory-C3j3i6iS.cjs → memory-CizEIbl1.cjs} +20 -3
- package/dist/memory-CizEIbl1.cjs.map +1 -0
- package/dist/{prompt-block-versions-D9IPtjxs.cjs → prompt-block-versions-Cl3Lh4H-.cjs} +2 -2
- package/dist/{prompt-block-versions-D9IPtjxs.cjs.map → prompt-block-versions-Cl3Lh4H-.cjs.map} +1 -1
- package/dist/{prompt-block-versions-D3Ds9pXt.js → prompt-block-versions-cfq_e1Zi.js} +2 -2
- package/dist/{prompt-block-versions-D3Ds9pXt.js.map → prompt-block-versions-cfq_e1Zi.js.map} +1 -1
- package/dist/{routes-CjpyDJjY.cjs → routes-BHFCAczU.cjs} +4 -4
- package/dist/{routes-CjpyDJjY.cjs.map → routes-BHFCAczU.cjs.map} +1 -1
- package/dist/{routes-BKUF5ZHA.cjs → routes-BULZI-PU.cjs} +8 -4
- package/dist/routes-BULZI-PU.cjs.map +1 -0
- package/dist/{routes-CdEBhq8U.js → routes-DVec5dwl.js} +4 -4
- package/dist/{routes-CdEBhq8U.js.map → routes-DVec5dwl.js.map} +1 -1
- package/dist/{routes-zHhMx-9S.js → routes-Dl6_kWm7.js} +8 -4
- package/dist/routes-Dl6_kWm7.js.map +1 -0
- package/dist/{scorer-versions-DGLHODqM.js → scorer-versions-CX8RM9a6.js} +3 -3
- package/dist/{scorer-versions-DGLHODqM.js.map → scorer-versions-CX8RM9a6.js.map} +1 -1
- package/dist/{scorer-versions-B8q9-oF2.cjs → scorer-versions-DeCS12ym.cjs} +3 -3
- package/dist/{scorer-versions-B8q9-oF2.cjs.map → scorer-versions-DeCS12ym.cjs.map} +1 -1
- package/dist/{scores-BQ9vlUSU.js → scores-BbqFfKcy.js} +2 -2
- package/dist/{scores-BQ9vlUSU.js.map → scores-BbqFfKcy.js.map} +1 -1
- package/dist/{scores-COSdG-wz.cjs → scores-CetVKM4g.cjs} +2 -2
- package/dist/{scores-COSdG-wz.cjs.map → scores-CetVKM4g.cjs.map} +1 -1
- package/dist/server/handlers/agent-builder.cjs +5 -5
- package/dist/server/handlers/agent-builder.d.ts +16 -0
- package/dist/server/handlers/agent-builder.d.ts.map +1 -1
- package/dist/server/handlers/agent-builder.js +5 -5
- package/dist/server/handlers/agent-controller.cjs +1 -1
- package/dist/server/handlers/agent-controller.js +1 -1
- package/dist/server/handlers/agent-versions.cjs +2 -2
- package/dist/server/handlers/agent-versions.js +2 -2
- package/dist/server/handlers/agents.cjs +2 -2
- package/dist/server/handlers/agents.d.ts +30 -0
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +2 -2
- package/dist/server/handlers/background-tasks.cjs +1 -1
- package/dist/server/handlers/background-tasks.js +1 -1
- package/dist/server/handlers/conversations.cjs +2 -1
- package/dist/server/handlers/conversations.cjs.map +1 -1
- package/dist/server/handlers/conversations.d.ts.map +1 -1
- package/dist/server/handlers/conversations.js +3 -2
- package/dist/server/handlers/conversations.js.map +1 -1
- package/dist/server/handlers/datasets.cjs +2 -2
- package/dist/server/handlers/datasets.js +2 -2
- 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/logs.cjs +2 -2
- package/dist/server/handlers/logs.js +2 -2
- package/dist/server/handlers/mcp-client-versions.cjs +1 -1
- package/dist/server/handlers/mcp-client-versions.js +1 -1
- package/dist/server/handlers/mcp.cjs +1 -1
- package/dist/server/handlers/mcp.js +1 -1
- package/dist/server/handlers/memory.cjs +43 -15
- package/dist/server/handlers/memory.cjs.map +1 -1
- package/dist/server/handlers/memory.d.ts +5 -0
- package/dist/server/handlers/memory.d.ts.map +1 -1
- package/dist/server/handlers/memory.js +43 -15
- package/dist/server/handlers/memory.js.map +1 -1
- package/dist/server/handlers/observability-new-endpoints.d.ts +3 -1
- package/dist/server/handlers/observability-new-endpoints.d.ts.map +1 -1
- package/dist/server/handlers/plans.cjs +1 -1
- package/dist/server/handlers/plans.js +1 -1
- package/dist/server/handlers/prompt-block-versions.cjs +1 -1
- package/dist/server/handlers/prompt-block-versions.js +1 -1
- package/dist/server/handlers/scorer-versions.cjs +1 -1
- package/dist/server/handlers/scorer-versions.js +1 -1
- package/dist/server/handlers/scores.cjs +2 -2
- package/dist/server/handlers/scores.js +2 -2
- package/dist/server/handlers/stored-agent-favorites.cjs +2 -2
- package/dist/server/handlers/stored-agent-favorites.js +2 -2
- package/dist/server/handlers/stored-agents.cjs +3 -3
- package/dist/server/handlers/stored-agents.js +3 -3
- package/dist/server/handlers/stored-mcp-clients.cjs +2 -2
- package/dist/server/handlers/stored-mcp-clients.js +2 -2
- package/dist/server/handlers/stored-prompt-blocks.cjs +2 -2
- package/dist/server/handlers/stored-prompt-blocks.js +2 -2
- package/dist/server/handlers/stored-scorers.cjs +2 -2
- package/dist/server/handlers/stored-scorers.js +2 -2
- package/dist/server/handlers/stored-skill-favorites.cjs +2 -2
- package/dist/server/handlers/stored-skill-favorites.js +2 -2
- package/dist/server/handlers/stored-skills.cjs +2 -2
- package/dist/server/handlers/stored-skills.js +2 -2
- package/dist/server/handlers/stored-workspaces.cjs +1 -1
- package/dist/server/handlers/stored-workspaces.js +1 -1
- package/dist/server/handlers/system.cjs +1 -1
- package/dist/server/handlers/system.js +1 -1
- package/dist/server/handlers/tools.cjs +2 -2
- package/dist/server/handlers/tools.js +2 -2
- package/dist/server/handlers/vector.cjs +1 -1
- package/dist/server/handlers/vector.js +1 -1
- package/dist/server/handlers/voice.cjs +1 -1
- package/dist/server/handlers/voice.js +1 -1
- package/dist/server/handlers/workflow-builder.cjs +1 -1
- package/dist/server/handlers/workflow-builder.d.ts +2 -0
- package/dist/server/handlers/workflow-builder.d.ts.map +1 -1
- package/dist/server/handlers/workflow-builder.js +1 -1
- package/dist/server/handlers/workflows.cjs +3 -3
- package/dist/server/handlers/workflows.d.ts +26 -0
- package/dist/server/handlers/workflows.d.ts.map +1 -1
- package/dist/server/handlers/workflows.js +3 -3
- package/dist/server/schemas/agent-builder.d.ts +4 -0
- package/dist/server/schemas/agent-builder.d.ts.map +1 -1
- package/dist/server/schemas/agents.d.ts +8 -0
- package/dist/server/schemas/agents.d.ts.map +1 -1
- package/dist/server/schemas/common.d.ts +1 -0
- package/dist/server/schemas/common.d.ts.map +1 -1
- package/dist/server/schemas/index.cjs +24 -24
- package/dist/server/schemas/index.js +24 -24
- package/dist/server/schemas/memory.d.ts +4 -3
- package/dist/server/schemas/memory.d.ts.map +1 -1
- package/dist/server/schemas/workflows.d.ts +6 -0
- package/dist/server/schemas/workflows.d.ts.map +1 -1
- package/dist/server/server-adapter/index.cjs +1 -1
- package/dist/server/server-adapter/index.js +1 -1
- package/dist/server/server-adapter/routes/agent-builder.d.ts +16 -0
- package/dist/server/server-adapter/routes/agent-builder.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/editor-builder.d.ts +2 -0
- package/dist/server/server-adapter/routes/editor-builder.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/legacy.d.ts +6 -0
- package/dist/server/server-adapter/routes/legacy.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/memory.d.ts +5 -0
- package/dist/server/server-adapter/routes/memory.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/observability.d.ts +3 -1
- package/dist/server/server-adapter/routes/observability.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/workflows.d.ts +24 -0
- package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -1
- package/dist/{stored-agents-DpY3ssfx.cjs → stored-agents-BTL-o6aM.cjs} +3 -3
- package/dist/{stored-agents-DpY3ssfx.cjs.map → stored-agents-BTL-o6aM.cjs.map} +1 -1
- package/dist/{stored-agents-BzIvRgtz.js → stored-agents-BtaEzKfr.js} +3 -3
- package/dist/{stored-agents-BzIvRgtz.js.map → stored-agents-BtaEzKfr.js.map} +1 -1
- package/dist/{stored-mcp-clients-Sb1QjyP-.cjs → stored-mcp-clients-D7bNkmTM.cjs} +2 -2
- package/dist/{stored-mcp-clients-Sb1QjyP-.cjs.map → stored-mcp-clients-D7bNkmTM.cjs.map} +1 -1
- package/dist/{stored-mcp-clients-BRa_eINm.js → stored-mcp-clients-DMR6NvCp.js} +2 -2
- package/dist/{stored-mcp-clients-BRa_eINm.js.map → stored-mcp-clients-DMR6NvCp.js.map} +1 -1
- package/dist/{stored-prompt-blocks-CNvL1cde.cjs → stored-prompt-blocks-BjHxMCuC.cjs} +2 -2
- package/dist/{stored-prompt-blocks-CNvL1cde.cjs.map → stored-prompt-blocks-BjHxMCuC.cjs.map} +1 -1
- package/dist/{stored-prompt-blocks-C0cMS4_F.js → stored-prompt-blocks-C7qmiWSB.js} +2 -2
- package/dist/{stored-prompt-blocks-C0cMS4_F.js.map → stored-prompt-blocks-C7qmiWSB.js.map} +1 -1
- package/dist/{stored-scorers-CAt8hFj2.js → stored-scorers-BSxh7JZX.js} +3 -3
- package/dist/{stored-scorers-CAt8hFj2.js.map → stored-scorers-BSxh7JZX.js.map} +1 -1
- package/dist/{stored-scorers-DyeqU2Rj.cjs → stored-scorers-I8L1-bAI.cjs} +3 -3
- package/dist/{stored-scorers-DyeqU2Rj.cjs.map → stored-scorers-I8L1-bAI.cjs.map} +1 -1
- package/dist/{stored-skills-DizSy0Pb.cjs → stored-skills-C1e8kf2k.cjs} +2 -2
- package/dist/{stored-skills-DizSy0Pb.cjs.map → stored-skills-C1e8kf2k.cjs.map} +1 -1
- package/dist/{stored-skills-BSwEeGJ9.js → stored-skills-DzW8hLnI.js} +2 -2
- package/dist/{stored-skills-BSwEeGJ9.js.map → stored-skills-DzW8hLnI.js.map} +1 -1
- package/dist/{stored-workspaces-egfwpAQ-.js → stored-workspaces-AkC68rSw.js} +2 -2
- package/dist/{stored-workspaces-egfwpAQ-.js.map → stored-workspaces-AkC68rSw.js.map} +1 -1
- package/dist/{stored-workspaces-CAWowZ9Q.cjs → stored-workspaces-DSfChCJ0.cjs} +2 -2
- package/dist/{stored-workspaces-CAWowZ9Q.cjs.map → stored-workspaces-DSfChCJ0.cjs.map} +1 -1
- package/dist/{vectors-CwJAkyIh.js → vectors-CJtupgIF.js} +2 -2
- package/dist/{vectors-CwJAkyIh.js.map → vectors-CJtupgIF.js.map} +1 -1
- package/dist/{vectors-D7DfmbS1.cjs → vectors-LFI1jch0.cjs} +2 -2
- package/dist/{vectors-D7DfmbS1.cjs.map → vectors-LFI1jch0.cjs.map} +1 -1
- package/dist/{version-common-Co-USxDX.js → version-common-4xFzvCS5.js} +2 -2
- package/dist/{version-common-Co-USxDX.js.map → version-common-4xFzvCS5.js.map} +1 -1
- package/dist/{version-common-Bu42Y2QN.cjs → version-common-DrzXq7Ct.cjs} +2 -2
- package/dist/{version-common-Bu42Y2QN.cjs.map → version-common-DrzXq7Ct.cjs.map} +1 -1
- package/dist/{workflow-builder-DxQMzsT9.js → workflow-builder-D2DgSt6L.js} +3 -3
- package/dist/{workflow-builder-DxQMzsT9.js.map → workflow-builder-D2DgSt6L.js.map} +1 -1
- package/dist/{workflow-builder-DYfgyaeB.cjs → workflow-builder-pBSrWWIp.cjs} +3 -3
- package/dist/{workflow-builder-DYfgyaeB.cjs.map → workflow-builder-pBSrWWIp.cjs.map} +1 -1
- package/dist/{workflows-BdoErlkd.cjs → workflows-C8rDpHyY.cjs} +2 -2
- package/dist/{workflows-BdoErlkd.cjs.map → workflows-C8rDpHyY.cjs.map} +1 -1
- package/dist/{workflows-BEdLrZQZ.js → workflows-Dcx4Ib0t.js} +2 -2
- package/dist/{workflows-BEdLrZQZ.js.map → workflows-Dcx4Ib0t.js.map} +1 -1
- package/package.json +5 -5
- package/dist/common-BkgcoK-2.cjs.map +0 -1
- package/dist/common-tSamNYpt.js.map +0 -1
- package/dist/memory-C3j3i6iS.cjs.map +0 -1
- package/dist/routes-BKUF5ZHA.cjs.map +0 -1
- package/dist/routes-zHhMx-9S.js.map +0 -1
|
@@ -5,7 +5,7 @@ const require_route_builder = require("../../route-builder-2yrD15TL.cjs");
|
|
|
5
5
|
const require_server_handlers_error = require("./error.cjs");
|
|
6
6
|
const require_utils = require("../../utils-HqDZJwRc.cjs");
|
|
7
7
|
const require_server_handlers_agents = require("./agents.cjs");
|
|
8
|
-
const require_conversations = require("../../conversations-
|
|
8
|
+
const require_conversations = require("../../conversations-Bj5TLNqF.cjs");
|
|
9
9
|
const require_server_handlers_responses_adapter = require("./responses.adapter.cjs");
|
|
10
10
|
const require_server_handlers_responses_storage = require("./responses.storage.cjs");
|
|
11
11
|
//#region src/server/handlers/conversations.ts
|
|
@@ -64,6 +64,7 @@ const CREATE_CONVERSATION_ROUTE = require_route_builder.createRoute({
|
|
|
64
64
|
})) throw new require_http_exception.HTTPException(400, { message: `Memory storage is not configured for agent "${agent.id}"` });
|
|
65
65
|
const threadId = conversation_id ?? globalThis.crypto.randomUUID();
|
|
66
66
|
const resourceId = require_utils.getEffectiveResourceId(requestContext, resource_id) ?? threadId;
|
|
67
|
+
if (conversation_id) await require_utils.validateThreadOwnership(await memory.getThreadById({ threadId }), require_utils.getEffectiveResourceId(requestContext, void 0));
|
|
67
68
|
return buildConversationObject({ thread: await memory.createThread({
|
|
68
69
|
threadId,
|
|
69
70
|
resourceId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversations.cjs","names":["createRoute","createConversationBodySchema","conversationObjectSchema","MastraFGAPermissions","HTTPException","getAgentFromSystem","getAgentMemoryStore","getEffectiveResourceId","handleError","conversationIdPathParams","findConversationThreadAcrossAgents","conversationItemsListSchema","mapMastraMessagesToConversationItems","conversationDeletedSchema"],"sources":["../../../src/server/handlers/conversations.ts"],"sourcesContent":["import { MastraFGAPermissions } from '../fga-permissions';\nimport { HTTPException } from '../http-exception';\nimport {\n conversationDeletedSchema,\n conversationIdPathParams,\n conversationItemsListSchema,\n conversationObjectSchema,\n createConversationBodySchema,\n} from '../schemas/conversations';\nimport type { ConversationDeleted, ConversationItemsList, ConversationObject } from '../schemas/conversations';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { mapMastraMessagesToConversationItems } from './responses.adapter';\nimport { findConversationThreadAcrossAgents, getAgentMemoryStore } from './responses.storage';\nimport { getEffectiveResourceId } from './utils';\n\nfunction buildConversationObject({ thread }: { thread: ConversationObject['thread'] }): ConversationObject {\n return {\n id: thread.id,\n object: 'conversation',\n thread,\n };\n}\n\nfunction buildConversationItemsList(items: ConversationItemsList['data']): ConversationItemsList {\n return {\n object: 'list',\n data: items,\n first_id: items[0]?.id ?? null,\n last_id: items.at(-1)?.id ?? null,\n has_more: false,\n };\n}\n\nfunction buildConversationDeleted(conversationId: string): ConversationDeleted {\n return {\n id: conversationId,\n object: 'conversation.deleted',\n deleted: true,\n };\n}\n\nexport const CREATE_CONVERSATION_ROUTE = createRoute({\n method: 'POST',\n path: '/v1/conversations',\n responseType: 'json',\n bodySchema: createConversationBodySchema,\n responseSchema: conversationObjectSchema,\n summary: 'Create a conversation',\n description: 'Creates a new thread-backed conversation for agent-backed Responses API requests',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_CREATE,\n handler: async ({ mastra, requestContext, agent_id, conversation_id, resource_id, title, metadata }) => {\n try {\n if (!mastra) {\n throw new HTTPException(500, { message: 'Mastra instance is required for conversations' });\n }\n\n const agent = await getAgentFromSystem({ mastra, agentId: agent_id });\n const memory = await agent.getMemory({ requestContext });\n if (!memory) {\n throw new HTTPException(400, { message: `Agent \"${agent.id}\" does not have memory configured` });\n }\n if (!(await getAgentMemoryStore({ agent, requestContext }))) {\n throw new HTTPException(400, { message: `Memory storage is not configured for agent \"${agent.id}\"` });\n }\n\n const threadId = conversation_id ?? globalThis.crypto.randomUUID();\n const resourceId = getEffectiveResourceId(requestContext, resource_id) ?? threadId;\n const thread = await memory.createThread({\n threadId,\n resourceId,\n title,\n metadata,\n });\n\n return buildConversationObject({ thread });\n } catch (error) {\n return handleError(error, 'Error creating conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationObjectSchema,\n summary: 'Retrieve a conversation',\n description: 'Returns a conversation object backed by a Mastra memory thread',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_READ,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n return buildConversationObject({ thread: match.thread });\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ITEMS_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId/items',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationItemsListSchema,\n summary: 'List conversation items',\n description: 'Returns OpenAI-style conversation items derived from the stored thread messages',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_READ,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n const { messages } = await match.memoryStore.listMessages({\n threadId: conversationId,\n page: 0,\n perPage: 1000,\n });\n\n return buildConversationItemsList(mapMastraMessagesToConversationItems(messages));\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const DELETE_CONVERSATION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationDeletedSchema,\n summary: 'Delete a conversation',\n description: 'Deletes a thread-backed conversation and its stored items',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_DELETE,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n await match.memoryStore.deleteThread({ threadId: conversationId });\n\n return buildConversationDeleted(conversationId);\n } catch (error) {\n return handleError(error, 'Error deleting conversation');\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;AAiBA,SAAS,wBAAwB,EAAE,UAAwE;CACzG,OAAO;EACL,IAAI,OAAO;EACX,QAAQ;EACR;CACF;AACF;AAEA,SAAS,2BAA2B,OAA6D;CAC/F,OAAO;EACL,QAAQ;EACR,MAAM;EACN,UAAU,MAAM,EAAE,EAAE,MAAM;EAC1B,SAAS,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM;EAC7B,UAAU;CACZ;AACF;AAEA,SAAS,yBAAyB,gBAA6C;CAC7E,OAAO;EACL,IAAI;EACJ,QAAQ;EACR,SAAS;CACX;AACF;AAEA,MAAa,4BAA4BA,sBAAAA,YAAY;CACnD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,YAAYC,sBAAAA;CACZ,gBAAgBC,sBAAAA;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,WAAW;CAClB,cAAc;CACd,oBAAoBC,cAAAA,qBAAqB;CACzC,SAAS,OAAO,EAAE,QAAQ,gBAAgB,UAAU,iBAAiB,aAAa,OAAO,eAAe;EACtG,IAAI;GACF,IAAI,CAAC,QACH,MAAM,IAAIC,uBAAAA,cAAc,KAAK,EAAE,SAAS,gDAAgD,CAAC;GAG3F,MAAM,QAAQ,MAAMC,+BAAAA,mBAAmB;IAAE;IAAQ,SAAS;GAAS,CAAC;GACpE,MAAM,SAAS,MAAM,MAAM,UAAU,EAAE,eAAe,CAAC;GACvD,IAAI,CAAC,QACH,MAAM,IAAID,uBAAAA,cAAc,KAAK,EAAE,SAAS,UAAU,MAAM,GAAG,mCAAmC,CAAC;GAEjG,IAAI,CAAE,MAAME,0CAAAA,oBAAoB;IAAE;IAAO;GAAe,CAAC,GACvD,MAAM,IAAIF,uBAAAA,cAAc,KAAK,EAAE,SAAS,+CAA+C,MAAM,GAAG,GAAG,CAAC;GAGtG,MAAM,WAAW,mBAAmB,WAAW,OAAO,WAAW;GACjE,MAAM,aAAaG,cAAAA,uBAAuB,gBAAgB,WAAW,KAAK;
|
|
1
|
+
{"version":3,"file":"conversations.cjs","names":["createRoute","createConversationBodySchema","conversationObjectSchema","MastraFGAPermissions","HTTPException","getAgentFromSystem","getAgentMemoryStore","getEffectiveResourceId","validateThreadOwnership","handleError","conversationIdPathParams","findConversationThreadAcrossAgents","conversationItemsListSchema","mapMastraMessagesToConversationItems","conversationDeletedSchema"],"sources":["../../../src/server/handlers/conversations.ts"],"sourcesContent":["import { MastraFGAPermissions } from '../fga-permissions';\nimport { HTTPException } from '../http-exception';\nimport {\n conversationDeletedSchema,\n conversationIdPathParams,\n conversationItemsListSchema,\n conversationObjectSchema,\n createConversationBodySchema,\n} from '../schemas/conversations';\nimport type { ConversationDeleted, ConversationItemsList, ConversationObject } from '../schemas/conversations';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { mapMastraMessagesToConversationItems } from './responses.adapter';\nimport { findConversationThreadAcrossAgents, getAgentMemoryStore } from './responses.storage';\nimport { getEffectiveResourceId, validateThreadOwnership } from './utils';\n\nfunction buildConversationObject({ thread }: { thread: ConversationObject['thread'] }): ConversationObject {\n return {\n id: thread.id,\n object: 'conversation',\n thread,\n };\n}\n\nfunction buildConversationItemsList(items: ConversationItemsList['data']): ConversationItemsList {\n return {\n object: 'list',\n data: items,\n first_id: items[0]?.id ?? null,\n last_id: items.at(-1)?.id ?? null,\n has_more: false,\n };\n}\n\nfunction buildConversationDeleted(conversationId: string): ConversationDeleted {\n return {\n id: conversationId,\n object: 'conversation.deleted',\n deleted: true,\n };\n}\n\nexport const CREATE_CONVERSATION_ROUTE = createRoute({\n method: 'POST',\n path: '/v1/conversations',\n responseType: 'json',\n bodySchema: createConversationBodySchema,\n responseSchema: conversationObjectSchema,\n summary: 'Create a conversation',\n description: 'Creates a new thread-backed conversation for agent-backed Responses API requests',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_CREATE,\n handler: async ({ mastra, requestContext, agent_id, conversation_id, resource_id, title, metadata }) => {\n try {\n if (!mastra) {\n throw new HTTPException(500, { message: 'Mastra instance is required for conversations' });\n }\n\n const agent = await getAgentFromSystem({ mastra, agentId: agent_id });\n const memory = await agent.getMemory({ requestContext });\n if (!memory) {\n throw new HTTPException(400, { message: `Agent \"${agent.id}\" does not have memory configured` });\n }\n if (!(await getAgentMemoryStore({ agent, requestContext }))) {\n throw new HTTPException(400, { message: `Memory storage is not configured for agent \"${agent.id}\"` });\n }\n\n const threadId = conversation_id ?? globalThis.crypto.randomUUID();\n const resourceId = getEffectiveResourceId(requestContext, resource_id) ?? threadId;\n\n // Creating with an existing id upserts the thread, so validate ownership of any existing thread first\n if (conversation_id) {\n const existing = await memory.getThreadById({ threadId });\n await validateThreadOwnership(existing, getEffectiveResourceId(requestContext, undefined));\n }\n\n const thread = await memory.createThread({\n threadId,\n resourceId,\n title,\n metadata,\n });\n\n return buildConversationObject({ thread });\n } catch (error) {\n return handleError(error, 'Error creating conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationObjectSchema,\n summary: 'Retrieve a conversation',\n description: 'Returns a conversation object backed by a Mastra memory thread',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_READ,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n return buildConversationObject({ thread: match.thread });\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ITEMS_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId/items',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationItemsListSchema,\n summary: 'List conversation items',\n description: 'Returns OpenAI-style conversation items derived from the stored thread messages',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_READ,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n const { messages } = await match.memoryStore.listMessages({\n threadId: conversationId,\n page: 0,\n perPage: 1000,\n });\n\n return buildConversationItemsList(mapMastraMessagesToConversationItems(messages));\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const DELETE_CONVERSATION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationDeletedSchema,\n summary: 'Delete a conversation',\n description: 'Deletes a thread-backed conversation and its stored items',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_DELETE,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n await match.memoryStore.deleteThread({ threadId: conversationId });\n\n return buildConversationDeleted(conversationId);\n } catch (error) {\n return handleError(error, 'Error deleting conversation');\n }\n },\n});\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/conversations.ts"],"names":[],"mappings":"AA2CA,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/conversations.ts"],"names":[],"mappings":"AA2CA,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CpC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBjC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BvC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBpC,CAAC"}
|
|
@@ -2,9 +2,9 @@ import { r as __exportAll } from "../../rolldown-runtime-maW3aOIk.js";
|
|
|
2
2
|
import { t as HTTPException } from "../../http-exception-CyfxZB6W.js";
|
|
3
3
|
import { n as createRoute } from "../../route-builder-lBil8Cvo.js";
|
|
4
4
|
import { handleError } from "./error.js";
|
|
5
|
-
import { m as MastraFGAPermissions, r as getEffectiveResourceId } from "../../utils-KcHk7C0D.js";
|
|
5
|
+
import { m as MastraFGAPermissions, p as validateThreadOwnership, r as getEffectiveResourceId } from "../../utils-KcHk7C0D.js";
|
|
6
6
|
import { getAgentFromSystem } from "./agents.js";
|
|
7
|
-
import { a as createConversationBodySchema, i as conversationObjectSchema, n as conversationIdPathParams, r as conversationItemsListSchema, t as conversationDeletedSchema } from "../../conversations-
|
|
7
|
+
import { a as createConversationBodySchema, i as conversationObjectSchema, n as conversationIdPathParams, r as conversationItemsListSchema, t as conversationDeletedSchema } from "../../conversations-BzBHVFYe.js";
|
|
8
8
|
import { mapMastraMessagesToConversationItems } from "./responses.adapter.js";
|
|
9
9
|
import { findConversationThreadAcrossAgents, getAgentMemoryStore } from "./responses.storage.js";
|
|
10
10
|
//#region src/server/handlers/conversations.ts
|
|
@@ -63,6 +63,7 @@ const CREATE_CONVERSATION_ROUTE = createRoute({
|
|
|
63
63
|
})) throw new HTTPException(400, { message: `Memory storage is not configured for agent "${agent.id}"` });
|
|
64
64
|
const threadId = conversation_id ?? globalThis.crypto.randomUUID();
|
|
65
65
|
const resourceId = getEffectiveResourceId(requestContext, resource_id) ?? threadId;
|
|
66
|
+
if (conversation_id) await validateThreadOwnership(await memory.getThreadById({ threadId }), getEffectiveResourceId(requestContext, void 0));
|
|
66
67
|
return buildConversationObject({ thread: await memory.createThread({
|
|
67
68
|
threadId,
|
|
68
69
|
resourceId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversations.js","names":[],"sources":["../../../src/server/handlers/conversations.ts"],"sourcesContent":["import { MastraFGAPermissions } from '../fga-permissions';\nimport { HTTPException } from '../http-exception';\nimport {\n conversationDeletedSchema,\n conversationIdPathParams,\n conversationItemsListSchema,\n conversationObjectSchema,\n createConversationBodySchema,\n} from '../schemas/conversations';\nimport type { ConversationDeleted, ConversationItemsList, ConversationObject } from '../schemas/conversations';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { mapMastraMessagesToConversationItems } from './responses.adapter';\nimport { findConversationThreadAcrossAgents, getAgentMemoryStore } from './responses.storage';\nimport { getEffectiveResourceId } from './utils';\n\nfunction buildConversationObject({ thread }: { thread: ConversationObject['thread'] }): ConversationObject {\n return {\n id: thread.id,\n object: 'conversation',\n thread,\n };\n}\n\nfunction buildConversationItemsList(items: ConversationItemsList['data']): ConversationItemsList {\n return {\n object: 'list',\n data: items,\n first_id: items[0]?.id ?? null,\n last_id: items.at(-1)?.id ?? null,\n has_more: false,\n };\n}\n\nfunction buildConversationDeleted(conversationId: string): ConversationDeleted {\n return {\n id: conversationId,\n object: 'conversation.deleted',\n deleted: true,\n };\n}\n\nexport const CREATE_CONVERSATION_ROUTE = createRoute({\n method: 'POST',\n path: '/v1/conversations',\n responseType: 'json',\n bodySchema: createConversationBodySchema,\n responseSchema: conversationObjectSchema,\n summary: 'Create a conversation',\n description: 'Creates a new thread-backed conversation for agent-backed Responses API requests',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_CREATE,\n handler: async ({ mastra, requestContext, agent_id, conversation_id, resource_id, title, metadata }) => {\n try {\n if (!mastra) {\n throw new HTTPException(500, { message: 'Mastra instance is required for conversations' });\n }\n\n const agent = await getAgentFromSystem({ mastra, agentId: agent_id });\n const memory = await agent.getMemory({ requestContext });\n if (!memory) {\n throw new HTTPException(400, { message: `Agent \"${agent.id}\" does not have memory configured` });\n }\n if (!(await getAgentMemoryStore({ agent, requestContext }))) {\n throw new HTTPException(400, { message: `Memory storage is not configured for agent \"${agent.id}\"` });\n }\n\n const threadId = conversation_id ?? globalThis.crypto.randomUUID();\n const resourceId = getEffectiveResourceId(requestContext, resource_id) ?? threadId;\n const thread = await memory.createThread({\n threadId,\n resourceId,\n title,\n metadata,\n });\n\n return buildConversationObject({ thread });\n } catch (error) {\n return handleError(error, 'Error creating conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationObjectSchema,\n summary: 'Retrieve a conversation',\n description: 'Returns a conversation object backed by a Mastra memory thread',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_READ,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n return buildConversationObject({ thread: match.thread });\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ITEMS_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId/items',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationItemsListSchema,\n summary: 'List conversation items',\n description: 'Returns OpenAI-style conversation items derived from the stored thread messages',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_READ,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n const { messages } = await match.memoryStore.listMessages({\n threadId: conversationId,\n page: 0,\n perPage: 1000,\n });\n\n return buildConversationItemsList(mapMastraMessagesToConversationItems(messages));\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const DELETE_CONVERSATION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationDeletedSchema,\n summary: 'Delete a conversation',\n description: 'Deletes a thread-backed conversation and its stored items',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_DELETE,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n await match.memoryStore.deleteThread({ threadId: conversationId });\n\n return buildConversationDeleted(conversationId);\n } catch (error) {\n return handleError(error, 'Error deleting conversation');\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;AAiBA,SAAS,wBAAwB,EAAE,UAAwE;CACzG,OAAO;EACL,IAAI,OAAO;EACX,QAAQ;EACR;CACF;AACF;AAEA,SAAS,2BAA2B,OAA6D;CAC/F,OAAO;EACL,QAAQ;EACR,MAAM;EACN,UAAU,MAAM,EAAE,EAAE,MAAM;EAC1B,SAAS,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM;EAC7B,UAAU;CACZ;AACF;AAEA,SAAS,yBAAyB,gBAA6C;CAC7E,OAAO;EACL,IAAI;EACJ,QAAQ;EACR,SAAS;CACX;AACF;AAEA,MAAa,4BAA4B,YAAY;CACnD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,YAAY;CACZ,gBAAgB;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,WAAW;CAClB,cAAc;CACd,oBAAoB,qBAAqB;CACzC,SAAS,OAAO,EAAE,QAAQ,gBAAgB,UAAU,iBAAiB,aAAa,OAAO,eAAe;EACtG,IAAI;GACF,IAAI,CAAC,QACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,gDAAgD,CAAC;GAG3F,MAAM,QAAQ,MAAM,mBAAmB;IAAE;IAAQ,SAAS;GAAS,CAAC;GACpE,MAAM,SAAS,MAAM,MAAM,UAAU,EAAE,eAAe,CAAC;GACvD,IAAI,CAAC,QACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,UAAU,MAAM,GAAG,mCAAmC,CAAC;GAEjG,IAAI,CAAE,MAAM,oBAAoB;IAAE;IAAO;GAAe,CAAC,GACvD,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,+CAA+C,MAAM,GAAG,GAAG,CAAC;GAGtG,MAAM,WAAW,mBAAmB,WAAW,OAAO,WAAW;GACjE,MAAM,aAAa,uBAAuB,gBAAgB,WAAW,KAAK;
|
|
1
|
+
{"version":3,"file":"conversations.js","names":[],"sources":["../../../src/server/handlers/conversations.ts"],"sourcesContent":["import { MastraFGAPermissions } from '../fga-permissions';\nimport { HTTPException } from '../http-exception';\nimport {\n conversationDeletedSchema,\n conversationIdPathParams,\n conversationItemsListSchema,\n conversationObjectSchema,\n createConversationBodySchema,\n} from '../schemas/conversations';\nimport type { ConversationDeleted, ConversationItemsList, ConversationObject } from '../schemas/conversations';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { mapMastraMessagesToConversationItems } from './responses.adapter';\nimport { findConversationThreadAcrossAgents, getAgentMemoryStore } from './responses.storage';\nimport { getEffectiveResourceId, validateThreadOwnership } from './utils';\n\nfunction buildConversationObject({ thread }: { thread: ConversationObject['thread'] }): ConversationObject {\n return {\n id: thread.id,\n object: 'conversation',\n thread,\n };\n}\n\nfunction buildConversationItemsList(items: ConversationItemsList['data']): ConversationItemsList {\n return {\n object: 'list',\n data: items,\n first_id: items[0]?.id ?? null,\n last_id: items.at(-1)?.id ?? null,\n has_more: false,\n };\n}\n\nfunction buildConversationDeleted(conversationId: string): ConversationDeleted {\n return {\n id: conversationId,\n object: 'conversation.deleted',\n deleted: true,\n };\n}\n\nexport const CREATE_CONVERSATION_ROUTE = createRoute({\n method: 'POST',\n path: '/v1/conversations',\n responseType: 'json',\n bodySchema: createConversationBodySchema,\n responseSchema: conversationObjectSchema,\n summary: 'Create a conversation',\n description: 'Creates a new thread-backed conversation for agent-backed Responses API requests',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_CREATE,\n handler: async ({ mastra, requestContext, agent_id, conversation_id, resource_id, title, metadata }) => {\n try {\n if (!mastra) {\n throw new HTTPException(500, { message: 'Mastra instance is required for conversations' });\n }\n\n const agent = await getAgentFromSystem({ mastra, agentId: agent_id });\n const memory = await agent.getMemory({ requestContext });\n if (!memory) {\n throw new HTTPException(400, { message: `Agent \"${agent.id}\" does not have memory configured` });\n }\n if (!(await getAgentMemoryStore({ agent, requestContext }))) {\n throw new HTTPException(400, { message: `Memory storage is not configured for agent \"${agent.id}\"` });\n }\n\n const threadId = conversation_id ?? globalThis.crypto.randomUUID();\n const resourceId = getEffectiveResourceId(requestContext, resource_id) ?? threadId;\n\n // Creating with an existing id upserts the thread, so validate ownership of any existing thread first\n if (conversation_id) {\n const existing = await memory.getThreadById({ threadId });\n await validateThreadOwnership(existing, getEffectiveResourceId(requestContext, undefined));\n }\n\n const thread = await memory.createThread({\n threadId,\n resourceId,\n title,\n metadata,\n });\n\n return buildConversationObject({ thread });\n } catch (error) {\n return handleError(error, 'Error creating conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationObjectSchema,\n summary: 'Retrieve a conversation',\n description: 'Returns a conversation object backed by a Mastra memory thread',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_READ,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n return buildConversationObject({ thread: match.thread });\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ITEMS_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId/items',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationItemsListSchema,\n summary: 'List conversation items',\n description: 'Returns OpenAI-style conversation items derived from the stored thread messages',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_READ,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n const { messages } = await match.memoryStore.listMessages({\n threadId: conversationId,\n page: 0,\n perPage: 1000,\n });\n\n return buildConversationItemsList(mapMastraMessagesToConversationItems(messages));\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const DELETE_CONVERSATION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationDeletedSchema,\n summary: 'Delete a conversation',\n description: 'Deletes a thread-backed conversation and its stored items',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_DELETE,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n await match.memoryStore.deleteThread({ threadId: conversationId });\n\n return buildConversationDeleted(conversationId);\n } catch (error) {\n return handleError(error, 'Error deleting conversation');\n }\n },\n});\n"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../rolldown-runtime-Bd6kNlEP.cjs");
|
|
3
3
|
const require_http_exception = require("../../http-exception-CKDHupKw.cjs");
|
|
4
|
-
const require_common = require("../../common-
|
|
4
|
+
const require_common = require("../../common-DhKNoXGp.cjs");
|
|
5
5
|
const require_route_builder = require("../../route-builder-2yrD15TL.cjs");
|
|
6
6
|
const require_constants = require("../../constants-4IJp_uzj.cjs");
|
|
7
7
|
const require_server_handlers_error = require("./error.cjs");
|
|
8
|
-
const require_datasets = require("../../datasets-
|
|
8
|
+
const require_datasets = require("../../datasets-C2aXB8At.cjs");
|
|
9
9
|
let zod = require("zod");
|
|
10
10
|
let _mastra_core_agent = require("@mastra/core/agent");
|
|
11
11
|
let _mastra_core_error = require("@mastra/core/error");
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as HTTPException } from "../../http-exception-CyfxZB6W.js";
|
|
2
|
-
import { f as successResponseSchema } from "../../common-
|
|
2
|
+
import { f as successResponseSchema } from "../../common-Y30XtCyr.js";
|
|
3
3
|
import { n as createRoute } from "../../route-builder-lBil8Cvo.js";
|
|
4
4
|
import { p as isReservedRequestContextKey } from "../../constants-0jFCWoex.js";
|
|
5
5
|
import { handleError } from "./error.js";
|
|
6
|
-
import { A as listDatasetsQuerySchema, B as reviewSummaryResponseSchema, E as generateItemsResponseSchema, F as listExperimentsResponseSchema, G as tenancyQuerySchema, H as runExperimentItemResponseSchema, I as listItemVersionsResponseSchema, J as updateExperimentBodySchema, K as triggerExperimentBodySchema, L as listItemsQuerySchema, M as listExperimentResultsQuerySchema, N as listExperimentResultsResponseSchema, P as listExperimentsQuerySchema, R as listItemsResponseSchema, S as experimentResultResponseSchema, T as generateItemsBodySchema, V as runExperimentItemBodySchema, W as submitExperimentResultBodySchema, X as updateItemBodySchema, Y as updateExperimentResultBodySchema, _ as datasetResponseSchema, a as batchInsertItemsResponseSchema, b as experimentResponseSchema, c as compareExperimentsBodySchema, d as datasetAndExperimentIdPathParams, f as datasetAndItemIdPathParams, g as datasetItemVersionPathParams, h as datasetItemResponseSchema, i as batchInsertItemsBodySchema, j as listDatasetsResponseSchema, k as listDatasetVersionsResponseSchema, l as comparisonResponseSchema, m as datasetIdPathParams, n as batchDeleteItemsBodySchema, o as clusterFailuresBodySchema, p as datasetExperimentAndItemIdPathParams, q as updateDatasetBodySchema, r as batchDeleteItemsResponseSchema, s as clusterFailuresResponseSchema, t as addItemBodySchema, u as createDatasetBodySchema, w as experimentSummaryResponseSchema, x as experimentResultIdPathParams, y as experimentIdPathParams, z as paginationQuerySchema } from "../../datasets-
|
|
6
|
+
import { A as listDatasetsQuerySchema, B as reviewSummaryResponseSchema, E as generateItemsResponseSchema, F as listExperimentsResponseSchema, G as tenancyQuerySchema, H as runExperimentItemResponseSchema, I as listItemVersionsResponseSchema, J as updateExperimentBodySchema, K as triggerExperimentBodySchema, L as listItemsQuerySchema, M as listExperimentResultsQuerySchema, N as listExperimentResultsResponseSchema, P as listExperimentsQuerySchema, R as listItemsResponseSchema, S as experimentResultResponseSchema, T as generateItemsBodySchema, V as runExperimentItemBodySchema, W as submitExperimentResultBodySchema, X as updateItemBodySchema, Y as updateExperimentResultBodySchema, _ as datasetResponseSchema, a as batchInsertItemsResponseSchema, b as experimentResponseSchema, c as compareExperimentsBodySchema, d as datasetAndExperimentIdPathParams, f as datasetAndItemIdPathParams, g as datasetItemVersionPathParams, h as datasetItemResponseSchema, i as batchInsertItemsBodySchema, j as listDatasetsResponseSchema, k as listDatasetVersionsResponseSchema, l as comparisonResponseSchema, m as datasetIdPathParams, n as batchDeleteItemsBodySchema, o as clusterFailuresBodySchema, p as datasetExperimentAndItemIdPathParams, q as updateDatasetBodySchema, r as batchDeleteItemsResponseSchema, s as clusterFailuresResponseSchema, t as addItemBodySchema, u as createDatasetBodySchema, w as experimentSummaryResponseSchema, x as experimentResultIdPathParams, y as experimentIdPathParams, z as paginationQuerySchema } from "../../datasets-CDQDQxos.js";
|
|
7
7
|
import { z as z$1 } from "zod";
|
|
8
8
|
import { Agent } from "@mastra/core/agent";
|
|
9
9
|
import { MastraError } from "@mastra/core/error";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../rolldown-runtime-Bd6kNlEP.cjs");
|
|
3
|
-
const require_editor_builder = require("../../editor-builder-
|
|
3
|
+
const require_editor_builder = require("../../editor-builder-CmUsqdZq.cjs");
|
|
4
4
|
exports.GET_EDITOR_BUILDER_AVAILABLE_MODELS_ROUTE = require_editor_builder.GET_EDITOR_BUILDER_AVAILABLE_MODELS_ROUTE;
|
|
5
5
|
exports.GET_EDITOR_BUILDER_SETTINGS_ROUTE = require_editor_builder.GET_EDITOR_BUILDER_SETTINGS_ROUTE;
|
|
6
6
|
exports.GET_INFRASTRUCTURE_STATUS_ROUTE = require_editor_builder.GET_INFRASTRUCTURE_STATUS_ROUTE;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as requireBuilderFeature, i as isBuilderFeatureEnabled, n as GET_EDITOR_BUILDER_SETTINGS_ROUTE, r as GET_INFRASTRUCTURE_STATUS_ROUTE, t as GET_EDITOR_BUILDER_AVAILABLE_MODELS_ROUTE } from "../../editor-builder-
|
|
1
|
+
import { a as requireBuilderFeature, i as isBuilderFeatureEnabled, n as GET_EDITOR_BUILDER_SETTINGS_ROUTE, r as GET_INFRASTRUCTURE_STATUS_ROUTE, t as GET_EDITOR_BUILDER_AVAILABLE_MODELS_ROUTE } from "../../editor-builder-DHXbVwxu.js";
|
|
2
2
|
export { GET_EDITOR_BUILDER_AVAILABLE_MODELS_ROUTE, GET_EDITOR_BUILDER_SETTINGS_ROUTE, GET_INFRASTRUCTURE_STATUS_ROUTE, isBuilderFeatureEnabled, requireBuilderFeature };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../rolldown-runtime-Bd6kNlEP.cjs");
|
|
3
3
|
const require_server_handlers_authorship = require("./authorship.cjs");
|
|
4
|
-
const require_editor_builder = require("../../editor-builder-
|
|
4
|
+
const require_editor_builder = require("../../editor-builder-CmUsqdZq.cjs");
|
|
5
5
|
//#region src/server/handlers/favorites-enrichment.ts
|
|
6
6
|
/**
|
|
7
7
|
* Resolve the EE feature flag plus the caller's favorited set for a list of
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getCallerAuthorId } from "./authorship.js";
|
|
2
|
-
import { i as isBuilderFeatureEnabled } from "../../editor-builder-
|
|
2
|
+
import { i as isBuilderFeatureEnabled } from "../../editor-builder-DHXbVwxu.js";
|
|
3
3
|
//#region src/server/handlers/favorites-enrichment.ts
|
|
4
4
|
/**
|
|
5
5
|
* Resolve the EE feature flag plus the caller's favorited set for a list of
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_rolldown_runtime = require("../../rolldown-runtime-Bd6kNlEP.cjs");
|
|
3
|
-
const require_common = require("../../common-
|
|
3
|
+
const require_common = require("../../common-DhKNoXGp.cjs");
|
|
4
4
|
const require_route_builder = require("../../route-builder-2yrD15TL.cjs");
|
|
5
5
|
const require_server_handlers_error = require("./error.cjs");
|
|
6
6
|
const require_utils = require("../../utils-HqDZJwRc.cjs");
|
|
7
|
-
const require_logs = require("../../logs-
|
|
7
|
+
const require_logs = require("../../logs-CY8AGOCO.cjs");
|
|
8
8
|
//#region src/server/handlers/logs.ts
|
|
9
9
|
var logs_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
10
10
|
LIST_LOGS_BY_RUN_ID_ROUTE: () => LIST_LOGS_BY_RUN_ID_ROUTE,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { r as __exportAll } from "../../rolldown-runtime-maW3aOIk.js";
|
|
2
|
-
import { u as runIdSchema } from "../../common-
|
|
2
|
+
import { u as runIdSchema } from "../../common-Y30XtCyr.js";
|
|
3
3
|
import { n as createRoute } from "../../route-builder-lBil8Cvo.js";
|
|
4
4
|
import { handleError } from "./error.js";
|
|
5
5
|
import { d as validateBody, o as parseFilters } from "../../utils-KcHk7C0D.js";
|
|
6
|
-
import { n as listLogsQuerySchema, r as listLogsResponseSchema, t as listLogTransportsResponseSchema } from "../../logs-
|
|
6
|
+
import { n as listLogsQuerySchema, r as listLogsResponseSchema, t as listLogTransportsResponseSchema } from "../../logs-Bd_xpsYw.js";
|
|
7
7
|
//#region src/server/handlers/logs.ts
|
|
8
8
|
var logs_exports = /* @__PURE__ */ __exportAll({
|
|
9
9
|
LIST_LOGS_BY_RUN_ID_ROUTE: () => LIST_LOGS_BY_RUN_ID_ROUTE,
|
|
@@ -5,7 +5,7 @@ const require_route_builder = require("../../route-builder-2yrD15TL.cjs");
|
|
|
5
5
|
const require_utils = require("../../utils-DFQixxkO.cjs");
|
|
6
6
|
const require_server_handlers_error = require("./error.cjs");
|
|
7
7
|
const require_server_handlers_version_helpers = require("./version-helpers.cjs");
|
|
8
|
-
const require_mcp_client_versions = require("../../mcp-client-versions-
|
|
8
|
+
const require_mcp_client_versions = require("../../mcp-client-versions-Cq97zXiK.cjs");
|
|
9
9
|
//#region src/server/handlers/mcp-client-versions.ts
|
|
10
10
|
/**
|
|
11
11
|
* GET /stored/mcp-clients/:mcpClientId/versions - List all versions for an MCP client
|
|
@@ -3,7 +3,7 @@ import { n as createRoute } from "../../route-builder-lBil8Cvo.js";
|
|
|
3
3
|
import { i as getStoredResourceScope, n as assertStoredResourceScope } from "../../utils-BJm0ZYnM.js";
|
|
4
4
|
import { handleError } from "./error.js";
|
|
5
5
|
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-
|
|
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-DxBkzcYH.js";
|
|
7
7
|
//#region src/server/handlers/mcp-client-versions.ts
|
|
8
8
|
/**
|
|
9
9
|
* GET /stored/mcp-clients/:mcpClientId/versions - List all versions for an MCP client
|
|
@@ -2,7 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
const require_rolldown_runtime = require("../../rolldown-runtime-Bd6kNlEP.cjs");
|
|
3
3
|
const require_http_exception = require("../../http-exception-CKDHupKw.cjs");
|
|
4
4
|
const require_route_builder = require("../../route-builder-2yrD15TL.cjs");
|
|
5
|
-
const require_mcp = require("../../mcp-
|
|
5
|
+
const require_mcp = require("../../mcp-ShaKO7gA.cjs");
|
|
6
6
|
let _mastra_core_error = require("@mastra/core/error");
|
|
7
7
|
//#region src/server/handlers/mcp.ts
|
|
8
8
|
var mcp_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as __exportAll } from "../../rolldown-runtime-maW3aOIk.js";
|
|
2
2
|
import { t as HTTPException } from "../../http-exception-CyfxZB6W.js";
|
|
3
3
|
import { n as createRoute } from "../../route-builder-lBil8Cvo.js";
|
|
4
|
-
import { a as listMcpServerToolsResponseSchema, c as listResourcesResponseSchema, d as mcpServerResourcePathParams, f as mcpServerToolPathParams, g as serverDetailSchema, h as readResourceResponseSchema, l as mcpServerDetailPathParams, m as readResourceBodySchema, n as executeToolResponseSchema, o as listMcpServersQuerySchema, p as mcpToolInfoSchema, r as getMcpServerDetailQuerySchema, s as listMcpServersResponseSchema, t as executeToolBodySchema, u as mcpServerIdPathParams } from "../../mcp-
|
|
4
|
+
import { a as listMcpServerToolsResponseSchema, c as listResourcesResponseSchema, d as mcpServerResourcePathParams, f as mcpServerToolPathParams, g as serverDetailSchema, h as readResourceResponseSchema, l as mcpServerDetailPathParams, m as readResourceBodySchema, n as executeToolResponseSchema, o as listMcpServersQuerySchema, p as mcpToolInfoSchema, r as getMcpServerDetailQuerySchema, s as listMcpServersResponseSchema, t as executeToolBodySchema, u as mcpServerIdPathParams } from "../../mcp-DzpwLXEY.js";
|
|
5
5
|
import { MastraError } from "@mastra/core/error";
|
|
6
6
|
//#region src/server/handlers/mcp.ts
|
|
7
7
|
var mcp_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -4,9 +4,10 @@ const require_http_exception = require("../../http-exception-CKDHupKw.cjs");
|
|
|
4
4
|
const require_route_builder = require("../../route-builder-2yrD15TL.cjs");
|
|
5
5
|
const require_server_handlers_error = require("./error.cjs");
|
|
6
6
|
const require_utils = require("../../utils-HqDZJwRc.cjs");
|
|
7
|
-
const require_memory = require("../../memory-
|
|
7
|
+
const require_memory = require("../../memory-CizEIbl1.cjs");
|
|
8
8
|
const require_server_handlers_gateway_memory_client = require("./gateway-memory-client.cjs");
|
|
9
9
|
let _mastra_core_agent = require("@mastra/core/agent");
|
|
10
|
+
let _mastra_core_error = require("@mastra/core/error");
|
|
10
11
|
let _mastra_core_utils = require("@mastra/core/utils");
|
|
11
12
|
//#region src/server/handlers/memory.ts
|
|
12
13
|
var memory_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
@@ -993,13 +994,6 @@ const CREATE_THREAD_ROUTE = require_route_builder.createRoute({
|
|
|
993
994
|
const effectiveResourceId = require_utils.getEffectiveResourceId(requestContext, resourceId);
|
|
994
995
|
const effectiveThreadId = threadId ?? mastra.generateId();
|
|
995
996
|
require_utils.validateBody({ resourceId: effectiveResourceId });
|
|
996
|
-
await require_utils.enforceThreadAccess({
|
|
997
|
-
mastra,
|
|
998
|
-
requestContext,
|
|
999
|
-
threadId: effectiveThreadId,
|
|
1000
|
-
effectiveResourceId,
|
|
1001
|
-
permission: require_utils.MastraFGAPermissions.MEMORY_WRITE
|
|
1002
|
-
});
|
|
1003
997
|
const agent = await getAgentFromContext({
|
|
1004
998
|
mastra,
|
|
1005
999
|
agentId,
|
|
@@ -1007,12 +1001,23 @@ const CREATE_THREAD_ROUTE = require_route_builder.createRoute({
|
|
|
1007
1001
|
});
|
|
1008
1002
|
if (agent && await require_server_handlers_gateway_memory_client.isGatewayAgentAsync(agent)) {
|
|
1009
1003
|
const gwClient = require_server_handlers_gateway_memory_client.getGatewayClient();
|
|
1010
|
-
if (gwClient)
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1004
|
+
if (gwClient) {
|
|
1005
|
+
const existing = threadId ? await gwClient.getThread(effectiveThreadId) : null;
|
|
1006
|
+
await require_utils.enforceThreadAccess({
|
|
1007
|
+
mastra,
|
|
1008
|
+
requestContext,
|
|
1009
|
+
threadId: effectiveThreadId,
|
|
1010
|
+
thread: existing ? require_server_handlers_gateway_memory_client.toLocalThread(existing.thread) : null,
|
|
1011
|
+
effectiveResourceId,
|
|
1012
|
+
permission: require_utils.MastraFGAPermissions.MEMORY_WRITE
|
|
1013
|
+
});
|
|
1014
|
+
return require_server_handlers_gateway_memory_client.toLocalThread((await gwClient.createThread({
|
|
1015
|
+
id: effectiveThreadId,
|
|
1016
|
+
resourceId: effectiveResourceId,
|
|
1017
|
+
title,
|
|
1018
|
+
metadata
|
|
1019
|
+
})).thread);
|
|
1020
|
+
}
|
|
1016
1021
|
}
|
|
1017
1022
|
const memory = await getMemoryFromContext({
|
|
1018
1023
|
mastra,
|
|
@@ -1020,6 +1025,14 @@ const CREATE_THREAD_ROUTE = require_route_builder.createRoute({
|
|
|
1020
1025
|
requestContext
|
|
1021
1026
|
});
|
|
1022
1027
|
if (!memory) throw new require_http_exception.HTTPException(400, { message: "Memory is not initialized" });
|
|
1028
|
+
await require_utils.enforceThreadAccess({
|
|
1029
|
+
mastra,
|
|
1030
|
+
requestContext,
|
|
1031
|
+
threadId: effectiveThreadId,
|
|
1032
|
+
thread: threadId ? await memory.getThreadById({ threadId: effectiveThreadId }) : null,
|
|
1033
|
+
effectiveResourceId,
|
|
1034
|
+
permission: require_utils.MastraFGAPermissions.MEMORY_WRITE
|
|
1035
|
+
});
|
|
1023
1036
|
return await memory.createThread({
|
|
1024
1037
|
resourceId: effectiveResourceId,
|
|
1025
1038
|
title,
|
|
@@ -1293,7 +1306,7 @@ const UPDATE_WORKING_MEMORY_ROUTE = require_route_builder.createRoute({
|
|
|
1293
1306
|
description: "Updates the working memory state for a thread",
|
|
1294
1307
|
tags: ["Memory"],
|
|
1295
1308
|
requiresAuth: true,
|
|
1296
|
-
handler: async ({ mastra, agentId, threadId, resourceId, memoryConfig, workingMemory, requestContext }) => {
|
|
1309
|
+
handler: async ({ mastra, agentId, threadId, resourceId, memoryConfig, workingMemory, mode, requestContext }) => {
|
|
1297
1310
|
try {
|
|
1298
1311
|
const effectiveThreadId = require_utils.getEffectiveThreadId(requestContext, threadId);
|
|
1299
1312
|
const effectiveResourceId = require_utils.getEffectiveResourceId(requestContext, resourceId);
|
|
@@ -1323,6 +1336,21 @@ const UPDATE_WORKING_MEMORY_ROUTE = require_route_builder.createRoute({
|
|
|
1323
1336
|
effectiveResourceId,
|
|
1324
1337
|
permission: require_utils.MastraFGAPermissions.MEMORY_WRITE
|
|
1325
1338
|
});
|
|
1339
|
+
if (mode === "merge") {
|
|
1340
|
+
if (!await memory.supportsAtomicWorkingMemoryMerge()) throw new require_http_exception.HTTPException(400, { message: "Working memory merge is not supported by the configured storage adapter" });
|
|
1341
|
+
try {
|
|
1342
|
+
await memory.mergeWorkingMemory({
|
|
1343
|
+
threadId: effectiveThreadId,
|
|
1344
|
+
resourceId: effectiveResourceId,
|
|
1345
|
+
workingMemory,
|
|
1346
|
+
memoryConfig
|
|
1347
|
+
});
|
|
1348
|
+
} catch (error) {
|
|
1349
|
+
if (error instanceof _mastra_core_error.MastraError && error.category === _mastra_core_error.ErrorCategory.USER) throw new require_http_exception.HTTPException(400, { message: error.message });
|
|
1350
|
+
throw error;
|
|
1351
|
+
}
|
|
1352
|
+
return { success: true };
|
|
1353
|
+
}
|
|
1326
1354
|
await memory.updateWorkingMemory({
|
|
1327
1355
|
threadId: effectiveThreadId,
|
|
1328
1356
|
resourceId: effectiveResourceId,
|