@mastra/server 1.67.0 → 1.68.0-alpha.10
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/dist/storage/index.d.ts +3 -3
- package/dist/_types/@internal_core/package.json +1 -0
- package/dist/_types/@internal_voice/dist/_types/@internal_core/dist/routes/index.d.ts +1 -1
- package/dist/_types/@internal_voice/dist/_types/zod/v4/classic/checks.d.ts +1 -1
- package/dist/_types/@internal_voice/dist/_types/zod/v4/classic/compat.d.ts +9 -11
- package/dist/_types/@internal_voice/dist/_types/zod/v4/classic/deep-partial.d.ts +14 -0
- package/dist/_types/@internal_voice/dist/_types/zod/v4/classic/errors.d.ts +3 -4
- package/dist/_types/@internal_voice/dist/_types/zod/v4/classic/external.d.ts +5 -2
- package/dist/_types/@internal_voice/dist/_types/zod/v4/classic/in-out.d.ts +8 -0
- package/dist/_types/@internal_voice/dist/_types/zod/v4/classic/index.d.ts +1 -2
- package/dist/_types/@internal_voice/dist/_types/zod/v4/classic/iso.d.ts +2 -17
- package/dist/_types/@internal_voice/dist/_types/zod/v4/classic/parse.d.ts +17 -4
- package/dist/_types/@internal_voice/dist/_types/zod/v4/classic/schemas.d.ts +68 -19
- package/dist/_types/@internal_voice/dist/_types/zod/v4/core/api.d.ts +22 -12
- package/dist/_types/@internal_voice/dist/_types/zod/v4/core/checks.d.ts +29 -13
- package/dist/_types/@internal_voice/dist/_types/zod/v4/core/compile.d.ts +65 -0
- package/dist/_types/@internal_voice/dist/_types/zod/v4/core/core.d.ts +16 -4
- package/dist/_types/@internal_voice/dist/_types/zod/v4/core/doc.d.ts +3 -1
- package/dist/_types/@internal_voice/dist/_types/zod/v4/core/errors.d.ts +4 -0
- package/dist/_types/@internal_voice/dist/_types/zod/v4/core/index.d.ts +3 -0
- package/dist/_types/@internal_voice/dist/_types/zod/v4/core/json-schema-generator.d.ts +2 -2
- package/dist/_types/@internal_voice/dist/_types/zod/v4/core/json-schema-processors.d.ts +16 -0
- package/dist/_types/@internal_voice/dist/_types/zod/v4/core/json-schema.d.ts +2 -1
- package/dist/_types/@internal_voice/dist/_types/zod/v4/core/memoizer.d.ts +15 -0
- package/dist/_types/@internal_voice/dist/_types/zod/v4/core/parse.d.ts +14 -11
- package/dist/_types/@internal_voice/dist/_types/zod/v4/core/regexes.d.ts +5 -0
- package/dist/_types/@internal_voice/dist/_types/zod/v4/core/schemas.d.ts +123 -34
- package/dist/_types/@internal_voice/dist/_types/zod/v4/core/to-json-schema.d.ts +45 -5
- package/dist/_types/@internal_voice/dist/_types/zod/v4/core/util.d.ts +79 -1
- package/dist/_types/@internal_voice/dist/_types/zod/v4/core/versions.d.ts +1 -1
- package/dist/_types/@internal_voice/dist/_types/zod/v4/index.d.cts +2 -2
- package/dist/_types/@internal_voice/dist/_types/zod/v4/locales/bn.d.ts +4 -0
- package/dist/_types/@internal_voice/dist/_types/zod/v4/locales/ckb.d.ts +4 -0
- package/dist/_types/@internal_voice/dist/_types/zod/v4/locales/gu.d.ts +4 -0
- package/dist/_types/@internal_voice/dist/_types/zod/v4/locales/hi.d.ts +4 -0
- package/dist/_types/@internal_voice/dist/_types/zod/v4/locales/index.d.ts +11 -0
- package/dist/_types/@internal_voice/dist/_types/zod/v4/locales/kn.d.ts +4 -0
- package/dist/_types/@internal_voice/dist/_types/zod/v4/locales/ne.d.ts +4 -0
- package/dist/_types/@internal_voice/dist/_types/zod/v4/locales/nn.d.ts +4 -0
- package/dist/_types/@internal_voice/dist/_types/zod/v4/locales/pt-BR.d.ts +4 -0
- package/dist/_types/@internal_voice/dist/_types/zod/v4/locales/sk.d.ts +4 -0
- package/dist/_types/@internal_voice/dist/_types/zod/v4/locales/tg.d.ts +4 -0
- package/dist/_types/@internal_voice/dist/_types/zod/v4/locales/tk.d.ts +4 -0
- package/dist/_types/@internal_voice/dist/routes/index.d.ts +15 -15
- package/dist/_types/@internal_voice/package.json +1 -0
- package/dist/_types/@mastra_schema-compat/dist/_types/@internal_ai-sdk-v4/dist/index.d.ts +1 -1
- package/dist/_types/@mastra_schema-compat/dist/_types/@internal_ai-sdk-v5/dist/index.d.ts +1 -1
- package/dist/_types/@mastra_schema-compat/dist/_types/@internal_ai-v6/dist/index.d.ts +1 -1
- package/dist/_types/@mastra_schema-compat/dist/provider-compats/anthropic.d.ts +2 -2
- package/dist/_types/@mastra_schema-compat/dist/provider-compats/deepseek.d.ts +2 -2
- package/dist/_types/@mastra_schema-compat/dist/provider-compats/google.d.ts +1 -1
- package/dist/_types/@mastra_schema-compat/dist/provider-compats/meta.d.ts +2 -2
- package/dist/_types/@mastra_schema-compat/dist/provider-compats/openai.d.ts +1 -1
- package/dist/_types/@mastra_schema-compat/dist/schema.types.d.ts +4 -4
- package/dist/_types/@mastra_schema-compat/dist/standard-schema/standard-schema.d.ts +2 -2
- package/dist/_types/@mastra_schema-compat/dist/standard-schema/standard-schema.types.d.ts +1 -1
- package/dist/_types/@mastra_schema-compat/dist/zod-to-json.d.ts +1 -1
- package/dist/_types/@mastra_schema-compat/package.json +1 -0
- package/dist/{a2a-8C4O2dVJ.js → a2a-BS0gTQk3.js} +94 -14
- package/dist/a2a-BS0gTQk3.js.map +1 -0
- package/dist/{a2a-MPoM5lzS.cjs → a2a-CBl-c-lm.cjs} +105 -13
- package/dist/a2a-CBl-c-lm.cjs.map +1 -0
- package/dist/{a2a-DQ8GeDz4.cjs → a2a-Cr-pxMJm.cjs} +151 -47
- package/dist/a2a-Cr-pxMJm.cjs.map +1 -0
- package/dist/{a2a-DUBjstWk.js → a2a-D2AP2MGB.js} +151 -47
- package/dist/a2a-D2AP2MGB.js.map +1 -0
- package/dist/{agent-versions-NGajm4l5.js → agent-versions-CiV6tT74.js} +2 -2
- package/dist/{agent-versions-NGajm4l5.js.map → agent-versions-CiV6tT74.js.map} +1 -1
- package/dist/{agent-versions-D99q4Gos.cjs → agent-versions-D2QdSbFn.cjs} +2 -2
- package/dist/{agent-versions-D99q4Gos.cjs.map → agent-versions-D2QdSbFn.cjs.map} +1 -1
- package/dist/{agents-CZE_MSQE.cjs → agents-BN8QmLxk.cjs} +25 -7
- package/dist/agents-BN8QmLxk.cjs.map +1 -0
- package/dist/{agents-ssoMemNs.js → agents-DCYUhwHn.js} +25 -7
- package/dist/agents-DCYUhwHn.js.map +1 -0
- package/dist/{api-schema-manifest-CeREx1dB.js → api-schema-manifest-BUEINaAC.js} +3 -3
- package/dist/{api-schema-manifest-CeREx1dB.js.map → api-schema-manifest-BUEINaAC.js.map} +1 -1
- package/dist/{api-schema-manifest-DzWP4nLu.cjs → api-schema-manifest-Byk_S1Xu.cjs} +3 -3
- package/dist/{api-schema-manifest-DzWP4nLu.cjs.map → api-schema-manifest-Byk_S1Xu.cjs.map} +1 -1
- package/dist/{background-tasks-kXPoCvgG.js → background-tasks-D7X7M0TU.js} +2 -2
- package/dist/{background-tasks-kXPoCvgG.js.map → background-tasks-D7X7M0TU.js.map} +1 -1
- package/dist/{background-tasks-CFJ0vNgp.cjs → background-tasks-NjqWJcUw.cjs} +2 -2
- package/dist/{background-tasks-CFJ0vNgp.cjs.map → background-tasks-NjqWJcUw.cjs.map} +1 -1
- package/dist/{builder-registry-r71f11_E.cjs → builder-registry-BtwztV7s.cjs} +4 -4
- package/dist/{builder-registry-r71f11_E.cjs.map → builder-registry-BtwztV7s.cjs.map} +1 -1
- package/dist/{builder-registry-DI3Ysclf.js → builder-registry-CZW_Z4DV.js} +4 -4
- package/dist/{builder-registry-DI3Ysclf.js.map → builder-registry-CZW_Z4DV.js.map} +1 -1
- package/dist/{channels-CGDo0Prv.cjs → channels-pCkdvG0z.cjs} +2 -2
- package/dist/{channels-CGDo0Prv.cjs.map → channels-pCkdvG0z.cjs.map} +1 -1
- package/dist/{channels-B_K1oJ7S.js → channels-uSO1ySnT.js} +2 -2
- package/dist/{channels-B_K1oJ7S.js.map → channels-uSO1ySnT.js.map} +1 -1
- package/dist/{conversations-b3vJRHF3.js → conversations-BQSekCFg.js} +2 -2
- package/dist/{conversations-b3vJRHF3.js.map → conversations-BQSekCFg.js.map} +1 -1
- package/dist/{conversations-DstENx2x.cjs → conversations-X5vg7ZxV.cjs} +2 -2
- package/dist/{conversations-DstENx2x.cjs.map → conversations-X5vg7ZxV.cjs.map} +1 -1
- package/dist/{datasets-zlaJQ9D0.cjs → datasets-DOZwJ68z.cjs} +5 -1
- package/dist/datasets-DOZwJ68z.cjs.map +1 -0
- package/dist/{datasets-CCC2huR0.js → datasets-DfMv5GX5.js} +5 -1
- package/dist/datasets-DfMv5GX5.js.map +1 -0
- package/dist/{dist-D6F_HzDS.cjs → dist-B0uCWZUF.cjs} +4 -4
- package/dist/{dist-D6F_HzDS.cjs.map → dist-B0uCWZUF.cjs.map} +1 -1
- package/dist/{dist-C9yKk16g.cjs → dist-BQ0VOLA9.cjs} +3 -3
- package/dist/{dist-C9yKk16g.cjs.map → dist-BQ0VOLA9.cjs.map} +1 -1
- package/dist/{dist-k6UeNFHu.js → dist-Bl3UrwJs.js} +3 -3
- package/dist/{dist-k6UeNFHu.js.map → dist-Bl3UrwJs.js.map} +1 -1
- package/dist/{dist-B6qmZNb0.cjs → dist-C2u5Kqxy.cjs} +3 -3
- package/dist/{dist-B6qmZNb0.cjs.map → dist-C2u5Kqxy.cjs.map} +1 -1
- package/dist/{dist-BKxbtiJd.cjs → dist-CF1rK7oZ.cjs} +874 -192
- package/dist/dist-CF1rK7oZ.cjs.map +1 -0
- package/dist/{dist-C76EmJsT.cjs → dist-CkFmsB2E.cjs} +3 -3
- package/dist/{dist-C76EmJsT.cjs.map → dist-CkFmsB2E.cjs.map} +1 -1
- package/dist/{dist-Da8AufS5.js → dist-D1rb-p2Y.js} +4 -4
- package/dist/{dist-Da8AufS5.js.map → dist-D1rb-p2Y.js.map} +1 -1
- package/dist/{dist-Chgswf37.js → dist-DD1mFVAc.js} +3 -3
- package/dist/{dist-Chgswf37.js.map → dist-DD1mFVAc.js.map} +1 -1
- package/dist/{dist-Wjq6PT76.js → dist-DJ7t3yBx.js} +3 -3
- package/dist/{dist-Wjq6PT76.js.map → dist-DJ7t3yBx.js.map} +1 -1
- package/dist/{dist-CLQt62Pi.cjs → dist-DO5NHh-t.cjs} +3 -3
- package/dist/{dist-CLQt62Pi.cjs.map → dist-DO5NHh-t.cjs.map} +1 -1
- package/dist/{dist-XnA2Lowr.js → dist-DiEECrlS.js} +3 -3
- package/dist/{dist-XnA2Lowr.js.map → dist-DiEECrlS.js.map} +1 -1
- package/dist/{dist-DoTDZ7wF.js → dist-Dx2Qp8Rj.js} +3 -3
- package/dist/{dist-DoTDZ7wF.js.map → dist-Dx2Qp8Rj.js.map} +1 -1
- package/dist/{dist-DOpm-tIl.js → dist-dfcZRhcQ.js} +871 -189
- package/dist/dist-dfcZRhcQ.js.map +1 -0
- package/dist/{dist-DpM-6UBk.cjs → dist-vM0zJcP5.cjs} +3 -3
- package/dist/{dist-DpM-6UBk.cjs.map → dist-vM0zJcP5.cjs.map} +1 -1
- package/dist/docs/SKILL.md +2 -2
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/docs/references/docs-connections-a2a.md +4 -3
- package/dist/docs/references/docs-server-custom-adapters.md +43 -0
- package/dist/docs/references/reference-observability-tracing-trace-query.md +219 -46
- package/dist/{dynamic-workflows-DeUG3lA2.cjs → dynamic-workflows-BiX72mRA.cjs} +2 -2
- package/dist/{dynamic-workflows-DeUG3lA2.cjs.map → dynamic-workflows-BiX72mRA.cjs.map} +1 -1
- package/dist/{dynamic-workflows-C3DXgmSP.js → dynamic-workflows-CVrxi8y7.js} +2 -2
- package/dist/{dynamic-workflows-C3DXgmSP.js.map → dynamic-workflows-CVrxi8y7.js.map} +1 -1
- package/dist/{editor-builder-D6P_hq7c.js → editor-builder-Blheim55.js} +2 -2
- package/dist/{editor-builder-D6P_hq7c.js.map → editor-builder-Blheim55.js.map} +1 -1
- package/dist/{editor-builder-BI5yHrbT.js → editor-builder-D287Qf1k.js} +3 -3
- package/dist/{editor-builder-BI5yHrbT.js.map → editor-builder-D287Qf1k.js.map} +1 -1
- package/dist/{editor-builder-CKAeON9r.cjs → editor-builder-D85orYra.cjs} +3 -3
- package/dist/{editor-builder-CKAeON9r.cjs.map → editor-builder-D85orYra.cjs.map} +1 -1
- package/dist/{editor-builder-BHf-g7q9.cjs → editor-builder-DhUUVbQ-.cjs} +2 -2
- package/dist/{editor-builder-BHf-g7q9.cjs.map → editor-builder-DhUUVbQ-.cjs.map} +1 -1
- package/dist/{mcp-BPmrXX9r.cjs → mcp-CdZzch5c.cjs} +11 -3
- package/dist/mcp-CdZzch5c.cjs.map +1 -0
- package/dist/{mcp-B_OMG3Ol.js → mcp-ea7f_n2D.js} +11 -3
- package/dist/mcp-ea7f_n2D.js.map +1 -0
- package/dist/{memory-BvKPIpyH.js → memory-CZT-ptes.js} +9 -3
- package/dist/memory-CZT-ptes.js.map +1 -0
- package/dist/{memory-CDYtqQnE.cjs → memory-D2TG_RVj.cjs} +9 -3
- package/dist/memory-D2TG_RVj.cjs.map +1 -0
- package/dist/message-history-CkUYxSaS.cjs +22 -0
- package/dist/message-history-CkUYxSaS.cjs.map +1 -0
- package/dist/message-history-_kbQlA4r.js +11 -0
- package/dist/message-history-_kbQlA4r.js.map +1 -0
- package/dist/{observability-new-endpoints-I2OxQzfY.cjs → observability-new-endpoints-BUC8-mAb.cjs} +230 -6
- package/dist/observability-new-endpoints-BUC8-mAb.cjs.map +1 -0
- package/dist/{observability-new-endpoints-pIq_OWa8.js → observability-new-endpoints-CZyppvEy.js} +214 -8
- package/dist/observability-new-endpoints-CZyppvEy.js.map +1 -0
- package/dist/{route-builder-DupY8fkI.cjs → route-builder-CbCx1upL.cjs} +5 -5
- package/dist/{route-builder-DupY8fkI.cjs.map → route-builder-CbCx1upL.cjs.map} +1 -1
- package/dist/{route-builder-BukcT_Kp.js → route-builder-DDOjv0sM.js} +3 -3
- package/dist/{route-builder-BukcT_Kp.js.map → route-builder-DDOjv0sM.js.map} +1 -1
- package/dist/{routes-PJ3eKHbs.cjs → routes-BGhq6AWK.cjs} +14 -11
- package/dist/routes-BGhq6AWK.cjs.map +1 -0
- package/dist/{routes-BJZtqLVx.js → routes-Bakqf-F5.js} +14 -11
- package/dist/routes-Bakqf-F5.js.map +1 -0
- package/dist/{schedules-DaEv0Usj.cjs → schedules-ByXP9Fgm.cjs} +15 -9
- package/dist/schedules-ByXP9Fgm.cjs.map +1 -0
- package/dist/{schedules-BzymFGR_.js → schedules-Cy6FhkZX.js} +15 -9
- package/dist/schedules-Cy6FhkZX.js.map +1 -0
- package/dist/{schema-D_ikovK6-DQrOVw5N.cjs → schema-BwlBcZRB-BLwYP0BY.cjs} +6 -6
- package/dist/{schema-D_ikovK6-DQrOVw5N.cjs.map → schema-BwlBcZRB-BLwYP0BY.cjs.map} +1 -1
- package/dist/{schema-D_ikovK6-BzTeMhWf.js → schema-BwlBcZRB-DUSSQ9TD.js} +6 -6
- package/dist/{schema-D_ikovK6-BzTeMhWf.js.map → schema-BwlBcZRB-DUSSQ9TD.js.map} +1 -1
- package/dist/schema-DM4T8wfR.cjs +1 -0
- package/dist/schema-Fa9iirVJ.js +2 -0
- package/dist/{scorer-versions-B6U7batJ.cjs → scorer-versions-DAsYq5b3.cjs} +2 -2
- package/dist/{scorer-versions-B6U7batJ.cjs.map → scorer-versions-DAsYq5b3.cjs.map} +1 -1
- package/dist/{scorer-versions-Dh2iaz4Y.js → scorer-versions-VpbcaDi8.js} +2 -2
- package/dist/{scorer-versions-Dh2iaz4Y.js.map → scorer-versions-VpbcaDi8.js.map} +1 -1
- package/dist/server/a2a/agent-card-signing.d.ts +8 -4
- package/dist/server/a2a/agent-card-signing.d.ts.map +1 -1
- package/dist/server/a2a/agent-card-v1.d.ts +6 -0
- package/dist/server/a2a/agent-card-v1.d.ts.map +1 -0
- package/dist/server/handlers/a2a.cjs +1 -1
- package/dist/server/handlers/a2a.d.ts +205 -61
- package/dist/server/handlers/a2a.d.ts.map +1 -1
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-builder.cjs +4 -4
- package/dist/server/handlers/agent-builder.d.ts +64 -64
- package/dist/server/handlers/agent-builder.js +4 -4
- package/dist/server/handlers/agent-controller.cjs +4 -5
- package/dist/server/handlers/agent-controller.cjs.map +1 -1
- package/dist/server/handlers/agent-controller.d.ts +145 -145
- package/dist/server/handlers/agent-controller.d.ts.map +1 -1
- package/dist/server/handlers/agent-controller.js +4 -5
- package/dist/server/handlers/agent-controller.js.map +1 -1
- package/dist/server/handlers/agent-versions.cjs +3 -3
- package/dist/server/handlers/agent-versions.d.ts +136 -40
- package/dist/server/handlers/agent-versions.d.ts.map +1 -1
- package/dist/server/handlers/agent-versions.js +3 -3
- package/dist/server/handlers/agents.cjs +11 -10
- package/dist/server/handlers/agents.cjs.map +1 -1
- package/dist/server/handlers/agents.d.ts +238 -152
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +10 -9
- package/dist/server/handlers/agents.js.map +1 -1
- package/dist/server/handlers/auth.cjs +1 -1
- package/dist/server/handlers/auth.d.ts +80 -80
- package/dist/server/handlers/auth.js +1 -1
- package/dist/server/handlers/background-tasks.cjs +1 -1
- package/dist/server/handlers/background-tasks.d.ts +12 -12
- package/dist/server/handlers/background-tasks.js +1 -1
- package/dist/server/handlers/builder-registry.cjs +1 -1
- package/dist/server/handlers/builder-registry.d.ts +20 -20
- package/dist/server/handlers/builder-registry.js +1 -1
- package/dist/server/handlers/channels.cjs +1 -1
- package/dist/server/handlers/channels.d.ts +16 -16
- package/dist/server/handlers/channels.js +1 -1
- package/dist/server/handlers/conversations.cjs +2 -2
- package/dist/server/handlers/conversations.d.ts +16 -16
- package/dist/server/handlers/conversations.js +2 -2
- package/dist/server/handlers/datasets.cjs +4 -4
- package/dist/server/handlers/datasets.cjs.map +1 -1
- package/dist/server/handlers/datasets.d.ts +150 -142
- package/dist/server/handlers/datasets.d.ts.map +1 -1
- package/dist/server/handlers/datasets.js +4 -4
- package/dist/server/handlers/datasets.js.map +1 -1
- package/dist/server/handlers/dynamic-workflows.cjs +1 -1
- package/dist/server/handlers/dynamic-workflows.d.ts +76 -76
- package/dist/server/handlers/dynamic-workflows.js +1 -1
- package/dist/server/handlers/editor-builder.cjs +1 -1
- package/dist/server/handlers/editor-builder.d.ts +12 -12
- 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 +1 -1
- package/dist/server/handlers/logs.d.ts +12 -12
- package/dist/server/handlers/logs.js +1 -1
- package/dist/server/handlers/mcp-client-versions.cjs +2 -2
- package/dist/server/handlers/mcp-client-versions.d.ts +28 -28
- package/dist/server/handlers/mcp-client-versions.js +2 -2
- package/dist/server/handlers/mcp.cjs +34 -3
- package/dist/server/handlers/mcp.cjs.map +1 -1
- package/dist/server/handlers/mcp.d.ts +55 -42
- package/dist/server/handlers/mcp.d.ts.map +1 -1
- package/dist/server/handlers/mcp.js +34 -3
- package/dist/server/handlers/mcp.js.map +1 -1
- package/dist/server/handlers/memory.cjs +3 -4
- package/dist/server/handlers/memory.cjs.map +1 -1
- package/dist/server/handlers/memory.d.ts +176 -152
- package/dist/server/handlers/memory.d.ts.map +1 -1
- package/dist/server/handlers/memory.js +3 -4
- package/dist/server/handlers/memory.js.map +1 -1
- package/dist/server/handlers/observability-new-endpoints.cjs +4 -1
- package/dist/server/handlers/observability-new-endpoints.d.ts +974 -518
- package/dist/server/handlers/observability-new-endpoints.d.ts.map +1 -1
- package/dist/server/handlers/observability-new-endpoints.js +2 -2
- package/dist/server/handlers/observability-shared.cjs +41 -2
- package/dist/server/handlers/observability-shared.cjs.map +1 -1
- package/dist/server/handlers/observability-shared.d.ts +24 -0
- package/dist/server/handlers/observability-shared.d.ts.map +1 -1
- package/dist/server/handlers/observability-shared.js +37 -2
- package/dist/server/handlers/observability-shared.js.map +1 -1
- package/dist/server/handlers/observability.cjs +8 -2
- package/dist/server/handlers/observability.cjs.map +1 -1
- package/dist/server/handlers/observability.d.ts +33 -27
- package/dist/server/handlers/observability.d.ts.map +1 -1
- package/dist/server/handlers/observability.js +6 -3
- package/dist/server/handlers/observability.js.map +1 -1
- package/dist/server/handlers/plans.cjs +2 -2
- package/dist/server/handlers/plans.d.ts +4 -4
- package/dist/server/handlers/plans.js +2 -2
- package/dist/server/handlers/processor-providers.cjs +1 -1
- package/dist/server/handlers/processor-providers.d.ts +8 -8
- package/dist/server/handlers/processor-providers.js +1 -1
- package/dist/server/handlers/processors.cjs +1 -1
- package/dist/server/handlers/processors.d.ts +12 -12
- package/dist/server/handlers/processors.js +1 -1
- package/dist/server/handlers/prompt-block-versions.cjs +2 -2
- package/dist/server/handlers/prompt-block-versions.d.ts +28 -28
- package/dist/server/handlers/prompt-block-versions.js +2 -2
- package/dist/server/handlers/responses.cjs +1 -1
- package/dist/server/handlers/responses.d.ts +23 -23
- package/dist/server/handlers/responses.js +1 -1
- package/dist/server/handlers/schedules.cjs +1 -1
- package/dist/server/handlers/schedules.d.ts +52 -36
- package/dist/server/handlers/schedules.d.ts.map +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.d.ts +28 -28
- package/dist/server/handlers/scorer-versions.js +3 -3
- package/dist/server/handlers/scores.cjs +1 -1
- package/dist/server/handlers/scores.d.ts +24 -24
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/stored-agent-favorites.cjs +4 -4
- package/dist/server/handlers/stored-agent-favorites.d.ts +8 -8
- package/dist/server/handlers/stored-agent-favorites.js +4 -4
- package/dist/server/handlers/stored-agents.cjs +4 -4
- package/dist/server/handlers/stored-agents.d.ts +140 -44
- package/dist/server/handlers/stored-agents.d.ts.map +1 -1
- package/dist/server/handlers/stored-agents.js +4 -4
- package/dist/server/handlers/stored-mcp-clients.cjs +2 -2
- package/dist/server/handlers/stored-mcp-clients.d.ts +20 -20
- 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.d.ts +20 -20
- package/dist/server/handlers/stored-prompt-blocks.js +2 -2
- package/dist/server/handlers/stored-scorers.cjs +3 -3
- package/dist/server/handlers/stored-scorers.d.ts +20 -20
- package/dist/server/handlers/stored-scorers.js +3 -3
- package/dist/server/handlers/stored-skill-favorites.cjs +3 -3
- package/dist/server/handlers/stored-skill-favorites.d.ts +8 -8
- package/dist/server/handlers/stored-skill-favorites.js +3 -3
- package/dist/server/handlers/stored-skills.cjs +3 -3
- package/dist/server/handlers/stored-skills.d.ts +24 -24
- package/dist/server/handlers/stored-skills.js +3 -3
- package/dist/server/handlers/stored-workspaces.cjs +2 -2
- package/dist/server/handlers/stored-workspaces.d.ts +20 -20
- package/dist/server/handlers/stored-workspaces.js +2 -2
- package/dist/server/handlers/system.cjs +7 -5
- package/dist/server/handlers/system.cjs.map +1 -1
- package/dist/server/handlers/system.d.ts +10 -8
- package/dist/server/handlers/system.d.ts.map +1 -1
- package/dist/server/handlers/system.js +7 -5
- package/dist/server/handlers/system.js.map +1 -1
- package/dist/server/handlers/tool-providers.cjs +1 -1
- package/dist/server/handlers/tool-providers.d.ts +52 -52
- package/dist/server/handlers/tool-providers.js +1 -1
- package/dist/server/handlers/tools.cjs +6 -6
- package/dist/server/handlers/tools.d.ts +26 -20
- package/dist/server/handlers/tools.d.ts.map +1 -1
- package/dist/server/handlers/tools.js +5 -5
- 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.d.ts +32 -32
- package/dist/server/handlers/vector.js +1 -1
- package/dist/server/handlers/workflow-builder.cjs +1 -1
- package/dist/server/handlers/workflow-builder.d.ts +8 -8
- package/dist/server/handlers/workflow-builder.js +1 -1
- package/dist/server/handlers/workflows.cjs +3 -3
- package/dist/server/handlers/workflows.d.ts +108 -108
- package/dist/server/handlers/workflows.js +3 -3
- package/dist/server/handlers/workspace.cjs +2 -2
- package/dist/server/handlers/workspace.d.ts +172 -172
- package/dist/server/handlers/workspace.js +2 -2
- package/dist/server/handlers.cjs +2 -2
- package/dist/server/handlers.js +2 -2
- package/dist/server/schemas/a2a.d.ts +165 -9
- package/dist/server/schemas/a2a.d.ts.map +1 -1
- package/dist/server/schemas/agent-versions.d.ts +70 -10
- package/dist/server/schemas/agent-versions.d.ts.map +1 -1
- package/dist/server/schemas/agents.d.ts +49 -1
- package/dist/server/schemas/agents.d.ts.map +1 -1
- package/dist/server/schemas/datasets.d.ts +8 -4
- package/dist/server/schemas/datasets.d.ts.map +1 -1
- package/dist/server/schemas/feedback.d.ts +3 -3
- package/dist/server/schemas/index.cjs +13 -13
- package/dist/server/schemas/index.js +13 -13
- package/dist/server/schemas/mcp.d.ts +8 -2
- package/dist/server/schemas/mcp.d.ts.map +1 -1
- package/dist/server/schemas/memory-config.d.ts +10 -2
- package/dist/server/schemas/memory-config.d.ts.map +1 -1
- package/dist/server/schemas/memory.d.ts +36 -28
- package/dist/server/schemas/memory.d.ts.map +1 -1
- package/dist/server/schemas/message-history.d.ts +7 -0
- package/dist/server/schemas/message-history.d.ts.map +1 -0
- package/dist/server/schemas/schedules.d.ts +9 -3
- package/dist/server/schemas/schedules.d.ts.map +1 -1
- package/dist/server/schemas/stored-agents.d.ts +140 -20
- package/dist/server/schemas/stored-agents.d.ts.map +1 -1
- package/dist/server/schemas/system.d.ts +2 -0
- package/dist/server/schemas/system.d.ts.map +1 -1
- package/dist/server/schemas/workspace.d.ts +6 -6
- package/dist/server/schemas/workspace.d.ts.map +1 -1
- package/dist/server/server-adapter/api-schema-manifest.d.ts +1 -1
- package/dist/server/server-adapter/index.cjs +4 -3
- package/dist/server/server-adapter/index.cjs.map +1 -1
- package/dist/server/server-adapter/index.d.ts +1 -0
- package/dist/server/server-adapter/index.d.ts.map +1 -1
- package/dist/server/server-adapter/index.js +4 -4
- package/dist/server/server-adapter/index.js.map +1 -1
- package/dist/server/server-adapter/openapi-utils.d.ts +1 -1
- package/dist/server/server-adapter/routes/a2a.d.ts +193 -59
- package/dist/server/server-adapter/routes/a2a.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/agent-builder.d.ts +64 -64
- package/dist/server/server-adapter/routes/channels.d.ts +16 -16
- package/dist/server/server-adapter/routes/conversations.d.ts +19 -19
- package/dist/server/server-adapter/routes/datasets.d.ts +150 -142
- package/dist/server/server-adapter/routes/datasets.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/editor-builder.d.ts +40 -40
- package/dist/server/server-adapter/routes/legacy.d.ts +16 -16
- package/dist/server/server-adapter/routes/logs.d.ts +12 -12
- package/dist/server/server-adapter/routes/mcp.d.ts +54 -42
- package/dist/server/server-adapter/routes/mcp.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/memory.d.ts +176 -152
- package/dist/server/server-adapter/routes/memory.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/observability.d.ts +593 -286
- package/dist/server/server-adapter/routes/observability.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/processor-providers.d.ts +8 -8
- package/dist/server/server-adapter/routes/processors.d.ts +12 -12
- package/dist/server/server-adapter/routes/responses.d.ts +12 -12
- package/dist/server/server-adapter/routes/scorers.d.ts +24 -24
- package/dist/server/server-adapter/routes/stored-mcp-clients.d.ts +48 -48
- package/dist/server/server-adapter/routes/stored-prompt-blocks.d.ts +48 -48
- package/dist/server/server-adapter/routes/stored-scorers.d.ts +48 -48
- package/dist/server/server-adapter/routes/stored-skills.d.ts +32 -32
- package/dist/server/server-adapter/routes/stored-workspaces.d.ts +20 -20
- package/dist/server/server-adapter/routes/system.d.ts +10 -8
- package/dist/server/server-adapter/routes/system.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/tool-providers.d.ts +52 -52
- package/dist/server/server-adapter/routes/tools.d.ts +16 -12
- package/dist/server/server-adapter/routes/tools.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/vectors.d.ts +32 -32
- package/dist/server/server-adapter/routes/workflows.d.ts +100 -100
- package/dist/server/server-adapter/routes/workspace.d.ts +111 -111
- package/dist/{stored-agents-BJMM5f9A.cjs → stored-agents-61cRlWax.cjs} +8 -4
- package/dist/stored-agents-61cRlWax.cjs.map +1 -0
- package/dist/{stored-agents-AC0najKd.js → stored-agents-CuEn_6cd.js} +8 -4
- package/dist/stored-agents-CuEn_6cd.js.map +1 -0
- package/dist/{stored-scorers-CWxW1_mY.cjs → stored-scorers-BLj27wz5.cjs} +2 -2
- package/dist/{stored-scorers-CWxW1_mY.cjs.map → stored-scorers-BLj27wz5.cjs.map} +1 -1
- package/dist/{stored-scorers-B8QVQCCs.js → stored-scorers-D7dAXnFk.js} +2 -2
- package/dist/{stored-scorers-B8QVQCCs.js.map → stored-scorers-D7dAXnFk.js.map} +1 -1
- package/dist/{system-Cfo5a63a.cjs → system-D85p7-oz.cjs} +3 -2
- package/dist/system-D85p7-oz.cjs.map +1 -0
- package/dist/{system-DT2JfUun.js → system-DMAG21IT.js} +3 -2
- package/dist/system-DMAG21IT.js.map +1 -0
- package/dist/{utils-WcR0QSUB.cjs → utils-DbHFc3hG.cjs} +5 -5
- package/dist/{utils-WcR0QSUB.cjs.map → utils-DbHFc3hG.cjs.map} +1 -1
- package/dist/{utils-Duk4hfT_.js → utils-mRt04Bqa.js} +3 -3
- package/dist/{utils-Duk4hfT_.js.map → utils-mRt04Bqa.js.map} +1 -1
- package/dist/{workflow-builder-D5dPsrog.cjs → workflow-builder-ZEU0Rafo.cjs} +4 -4
- package/dist/{workflow-builder-D5dPsrog.cjs.map → workflow-builder-ZEU0Rafo.cjs.map} +1 -1
- package/dist/{workflow-builder-Eape8SyU.js → workflow-builder-fkwRyZUG.js} +4 -4
- package/dist/{workflow-builder-Eape8SyU.js.map → workflow-builder-fkwRyZUG.js.map} +1 -1
- package/dist/{workspace-Cz9hE2ei.cjs → workspace-BE_j73fm.cjs} +21 -7
- package/dist/workspace-BE_j73fm.cjs.map +1 -0
- package/dist/{workspace-S5GiJ3Nx.js → workspace-SmQR_sZ4.js} +21 -7
- package/dist/workspace-SmQR_sZ4.js.map +1 -0
- package/package.json +10 -10
- package/dist/a2a-8C4O2dVJ.js.map +0 -1
- package/dist/a2a-DQ8GeDz4.cjs.map +0 -1
- package/dist/a2a-DUBjstWk.js.map +0 -1
- package/dist/a2a-MPoM5lzS.cjs.map +0 -1
- package/dist/agents-CZE_MSQE.cjs.map +0 -1
- package/dist/agents-ssoMemNs.js.map +0 -1
- package/dist/datasets-CCC2huR0.js.map +0 -1
- package/dist/datasets-zlaJQ9D0.cjs.map +0 -1
- package/dist/dist-BKxbtiJd.cjs.map +0 -1
- package/dist/dist-DOpm-tIl.js.map +0 -1
- package/dist/mcp-BPmrXX9r.cjs.map +0 -1
- package/dist/mcp-B_OMG3Ol.js.map +0 -1
- package/dist/memory-BvKPIpyH.js.map +0 -1
- package/dist/memory-CDYtqQnE.cjs.map +0 -1
- package/dist/observability-new-endpoints-I2OxQzfY.cjs.map +0 -1
- package/dist/observability-new-endpoints-pIq_OWa8.js.map +0 -1
- package/dist/routes-BJZtqLVx.js.map +0 -1
- package/dist/routes-PJ3eKHbs.cjs.map +0 -1
- package/dist/schedules-BzymFGR_.js.map +0 -1
- package/dist/schedules-DaEv0Usj.cjs.map +0 -1
- package/dist/schema-BF_cZG0Y.js +0 -2
- package/dist/schema-C7CvwM1d.cjs +0 -1
- package/dist/stored-agents-AC0najKd.js.map +0 -1
- package/dist/stored-agents-BJMM5f9A.cjs.map +0 -1
- package/dist/system-Cfo5a63a.cjs.map +0 -1
- package/dist/system-DT2JfUun.js.map +0 -1
- package/dist/workspace-Cz9hE2ei.cjs.map +0 -1
- package/dist/workspace-S5GiJ3Nx.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
const require_rolldown_runtime = require("./rolldown-runtime-Bd6kNlEP.cjs");
|
|
2
|
-
const
|
|
3
|
-
require("./schema-
|
|
2
|
+
const require_schema_BwlBcZRB = require("./schema-BwlBcZRB-BLwYP0BY.cjs");
|
|
3
|
+
require("./schema-DM4T8wfR.cjs");
|
|
4
4
|
const require_sync$1 = require("./sync-C4LbbSKR.cjs");
|
|
5
|
-
const require_dist = require("./dist-
|
|
5
|
+
const require_dist = require("./dist-DO5NHh-t.cjs");
|
|
6
6
|
let zod_v4 = require("zod/v4");
|
|
7
7
|
zod_v4 = require_rolldown_runtime.__toESM(zod_v4, 1);
|
|
8
8
|
let _mastra_core_schema = require("@mastra/core/schema");
|
|
@@ -4029,62 +4029,6 @@ async function e() {
|
|
|
4029
4029
|
}((await WebAssembly.instantiate(t)).instance);
|
|
4030
4030
|
}
|
|
4031
4031
|
//#endregion
|
|
4032
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/tokenx/1.3.0/09093cdaeebfe25c39ba9052d6277b45fc99abf5e14e859f60f338f5c5160afd/node_modules/tokenx/dist/index.mjs
|
|
4033
|
-
const PATTERNS = {
|
|
4034
|
-
whitespace: /^\s+$/,
|
|
4035
|
-
cjk: /[\u4E00-\u9FFF\u3400-\u4DBF\u3000-\u303F\uFF00-\uFFEF\u30A0-\u30FF\u2E80-\u2EFF\u31C0-\u31EF\u3200-\u32FF\u3300-\u33FF\uAC00-\uD7AF\u1100-\u11FF\u3130-\u318F\uA960-\uA97F\uD7B0-\uD7FF]/,
|
|
4036
|
-
numeric: /^\d+(?:[.,]\d+)*$/,
|
|
4037
|
-
punctuation: /[.,!?;(){}[\]<>:/\\|@#$%^&*+=`~_-]/,
|
|
4038
|
-
alphanumeric: /^[a-zA-Z0-9\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+$/
|
|
4039
|
-
};
|
|
4040
|
-
const TOKEN_SPLIT_PATTERN = /* @__PURE__ */ new RegExp(`(\\s+|${PATTERNS.punctuation.source}+)`);
|
|
4041
|
-
const DEFAULT_CHARS_PER_TOKEN = 6;
|
|
4042
|
-
const SHORT_TOKEN_THRESHOLD = 3;
|
|
4043
|
-
const DEFAULT_LANGUAGE_CONFIGS = [
|
|
4044
|
-
{
|
|
4045
|
-
pattern: /[äöüßẞ]/i,
|
|
4046
|
-
averageCharsPerToken: 3
|
|
4047
|
-
},
|
|
4048
|
-
{
|
|
4049
|
-
pattern: /[éèêëàâîïôûùüÿçœæáíóúñ]/i,
|
|
4050
|
-
averageCharsPerToken: 3
|
|
4051
|
-
},
|
|
4052
|
-
{
|
|
4053
|
-
pattern: /[ąćęłńóśźżěščřžýůúďťň]/i,
|
|
4054
|
-
averageCharsPerToken: 3.5
|
|
4055
|
-
}
|
|
4056
|
-
];
|
|
4057
|
-
/**
|
|
4058
|
-
* Estimates the number of tokens in a text string using heuristic rules.
|
|
4059
|
-
*/
|
|
4060
|
-
function estimateTokenCount(text, options = {}) {
|
|
4061
|
-
if (!text) return 0;
|
|
4062
|
-
const { defaultCharsPerToken = DEFAULT_CHARS_PER_TOKEN, languageConfigs = DEFAULT_LANGUAGE_CONFIGS } = options;
|
|
4063
|
-
const segments = text.split(TOKEN_SPLIT_PATTERN).filter(Boolean);
|
|
4064
|
-
let tokenCount = 0;
|
|
4065
|
-
for (const segment of segments) tokenCount += estimateSegmentTokens(segment, languageConfigs, defaultCharsPerToken);
|
|
4066
|
-
return tokenCount;
|
|
4067
|
-
}
|
|
4068
|
-
function estimateSegmentTokens(segment, languageConfigs, defaultCharsPerToken) {
|
|
4069
|
-
if (PATTERNS.whitespace.test(segment)) return 0;
|
|
4070
|
-
if (PATTERNS.cjk.test(segment)) return getCharacterCount(segment);
|
|
4071
|
-
if (PATTERNS.numeric.test(segment)) return 1;
|
|
4072
|
-
if (segment.length <= SHORT_TOKEN_THRESHOLD) return 1;
|
|
4073
|
-
if (PATTERNS.punctuation.test(segment)) return segment.length > 1 ? Math.ceil(segment.length / 2) : 1;
|
|
4074
|
-
if (PATTERNS.alphanumeric.test(segment)) {
|
|
4075
|
-
const charsPerToken$1 = getLanguageSpecificCharsPerToken(segment, languageConfigs) ?? defaultCharsPerToken;
|
|
4076
|
-
return Math.ceil(segment.length / charsPerToken$1);
|
|
4077
|
-
}
|
|
4078
|
-
const charsPerToken = getLanguageSpecificCharsPerToken(segment, languageConfigs) ?? defaultCharsPerToken;
|
|
4079
|
-
return Math.ceil(segment.length / charsPerToken);
|
|
4080
|
-
}
|
|
4081
|
-
function getLanguageSpecificCharsPerToken(segment, languageConfigs) {
|
|
4082
|
-
for (const config of languageConfigs) if (config.pattern.test(segment)) return config.averageCharsPerToken;
|
|
4083
|
-
}
|
|
4084
|
-
function getCharacterCount(text) {
|
|
4085
|
-
return Array.from(text).length;
|
|
4086
|
-
}
|
|
4087
|
-
//#endregion
|
|
4088
4032
|
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/diff/8.0.4/6781cdda9837821c30a1f4c4db1d9286b838fe139b78d9658b2471e961b45953/node_modules/diff/libesm/diff/base.js
|
|
4089
4033
|
var import_sync = /* @__PURE__ */ require_rolldown_runtime.__toESM(require_sync$1.require_sync(), 1);
|
|
4090
4034
|
var Diff = class {
|
|
@@ -4694,7 +4638,7 @@ function splitLines(text) {
|
|
|
4694
4638
|
return result;
|
|
4695
4639
|
}
|
|
4696
4640
|
//#endregion
|
|
4697
|
-
//#region ../memory/dist/src-
|
|
4641
|
+
//#region ../memory/dist/src-zTE4189S.js
|
|
4698
4642
|
var __defProp$3 = Object.defineProperty;
|
|
4699
4643
|
var __exportAll = (all, no_symbols) => {
|
|
4700
4644
|
let target = {};
|
|
@@ -22877,6 +22821,410 @@ function safeSlice(str, end) {
|
|
|
22877
22821
|
const safeEnd = code >= 55296 && code <= 56319 ? end - 1 : end;
|
|
22878
22822
|
return str.slice(0, safeEnd);
|
|
22879
22823
|
}
|
|
22824
|
+
const PATTERNS = {
|
|
22825
|
+
whitespace: /^\s+$/,
|
|
22826
|
+
cjk: /[\u4E00-\u9FFF\u3400-\u4DBF\u3000-\u303F\uFF00-\uFFEF\u30A0-\u30FF\u2E80-\u2EFF\u31C0-\u31EF\u3200-\u32FF\u3300-\u33FF\uAC00-\uD7AF\u1100-\u11FF\u3130-\u318F\uA960-\uA97F\uD7B0-\uD7FF]/,
|
|
22827
|
+
numeric: /^\d+(?:[.,]\d+)*$/,
|
|
22828
|
+
punctuation: /[.,!?;(){}[\]<>:/\\|@#$%^&*+=`~_-]/,
|
|
22829
|
+
alphanumeric: /^[a-zA-Z0-9\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+$/
|
|
22830
|
+
};
|
|
22831
|
+
const TOKEN_SPLIT_PATTERN = /* @__PURE__ */ new RegExp(`(\\s+|${PATTERNS.punctuation.source}+)`);
|
|
22832
|
+
const DEFAULT_CHARS_PER_TOKEN = 6;
|
|
22833
|
+
const SHORT_TOKEN_THRESHOLD = 3;
|
|
22834
|
+
const DEFAULT_LANGUAGE_CONFIGS = [
|
|
22835
|
+
{
|
|
22836
|
+
pattern: /[äöüßẞ]/i,
|
|
22837
|
+
averageCharsPerToken: 3
|
|
22838
|
+
},
|
|
22839
|
+
{
|
|
22840
|
+
pattern: /[éèêëàâîïôûùüÿçœæáíóúñ]/i,
|
|
22841
|
+
averageCharsPerToken: 3
|
|
22842
|
+
},
|
|
22843
|
+
{
|
|
22844
|
+
pattern: /[ąćęłńóśźżěščřžýůúďťň]/i,
|
|
22845
|
+
averageCharsPerToken: 3.5
|
|
22846
|
+
}
|
|
22847
|
+
];
|
|
22848
|
+
/**
|
|
22849
|
+
* Estimates the number of tokens in a text string using heuristic rules.
|
|
22850
|
+
*/
|
|
22851
|
+
function estimateTokenCount(text, options = {}) {
|
|
22852
|
+
if (!text) return 0;
|
|
22853
|
+
const { defaultCharsPerToken = DEFAULT_CHARS_PER_TOKEN, languageConfigs = DEFAULT_LANGUAGE_CONFIGS } = options;
|
|
22854
|
+
const segments = text.split(TOKEN_SPLIT_PATTERN).filter(Boolean);
|
|
22855
|
+
let tokenCount = 0;
|
|
22856
|
+
for (const segment of segments) tokenCount += estimateSegmentTokens(segment, languageConfigs, defaultCharsPerToken);
|
|
22857
|
+
return tokenCount;
|
|
22858
|
+
}
|
|
22859
|
+
function estimateSegmentTokens(segment, languageConfigs, defaultCharsPerToken) {
|
|
22860
|
+
if (PATTERNS.whitespace.test(segment)) return 0;
|
|
22861
|
+
if (PATTERNS.cjk.test(segment)) return getCharacterCount(segment);
|
|
22862
|
+
if (PATTERNS.numeric.test(segment)) return 1;
|
|
22863
|
+
if (segment.length <= SHORT_TOKEN_THRESHOLD) return 1;
|
|
22864
|
+
if (PATTERNS.punctuation.test(segment)) return segment.length > 1 ? Math.ceil(segment.length / 2) : 1;
|
|
22865
|
+
if (PATTERNS.alphanumeric.test(segment)) {
|
|
22866
|
+
const charsPerToken$1 = getLanguageSpecificCharsPerToken(segment, languageConfigs) ?? defaultCharsPerToken;
|
|
22867
|
+
return Math.ceil(segment.length / charsPerToken$1);
|
|
22868
|
+
}
|
|
22869
|
+
const charsPerToken = getLanguageSpecificCharsPerToken(segment, languageConfigs) ?? defaultCharsPerToken;
|
|
22870
|
+
return Math.ceil(segment.length / charsPerToken);
|
|
22871
|
+
}
|
|
22872
|
+
function getLanguageSpecificCharsPerToken(segment, languageConfigs) {
|
|
22873
|
+
for (const config of languageConfigs) if (config.pattern.test(segment)) return config.averageCharsPerToken;
|
|
22874
|
+
}
|
|
22875
|
+
function getCharacterCount(text) {
|
|
22876
|
+
return Array.from(text).length;
|
|
22877
|
+
}
|
|
22878
|
+
const DEFAULT_OBSERVER_TOOL_ARGUMENT_MAX_TOKENS = 2e3;
|
|
22879
|
+
const OBSERVER_TOOL_ARGUMENT_INLINE_STRING_MAX_CHARS = 160;
|
|
22880
|
+
const OBSERVER_TOOL_ARGUMENT_MAX_DEPTH = 5;
|
|
22881
|
+
const OBSERVER_TOOL_ARGUMENT_MAX_ENTRIES_PER_CONTAINER = 20;
|
|
22882
|
+
const OBSERVER_TOOL_ARGUMENT_MAX_OUTLINE_ENTRIES = 100;
|
|
22883
|
+
const OBSERVER_TOOL_ARGUMENT_MAX_PATH_CHARS = 160;
|
|
22884
|
+
function isObjectLike$1(value) {
|
|
22885
|
+
return typeof value === "object" && value !== null;
|
|
22886
|
+
}
|
|
22887
|
+
function sanitizeSurrogates(value) {
|
|
22888
|
+
let sanitized = "";
|
|
22889
|
+
for (let index = 0; index < value.length; index++) {
|
|
22890
|
+
const code = value.charCodeAt(index);
|
|
22891
|
+
if (code >= 55296 && code <= 56319) {
|
|
22892
|
+
const next = value.charCodeAt(index + 1);
|
|
22893
|
+
if (next >= 56320 && next <= 57343) {
|
|
22894
|
+
sanitized += value.charAt(index) + value.charAt(index + 1);
|
|
22895
|
+
index++;
|
|
22896
|
+
} else sanitized += "�";
|
|
22897
|
+
continue;
|
|
22898
|
+
}
|
|
22899
|
+
sanitized += code >= 56320 && code <= 57343 ? "�" : value[index];
|
|
22900
|
+
}
|
|
22901
|
+
return sanitized;
|
|
22902
|
+
}
|
|
22903
|
+
function stablePathDigest(value) {
|
|
22904
|
+
let hash = 2166136261;
|
|
22905
|
+
for (let index = 0; index < value.length; index++) hash = Math.imul(hash ^ value.charCodeAt(index), 16777619);
|
|
22906
|
+
return (hash >>> 0).toString(16).padStart(8, "0");
|
|
22907
|
+
}
|
|
22908
|
+
function safeTail(value, length) {
|
|
22909
|
+
let start = Math.max(0, value.length - length);
|
|
22910
|
+
if (start > 0) {
|
|
22911
|
+
const code = value.charCodeAt(start);
|
|
22912
|
+
if (code >= 56320 && code <= 57343) start++;
|
|
22913
|
+
}
|
|
22914
|
+
return value.slice(start);
|
|
22915
|
+
}
|
|
22916
|
+
function truncatePath(path$3) {
|
|
22917
|
+
if (path$3.length <= OBSERVER_TOOL_ARGUMENT_MAX_PATH_CHARS) return path$3;
|
|
22918
|
+
const headLength = 50;
|
|
22919
|
+
const tailLength = 60;
|
|
22920
|
+
const omitted = path$3.length - headLength - tailLength;
|
|
22921
|
+
return `${safeSlice(path$3, headLength)}…[${omitted} chars; ${stablePathDigest(path$3)}]…${safeTail(path$3, tailLength)}`;
|
|
22922
|
+
}
|
|
22923
|
+
function formatPath(parent, key, isArray) {
|
|
22924
|
+
if (isArray) return truncatePath(`${parent}[${key}]`);
|
|
22925
|
+
const stringKey = String(key);
|
|
22926
|
+
const segment = /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(stringKey) ? stringKey : `[${JSON.stringify(stringKey)}]`;
|
|
22927
|
+
return truncatePath(parent ? `${parent}.${segment}` : segment);
|
|
22928
|
+
}
|
|
22929
|
+
function formatPrimitive(value) {
|
|
22930
|
+
if (typeof value === "string") return JSON.stringify(value);
|
|
22931
|
+
if (typeof value === "bigint") return `<bigint> ${value}`;
|
|
22932
|
+
if (typeof value === "symbol" || typeof value === "function") return JSON.stringify(String(value));
|
|
22933
|
+
if (value === void 0) return "<undefined>";
|
|
22934
|
+
if (typeof value === "number" && Object.is(value, -0)) return "-0";
|
|
22935
|
+
return String(value);
|
|
22936
|
+
}
|
|
22937
|
+
function containerSummary(value) {
|
|
22938
|
+
if (!Array.isArray(value)) return "<object>";
|
|
22939
|
+
try {
|
|
22940
|
+
return `<array, ${value.length} ${value.length === 1 ? "item" : "items"}>`;
|
|
22941
|
+
} catch {
|
|
22942
|
+
return "<array, unknown length>";
|
|
22943
|
+
}
|
|
22944
|
+
}
|
|
22945
|
+
function readEntries(value) {
|
|
22946
|
+
const entries = [];
|
|
22947
|
+
try {
|
|
22948
|
+
if (Array.isArray(value)) {
|
|
22949
|
+
const length = value.length;
|
|
22950
|
+
const visibleLength = Math.min(length, OBSERVER_TOOL_ARGUMENT_MAX_ENTRIES_PER_CONTAINER);
|
|
22951
|
+
for (let index = 0; index < visibleLength; index++) {
|
|
22952
|
+
if (!(index in value)) {
|
|
22953
|
+
entries.push({
|
|
22954
|
+
key: index,
|
|
22955
|
+
unavailable: "hole"
|
|
22956
|
+
});
|
|
22957
|
+
continue;
|
|
22958
|
+
}
|
|
22959
|
+
try {
|
|
22960
|
+
entries.push({
|
|
22961
|
+
key: index,
|
|
22962
|
+
value: value[index]
|
|
22963
|
+
});
|
|
22964
|
+
} catch {
|
|
22965
|
+
entries.push({
|
|
22966
|
+
key: index,
|
|
22967
|
+
unavailable: "unreadable"
|
|
22968
|
+
});
|
|
22969
|
+
}
|
|
22970
|
+
}
|
|
22971
|
+
return {
|
|
22972
|
+
entries,
|
|
22973
|
+
hasMore: length > visibleLength,
|
|
22974
|
+
unavailable: false
|
|
22975
|
+
};
|
|
22976
|
+
}
|
|
22977
|
+
let hasMore = false;
|
|
22978
|
+
for (const key in value) {
|
|
22979
|
+
if (!Object.prototype.hasOwnProperty.call(value, key)) continue;
|
|
22980
|
+
if (entries.length >= OBSERVER_TOOL_ARGUMENT_MAX_ENTRIES_PER_CONTAINER) {
|
|
22981
|
+
hasMore = true;
|
|
22982
|
+
break;
|
|
22983
|
+
}
|
|
22984
|
+
try {
|
|
22985
|
+
entries.push({
|
|
22986
|
+
key,
|
|
22987
|
+
value: value[key]
|
|
22988
|
+
});
|
|
22989
|
+
} catch {
|
|
22990
|
+
entries.push({
|
|
22991
|
+
key,
|
|
22992
|
+
unavailable: "unreadable"
|
|
22993
|
+
});
|
|
22994
|
+
}
|
|
22995
|
+
}
|
|
22996
|
+
return {
|
|
22997
|
+
entries,
|
|
22998
|
+
hasMore,
|
|
22999
|
+
unavailable: false
|
|
23000
|
+
};
|
|
23001
|
+
} catch {
|
|
23002
|
+
return {
|
|
23003
|
+
entries,
|
|
23004
|
+
hasMore: false,
|
|
23005
|
+
unavailable: true
|
|
23006
|
+
};
|
|
23007
|
+
}
|
|
23008
|
+
}
|
|
23009
|
+
function fits(text, limits) {
|
|
23010
|
+
return text.length <= limits.maxCharacters && estimateTokenCount(text) <= limits.maxTokens;
|
|
23011
|
+
}
|
|
23012
|
+
function joinEntries(entries, marker) {
|
|
23013
|
+
const lines = [...entries].sort((a, b) => a.order - b.order).map((entry) => entry.text);
|
|
23014
|
+
if (marker) lines.push(marker);
|
|
23015
|
+
return lines.join("\n");
|
|
23016
|
+
}
|
|
23017
|
+
function selectOutlineEntries(entries, limits) {
|
|
23018
|
+
const all = joinEntries(entries);
|
|
23019
|
+
if (fits(all, limits)) return all;
|
|
23020
|
+
const marker = "... [additional argument fields omitted by size limit]";
|
|
23021
|
+
const selected = [];
|
|
23022
|
+
const candidates = [...entries].sort((a, b) => {
|
|
23023
|
+
if (a.depth !== b.depth) return a.depth - b.depth;
|
|
23024
|
+
return estimateTokenCount(a.text) - estimateTokenCount(b.text) || a.text.length - b.text.length || a.order - b.order;
|
|
23025
|
+
});
|
|
23026
|
+
for (const candidate of candidates) if (fits(joinEntries([...selected, candidate], marker), limits)) selected.push(candidate);
|
|
23027
|
+
const rendered = joinEntries(selected, marker);
|
|
23028
|
+
if (fits(rendered, limits)) return rendered;
|
|
23029
|
+
if (fits(marker, limits)) return marker;
|
|
23030
|
+
return fits("…", limits) ? "…" : "";
|
|
23031
|
+
}
|
|
23032
|
+
function indentPreview(value) {
|
|
23033
|
+
return value.split("\n").map((line) => ` | ${line}`).join("\n");
|
|
23034
|
+
}
|
|
23035
|
+
function formatPreview(path$4, value, limits, prefix = "") {
|
|
23036
|
+
const sanitizedValue = sanitizeSurrogates(value);
|
|
23037
|
+
const marker = (visible) => {
|
|
23038
|
+
const omitted = sanitizedValue.length - visible.length;
|
|
23039
|
+
return `${path$4}:\n${indentPreview(visible)}${omitted > 0 ? `\n | ... [${omitted} characters omitted]` : ""}`;
|
|
23040
|
+
};
|
|
23041
|
+
let low = 0;
|
|
23042
|
+
let high = sanitizedValue.length;
|
|
23043
|
+
let best = "";
|
|
23044
|
+
while (low <= high) {
|
|
23045
|
+
const mid = Math.floor((low + high) / 2);
|
|
23046
|
+
const candidate = marker(safeSlice(sanitizedValue, mid));
|
|
23047
|
+
if (fits(prefix ? `${prefix}\n${candidate}` : candidate, limits)) {
|
|
23048
|
+
best = candidate;
|
|
23049
|
+
low = mid + 1;
|
|
23050
|
+
} else high = mid - 1;
|
|
23051
|
+
}
|
|
23052
|
+
return best;
|
|
23053
|
+
}
|
|
23054
|
+
function appendWithinBudget(base, addition, limits) {
|
|
23055
|
+
if (!addition) return;
|
|
23056
|
+
const candidate = base ? `${base}\n${addition}` : addition;
|
|
23057
|
+
return fits(candidate, limits) ? candidate : void 0;
|
|
23058
|
+
}
|
|
23059
|
+
/**
|
|
23060
|
+
* Formats tool arguments for the Observer without allowing a large early value
|
|
23061
|
+
* to hide concise sibling fields. A breadth-first structural outline is selected
|
|
23062
|
+
* before bounded previews of large strings are added.
|
|
23063
|
+
*/
|
|
23064
|
+
function formatToolArgumentsForObserver(value, options) {
|
|
23065
|
+
const limits = {
|
|
23066
|
+
maxTokens: options?.maxTokens ?? DEFAULT_OBSERVER_TOOL_ARGUMENT_MAX_TOKENS,
|
|
23067
|
+
maxCharacters: options?.maxCharacters ?? Number.POSITIVE_INFINITY
|
|
23068
|
+
};
|
|
23069
|
+
if (limits.maxTokens <= 0 || limits.maxCharacters <= 0) return "";
|
|
23070
|
+
if (!isObjectLike$1(value)) {
|
|
23071
|
+
if (typeof value !== "string" || value.length <= OBSERVER_TOOL_ARGUMENT_INLINE_STRING_MAX_CHARS) {
|
|
23072
|
+
const primitive = formatPrimitive(value);
|
|
23073
|
+
return fits(primitive, limits) ? primitive : fits("…", limits) ? "…" : "";
|
|
23074
|
+
}
|
|
23075
|
+
const summary = `<string, ${value.length} characters; preview size-limited>`;
|
|
23076
|
+
const rendered = appendWithinBudget(summary, formatPreview("preview", value, limits, summary), limits);
|
|
23077
|
+
if (rendered) return rendered;
|
|
23078
|
+
if (fits(summary, limits)) return summary;
|
|
23079
|
+
return fits("…", limits) ? "…" : "";
|
|
23080
|
+
}
|
|
23081
|
+
const outline = [];
|
|
23082
|
+
const previews = [];
|
|
23083
|
+
const pending = [{
|
|
23084
|
+
path: "",
|
|
23085
|
+
value,
|
|
23086
|
+
depth: 0,
|
|
23087
|
+
ancestors: /* @__PURE__ */ new Set([value])
|
|
23088
|
+
}];
|
|
23089
|
+
let outlineEntries = 0;
|
|
23090
|
+
let order = 0;
|
|
23091
|
+
let structuralLimitReached = false;
|
|
23092
|
+
while (pending.length > 0 && outlineEntries < OBSERVER_TOOL_ARGUMENT_MAX_OUTLINE_ENTRIES) {
|
|
23093
|
+
const current = pending.shift();
|
|
23094
|
+
const read = readEntries(current.value);
|
|
23095
|
+
if (read.unavailable) {
|
|
23096
|
+
outline.push({
|
|
23097
|
+
text: `${current.path || "arguments"}: [unavailable container]`,
|
|
23098
|
+
depth: current.depth,
|
|
23099
|
+
order: order++
|
|
23100
|
+
});
|
|
23101
|
+
outlineEntries++;
|
|
23102
|
+
continue;
|
|
23103
|
+
}
|
|
23104
|
+
if (read.entries.length === 0 && !read.hasMore) {
|
|
23105
|
+
outline.push({
|
|
23106
|
+
text: `${current.path || "arguments"}: [empty ${Array.isArray(current.value) ? "array" : "object"}]`,
|
|
23107
|
+
depth: current.depth,
|
|
23108
|
+
order: order++
|
|
23109
|
+
});
|
|
23110
|
+
outlineEntries++;
|
|
23111
|
+
continue;
|
|
23112
|
+
}
|
|
23113
|
+
if (read.hasMore) {
|
|
23114
|
+
outline.push({
|
|
23115
|
+
text: `${current.path || (Array.isArray(current.value) ? "items" : "fields")}: ... [additional entries omitted]`,
|
|
23116
|
+
depth: current.depth,
|
|
23117
|
+
order: order++
|
|
23118
|
+
});
|
|
23119
|
+
outlineEntries++;
|
|
23120
|
+
}
|
|
23121
|
+
for (const entry of read.entries) {
|
|
23122
|
+
if (outlineEntries >= OBSERVER_TOOL_ARGUMENT_MAX_OUTLINE_ENTRIES) {
|
|
23123
|
+
structuralLimitReached = true;
|
|
23124
|
+
break;
|
|
23125
|
+
}
|
|
23126
|
+
const path$5 = formatPath(current.path, entry.key, Array.isArray(current.value));
|
|
23127
|
+
outlineEntries++;
|
|
23128
|
+
if (entry.unavailable) {
|
|
23129
|
+
outline.push({
|
|
23130
|
+
text: `${path$5}: [${entry.unavailable}]`,
|
|
23131
|
+
depth: current.depth,
|
|
23132
|
+
order: order++
|
|
23133
|
+
});
|
|
23134
|
+
continue;
|
|
23135
|
+
}
|
|
23136
|
+
const entryValue = entry.value;
|
|
23137
|
+
if (typeof entryValue === "string" && entryValue.length > OBSERVER_TOOL_ARGUMENT_INLINE_STRING_MAX_CHARS) {
|
|
23138
|
+
outline.push({
|
|
23139
|
+
text: `${path$5}: <string, ${entryValue.length} characters; preview size-limited>`,
|
|
23140
|
+
depth: current.depth,
|
|
23141
|
+
order: order++
|
|
23142
|
+
});
|
|
23143
|
+
previews.push({
|
|
23144
|
+
path: path$5,
|
|
23145
|
+
value: entryValue
|
|
23146
|
+
});
|
|
23147
|
+
continue;
|
|
23148
|
+
}
|
|
23149
|
+
if (!isObjectLike$1(entryValue)) {
|
|
23150
|
+
outline.push({
|
|
23151
|
+
text: `${path$5}: ${formatPrimitive(entryValue)}`,
|
|
23152
|
+
depth: current.depth,
|
|
23153
|
+
order: order++
|
|
23154
|
+
});
|
|
23155
|
+
continue;
|
|
23156
|
+
}
|
|
23157
|
+
if (current.ancestors.has(entryValue)) {
|
|
23158
|
+
outline.push({
|
|
23159
|
+
text: `${path$5}: [circular]`,
|
|
23160
|
+
depth: current.depth,
|
|
23161
|
+
order: order++
|
|
23162
|
+
});
|
|
23163
|
+
continue;
|
|
23164
|
+
}
|
|
23165
|
+
const summary = containerSummary(entryValue);
|
|
23166
|
+
if (current.depth >= OBSERVER_TOOL_ARGUMENT_MAX_DEPTH) {
|
|
23167
|
+
outline.push({
|
|
23168
|
+
text: `${path$5}: ${summary} [max depth reached]`,
|
|
23169
|
+
depth: current.depth,
|
|
23170
|
+
order: order++
|
|
23171
|
+
});
|
|
23172
|
+
continue;
|
|
23173
|
+
}
|
|
23174
|
+
outline.push({
|
|
23175
|
+
text: `${path$5}: ${summary}`,
|
|
23176
|
+
depth: current.depth,
|
|
23177
|
+
order: order++
|
|
23178
|
+
});
|
|
23179
|
+
pending.push({
|
|
23180
|
+
path: path$5,
|
|
23181
|
+
value: entryValue,
|
|
23182
|
+
depth: current.depth + 1,
|
|
23183
|
+
ancestors: /* @__PURE__ */ new Set([...current.ancestors, entryValue])
|
|
23184
|
+
});
|
|
23185
|
+
}
|
|
23186
|
+
}
|
|
23187
|
+
if (pending.length > 0 || structuralLimitReached) outline.push({
|
|
23188
|
+
text: "... [additional nested entries omitted by structure limit]",
|
|
23189
|
+
depth: Number.POSITIVE_INFINITY,
|
|
23190
|
+
order: order++
|
|
23191
|
+
});
|
|
23192
|
+
if (previews.length === 0) return selectOutlineEntries(outline, limits);
|
|
23193
|
+
const previewHeader = "Large string previews (size-limited):";
|
|
23194
|
+
const renderedOutline = selectOutlineEntries(outline, limits);
|
|
23195
|
+
const withPreviewHeader = appendWithinBudget(renderedOutline, previewHeader, limits);
|
|
23196
|
+
if (!withPreviewHeader) return renderedOutline;
|
|
23197
|
+
let rendered = withPreviewHeader;
|
|
23198
|
+
let renderedPreviews = 0;
|
|
23199
|
+
let omittedPreviews = 0;
|
|
23200
|
+
for (let index = 0; index < previews.length; index++) {
|
|
23201
|
+
const remainingCount = previews.length - index;
|
|
23202
|
+
const remainingTokens = Math.max(0, limits.maxTokens - estimateTokenCount(rendered));
|
|
23203
|
+
const remainingCharacters = Math.max(0, limits.maxCharacters - rendered.length - 1);
|
|
23204
|
+
const previewLimits = {
|
|
23205
|
+
maxTokens: estimateTokenCount(rendered) + Math.floor(remainingTokens / remainingCount),
|
|
23206
|
+
maxCharacters: rendered.length + 1 + Math.floor(remainingCharacters / remainingCount)
|
|
23207
|
+
};
|
|
23208
|
+
const preview = formatPreview(previews[index].path, previews[index].value, previewLimits, rendered);
|
|
23209
|
+
if (!preview) {
|
|
23210
|
+
omittedPreviews++;
|
|
23211
|
+
continue;
|
|
23212
|
+
}
|
|
23213
|
+
const withPreview = appendWithinBudget(rendered, preview, limits);
|
|
23214
|
+
if (!withPreview) {
|
|
23215
|
+
omittedPreviews++;
|
|
23216
|
+
continue;
|
|
23217
|
+
}
|
|
23218
|
+
rendered = withPreview;
|
|
23219
|
+
renderedPreviews++;
|
|
23220
|
+
}
|
|
23221
|
+
if (renderedPreviews === 0) return renderedOutline;
|
|
23222
|
+
if (omittedPreviews > 0) {
|
|
23223
|
+
const marker = `... [${omittedPreviews} large string ${omittedPreviews === 1 ? "preview" : "previews"} omitted]`;
|
|
23224
|
+
rendered = appendWithinBudget(rendered, marker, limits) ?? rendered;
|
|
23225
|
+
}
|
|
23226
|
+
return rendered;
|
|
23227
|
+
}
|
|
22880
23228
|
const ENCRYPTED_CONTENT_KEY = "encryptedContent";
|
|
22881
23229
|
const ENCRYPTED_CONTENT_REDACTION_THRESHOLD = 256;
|
|
22882
23230
|
function isObjectLike(value) {
|
|
@@ -22954,7 +23302,7 @@ function truncateStringByTokens(text, maxTokens) {
|
|
|
22954
23302
|
return best;
|
|
22955
23303
|
}
|
|
22956
23304
|
function formatToolResultForObserver(value, options) {
|
|
22957
|
-
return truncateStringByTokens(stringifyToolResult(value), options?.maxTokens ??
|
|
23305
|
+
return truncateStringByTokens(stringifyToolResult(value), options?.maxTokens ?? 5e3);
|
|
22958
23306
|
}
|
|
22959
23307
|
/**
|
|
22960
23308
|
* The core extraction instructions for the Observer.
|
|
@@ -23639,9 +23987,52 @@ function getTemporalGapMarkerText(msg) {
|
|
|
23639
23987
|
if (metadata?.reminderType === "temporal-gap" && typeof metadata.gapText === "string") return metadata.gapText;
|
|
23640
23988
|
if (typeof metadata?.systemReminder === "object" && metadata.systemReminder && "type" in metadata.systemReminder && metadata.systemReminder.type === "temporal-gap" && "gapText" in metadata.systemReminder && typeof metadata.systemReminder.gapText === "string") return metadata.systemReminder.gapText;
|
|
23641
23989
|
}
|
|
23642
|
-
function
|
|
23990
|
+
function isCallLikeToolInvocation(invocation) {
|
|
23991
|
+
return invocation.state === "call" || invocation.state === "partial-call" || invocation.state === "approval-requested" || invocation.state === "approval-responded";
|
|
23992
|
+
}
|
|
23993
|
+
function isTerminalToolInvocation(invocation) {
|
|
23994
|
+
return invocation.state === "result" || invocation.state === "output-error" || invocation.state === "output-denied";
|
|
23995
|
+
}
|
|
23996
|
+
function createObserverToolFormattingState(messages) {
|
|
23997
|
+
const exchanges = /* @__PURE__ */ new Map();
|
|
23998
|
+
const occurrences = /* @__PURE__ */ new Map();
|
|
23999
|
+
let occurrence = 0;
|
|
24000
|
+
for (const message of messages) {
|
|
24001
|
+
if (typeof message.content === "string" || !Array.isArray(message.content?.parts)) continue;
|
|
24002
|
+
for (const part of message.content.parts) {
|
|
24003
|
+
if (part.type !== "tool-invocation") continue;
|
|
24004
|
+
const invocation = part.toolInvocation;
|
|
24005
|
+
occurrences.set(part, occurrence);
|
|
24006
|
+
if (!isCallLikeToolInvocation(invocation) && !isTerminalToolInvocation(invocation)) {
|
|
24007
|
+
occurrence++;
|
|
24008
|
+
continue;
|
|
24009
|
+
}
|
|
24010
|
+
const exchange = exchanges.get(invocation.toolCallId) ?? { firstOccurrence: occurrence };
|
|
24011
|
+
if (isCallLikeToolInvocation(invocation) && (invocation.args !== void 0 || exchange.signature === void 0)) exchange.signature = invocation;
|
|
24012
|
+
if (isTerminalToolInvocation(invocation)) exchange.terminal = {
|
|
24013
|
+
...invocation,
|
|
24014
|
+
occurrence
|
|
24015
|
+
};
|
|
24016
|
+
exchanges.set(invocation.toolCallId, exchange);
|
|
24017
|
+
occurrence++;
|
|
24018
|
+
}
|
|
24019
|
+
}
|
|
24020
|
+
for (const exchange of exchanges.values()) if (exchange.terminal?.args !== void 0) exchange.signature = exchange.terminal;
|
|
24021
|
+
else if (!exchange.signature && exchange.terminal) exchange.signature = exchange.terminal;
|
|
24022
|
+
return {
|
|
24023
|
+
exchanges,
|
|
24024
|
+
occurrences,
|
|
24025
|
+
emittedCalls: /* @__PURE__ */ new Set(),
|
|
24026
|
+
emittedOutcomes: /* @__PURE__ */ new Set()
|
|
24027
|
+
};
|
|
24028
|
+
}
|
|
24029
|
+
function formatObserverToolArguments(args, maxCharacters) {
|
|
24030
|
+
if (args === void 0) return maybeTruncate("[arguments unavailable]", maxCharacters);
|
|
24031
|
+
return formatToolArgumentsForObserver(args, { maxCharacters: maxCharacters || void 0 });
|
|
24032
|
+
}
|
|
24033
|
+
function formatObserverMessage(msg, counter, toolFormatting, options) {
|
|
23643
24034
|
const maxLen = options?.maxPartLength;
|
|
23644
|
-
const maxToolResultTokens = options?.maxToolResultTokens ??
|
|
24035
|
+
const maxToolResultTokens = options?.maxToolResultTokens ?? 5e3;
|
|
23645
24036
|
const attachmentFilter = options?.attachmentFilter;
|
|
23646
24037
|
const role = msg.role.charAt(0).toUpperCase() + msg.role.slice(1);
|
|
23647
24038
|
const attachments = [];
|
|
@@ -23668,14 +24059,31 @@ function formatObserverMessage(msg, counter, options) {
|
|
|
23668
24059
|
}
|
|
23669
24060
|
if (part.type === "tool-invocation") {
|
|
23670
24061
|
const inv = part.toolInvocation;
|
|
24062
|
+
const occurrence = toolFormatting.occurrences.get(part);
|
|
24063
|
+
const exchange = toolFormatting.exchanges.get(inv.toolCallId);
|
|
24064
|
+
if (exchange && occurrence === exchange.firstOccurrence && exchange.signature && !toolFormatting.emittedCalls.has(inv.toolCallId)) {
|
|
24065
|
+
toolFormatting.emittedCalls.add(inv.toolCallId);
|
|
24066
|
+
pushLine(`Tool Call ${exchange.signature.toolName}`, formatObserverToolArguments(exchange.signature.args, maxLen), partCreatedAt);
|
|
24067
|
+
}
|
|
23671
24068
|
if (inv.state === "result") {
|
|
23672
24069
|
const { value: resultForObserver } = resolveToolResultValue(part, inv.result);
|
|
23673
24070
|
const { resultWithoutAttachments, attachments: extractedAttachments } = extractToolResultAttachments(resultForObserver, counter, attachmentFilter);
|
|
23674
24071
|
if (extractedAttachments.length > 0) attachments.push(...extractedAttachments);
|
|
23675
|
-
|
|
24072
|
+
if (exchange?.terminal?.occurrence === occurrence && !toolFormatting.emittedOutcomes.has(inv.toolCallId)) {
|
|
24073
|
+
toolFormatting.emittedOutcomes.add(inv.toolCallId);
|
|
24074
|
+
const hasResult = resultWithoutAttachments !== void 0 && (typeof resultWithoutAttachments !== "string" || resultWithoutAttachments.trim().length > 0);
|
|
24075
|
+
const body = inv.isError ? hasResult ? formatToolResultForObserver(resultWithoutAttachments, { maxTokens: maxToolResultTokens }) : inv.errorText?.trim() ? inv.errorText : "Tool execution failed" : hasResult ? formatToolResultForObserver(resultWithoutAttachments, { maxTokens: maxToolResultTokens }) : "[empty result]";
|
|
24076
|
+
pushLine(`${inv.isError ? "Tool Error" : "Tool Result"} ${inv.toolName}`, maybeTruncate(body, maxLen), partCreatedAt);
|
|
24077
|
+
}
|
|
24078
|
+
return;
|
|
24079
|
+
}
|
|
24080
|
+
if (exchange?.terminal?.occurrence === occurrence && !toolFormatting.emittedOutcomes.has(inv.toolCallId)) {
|
|
24081
|
+
toolFormatting.emittedOutcomes.add(inv.toolCallId);
|
|
24082
|
+
if (inv.state === "output-error") pushLine(`Tool Error ${inv.toolName}`, maybeTruncate(inv.errorText?.trim() ? inv.errorText : "Tool execution failed", maxLen), partCreatedAt);
|
|
24083
|
+
else if (inv.state === "output-denied") pushLine(`Tool Denied ${inv.toolName}`, maybeTruncate(inv.approval?.reason?.trim() ? inv.approval.reason : "Tool call was not approved by the user", maxLen), partCreatedAt);
|
|
23676
24084
|
return;
|
|
23677
24085
|
}
|
|
23678
|
-
pushLine(`Tool Call ${inv.toolName}`,
|
|
24086
|
+
if (!exchange) pushLine(`Tool Call ${inv.toolName}`, formatObserverToolArguments(inv.args, maxLen), partCreatedAt);
|
|
23679
24087
|
return;
|
|
23680
24088
|
}
|
|
23681
24089
|
const partType = part.type;
|
|
@@ -23709,10 +24117,11 @@ function formatMessagesForObserver(messages, options) {
|
|
|
23709
24117
|
nextImageId: 1,
|
|
23710
24118
|
nextFileId: 1
|
|
23711
24119
|
};
|
|
24120
|
+
const toolFormatting = createObserverToolFormattingState(messages);
|
|
23712
24121
|
const sections = [];
|
|
23713
24122
|
let context = {};
|
|
23714
24123
|
for (const message of messages) {
|
|
23715
|
-
const formatted = formatObserverMessage(message, counter, options);
|
|
24124
|
+
const formatted = formatObserverMessage(message, counter, toolFormatting, options);
|
|
23716
24125
|
if (formatted.lines.length === 0) continue;
|
|
23717
24126
|
const rendered = formatObserverLines(formatted.lines, context);
|
|
23718
24127
|
if (!rendered.text) continue;
|
|
@@ -23735,13 +24144,14 @@ function buildObserverHistoryMessage(messages, options) {
|
|
|
23735
24144
|
nextImageId: 1,
|
|
23736
24145
|
nextFileId: 1
|
|
23737
24146
|
};
|
|
24147
|
+
const toolFormatting = createObserverToolFormattingState(messages);
|
|
23738
24148
|
const content = [{
|
|
23739
24149
|
type: "text",
|
|
23740
24150
|
text: "## New Message History to Observe\n\n"
|
|
23741
24151
|
}];
|
|
23742
24152
|
let context = {};
|
|
23743
24153
|
messages.forEach((message) => {
|
|
23744
|
-
const formatted = formatObserverMessage(message, counter, options);
|
|
24154
|
+
const formatted = formatObserverMessage(message, counter, toolFormatting, options);
|
|
23745
24155
|
if (formatted.lines.length === 0 && formatted.attachments.length === 0) return;
|
|
23746
24156
|
context = appendFormattedObserverMessage(content, formatted, context);
|
|
23747
24157
|
});
|
|
@@ -23769,10 +24179,11 @@ function buildMultiThreadObserverHistoryMessage(messagesByThread, threadOrder, o
|
|
|
23769
24179
|
const messages = messagesByThread.get(threadId);
|
|
23770
24180
|
if (!messages || messages.length === 0) return;
|
|
23771
24181
|
const threadContent = [];
|
|
24182
|
+
const toolFormatting = createObserverToolFormattingState(messages);
|
|
23772
24183
|
let context = {};
|
|
23773
24184
|
let hasVisibleContent = false;
|
|
23774
24185
|
messages.forEach((message) => {
|
|
23775
|
-
const formatted = formatObserverMessage(message, counter, options);
|
|
24186
|
+
const formatted = formatObserverMessage(message, counter, toolFormatting, options);
|
|
23776
24187
|
if (formatted.lines.length === 0 && formatted.attachments.length === 0) return;
|
|
23777
24188
|
context = appendFormattedObserverMessage(threadContent, formatted, context);
|
|
23778
24189
|
hasVisibleContent = true;
|
|
@@ -24458,15 +24869,14 @@ var ObserverRunner = class {
|
|
|
24458
24869
|
this.mastra = mastra;
|
|
24459
24870
|
}
|
|
24460
24871
|
createAgent(model, isMultiThread = false, memory, extractors = this.observationConfig.extractors ?? []) {
|
|
24461
|
-
|
|
24872
|
+
return new _mastra_core_agent.Agent({
|
|
24462
24873
|
id: isMultiThread ? "multi-thread-observer" : "observational-memory-observer",
|
|
24463
24874
|
name: isMultiThread ? "multi-thread-observer" : "Observer",
|
|
24464
24875
|
instructions: buildObserverSystemPrompt(isMultiThread, this.observationConfig.instruction, this.observationConfig.threadTitle, extractors),
|
|
24465
24876
|
model,
|
|
24466
|
-
...memory ? { memory } : {}
|
|
24877
|
+
...memory ? { memory } : {},
|
|
24878
|
+
...this.mastra ? { mastra: this.mastra } : {}
|
|
24467
24879
|
});
|
|
24468
|
-
if (this.mastra) agent.__registerMastra(this.mastra);
|
|
24469
|
-
return agent;
|
|
24470
24880
|
}
|
|
24471
24881
|
/**
|
|
24472
24882
|
* Extract a router-style model ID (`provider/model`) from a model config.
|
|
@@ -25524,9 +25934,9 @@ function createTimeoutSignal(timeoutMs) {
|
|
|
25524
25934
|
};
|
|
25525
25935
|
}
|
|
25526
25936
|
function getNumericResponseField(value, paths) {
|
|
25527
|
-
for (const path$
|
|
25937
|
+
for (const path$6 of paths) {
|
|
25528
25938
|
let current = value;
|
|
25529
|
-
for (const segment of path$
|
|
25939
|
+
for (const segment of path$6) {
|
|
25530
25940
|
current = getObjectValue(current, segment);
|
|
25531
25941
|
if (current === void 0) break;
|
|
25532
25942
|
}
|
|
@@ -26108,7 +26518,7 @@ var TokenCounter = class TokenCounter {
|
|
|
26108
26518
|
let tokens = 0;
|
|
26109
26519
|
let overheadDelta = 0;
|
|
26110
26520
|
if (invocation.toolName) tokens += this.readOrPersistPartEstimate(part, "tool-call-name", invocation.toolName);
|
|
26111
|
-
if (invocation.args) if (typeof invocation.args === "string") tokens += this.readOrPersistPartEstimate(part, "tool-call-args", invocation.args);
|
|
26521
|
+
if (invocation.args !== void 0) if (typeof invocation.args === "string") tokens += this.readOrPersistPartEstimate(part, "tool-call-args", invocation.args);
|
|
26112
26522
|
else {
|
|
26113
26523
|
const argsJson = JSON.stringify(invocation.args);
|
|
26114
26524
|
tokens += this.readOrPersistPartEstimate(part, "tool-call-args-json", argsJson);
|
|
@@ -26154,8 +26564,11 @@ var TokenCounter = class TokenCounter {
|
|
|
26154
26564
|
}
|
|
26155
26565
|
if (state === "result") {
|
|
26156
26566
|
extraMessageDelta++;
|
|
26567
|
+
const signature = this.countToolCallSignature(part, invocation);
|
|
26568
|
+
tokens += signature.tokens;
|
|
26569
|
+
overheadDelta += signature.overheadDelta;
|
|
26157
26570
|
const { value: resultForCounting, usingStoredModelOutput } = this.resolveToolResultForTokenCounting(part, invocation.result);
|
|
26158
|
-
if (resultForCounting !== void 0) {
|
|
26571
|
+
if (resultForCounting !== void 0 && (typeof resultForCounting !== "string" || resultForCounting.trim().length > 0)) {
|
|
26159
26572
|
const contentTokens = this.countMultimodalToolResultContent(part, resultForCounting);
|
|
26160
26573
|
if (contentTokens !== void 0) tokens += contentTokens;
|
|
26161
26574
|
else {
|
|
@@ -26163,6 +26576,9 @@ var TokenCounter = class TokenCounter {
|
|
|
26163
26576
|
tokens += this.readOrPersistPartEstimate(part, usingStoredModelOutput ? "tool-result-model-output-json" : "tool-result-json", formattedResult);
|
|
26164
26577
|
}
|
|
26165
26578
|
if (typeof resultForCounting !== "string") overheadDelta -= 12;
|
|
26579
|
+
} else {
|
|
26580
|
+
const fallback = invocation.isError ? invocation.errorText?.trim() ? invocation.errorText : "Tool execution failed" : "[empty result]";
|
|
26581
|
+
tokens += this.readOrPersistPartEstimate(part, invocation.isError ? "tool-result-error" : "tool-result-json", fallback);
|
|
26166
26582
|
}
|
|
26167
26583
|
return {
|
|
26168
26584
|
tokens,
|
|
@@ -26172,7 +26588,10 @@ var TokenCounter = class TokenCounter {
|
|
|
26172
26588
|
}
|
|
26173
26589
|
if (state === "output-denied") {
|
|
26174
26590
|
extraMessageDelta++;
|
|
26175
|
-
const
|
|
26591
|
+
const signature = this.countToolCallSignature(part, invocation);
|
|
26592
|
+
tokens += signature.tokens;
|
|
26593
|
+
overheadDelta += signature.overheadDelta;
|
|
26594
|
+
const reason = invocation.approval?.reason?.trim() ? invocation.approval.reason : "Tool call was not approved by the user";
|
|
26176
26595
|
tokens += this.readOrPersistPartEstimate(part, "tool-result-denied", reason);
|
|
26177
26596
|
return {
|
|
26178
26597
|
tokens,
|
|
@@ -26182,7 +26601,10 @@ var TokenCounter = class TokenCounter {
|
|
|
26182
26601
|
}
|
|
26183
26602
|
if (state === "output-error") {
|
|
26184
26603
|
extraMessageDelta++;
|
|
26185
|
-
const
|
|
26604
|
+
const signature = this.countToolCallSignature(part, invocation);
|
|
26605
|
+
tokens += signature.tokens;
|
|
26606
|
+
overheadDelta += signature.overheadDelta;
|
|
26607
|
+
const errorMessage = invocation.errorText?.trim() ? invocation.errorText : "Tool execution failed";
|
|
26186
26608
|
tokens += this.readOrPersistPartEstimate(part, "tool-result-error", errorMessage);
|
|
26187
26609
|
return {
|
|
26188
26610
|
tokens,
|
|
@@ -26209,7 +26631,12 @@ var TokenCounter = class TokenCounter {
|
|
|
26209
26631
|
};
|
|
26210
26632
|
}
|
|
26211
26633
|
/**
|
|
26212
|
-
* Count tokens in a single message
|
|
26634
|
+
* Count tokens in a single message.
|
|
26635
|
+
*
|
|
26636
|
+
* Canonical terminal invocations carry their call signature and outcome in one part. Legacy or
|
|
26637
|
+
* foreign histories may instead repeat the same signature across separate call and result
|
|
26638
|
+
* messages; those signatures are intentionally counted once per message because this API has no
|
|
26639
|
+
* sequence context. The conservative overcount can activate observation earlier, never later.
|
|
26213
26640
|
*/
|
|
26214
26641
|
countMessage(message) {
|
|
26215
26642
|
let payloadTokens = this.countString(message.role);
|
|
@@ -26897,13 +27324,13 @@ function renderFormattedParts(parts, timestamps, options) {
|
|
|
26897
27324
|
tokenOffset: expandedTokens - options.maxTokens
|
|
26898
27325
|
};
|
|
26899
27326
|
}
|
|
26900
|
-
async function recallPart({ memory, threadId, resourceId, cursor, partIndex, charOffset, threadScope, maxTokens = DEFAULT_MAX_RESULT_TOKENS }) {
|
|
27327
|
+
async function recallPart({ memory, threadId, resourceId, cursor, partIndex, charOffset, threadScope, retrievalScope = "thread", maxTokens = DEFAULT_MAX_RESULT_TOKENS }) {
|
|
26901
27328
|
if (!memory || typeof memory.getMemoryStore !== "function") throw new Error("Memory instance is required for recall");
|
|
26902
27329
|
if (!threadId) throw new Error("Thread ID is required for recall");
|
|
26903
27330
|
const resolved = await resolveCursorMessage(memory, cursor, {
|
|
26904
27331
|
resourceId,
|
|
26905
27332
|
threadScope,
|
|
26906
|
-
enforceThreadScope:
|
|
27333
|
+
enforceThreadScope: retrievalScope !== "resource"
|
|
26907
27334
|
});
|
|
26908
27335
|
if ("hint" in resolved) throw new Error(resolved.hint);
|
|
26909
27336
|
const allParts = formatMessageParts(resolved, "high");
|
|
@@ -26914,7 +27341,7 @@ async function recallPart({ memory, threadId, resourceId, cursor, partIndex, cha
|
|
|
26914
27341
|
if (partIndex > Math.max(...allParts.map((p) => p.partIndex))) {
|
|
26915
27342
|
const nextMessage = await getNextVisibleMessage({
|
|
26916
27343
|
memory,
|
|
26917
|
-
threadId,
|
|
27344
|
+
threadId: resolved.threadId ?? threadId,
|
|
26918
27345
|
resourceId,
|
|
26919
27346
|
after: resolved.createdAt
|
|
26920
27347
|
});
|
|
@@ -26953,7 +27380,7 @@ async function recallPart({ memory, threadId, resourceId, cursor, partIndex, cha
|
|
|
26953
27380
|
note
|
|
26954
27381
|
};
|
|
26955
27382
|
}
|
|
26956
|
-
async function recallMessages({ memory, threadId, resourceId, cursor, page = 1, limit = 20, detail = "low", partType, toolName, threadScope, maxTokens = DEFAULT_MAX_RESULT_TOKENS }) {
|
|
27383
|
+
async function recallMessages({ memory, threadId, resourceId, cursor, page = 1, limit = 20, detail = "low", partType, toolName, threadScope, retrievalScope = "thread", maxTokens = DEFAULT_MAX_RESULT_TOKENS }) {
|
|
26957
27384
|
if (!memory) throw new Error("Memory instance is required for recall");
|
|
26958
27385
|
if (!threadId) throw new Error("Thread ID is required for recall");
|
|
26959
27386
|
if (typeof memory.getMemoryStore !== "function") throw new Error("recall requires a Memory instance with storage access");
|
|
@@ -26964,7 +27391,7 @@ async function recallMessages({ memory, threadId, resourceId, cursor, page = 1,
|
|
|
26964
27391
|
const resolved = await resolveCursorMessage(memory, cursor, {
|
|
26965
27392
|
resourceId,
|
|
26966
27393
|
threadScope,
|
|
26967
|
-
enforceThreadScope:
|
|
27394
|
+
enforceThreadScope: retrievalScope === "thread"
|
|
26968
27395
|
});
|
|
26969
27396
|
if ("hint" in resolved) return {
|
|
26970
27397
|
messages: resolved.hint,
|
|
@@ -26981,7 +27408,7 @@ async function recallMessages({ memory, threadId, resourceId, cursor, page = 1,
|
|
|
26981
27408
|
const anchor = resolved;
|
|
26982
27409
|
const crossThreadId = anchor.threadId && anchor.threadId !== threadId ? anchor.threadId : void 0;
|
|
26983
27410
|
if (crossThreadId && threadScope) return {
|
|
26984
|
-
messages: `Cursor does not belong to the active thread. Expected thread "${threadId}" but cursor "${cursor}" belongs to "${anchor.threadId}". Pass threadId="${anchor.threadId}" to browse that thread
|
|
27411
|
+
messages: `Cursor does not belong to the active thread. Expected thread "${threadId}" but cursor "${cursor}" belongs to "${anchor.threadId}". Pass threadId="${anchor.threadId}" to browse that thread.`,
|
|
26985
27412
|
count: 0,
|
|
26986
27413
|
cursor,
|
|
26987
27414
|
page: normalizedPage,
|
|
@@ -27140,7 +27567,8 @@ async function recallThreadFromStart({ memory, threadId, resourceId, page = 1, l
|
|
|
27140
27567
|
};
|
|
27141
27568
|
}
|
|
27142
27569
|
const recallTool = (_memoryConfig, options) => {
|
|
27143
|
-
const
|
|
27570
|
+
const retrievalScope = options?.retrievalScope ?? "thread";
|
|
27571
|
+
const isResourceScope = retrievalScope === "resource";
|
|
27144
27572
|
const searchEnabled = options?.searchEnabled ?? true;
|
|
27145
27573
|
const description = isResourceScope ? `Browse conversation history. Use mode="threads" to list all threads for the current user. Use mode="messages" (default) to browse messages in the current thread or pass threadId to browse another thread in the active resource. When mode="messages" has no cursor or threadId, it defaults to the current thread and says so at the top of the result. If you pass only a cursor, it must belong to the current thread.${searchEnabled ? " Use mode=\"search\" to find messages by content across all threads." : ""}` : `Browse conversation history in the current thread. Use mode="messages" (default) to page through messages near a cursor.${searchEnabled ? " Use mode=\"search\" to find messages by content in this thread." : ""} Use mode="threads" to get the current thread's ID and title.`;
|
|
27146
27574
|
const modeEnum = searchEnabled ? [
|
|
@@ -27351,23 +27779,25 @@ const recallTool = (_memoryConfig, options) => {
|
|
|
27351
27779
|
if (partIndex !== void 0 && partIndex !== null) return recallPart({
|
|
27352
27780
|
memory,
|
|
27353
27781
|
threadId: targetThreadId,
|
|
27354
|
-
resourceId
|
|
27782
|
+
resourceId,
|
|
27355
27783
|
cursor,
|
|
27356
27784
|
partIndex,
|
|
27357
27785
|
charOffset,
|
|
27358
|
-
threadScope
|
|
27786
|
+
threadScope,
|
|
27787
|
+
retrievalScope
|
|
27359
27788
|
});
|
|
27360
27789
|
return recallMessages({
|
|
27361
27790
|
memory,
|
|
27362
27791
|
threadId: targetThreadId,
|
|
27363
|
-
resourceId
|
|
27792
|
+
resourceId,
|
|
27364
27793
|
cursor,
|
|
27365
27794
|
page,
|
|
27366
27795
|
limit,
|
|
27367
27796
|
detail: detail ?? "low",
|
|
27368
27797
|
partType,
|
|
27369
27798
|
toolName,
|
|
27370
|
-
threadScope
|
|
27799
|
+
threadScope,
|
|
27800
|
+
retrievalScope
|
|
27371
27801
|
});
|
|
27372
27802
|
}
|
|
27373
27803
|
});
|
|
@@ -27427,7 +27857,7 @@ const updateWorkingMemoryTool = (memoryConfig) => {
|
|
|
27427
27857
|
};
|
|
27428
27858
|
if (schema) {
|
|
27429
27859
|
const standardSchema = (0, _mastra_core_schema.isStandardSchemaWithJSON)(schema) ? schema : (0, _mastra_core_schema.toStandardSchema)(schema);
|
|
27430
|
-
const jsonSchema =
|
|
27860
|
+
const jsonSchema = require_schema_BwlBcZRB.standardSchemaToJSONSchema(standardSchema, { io: "input" });
|
|
27431
27861
|
delete jsonSchema.$schema;
|
|
27432
27862
|
const wrappedJsonSchema = {
|
|
27433
27863
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
@@ -28453,7 +28883,8 @@ function sortThreadsByOldestMessage(messagesByThread) {
|
|
|
28453
28883
|
function stripThreadTags(observations) {
|
|
28454
28884
|
return observations.replace(/<\/?thread\b[^>]{0,1024}>/gi, "").trim();
|
|
28455
28885
|
}
|
|
28456
|
-
const
|
|
28886
|
+
const OBSERVATION_GROUP_OPEN = "<observation-group";
|
|
28887
|
+
const OBSERVATION_GROUP_CLOSE = "</observation-group>";
|
|
28457
28888
|
const ATTRIBUTE_PATTERN = /([\w][\w-]*)="([^"]*)"/g;
|
|
28458
28889
|
const REFLECTION_GROUP_SPLIT_PATTERN = /^##\s+Group\s+/m;
|
|
28459
28890
|
function parseObservationGroupAttributes(attributeString) {
|
|
@@ -28464,6 +28895,81 @@ function parseObservationGroupAttributes(attributeString) {
|
|
|
28464
28895
|
}
|
|
28465
28896
|
return attributes;
|
|
28466
28897
|
}
|
|
28898
|
+
function isLineStart(observations, index) {
|
|
28899
|
+
return index === 0 || observations[index - 1] === "\n";
|
|
28900
|
+
}
|
|
28901
|
+
function scanObservationGroupTags(observations) {
|
|
28902
|
+
const tags = [];
|
|
28903
|
+
const incompleteOpenings = [];
|
|
28904
|
+
let cursor = 0;
|
|
28905
|
+
let closeFloor = 0;
|
|
28906
|
+
while (cursor < observations.length) {
|
|
28907
|
+
const start = observations.indexOf(OBSERVATION_GROUP_OPEN, cursor);
|
|
28908
|
+
if (start === -1) break;
|
|
28909
|
+
const attributesStart = start + 18;
|
|
28910
|
+
if (!/\s/.test(observations[attributesStart] ?? "")) {
|
|
28911
|
+
cursor = attributesStart;
|
|
28912
|
+
continue;
|
|
28913
|
+
}
|
|
28914
|
+
const openEnd = observations.indexOf(">", attributesStart);
|
|
28915
|
+
if (openEnd === -1) break;
|
|
28916
|
+
const closeStart = observations.indexOf(OBSERVATION_GROUP_CLOSE, Math.max(openEnd + 1, closeFloor));
|
|
28917
|
+
if (closeStart === -1) {
|
|
28918
|
+
if (isLineStart(observations, start)) incompleteOpenings.push({
|
|
28919
|
+
start,
|
|
28920
|
+
end: openEnd + 1
|
|
28921
|
+
});
|
|
28922
|
+
closeFloor = observations.length;
|
|
28923
|
+
cursor = openEnd + 1;
|
|
28924
|
+
continue;
|
|
28925
|
+
}
|
|
28926
|
+
const nestedStart = observations.indexOf(OBSERVATION_GROUP_OPEN, openEnd + 1);
|
|
28927
|
+
if (nestedStart !== -1 && nestedStart < closeStart && isLineStart(observations, nestedStart)) {
|
|
28928
|
+
incompleteOpenings.push({
|
|
28929
|
+
start,
|
|
28930
|
+
end: openEnd + 1
|
|
28931
|
+
});
|
|
28932
|
+
closeFloor = closeStart;
|
|
28933
|
+
cursor = nestedStart;
|
|
28934
|
+
continue;
|
|
28935
|
+
}
|
|
28936
|
+
tags.push({
|
|
28937
|
+
start,
|
|
28938
|
+
end: closeStart + 20,
|
|
28939
|
+
attributeString: observations.slice(attributesStart, openEnd),
|
|
28940
|
+
content: observations.slice(openEnd + 1, closeStart)
|
|
28941
|
+
});
|
|
28942
|
+
closeFloor = closeStart;
|
|
28943
|
+
cursor = closeStart + 20;
|
|
28944
|
+
}
|
|
28945
|
+
return {
|
|
28946
|
+
tags,
|
|
28947
|
+
incompleteOpenings
|
|
28948
|
+
};
|
|
28949
|
+
}
|
|
28950
|
+
function replaceObservationGroupTags(observations, replace) {
|
|
28951
|
+
const { tags, incompleteOpenings } = scanObservationGroupTags(observations);
|
|
28952
|
+
const parts = [];
|
|
28953
|
+
let cursor = 0;
|
|
28954
|
+
let openingIndex = 0;
|
|
28955
|
+
const skipIncompleteOpeningsBefore = (limit) => {
|
|
28956
|
+
while (openingIndex < incompleteOpenings.length && incompleteOpenings[openingIndex].start < limit) {
|
|
28957
|
+
const opening = incompleteOpenings[openingIndex];
|
|
28958
|
+
openingIndex++;
|
|
28959
|
+
if (opening.start < cursor) continue;
|
|
28960
|
+
parts.push(observations.slice(cursor, opening.start));
|
|
28961
|
+
cursor = opening.end;
|
|
28962
|
+
}
|
|
28963
|
+
};
|
|
28964
|
+
for (const tag of tags) {
|
|
28965
|
+
skipIncompleteOpeningsBefore(tag.start);
|
|
28966
|
+
parts.push(observations.slice(cursor, tag.start), replace(tag));
|
|
28967
|
+
cursor = tag.end;
|
|
28968
|
+
}
|
|
28969
|
+
skipIncompleteOpeningsBefore(Number.POSITIVE_INFINITY);
|
|
28970
|
+
parts.push(observations.slice(cursor));
|
|
28971
|
+
return parts.join("");
|
|
28972
|
+
}
|
|
28467
28973
|
function parseReflectionObservationGroupSections(content) {
|
|
28468
28974
|
const normalizedContent = content.trim();
|
|
28469
28975
|
if (!normalizedContent || !REFLECTION_GROUP_SPLIT_PATTERN.test(normalizedContent)) return [];
|
|
@@ -28488,9 +28994,8 @@ function wrapInObservationGroup(observations, range, id = generateAnchorId(), _s
|
|
|
28488
28994
|
function parseObservationGroups(observations) {
|
|
28489
28995
|
if (!observations) return [];
|
|
28490
28996
|
const groups = [];
|
|
28491
|
-
|
|
28492
|
-
|
|
28493
|
-
const attributes = parseObservationGroupAttributes(match[1] ?? "");
|
|
28997
|
+
for (const tag of scanObservationGroupTags(observations).tags) {
|
|
28998
|
+
const attributes = parseObservationGroupAttributes(tag.attributeString);
|
|
28494
28999
|
const id = attributes.id;
|
|
28495
29000
|
const range = attributes.range;
|
|
28496
29001
|
if (!id || !range) continue;
|
|
@@ -28498,54 +29003,96 @@ function parseObservationGroups(observations) {
|
|
|
28498
29003
|
id,
|
|
28499
29004
|
range,
|
|
28500
29005
|
kind: attributes.kind,
|
|
28501
|
-
content:
|
|
29006
|
+
content: tag.content.trim()
|
|
28502
29007
|
});
|
|
28503
29008
|
}
|
|
28504
29009
|
return groups;
|
|
28505
29010
|
}
|
|
28506
29011
|
function stripObservationGroups(observations) {
|
|
28507
29012
|
if (!observations) return observations;
|
|
28508
|
-
return observations
|
|
29013
|
+
return replaceObservationGroupTags(observations, (tag) => tag.content.trim()).replace(/\n{3,}/g, "\n\n").trim();
|
|
28509
29014
|
}
|
|
28510
29015
|
function getRangeSegments(range) {
|
|
28511
29016
|
return range.split(",").map((segment) => segment.trim()).filter(Boolean);
|
|
28512
29017
|
}
|
|
29018
|
+
function getRangeEndpoints(segment) {
|
|
29019
|
+
const parts = segment.split(":").map((part) => part.trim());
|
|
29020
|
+
if (parts.length !== 2 || !parts[0] || !parts[1]) return null;
|
|
29021
|
+
return {
|
|
29022
|
+
start: parts[0],
|
|
29023
|
+
end: parts[1]
|
|
29024
|
+
};
|
|
29025
|
+
}
|
|
29026
|
+
/**
|
|
29027
|
+
* `buildMessageRange` produces opaque UUID endpoints, so those segments cannot be ordered by value.
|
|
29028
|
+
* Spanning from the first start to the last end keeps reflected metadata bounded — the full segment
|
|
29029
|
+
* list is deliberately not preserved (#14791). Segments that are not `start:end` pairs are left as
|
|
29030
|
+
* they are rather than being joined into a fabricated span.
|
|
29031
|
+
*/
|
|
29032
|
+
function spanRangeSegments(segments) {
|
|
29033
|
+
const endpoints = segments.map(getRangeEndpoints);
|
|
29034
|
+
if (endpoints.some((endpoint) => endpoint === null)) return segments.join(",");
|
|
29035
|
+
const first = endpoints[0];
|
|
29036
|
+
const last = endpoints.at(-1);
|
|
29037
|
+
return `${first.start}:${last.end}`;
|
|
29038
|
+
}
|
|
28513
29039
|
function combineObservationGroupRanges(groups) {
|
|
28514
|
-
const segments = groups.flatMap((group) => getRangeSegments(group.range));
|
|
29040
|
+
const segments = Array.from(new Set(groups.flatMap((group) => getRangeSegments(group.range))));
|
|
28515
29041
|
if (segments.length === 0) return "";
|
|
28516
|
-
const
|
|
28517
|
-
|
|
28518
|
-
|
|
28519
|
-
|
|
28520
|
-
|
|
28521
|
-
|
|
29042
|
+
const numericEndpoints = [];
|
|
29043
|
+
if (!segments.every((segment) => {
|
|
29044
|
+
const endpoints = getRangeEndpoints(segment);
|
|
29045
|
+
if (!endpoints || !/^\d+$/.test(endpoints.start) || !/^\d+$/.test(endpoints.end)) return false;
|
|
29046
|
+
const start = {
|
|
29047
|
+
label: endpoints.start,
|
|
29048
|
+
value: Number(endpoints.start)
|
|
29049
|
+
};
|
|
29050
|
+
const end = {
|
|
29051
|
+
label: endpoints.end,
|
|
29052
|
+
value: Number(endpoints.end)
|
|
29053
|
+
};
|
|
29054
|
+
if (!Number.isSafeInteger(start.value) || !Number.isSafeInteger(end.value)) return false;
|
|
29055
|
+
numericEndpoints.push(start.value <= end.value ? {
|
|
29056
|
+
start,
|
|
29057
|
+
end
|
|
29058
|
+
} : {
|
|
29059
|
+
start: end,
|
|
29060
|
+
end: start
|
|
29061
|
+
});
|
|
29062
|
+
return true;
|
|
29063
|
+
})) return spanRangeSegments(segments);
|
|
29064
|
+
const first = numericEndpoints.reduce((lowest, pair) => pair.start.value < lowest.start.value ? pair : lowest);
|
|
29065
|
+
const last = numericEndpoints.reduce((highest, pair) => pair.end.value > highest.end.value ? pair : highest);
|
|
29066
|
+
return `${first.start.label}:${last.end.label}`;
|
|
28522
29067
|
}
|
|
28523
29068
|
function renderObservationGroupsForReflection(observations) {
|
|
28524
|
-
|
|
28525
|
-
|
|
28526
|
-
|
|
28527
|
-
|
|
28528
|
-
|
|
28529
|
-
if (!group) return content.trim();
|
|
28530
|
-
return `## Group \`${group.id}\`\n_range: \`${group.range}\`_\n\n${group.content}`;
|
|
29069
|
+
if (parseObservationGroups(observations).length === 0) return null;
|
|
29070
|
+
return replaceObservationGroupTags(observations, (tag) => {
|
|
29071
|
+
const attributes = parseObservationGroupAttributes(tag.attributeString);
|
|
29072
|
+
if (!attributes.id || !attributes.range) return tag.content.trim();
|
|
29073
|
+
return `## Group \`${attributes.id}\`\n_range: \`${attributes.range}\`_\n\n${tag.content.trim()}`;
|
|
28531
29074
|
}).replace(/\n{3,}/g, "\n\n").trim();
|
|
28532
29075
|
}
|
|
28533
29076
|
function getCanonicalGroupId(sectionHeading, fallbackIndex) {
|
|
28534
29077
|
return sectionHeading.match(/`([^`]+)`/)?.[1]?.trim() || `derived-group-${fallbackIndex + 1}`;
|
|
28535
29078
|
}
|
|
29079
|
+
function getContentLines(content) {
|
|
29080
|
+
return content.split("\n").map((line) => line.trim()).filter(Boolean);
|
|
29081
|
+
}
|
|
28536
29082
|
function deriveObservationGroupProvenance(content, groups) {
|
|
28537
29083
|
const sections = parseReflectionObservationGroupSections(content);
|
|
28538
29084
|
if (sections.length === 0 || groups.length === 0) return [];
|
|
28539
29085
|
return sections.map((section, index) => {
|
|
28540
|
-
const
|
|
28541
|
-
const
|
|
28542
|
-
|
|
28543
|
-
|
|
29086
|
+
const canonicalGroupId = getCanonicalGroupId(section.heading, index);
|
|
29087
|
+
const identifiedGroup = groups.find((group) => group.id === canonicalGroupId);
|
|
29088
|
+
const bodyLines = new Set(getContentLines(section.body));
|
|
29089
|
+
const matchingGroups = groups.filter((group) => getContentLines(group.content).some((line) => bodyLines.has(line)));
|
|
28544
29090
|
const fallbackGroup = groups[Math.min(index, groups.length - 1)];
|
|
28545
|
-
const
|
|
29091
|
+
const identifiedLines = new Set(getContentLines(identifiedGroup?.content ?? ""));
|
|
29092
|
+
const contributingGroups = identifiedGroup ? matchingGroups.filter((group) => group.id !== identifiedGroup.id && getContentLines(group.content).some((line) => bodyLines.has(line) && !identifiedLines.has(line))) : [];
|
|
28546
29093
|
return {
|
|
28547
|
-
id:
|
|
28548
|
-
range: combineObservationGroupRanges(
|
|
29094
|
+
id: canonicalGroupId,
|
|
29095
|
+
range: combineObservationGroupRanges(identifiedGroup ? groups.filter((group) => group === identifiedGroup || contributingGroups.includes(group)) : matchingGroups.length > 0 ? matchingGroups : fallbackGroup ? [fallbackGroup] : []),
|
|
28549
29096
|
kind: "reflection",
|
|
28550
29097
|
content: section.body
|
|
28551
29098
|
};
|
|
@@ -28968,6 +29515,21 @@ var ObservationStrategy = class ObservationStrategy {
|
|
|
28968
29515
|
return false;
|
|
28969
29516
|
}
|
|
28970
29517
|
};
|
|
29518
|
+
/**
|
|
29519
|
+
* Resolve the thread title an Observational Memory cycle should persist.
|
|
29520
|
+
*
|
|
29521
|
+
* Returns the trimmed candidate when it is a new, long-enough title, or
|
|
29522
|
+
* `undefined` when the current title must stay — including when the user
|
|
29523
|
+
* pinned it via `session.thread.rename()`, which sets the
|
|
29524
|
+
* `titlePinned` thread metadata flag.
|
|
29525
|
+
*/
|
|
29526
|
+
function resolveThreadTitleUpdate(thread, generatedTitle) {
|
|
29527
|
+
const candidate = generatedTitle?.trim();
|
|
29528
|
+
if (!candidate || candidate.length < 3) return void 0;
|
|
29529
|
+
if ((0, _mastra_core_memory.isThreadTitlePinned)(thread?.metadata)) return void 0;
|
|
29530
|
+
if (candidate === thread?.title?.trim()) return void 0;
|
|
29531
|
+
return candidate;
|
|
29532
|
+
}
|
|
28971
29533
|
var SyncObservationStrategy = class extends ObservationStrategy {
|
|
28972
29534
|
startedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
28973
29535
|
lastMessage;
|
|
@@ -29116,11 +29678,15 @@ var SyncObservationStrategy = class extends ObservationStrategy {
|
|
|
29116
29678
|
async persist(processed) {
|
|
29117
29679
|
const { record, threadId, resourceId, messages } = this.opts;
|
|
29118
29680
|
const thread = await this.storage.getThreadById({ threadId });
|
|
29681
|
+
if (!await this.storage.getObservationalMemory(record.threadId, record.resourceId)) {
|
|
29682
|
+
omDebug(`[OM:sync-obs] skipping persist for thread ${threadId}: observational memory record is gone`);
|
|
29683
|
+
return;
|
|
29684
|
+
}
|
|
29119
29685
|
let threadUpdateMarker;
|
|
29120
29686
|
if (thread) {
|
|
29121
29687
|
const oldTitle = thread.title?.trim();
|
|
29122
|
-
const newTitle = processed.threadTitle
|
|
29123
|
-
const shouldUpdateThreadTitle =
|
|
29688
|
+
const newTitle = resolveThreadTitleUpdate(thread, processed.threadTitle);
|
|
29689
|
+
const shouldUpdateThreadTitle = newTitle !== void 0;
|
|
29124
29690
|
const previousOmMetadata = (0, _mastra_core_memory.getThreadOMMetadata)(thread.metadata);
|
|
29125
29691
|
const metadataUpdate = buildThreadMetadataFromExtractedValues(processed.extractors ?? this.observationConfig.extractors, processed.extractedValues);
|
|
29126
29692
|
const newMetadata = (0, _mastra_core_memory.setThreadOMMetadata)(thread.metadata, {
|
|
@@ -29295,6 +29861,10 @@ var AsyncBufferObservationStrategy = class extends ObservationStrategy {
|
|
|
29295
29861
|
async persist(processed) {
|
|
29296
29862
|
if (!processed.observations) return;
|
|
29297
29863
|
const { record, threadId, resourceId, messages } = this.opts;
|
|
29864
|
+
if (!await this.storage.getObservationalMemory(record.threadId, record.resourceId)) {
|
|
29865
|
+
omDebug(`[OM:asyncBuffer] skipping persist for thread ${threadId}: observational memory record is gone`);
|
|
29866
|
+
return;
|
|
29867
|
+
}
|
|
29298
29868
|
const messageTokens = await this.tokenCounter.countMessagesAsync(messages);
|
|
29299
29869
|
await withRetry(() => this.storage.updateBufferedObservations({
|
|
29300
29870
|
id: record.id,
|
|
@@ -29317,13 +29887,14 @@ var AsyncBufferObservationStrategy = class extends ObservationStrategy {
|
|
|
29317
29887
|
abortSignal: this.opts.abortSignal
|
|
29318
29888
|
});
|
|
29319
29889
|
await this.indexObservationGroups(processed.observations, threadId, resourceId, processed.lastObservedAt);
|
|
29320
|
-
const
|
|
29321
|
-
const hasValidThreadTitle = !!
|
|
29890
|
+
const candidateTitle = processed.threadTitle?.trim();
|
|
29891
|
+
const hasValidThreadTitle = !!candidateTitle && candidateTitle.length >= 3;
|
|
29322
29892
|
if (hasValidThreadTitle || processed.extractedValues) {
|
|
29323
29893
|
const thread = await this.storage.getThreadById({ threadId });
|
|
29324
29894
|
if (thread) {
|
|
29325
29895
|
const oldTitle = thread.title?.trim();
|
|
29326
|
-
const
|
|
29896
|
+
const newTitle = resolveThreadTitleUpdate(thread, candidateTitle);
|
|
29897
|
+
const shouldUpdateThreadTitle = newTitle !== void 0;
|
|
29327
29898
|
const previousOmMetadata = (0, _mastra_core_memory.getThreadOMMetadata)(thread.metadata);
|
|
29328
29899
|
const metadataUpdate = buildThreadMetadataFromExtractedValues(processed.extractors ?? this.observationConfig.extractors, processed.extractedValues);
|
|
29329
29900
|
const newMetadata = (0, _mastra_core_memory.setThreadOMMetadata)(thread.metadata, {
|
|
@@ -29678,8 +30249,8 @@ var ResourceScopedObservationStrategy = class extends ObservationStrategy {
|
|
|
29678
30249
|
const thread = await this.storage.getThreadById({ threadId: update.threadId });
|
|
29679
30250
|
if (thread) {
|
|
29680
30251
|
const oldTitle = thread.title?.trim();
|
|
29681
|
-
const newTitle = update.threadTitle
|
|
29682
|
-
const shouldUpdateThreadTitle =
|
|
30252
|
+
const newTitle = resolveThreadTitleUpdate(thread, update.threadTitle);
|
|
30253
|
+
const shouldUpdateThreadTitle = newTitle !== void 0;
|
|
29683
30254
|
const previousOmMetadata = (0, _mastra_core_memory.getThreadOMMetadata)(thread.metadata);
|
|
29684
30255
|
const metadataUpdate = buildThreadMetadataFromExtractedValues(update.extractors ?? this.observationConfig.extractors, update.extracted);
|
|
29685
30256
|
const newMetadata = (0, _mastra_core_memory.setThreadOMMetadata)(thread.metadata, {
|
|
@@ -30275,6 +30846,10 @@ var ObservationTurn = class {
|
|
|
30275
30846
|
if (!this._context) throw new Error("Turn not started — call start() first");
|
|
30276
30847
|
return this._context;
|
|
30277
30848
|
}
|
|
30849
|
+
/** Whether the turn has been ended and can no longer accept steps. */
|
|
30850
|
+
get ended() {
|
|
30851
|
+
return this._ended;
|
|
30852
|
+
}
|
|
30278
30853
|
/** The current step, if one exists. */
|
|
30279
30854
|
get currentStep() {
|
|
30280
30855
|
return this._currentStep;
|
|
@@ -30815,15 +31390,14 @@ var ReflectorRunner = class {
|
|
|
30815
31390
|
this.mastra = mastra;
|
|
30816
31391
|
}
|
|
30817
31392
|
createAgent(model, memory, extractors = this.reflectionConfig.extractors) {
|
|
30818
|
-
|
|
31393
|
+
return new _mastra_core_agent.Agent({
|
|
30819
31394
|
id: "observational-memory-reflector",
|
|
30820
31395
|
name: "Reflector",
|
|
30821
31396
|
instructions: buildReflectorSystemPrompt(this.reflectionConfig.instruction, extractors),
|
|
30822
31397
|
model,
|
|
30823
|
-
...memory ? { memory } : {}
|
|
31398
|
+
...memory ? { memory } : {},
|
|
31399
|
+
...this.mastra ? { mastra: this.mastra } : {}
|
|
30824
31400
|
});
|
|
30825
|
-
if (this.mastra) agent.__registerMastra(this.mastra);
|
|
30826
|
-
return agent;
|
|
30827
31401
|
}
|
|
30828
31402
|
getObservationMarkerConfig(record) {
|
|
30829
31403
|
return {
|
|
@@ -32095,11 +32669,19 @@ var ObservationalMemory = class ObservationalMemory {
|
|
|
32095
32669
|
const messageTokens = config.observation?.messageTokens ?? OBSERVATIONAL_MEMORY_DEFAULTS.observation.messageTokens;
|
|
32096
32670
|
const observationTokens = config.reflection?.observationTokens ?? OBSERVATIONAL_MEMORY_DEFAULTS.reflection.observationTokens;
|
|
32097
32671
|
const isSharedBudget = config.shareTokenBudget ?? false;
|
|
32098
|
-
const
|
|
32672
|
+
const supportsDefaultTemperature = (model) => {
|
|
32673
|
+
if (model instanceof ModelByInputTokens || typeof model === "function") return false;
|
|
32674
|
+
if (typeof model === "string") return (0, _mastra_core_llm.modelSupportsTemperature)(model) === true;
|
|
32675
|
+
if (model && typeof model === "object" && "provider" in model && "modelId" in model && typeof model.provider === "string" && typeof model.modelId === "string") return (0, _mastra_core_llm.modelSupportsTemperature)(`${model.provider.split(".")[0]}/${model.modelId}`) === true;
|
|
32676
|
+
return false;
|
|
32677
|
+
};
|
|
32678
|
+
const usesDefaultOutputTokenBudget = (model) => model === void 0 || model === "default" || model instanceof ModelByInputTokens;
|
|
32099
32679
|
const observationSelectedModel = topLevelModel ?? observationConfigModel ?? reflectionConfigModel;
|
|
32100
32680
|
const reflectionSelectedModel = topLevelModel ?? reflectionConfigModel ?? observationConfigModel;
|
|
32101
|
-
const
|
|
32102
|
-
const
|
|
32681
|
+
const observationTemperature = config.observation?.modelSettings?.temperature ?? (supportsDefaultTemperature(observationModel) ? OBSERVATIONAL_MEMORY_DEFAULTS.observation.modelSettings.temperature : void 0);
|
|
32682
|
+
const observationDefaultMaxOutputTokens = config.observation?.modelSettings?.maxOutputTokens ?? (usesDefaultOutputTokenBudget(observationSelectedModel) ? OBSERVATIONAL_MEMORY_DEFAULTS.observation.modelSettings.maxOutputTokens : void 0);
|
|
32683
|
+
const reflectionTemperature = config.reflection?.modelSettings?.temperature ?? (supportsDefaultTemperature(reflectionModel) ? OBSERVATIONAL_MEMORY_DEFAULTS.reflection.modelSettings.temperature : void 0);
|
|
32684
|
+
const reflectionDefaultMaxOutputTokens = config.reflection?.modelSettings?.maxOutputTokens ?? (usesDefaultOutputTokenBudget(reflectionSelectedModel) ? OBSERVATIONAL_MEMORY_DEFAULTS.reflection.modelSettings.maxOutputTokens : void 0);
|
|
32103
32685
|
const totalBudget = messageTokens + observationTokens;
|
|
32104
32686
|
const userExplicitlyConfiguredAsync = config.observation?.bufferTokens !== void 0 || config.observation?.bufferActivation !== void 0 || config.reflection?.bufferActivation !== void 0;
|
|
32105
32687
|
const asyncBufferingDisabled = config.observation?.bufferTokens === false || config.scope === "resource" && !userExplicitlyConfiguredAsync;
|
|
@@ -32115,7 +32697,7 @@ var ObservationalMemory = class ObservationalMemory {
|
|
|
32115
32697
|
} : messageTokens,
|
|
32116
32698
|
shareTokenBudget: isSharedBudget,
|
|
32117
32699
|
modelSettings: {
|
|
32118
|
-
temperature:
|
|
32700
|
+
...observationTemperature !== void 0 ? { temperature: observationTemperature } : {},
|
|
32119
32701
|
...observationDefaultMaxOutputTokens !== void 0 ? { maxOutputTokens: observationDefaultMaxOutputTokens } : {}
|
|
32120
32702
|
},
|
|
32121
32703
|
providerOptions: config.observation?.providerOptions ?? OBSERVATIONAL_MEMORY_DEFAULTS.observation.providerOptions,
|
|
@@ -32141,7 +32723,7 @@ var ObservationalMemory = class ObservationalMemory {
|
|
|
32141
32723
|
observationTokens,
|
|
32142
32724
|
shareTokenBudget: isSharedBudget,
|
|
32143
32725
|
modelSettings: {
|
|
32144
|
-
temperature:
|
|
32726
|
+
...reflectionTemperature !== void 0 ? { temperature: reflectionTemperature } : {},
|
|
32145
32727
|
...reflectionDefaultMaxOutputTokens !== void 0 ? { maxOutputTokens: reflectionDefaultMaxOutputTokens } : {}
|
|
32146
32728
|
},
|
|
32147
32729
|
providerOptions: config.reflection?.providerOptions ?? OBSERVATIONAL_MEMORY_DEFAULTS.reflection.providerOptions,
|
|
@@ -33865,9 +34447,8 @@ ${formattedMessages}
|
|
|
33865
34447
|
currentTask: lastActivated.currentTask,
|
|
33866
34448
|
threadTitle: chunkThreadTitle
|
|
33867
34449
|
});
|
|
33868
|
-
const
|
|
33869
|
-
const
|
|
33870
|
-
const shouldUpdateThreadTitle = !!newTitle && newTitle.length >= 3 && newTitle !== oldTitle;
|
|
34450
|
+
const newTitle = resolveThreadTitleUpdate(thread, chunkThreadTitle);
|
|
34451
|
+
const shouldUpdateThreadTitle = newTitle !== void 0;
|
|
33871
34452
|
await this.storage.patchThread({
|
|
33872
34453
|
id: threadId,
|
|
33873
34454
|
...shouldUpdateThreadTitle ? { title: newTitle } : {},
|
|
@@ -33997,9 +34578,11 @@ ${formattedMessages}
|
|
|
33997
34578
|
let lifecycleError;
|
|
33998
34579
|
let observationStarted = false;
|
|
33999
34580
|
let generationBefore = -1;
|
|
34581
|
+
let recordInsideLock;
|
|
34000
34582
|
try {
|
|
34001
34583
|
await this.withLock(lockKey, async () => {
|
|
34002
34584
|
const freshRecord = await this.getOrCreateRecord(threadId, resourceId);
|
|
34585
|
+
recordInsideLock = freshRecord;
|
|
34003
34586
|
generationBefore = freshRecord.generationCount;
|
|
34004
34587
|
const unobservedMessages = messages ? this.getUnobservedMessages(messages, freshRecord) : await this.loadMessagesFromStorage(threadId, resourceId, freshRecord.lastObservedAt ? new Date(freshRecord.lastObservedAt) : void 0);
|
|
34005
34588
|
if (!this.meetsObservationThreshold({
|
|
@@ -34042,7 +34625,7 @@ ${formattedMessages}
|
|
|
34042
34625
|
omDebug(`[OM:hooks] onObservationEnd hook failed after cycle failure: ${endHookError instanceof Error ? endHookError.message : String(endHookError)}`);
|
|
34043
34626
|
}
|
|
34044
34627
|
if (lifecycleError !== void 0) throw lifecycleError;
|
|
34045
|
-
const record = await this.
|
|
34628
|
+
const record = await this.getRecord(threadId, resourceId) ?? recordInsideLock;
|
|
34046
34629
|
const reflected = record.generationCount > generationBefore && generationBefore >= 0;
|
|
34047
34630
|
return {
|
|
34048
34631
|
observed,
|
|
@@ -34519,6 +35102,10 @@ var ObservationalMemoryProcessor = class {
|
|
|
34519
35102
|
if (this.turn === activeTurn) this.turn = void 0;
|
|
34520
35103
|
state.__omTurn = void 0;
|
|
34521
35104
|
}
|
|
35105
|
+
if (activeTurn?.ended || this.turn?.ended) {
|
|
35106
|
+
if (this.turn?.ended) this.turn = void 0;
|
|
35107
|
+
state.__omTurn = void 0;
|
|
35108
|
+
}
|
|
34522
35109
|
if (!this.turn || !state.__omTurn) {
|
|
34523
35110
|
if (this.turn && !state.__omTurn) await this.turn.end().catch(() => {});
|
|
34524
35111
|
this.turn = this.engine.beginTurn({
|
|
@@ -34619,11 +35206,11 @@ var ObservationalMemoryProcessor = class {
|
|
|
34619
35206
|
return this.engine.getTokenCounter().runWithModelContext(state.__omActorModelContext, async () => {
|
|
34620
35207
|
if ((0, _mastra_core_memory.parseMemoryRequestContext)(requestContext)?.memoryConfig?.readOnly) return messageList;
|
|
34621
35208
|
const turn = asLiveTurn(state.__omTurn) ?? this.turn;
|
|
34622
|
-
|
|
34623
|
-
|
|
34624
|
-
|
|
34625
|
-
|
|
34626
|
-
|
|
35209
|
+
const liveTurn = turn && !turn.ended ? turn : void 0;
|
|
35210
|
+
if (liveTurn) await liveTurn.end();
|
|
35211
|
+
this.turn = void 0;
|
|
35212
|
+
state.__omTurn = void 0;
|
|
35213
|
+
if (!liveTurn) {
|
|
34627
35214
|
const newOutput = messageList.get.response.db();
|
|
34628
35215
|
const messagesToSave = [...messageList.get.input.db(), ...newOutput];
|
|
34629
35216
|
if (messagesToSave.length > 0 && context.threadId) await this.engine.persistMessages(messagesToSave, context.threadId, context.resourceId);
|
|
@@ -34812,6 +35399,7 @@ const DEFAULT_MESSAGE_RANGE = {
|
|
|
34812
35399
|
};
|
|
34813
35400
|
const DEFAULT_TOP_K = 4;
|
|
34814
35401
|
const VECTOR_DELETE_BATCH_SIZE = 100;
|
|
35402
|
+
const OM_DELETE_DRAIN_TIMEOUT_MS = 1e4;
|
|
34815
35403
|
const DEFAULT_EMBEDDING_CACHE_MAX_SIZE = 1e3;
|
|
34816
35404
|
/**
|
|
34817
35405
|
* Gives Mastra agents conversation history, with optional working memory,
|
|
@@ -34845,6 +35433,9 @@ const DEFAULT_EMBEDDING_CACHE_MAX_SIZE = 1e3;
|
|
|
34845
35433
|
* if packaged docs are unavailable.
|
|
34846
35434
|
*/
|
|
34847
35435
|
var Memory = class Memory extends _mastra_core_memory.MastraMemory {
|
|
35436
|
+
createMemoryTokenCounter() {
|
|
35437
|
+
return new TokenCounter();
|
|
35438
|
+
}
|
|
34848
35439
|
_omEngine;
|
|
34849
35440
|
_omEngineInstance;
|
|
34850
35441
|
_mastraInstance;
|
|
@@ -35015,6 +35606,7 @@ var Memory = class Memory extends _mastra_core_memory.MastraMemory {
|
|
|
35015
35606
|
const thread = await this.getThreadById({ threadId });
|
|
35016
35607
|
if (!thread && !resourceScope) throw new Error(`No thread found with id ${threadId}`);
|
|
35017
35608
|
if (thread && thread.resourceId !== resourceId) throw new Error(`Thread with id ${threadId} is for resource with id ${thread.resourceId} but resource ${resourceId} was queried.`);
|
|
35609
|
+
return thread;
|
|
35018
35610
|
}
|
|
35019
35611
|
createMemorySpan(operationType, observabilityContext, input, attributes) {
|
|
35020
35612
|
const currentSpan = observabilityContext?.tracingContext?.currentSpan;
|
|
@@ -35035,6 +35627,9 @@ var Memory = class Memory extends _mastra_core_memory.MastraMemory {
|
|
|
35035
35627
|
const { threadId, resourceId, perPage: perPageArg, page, orderBy, threadConfig, vectorSearchString, includeSystemReminders, hideSignals, filter, includeTotal } = args;
|
|
35036
35628
|
const config = this.getMergedThreadConfig(threadConfig || {});
|
|
35037
35629
|
const semanticRecallEnabled = Boolean(config.semanticRecall);
|
|
35630
|
+
const history = (0, _mastra_core_memory.normalizeMessageHistoryConfig)(config.lastMessages, config.messageHistory);
|
|
35631
|
+
const historyDisabledByConfig = !history.enabled && perPageArg === void 0;
|
|
35632
|
+
const shouldUseTokenLoader = perPageArg === void 0 && history.enabled && history.maxTokens !== void 0;
|
|
35038
35633
|
const span = this.createMemorySpan("recall", args.observabilityContext, {
|
|
35039
35634
|
threadId,
|
|
35040
35635
|
resourceId,
|
|
@@ -35044,9 +35639,23 @@ var Memory = class Memory extends _mastra_core_memory.MastraMemory {
|
|
|
35044
35639
|
lastMessages: config.lastMessages
|
|
35045
35640
|
});
|
|
35046
35641
|
try {
|
|
35047
|
-
if (
|
|
35048
|
-
|
|
35049
|
-
|
|
35642
|
+
if (historyDisabledByConfig && (!config.semanticRecall || !vectorSearchString || !this.vector)) {
|
|
35643
|
+
const result = {
|
|
35644
|
+
messages: [],
|
|
35645
|
+
usage: void 0,
|
|
35646
|
+
total: 0,
|
|
35647
|
+
page: page ?? 0,
|
|
35648
|
+
perPage: 0,
|
|
35649
|
+
hasMore: false
|
|
35650
|
+
};
|
|
35651
|
+
span?.end({
|
|
35652
|
+
output: { success: true },
|
|
35653
|
+
attributes: { messageCount: 0 }
|
|
35654
|
+
});
|
|
35655
|
+
return result;
|
|
35656
|
+
}
|
|
35657
|
+
const validatedThread = resourceId ? await this.validateThreadIsOwnedByResource(threadId, resourceId, config) : void 0;
|
|
35658
|
+
const perPage = perPageArg !== void 0 ? perPageArg : history.maxMessages ?? 0;
|
|
35050
35659
|
const shouldGetNewestAndReverse = !orderBy && perPage !== false;
|
|
35051
35660
|
const effectiveOrderBy = shouldGetNewestAndReverse ? {
|
|
35052
35661
|
field: "createdAt",
|
|
@@ -35075,21 +35684,6 @@ var Memory = class Memory extends _mastra_core_memory.MastraMemory {
|
|
|
35075
35684
|
const resourceScope = typeof config?.semanticRecall === "object" && config?.semanticRecall?.scope !== `thread` || config.semanticRecall === true;
|
|
35076
35685
|
if (resourceScope && !resourceId && config?.semanticRecall && vectorSearchString) throw new Error("Memory error: Resource-scoped semantic recall is enabled but no resourceId was provided. Either provide a resourceId or explicitly set semanticRecall.scope to 'thread'.");
|
|
35077
35686
|
let usage;
|
|
35078
|
-
if (historyDisabledByConfig && (!config.semanticRecall || !vectorSearchString || !this.vector)) {
|
|
35079
|
-
const result = {
|
|
35080
|
-
messages: [],
|
|
35081
|
-
usage: void 0,
|
|
35082
|
-
total: 0,
|
|
35083
|
-
page: page ?? 0,
|
|
35084
|
-
perPage: 0,
|
|
35085
|
-
hasMore: false
|
|
35086
|
-
};
|
|
35087
|
-
span?.end({
|
|
35088
|
-
output: { success: true },
|
|
35089
|
-
attributes: { messageCount: 0 }
|
|
35090
|
-
});
|
|
35091
|
-
return result;
|
|
35092
|
-
}
|
|
35093
35687
|
if (config?.semanticRecall && vectorSearchString && this.vector) {
|
|
35094
35688
|
const result = await this.embedMessageContent(vectorSearchString);
|
|
35095
35689
|
usage = result.usage;
|
|
@@ -35111,28 +35705,71 @@ var Memory = class Memory extends _mastra_core_memory.MastraMemory {
|
|
|
35111
35705
|
const threshold = (typeof config.semanticRecall === "object" ? config.semanticRecall : void 0)?.threshold;
|
|
35112
35706
|
const filteredVectorResults = threshold !== void 0 ? vectorResults.filter((r) => r.score >= threshold) : vectorResults;
|
|
35113
35707
|
const memoryStore = await this.getMemoryStore();
|
|
35114
|
-
const
|
|
35115
|
-
|
|
35116
|
-
threadId,
|
|
35117
|
-
|
|
35118
|
-
|
|
35119
|
-
|
|
35120
|
-
|
|
35121
|
-
|
|
35122
|
-
|
|
35123
|
-
|
|
35124
|
-
|
|
35125
|
-
|
|
35126
|
-
|
|
35127
|
-
|
|
35128
|
-
|
|
35129
|
-
|
|
35130
|
-
|
|
35708
|
+
const include = filteredVectorResults.map((r) => ({
|
|
35709
|
+
id: r.metadata?.message_id,
|
|
35710
|
+
threadId: r.metadata?.thread_id,
|
|
35711
|
+
withNextMessages: typeof vectorConfig.messageRange === "number" ? vectorConfig.messageRange : vectorConfig.messageRange.after,
|
|
35712
|
+
withPreviousMessages: typeof vectorConfig.messageRange === "number" ? vectorConfig.messageRange : vectorConfig.messageRange.before
|
|
35713
|
+
}));
|
|
35714
|
+
let rawMessages;
|
|
35715
|
+
let resultPage;
|
|
35716
|
+
let resultPerPage;
|
|
35717
|
+
let total;
|
|
35718
|
+
let hasMore;
|
|
35719
|
+
if (shouldUseTokenLoader) {
|
|
35720
|
+
const storedBoundary = (0, _mastra_core_memory.getMemoryTokenBoundary)(validatedThread ?? await memoryStore.getThreadById({
|
|
35721
|
+
threadId,
|
|
35722
|
+
resourceId
|
|
35723
|
+
}));
|
|
35724
|
+
const boundary = storedBoundary !== void 0 && storedBoundary.maxTokens === history.maxTokens && storedBoundary.atMaxRemoveTokens === history.atMaxRemoveTokens ? storedBoundary : void 0;
|
|
35725
|
+
rawMessages = (await (0, _mastra_core_memory.loadMessageHistory)({
|
|
35726
|
+
storage: memoryStore,
|
|
35727
|
+
threadId,
|
|
35728
|
+
resourceId,
|
|
35729
|
+
boundary,
|
|
35730
|
+
filter,
|
|
35731
|
+
maxMessages: history.maxMessages,
|
|
35732
|
+
maxTokens: history.maxTokens,
|
|
35733
|
+
atMaxRemoveTokens: history.atMaxRemoveTokens,
|
|
35734
|
+
tokenCounter: new TokenCounter(),
|
|
35735
|
+
initialTokens: 24
|
|
35736
|
+
})).messages;
|
|
35737
|
+
if (include.length) {
|
|
35738
|
+
const semanticMessages = await memoryStore.listMessages({
|
|
35739
|
+
threadId,
|
|
35740
|
+
resourceId,
|
|
35741
|
+
perPage: 0,
|
|
35742
|
+
include,
|
|
35743
|
+
includeTotal: false
|
|
35744
|
+
});
|
|
35745
|
+
rawMessages = new _mastra_core_agent.MessageList({
|
|
35746
|
+
threadId,
|
|
35747
|
+
resourceId
|
|
35748
|
+
}).add(rawMessages, "memory").add(semanticMessages.messages.filter((message) => !boundary || (0, _mastra_core_memory.isAfterMemoryTokenBoundary)(message, boundary)), "memory").get.all.db();
|
|
35749
|
+
}
|
|
35750
|
+
resultPage = 0;
|
|
35751
|
+
resultPerPage = history.maxMessages ?? false;
|
|
35752
|
+
total = rawMessages.length;
|
|
35753
|
+
hasMore = false;
|
|
35754
|
+
} else {
|
|
35755
|
+
const effectivePerPage = historyDisabledByConfig ? 0 : perPage;
|
|
35756
|
+
const paginatedResult = await memoryStore.listMessages({
|
|
35757
|
+
threadId,
|
|
35758
|
+
resourceId,
|
|
35759
|
+
perPage: effectivePerPage,
|
|
35760
|
+
page,
|
|
35761
|
+
orderBy: effectiveOrderBy,
|
|
35762
|
+
filter,
|
|
35763
|
+
...includeTotal !== void 0 ? { includeTotal } : {},
|
|
35764
|
+
...include.length ? { include } : {}
|
|
35765
|
+
});
|
|
35766
|
+
rawMessages = shouldGetNewestAndReverse ? paginatedResult.messages.reverse() : paginatedResult.messages;
|
|
35767
|
+
({total, page: resultPage, perPage: resultPerPage, hasMore} = paginatedResult);
|
|
35768
|
+
}
|
|
35131
35769
|
const messages = filterSystemReminderMessages(new _mastra_core_agent.MessageList({
|
|
35132
35770
|
threadId,
|
|
35133
35771
|
resourceId
|
|
35134
35772
|
}).add(rawMessages, "memory").get.all.db(), includeSystemReminders, hideSignals);
|
|
35135
|
-
const { total, page: resultPage, perPage: resultPerPage, hasMore } = paginatedResult;
|
|
35136
35773
|
const recallResult = {
|
|
35137
35774
|
messages,
|
|
35138
35775
|
usage,
|
|
@@ -35185,6 +35822,13 @@ var Memory = class Memory extends _mastra_core_memory.MastraMemory {
|
|
|
35185
35822
|
});
|
|
35186
35823
|
return savedThread;
|
|
35187
35824
|
}
|
|
35825
|
+
/**
|
|
35826
|
+
* Update a thread's title or metadata.
|
|
35827
|
+
*
|
|
35828
|
+
* Unlike `session.thread.rename()`, this does not pin the title, so
|
|
35829
|
+
* Observational Memory may still replace it with an extracted title. To
|
|
35830
|
+
* protect a manual rename, set `metadata.titlePinned` to `true`.
|
|
35831
|
+
*/
|
|
35188
35832
|
async updateThread({ id, title, metadata, memoryConfig }) {
|
|
35189
35833
|
const updatedThread = await (await this.getMemoryStore()).patchThread({
|
|
35190
35834
|
id,
|
|
@@ -35207,6 +35851,8 @@ var Memory = class Memory extends _mastra_core_memory.MastraMemory {
|
|
|
35207
35851
|
await this.deleteStoredThread(memoryStore, threadId, thread?.resourceId);
|
|
35208
35852
|
}
|
|
35209
35853
|
async deleteStoredThread(memoryStore, threadId, resourceId) {
|
|
35854
|
+
const engine = this._omEngine ? await this._omEngine : this._omEngineInstance;
|
|
35855
|
+
if (engine && resourceId) await engine.waitForBuffering(threadId, resourceId, OM_DELETE_DRAIN_TIMEOUT_MS);
|
|
35210
35856
|
await memoryStore.deleteThread({ threadId });
|
|
35211
35857
|
if (resourceId && memoryStore.supportsObservationalMemory) await memoryStore.clearObservationalMemory(threadId, resourceId);
|
|
35212
35858
|
if (this.vector) this.trackVectorCleanup(this.deleteThreadVectors(threadId));
|
|
@@ -35611,8 +36257,8 @@ ${workingMemory}`;
|
|
|
35611
36257
|
if (config.workingMemory?.schema) try {
|
|
35612
36258
|
const schema = config.workingMemory.schema;
|
|
35613
36259
|
let convertedSchema;
|
|
35614
|
-
if (
|
|
35615
|
-
else convertedSchema =
|
|
36260
|
+
if (require_schema_BwlBcZRB.isStandardSchemaWithJSON(schema)) convertedSchema = schema["~standard"].jsonSchema.output({ target: "draft-07" });
|
|
36261
|
+
else convertedSchema = require_schema_BwlBcZRB.toStandardSchema(schema)["~standard"].jsonSchema.output({ target: "draft-07" });
|
|
35616
36262
|
return {
|
|
35617
36263
|
format: "json",
|
|
35618
36264
|
content: JSON.stringify(convertedSchema)
|
|
@@ -35753,16 +36399,52 @@ ${workingMemory}`;
|
|
|
35753
36399
|
messages = runState ? await runState.load(`observational-memory:messages:thread:${threadId}:${boundary}`, loadMessages) : await loadMessages();
|
|
35754
36400
|
}
|
|
35755
36401
|
} else {
|
|
35756
|
-
const lastMessages = config.lastMessages;
|
|
35757
|
-
if (lastMessages
|
|
35758
|
-
else
|
|
36402
|
+
const lastMessages = (0, _mastra_core_memory.normalizeMessageHistoryConfig)(config.lastMessages, config.messageHistory);
|
|
36403
|
+
if (!lastMessages.enabled) messages = [];
|
|
36404
|
+
else if (lastMessages.maxTokens !== void 0) {
|
|
36405
|
+
const storedBoundary = (0, _mastra_core_memory.getMemoryTokenBoundary)(await memoryStore.getThreadById({
|
|
36406
|
+
threadId,
|
|
36407
|
+
resourceId
|
|
36408
|
+
}));
|
|
36409
|
+
const boundary = storedBoundary?.maxTokens === lastMessages.maxTokens && storedBoundary.atMaxRemoveTokens === lastMessages.atMaxRemoveTokens ? storedBoundary : void 0;
|
|
36410
|
+
const tokenCounter = this.createMemoryTokenCounter();
|
|
36411
|
+
const loaded = await (0, _mastra_core_memory.loadMessageHistory)({
|
|
36412
|
+
storage: memoryStore,
|
|
36413
|
+
threadId,
|
|
36414
|
+
resourceId,
|
|
36415
|
+
boundary,
|
|
36416
|
+
maxMessages: lastMessages.maxMessages,
|
|
36417
|
+
maxTokens: lastMessages.maxTokens,
|
|
36418
|
+
tokenCounter,
|
|
36419
|
+
initialTokens: 24
|
|
36420
|
+
});
|
|
36421
|
+
const messageList = new _mastra_core_agent.MessageList();
|
|
36422
|
+
messageList.add(loaded.messages, "memory");
|
|
36423
|
+
if (systemParts.length) messageList.addSystem(systemParts.join("\n\n"));
|
|
36424
|
+
await new _mastra_core_processors.TokenLimiterProcessor({
|
|
36425
|
+
limit: lastMessages.maxTokens,
|
|
36426
|
+
atMaxRemoveTokens: lastMessages.atMaxRemoveTokens,
|
|
36427
|
+
trimMode: "memory-only",
|
|
36428
|
+
tokenCounter
|
|
36429
|
+
}).processInput({
|
|
36430
|
+
messageList,
|
|
36431
|
+
messages: messageList.get.all.db(),
|
|
36432
|
+
systemMessages: messageList.getAllSystemMessages(),
|
|
36433
|
+
state: {},
|
|
36434
|
+
retryCount: 0,
|
|
36435
|
+
abort: (reason) => {
|
|
36436
|
+
throw new Error(reason);
|
|
36437
|
+
}
|
|
36438
|
+
});
|
|
36439
|
+
messages = messageList.get.all.db();
|
|
36440
|
+
} else messages = (await memoryStore.listMessages({
|
|
35759
36441
|
threadId,
|
|
35760
36442
|
resourceId,
|
|
35761
36443
|
orderBy: {
|
|
35762
36444
|
field: "createdAt",
|
|
35763
36445
|
direction: "DESC"
|
|
35764
36446
|
},
|
|
35765
|
-
perPage:
|
|
36447
|
+
perPage: lastMessages.maxMessages,
|
|
35766
36448
|
includeTotal: false
|
|
35767
36449
|
})).messages.reverse();
|
|
35768
36450
|
}
|
|
@@ -37692,23 +38374,23 @@ const createModelInstance = async (provider, modelId, version = "v2") => {
|
|
|
37692
38374
|
try {
|
|
37693
38375
|
const providerFn = version === `v1` ? { v1: {
|
|
37694
38376
|
openai: async () => {
|
|
37695
|
-
const { openai } = await Promise.resolve().then(() => require("./dist-
|
|
38377
|
+
const { openai } = await Promise.resolve().then(() => require("./dist-DO5NHh-t.cjs"));
|
|
37696
38378
|
return openai(modelId);
|
|
37697
38379
|
},
|
|
37698
38380
|
anthropic: async () => {
|
|
37699
|
-
const { anthropic } = await Promise.resolve().then(() => require("./dist-
|
|
38381
|
+
const { anthropic } = await Promise.resolve().then(() => require("./dist-vM0zJcP5.cjs"));
|
|
37700
38382
|
return anthropic(modelId);
|
|
37701
38383
|
},
|
|
37702
38384
|
groq: async () => {
|
|
37703
|
-
const { groq } = await Promise.resolve().then(() => require("./dist-
|
|
38385
|
+
const { groq } = await Promise.resolve().then(() => require("./dist-CkFmsB2E.cjs"));
|
|
37704
38386
|
return groq(modelId);
|
|
37705
38387
|
},
|
|
37706
38388
|
xai: async () => {
|
|
37707
|
-
const { xai } = await Promise.resolve().then(() => require("./dist-
|
|
38389
|
+
const { xai } = await Promise.resolve().then(() => require("./dist-B0uCWZUF.cjs"));
|
|
37708
38390
|
return xai(modelId);
|
|
37709
38391
|
},
|
|
37710
38392
|
google: async () => {
|
|
37711
|
-
const { google } = await Promise.resolve().then(() => require("./dist-
|
|
38393
|
+
const { google } = await Promise.resolve().then(() => require("./dist-BQ0VOLA9.cjs"));
|
|
37712
38394
|
return google(modelId);
|
|
37713
38395
|
}
|
|
37714
38396
|
} }[version][provider] : () => new _mastra_core_llm.ModelRouterLanguageModel(`${provider}/${modelId}`);
|
|
@@ -40379,7 +41061,7 @@ Return the actual exported names of the units, as well as the file names.`,
|
|
|
40379
41061
|
maxSteps: 100
|
|
40380
41062
|
});
|
|
40381
41063
|
else {
|
|
40382
|
-
const jsonSchema =
|
|
41064
|
+
const jsonSchema = require_schema_BwlBcZRB.standardSchemaToJSONSchema((0, _mastra_core_schema.toStandardSchema)(output));
|
|
40383
41065
|
result = await agent.generateLegacy(prompt, {
|
|
40384
41066
|
experimental_output: jsonSchema,
|
|
40385
41067
|
maxSteps: 100
|
|
@@ -47287,4 +47969,4 @@ const agentBuilderWorkflows = {
|
|
|
47287
47969
|
//#endregion
|
|
47288
47970
|
exports.agentBuilderWorkflows = agentBuilderWorkflows;
|
|
47289
47971
|
|
|
47290
|
-
//# sourceMappingURL=dist-
|
|
47972
|
+
//# sourceMappingURL=dist-CF1rK7oZ.cjs.map
|