@mastra/server 1.58.0-alpha.0 → 1.58.0-alpha.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +246 -0
- package/dist/_types/@mastra_schema-compat/dist/provider-compats/anthropic.d.ts +1 -1
- package/dist/{a2a-CnU9zaGR.js → a2a-8C4O2dVJ.js} +41 -5
- package/dist/a2a-8C4O2dVJ.js.map +1 -0
- package/dist/{a2a-uPi5sPwb.js → a2a-B9X-RdWt.js} +863 -230
- package/dist/a2a-B9X-RdWt.js.map +1 -0
- package/dist/{a2a-DKnwIgiw.cjs → a2a-D1t2fS2L.cjs} +874 -229
- package/dist/a2a-D1t2fS2L.cjs.map +1 -0
- package/dist/{a2a-oM7aqLz4.cjs → a2a-MPoM5lzS.cjs} +41 -5
- package/dist/a2a-MPoM5lzS.cjs.map +1 -0
- package/dist/{agent-builder-BDYN3r89.cjs → agent-builder-D8JyDQ5J.cjs} +2 -2
- package/dist/{agent-builder-BDYN3r89.cjs.map → agent-builder-D8JyDQ5J.cjs.map} +1 -1
- package/dist/{agent-builder-Dqy_qumV.js → agent-builder-DNTFty1u.js} +2 -2
- package/dist/{agent-builder-Dqy_qumV.js.map → agent-builder-DNTFty1u.js.map} +1 -1
- package/dist/{agent-versions-Bsrpa_zb.js → agent-versions-CWEnD62A.js} +4 -4
- package/dist/{agent-versions-Bsrpa_zb.js.map → agent-versions-CWEnD62A.js.map} +1 -1
- package/dist/{agent-versions-CdQGF-3e.cjs → agent-versions-xeysPGel.cjs} +4 -4
- package/dist/{agent-versions-CdQGF-3e.cjs.map → agent-versions-xeysPGel.cjs.map} +1 -1
- package/dist/{agents-Dk2qoJi_.cjs → agents-0Tw3kkD_.cjs} +9 -5
- package/dist/agents-0Tw3kkD_.cjs.map +1 -0
- package/dist/{agents-CYvun9iI.js → agents-uT8ZDE4k.js} +9 -5
- package/dist/agents-uT8ZDE4k.js.map +1 -0
- package/dist/{api-schema-manifest-C5hpdIE_.js → api-schema-manifest-BLv_Z-sd.js} +3 -3
- package/dist/{api-schema-manifest-C5hpdIE_.js.map → api-schema-manifest-BLv_Z-sd.js.map} +1 -1
- package/dist/{api-schema-manifest-7-NC9Dyc.cjs → api-schema-manifest-CFLB0MBA.cjs} +3 -3
- package/dist/{api-schema-manifest-7-NC9Dyc.cjs.map → api-schema-manifest-CFLB0MBA.cjs.map} +1 -1
- package/dist/{background-tasks-DnmhLalp.js → background-tasks-Bzl2tNJq.js} +2 -2
- package/dist/{background-tasks-DnmhLalp.js.map → background-tasks-Bzl2tNJq.js.map} +1 -1
- package/dist/{background-tasks-CYgzzUnb.cjs → background-tasks-DXns62Go.cjs} +2 -2
- package/dist/{background-tasks-CYgzzUnb.cjs.map → background-tasks-DXns62Go.cjs.map} +1 -1
- package/dist/{builder-registry-BoaXBdm_.cjs → builder-registry-CTQyg5l5.cjs} +3 -3
- package/dist/{builder-registry-BoaXBdm_.cjs.map → builder-registry-CTQyg5l5.cjs.map} +1 -1
- package/dist/{builder-registry-DE5w7bNk.js → builder-registry-QAeqpQKB.js} +3 -3
- package/dist/{builder-registry-DE5w7bNk.js.map → builder-registry-QAeqpQKB.js.map} +1 -1
- package/dist/{channels-BqkOxxEk.js → channels-CPTIswT2.js} +2 -2
- package/dist/{channels-BqkOxxEk.js.map → channels-CPTIswT2.js.map} +1 -1
- package/dist/{channels-BonQBJT0.cjs → channels-FoIf30Hv.cjs} +2 -2
- package/dist/{channels-BonQBJT0.cjs.map → channels-FoIf30Hv.cjs.map} +1 -1
- package/dist/{common-CPNOpqxA.js → common-5ZZuR6wj.js} +19 -8
- package/dist/common-5ZZuR6wj.js.map +1 -0
- package/dist/{common-spbwhiWS.cjs → common-DQn8jX5T.cjs} +19 -8
- package/dist/common-DQn8jX5T.cjs.map +1 -0
- package/dist/{conversations-CebKjBfB.cjs → conversations-CcFLCCeF.cjs} +2 -2
- package/dist/{conversations-CebKjBfB.cjs.map → conversations-CcFLCCeF.cjs.map} +1 -1
- package/dist/{conversations-BDD46VBM.js → conversations-DtnawNGm.js} +2 -2
- package/dist/{conversations-BDD46VBM.js.map → conversations-DtnawNGm.js.map} +1 -1
- package/dist/{datasets-Cvix7Rms.cjs → datasets-D2JdQI44.cjs} +44 -2
- package/dist/datasets-D2JdQI44.cjs.map +1 -0
- package/dist/{datasets-dhXnHLAL.js → datasets-Dr1pCC6P.js} +39 -3
- package/dist/datasets-Dr1pCC6P.js.map +1 -0
- package/dist/{default-options-BcPyp2Gx.cjs → default-options-C9HZGjYi.cjs} +6 -3
- package/dist/{default-options-BcPyp2Gx.cjs.map → default-options-C9HZGjYi.cjs.map} +1 -1
- package/dist/{default-options-DGCDKR3I.js → default-options-C9JVjlto.js} +6 -3
- package/dist/{default-options-DGCDKR3I.js.map → default-options-C9JVjlto.js.map} +1 -1
- package/dist/{dist-DGqlUp0b.js → dist-CzzxT_L5.js} +345 -1404
- package/dist/dist-CzzxT_L5.js.map +1 -0
- package/dist/{dist-COHIL6fR.cjs → dist-TkFPtpuy.cjs} +354 -1416
- package/dist/dist-TkFPtpuy.cjs.map +1 -0
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/docs/references/docs-agents-a2a.md +75 -2
- package/dist/docs/references/docs-server-custom-adapters.md +1 -1
- package/dist/docs/references/reference-server-routes.md +38 -24
- package/dist/{stored-workflows-OanG0TmB.js → dynamic-workflows-CQs6_anZ.js} +62 -62
- package/dist/dynamic-workflows-CQs6_anZ.js.map +1 -0
- package/dist/{stored-workflows-pCiWK305.cjs → dynamic-workflows-CrvwGZj8.cjs} +71 -71
- package/dist/dynamic-workflows-CrvwGZj8.cjs.map +1 -0
- package/dist/{editor-builder-CWTGCtNu.cjs → editor-builder-C3ZvffGu.cjs} +2 -2
- package/dist/{editor-builder-CWTGCtNu.cjs.map → editor-builder-C3ZvffGu.cjs.map} +1 -1
- package/dist/{editor-builder-Ct2nIbum.js → editor-builder-D5lhXbvj.js} +3 -3
- package/dist/{editor-builder-Ct2nIbum.js.map → editor-builder-D5lhXbvj.js.map} +1 -1
- package/dist/{editor-builder-BW4nlDcX.cjs → editor-builder-DG5-7x6V.cjs} +3 -3
- package/dist/{editor-builder-BW4nlDcX.cjs.map → editor-builder-DG5-7x6V.cjs.map} +1 -1
- package/dist/{editor-builder-fKbRRlK_.js → editor-builder-DJUxdzC8.js} +2 -2
- package/dist/{editor-builder-fKbRRlK_.js.map → editor-builder-DJUxdzC8.js.map} +1 -1
- package/dist/{logs-wBYi7UWL.cjs → logs-BDuGFqxu.cjs} +2 -2
- package/dist/{logs-wBYi7UWL.cjs.map → logs-BDuGFqxu.cjs.map} +1 -1
- package/dist/{logs-BzwWWl57.js → logs-Cz5NiwGP.js} +2 -2
- package/dist/{logs-BzwWWl57.js.map → logs-Cz5NiwGP.js.map} +1 -1
- package/dist/{mcp-DusNUBdz.cjs → mcp-Buvksst5.cjs} +2 -2
- package/dist/{mcp-DusNUBdz.cjs.map → mcp-Buvksst5.cjs.map} +1 -1
- package/dist/{mcp-client-versions-Db71zP8j.cjs → mcp-client-versions-CG7po4hq.cjs} +2 -2
- package/dist/{mcp-client-versions-Db71zP8j.cjs.map → mcp-client-versions-CG7po4hq.cjs.map} +1 -1
- package/dist/{mcp-client-versions-Dwbiav9P.js → mcp-client-versions-Co8d39A6.js} +2 -2
- package/dist/{mcp-client-versions-Dwbiav9P.js.map → mcp-client-versions-Co8d39A6.js.map} +1 -1
- package/dist/{mcp-BpC_5RhI.js → mcp-oOFVSK8L.js} +2 -2
- package/dist/{mcp-BpC_5RhI.js.map → mcp-oOFVSK8L.js.map} +1 -1
- package/dist/{memory-BjemiyZJ.js → memory-CBLqn9xl.js} +2 -2
- package/dist/{memory-BjemiyZJ.js.map → memory-CBLqn9xl.js.map} +1 -1
- package/dist/{memory-CxM2p78x.cjs → memory-D0prxytx.cjs} +2 -2
- package/dist/{memory-CxM2p78x.cjs.map → memory-D0prxytx.cjs.map} +1 -1
- package/dist/{observability-new-endpoints-YK2DjZto.js → observability-new-endpoints-6HLxLS-H.js} +2 -2
- package/dist/{observability-new-endpoints-YK2DjZto.js.map → observability-new-endpoints-6HLxLS-H.js.map} +1 -1
- package/dist/{observability-new-endpoints-Dk3oatL8.cjs → observability-new-endpoints-D4AWoyDe.cjs} +2 -2
- package/dist/{observability-new-endpoints-Dk3oatL8.cjs.map → observability-new-endpoints-D4AWoyDe.cjs.map} +1 -1
- package/dist/{probe-image-size-DYJVSL0b.cjs → probe-image-size-C2F59z8Z.cjs} +56 -1707
- package/dist/probe-image-size-C2F59z8Z.cjs.map +1 -0
- package/dist/{probe-image-size-BQgIJeY_.js → probe-image-size-mXCWYNrz.js} +22 -1673
- package/dist/probe-image-size-mXCWYNrz.js.map +1 -0
- package/dist/{prompt-block-versions-CIDwXWiC.js → prompt-block-versions-CBjHhMVK.js} +2 -2
- package/dist/{prompt-block-versions-CIDwXWiC.js.map → prompt-block-versions-CBjHhMVK.js.map} +1 -1
- package/dist/{prompt-block-versions-Bl3RmkTE.cjs → prompt-block-versions-Cgt_Grk2.cjs} +2 -2
- package/dist/{prompt-block-versions-Bl3RmkTE.cjs.map → prompt-block-versions-Cgt_Grk2.cjs.map} +1 -1
- package/dist/{route-builder-CgLVYL1c.cjs → route-builder-BBovb2TE.cjs} +2 -2
- package/dist/route-builder-BBovb2TE.cjs.map +1 -0
- package/dist/{route-builder-CIk5k35M.js → route-builder-CQkb7tQY.js} +2 -2
- package/dist/route-builder-CQkb7tQY.js.map +1 -0
- package/dist/{routes-hSY4wTeS.cjs → routes-CzvDlbRt.cjs} +26 -25
- package/dist/routes-CzvDlbRt.cjs.map +1 -0
- package/dist/{routes-CRoTKPvQ.js → routes-D_-O6SS5.js} +27 -26
- package/dist/routes-D_-O6SS5.js.map +1 -0
- package/dist/{schedules-CK3-IE0h.cjs → schedules-CfNABln2.cjs} +2 -2
- package/dist/{schedules-CK3-IE0h.cjs.map → schedules-CfNABln2.cjs.map} +1 -1
- package/dist/{schedules-qxFoU-Tb.js → schedules-DSkYO_Nl.js} +2 -2
- package/dist/{schedules-qxFoU-Tb.js.map → schedules-DSkYO_Nl.js.map} +1 -1
- package/dist/{schema-Bv9OdW1f-BY6u3u8K.cjs → schema-Bv9OdW1f-CHHI-NTr.cjs} +2 -76
- package/dist/schema-Bv9OdW1f-CHHI-NTr.cjs.map +1 -0
- package/dist/{schema-Bv9OdW1f-CIOfv-3w.js → schema-Bv9OdW1f-DLSJSqQv.js} +2 -76
- package/dist/schema-Bv9OdW1f-DLSJSqQv.js.map +1 -0
- package/dist/schema-CGeYTFwm.js +2 -0
- package/dist/schema-DkBbires.cjs +1 -0
- package/dist/{scorer-versions-DpmAJKsY.cjs → scorer-versions-CYXtxMTU.cjs} +3 -3
- package/dist/{scorer-versions-DpmAJKsY.cjs.map → scorer-versions-CYXtxMTU.cjs.map} +1 -1
- package/dist/{scorer-versions-BA8N488c.js → scorer-versions-CdVjOtQO.js} +3 -3
- package/dist/{scorer-versions-BA8N488c.js.map → scorer-versions-CdVjOtQO.js.map} +1 -1
- package/dist/{scores-DU0o86rP.js → scores-B1IdMcDj.js} +2 -2
- package/dist/{scores-DU0o86rP.js.map → scores-B1IdMcDj.js.map} +1 -1
- package/dist/{scores-Bm_sUKY1.cjs → scores-C_Au9jSw.cjs} +2 -2
- package/dist/{scores-Bm_sUKY1.cjs.map → scores-C_Au9jSw.cjs.map} +1 -1
- package/dist/server/a2a/store.cjs +30 -2
- package/dist/server/a2a/store.cjs.map +1 -1
- package/dist/server/a2a/store.d.ts +21 -2
- package/dist/server/a2a/store.d.ts.map +1 -1
- package/dist/server/a2a/store.js +30 -3
- package/dist/server/a2a/store.js.map +1 -1
- package/dist/server/a2a/task-state.d.ts +4 -0
- package/dist/server/a2a/task-state.d.ts.map +1 -0
- package/dist/server/a2a/tasks.d.ts +1 -1
- package/dist/server/a2a/tasks.d.ts.map +1 -1
- package/dist/server/handlers/a2a.cjs +3 -1
- package/dist/server/handlers/a2a.d.ts +155 -12
- package/dist/server/handlers/a2a.d.ts.map +1 -1
- package/dist/server/handlers/a2a.js +2 -2
- package/dist/server/handlers/agent-builder.cjs +7 -7
- package/dist/server/handlers/agent-builder.d.ts +4 -4
- package/dist/server/handlers/agent-builder.js +7 -7
- package/dist/server/handlers/agent-controller.cjs +86 -17
- package/dist/server/handlers/agent-controller.cjs.map +1 -1
- package/dist/server/handlers/agent-controller.d.ts +4 -3
- package/dist/server/handlers/agent-controller.d.ts.map +1 -1
- package/dist/server/handlers/agent-controller.js +86 -17
- package/dist/server/handlers/agent-controller.js.map +1 -1
- package/dist/server/handlers/agent-versions.cjs +10 -4
- package/dist/server/handlers/agent-versions.cjs.map +1 -1
- package/dist/server/handlers/agent-versions.d.ts +88 -16
- package/dist/server/handlers/agent-versions.d.ts.map +1 -1
- package/dist/server/handlers/agent-versions.js +10 -4
- package/dist/server/handlers/agent-versions.js.map +1 -1
- package/dist/server/handlers/agents.cjs +6 -6
- package/dist/server/handlers/agents.d.ts +50 -8
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +6 -6
- package/dist/server/handlers/auth.cjs +1 -1
- package/dist/server/handlers/auth.js +1 -1
- package/dist/server/handlers/background-tasks.cjs +1 -1
- package/dist/server/handlers/background-tasks.js +1 -1
- package/dist/server/handlers/builder-registry.cjs +1 -1
- package/dist/server/handlers/builder-registry.js +1 -1
- package/dist/server/handlers/channels.cjs +1 -1
- package/dist/server/handlers/channels.js +1 -1
- package/dist/server/handlers/conversations.cjs +2 -2
- package/dist/server/handlers/conversations.js +2 -2
- package/dist/server/handlers/datasets.cjs +28 -13
- package/dist/server/handlers/datasets.cjs.map +1 -1
- package/dist/server/handlers/datasets.d.ts +136 -0
- package/dist/server/handlers/datasets.d.ts.map +1 -1
- package/dist/server/handlers/datasets.js +28 -13
- package/dist/server/handlers/datasets.js.map +1 -1
- package/dist/server/handlers/dynamic-workflows.cjs +6 -0
- package/dist/server/handlers/{stored-workflows.d.ts → dynamic-workflows.d.ts} +14 -14
- package/dist/server/handlers/{stored-workflows.d.ts.map → dynamic-workflows.d.ts.map} +1 -1
- package/dist/server/handlers/dynamic-workflows.js +2 -0
- package/dist/server/handlers/editor-builder.cjs +1 -1
- package/dist/server/handlers/editor-builder.js +1 -1
- package/dist/server/handlers/favorites-enrichment.cjs +1 -1
- package/dist/server/handlers/favorites-enrichment.js +1 -1
- package/dist/server/handlers/logs.cjs +3 -3
- package/dist/server/handlers/logs.js +3 -3
- package/dist/server/handlers/mcp-client-versions.cjs +3 -3
- package/dist/server/handlers/mcp-client-versions.js +3 -3
- package/dist/server/handlers/mcp.cjs +2 -2
- package/dist/server/handlers/mcp.js +2 -2
- package/dist/server/handlers/memory.cjs +2 -2
- package/dist/server/handlers/memory.js +2 -2
- package/dist/server/handlers/observability-new-endpoints.cjs +1 -1
- package/dist/server/handlers/observability-new-endpoints.js +1 -1
- package/dist/server/handlers/observability-shared.cjs +1 -1
- package/dist/server/handlers/observability-shared.js +1 -1
- package/dist/server/handlers/observability.cjs +22 -11
- package/dist/server/handlers/observability.cjs.map +1 -1
- package/dist/server/handlers/observability.d.ts.map +1 -1
- package/dist/server/handlers/observability.js +22 -11
- package/dist/server/handlers/observability.js.map +1 -1
- package/dist/server/handlers/processor-providers.cjs +1 -1
- package/dist/server/handlers/processor-providers.js +1 -1
- package/dist/server/handlers/processors.cjs +1 -1
- package/dist/server/handlers/processors.js +1 -1
- package/dist/server/handlers/prompt-block-versions.cjs +3 -3
- package/dist/server/handlers/prompt-block-versions.js +3 -3
- package/dist/server/handlers/responses.cjs +1 -1
- package/dist/server/handlers/responses.js +1 -1
- package/dist/server/handlers/schedules.cjs +1 -1
- package/dist/server/handlers/schedules.js +1 -1
- package/dist/server/handlers/scorer-versions.cjs +3 -3
- package/dist/server/handlers/scorer-versions.js +3 -3
- package/dist/server/handlers/scores.cjs +3 -3
- package/dist/server/handlers/scores.js +3 -3
- package/dist/server/handlers/stored-agent-favorites.cjs +4 -4
- package/dist/server/handlers/stored-agent-favorites.js +4 -4
- package/dist/server/handlers/stored-agents.cjs +21 -6
- package/dist/server/handlers/stored-agents.cjs.map +1 -1
- package/dist/server/handlers/stored-agents.d.ts +100 -16
- package/dist/server/handlers/stored-agents.d.ts.map +1 -1
- package/dist/server/handlers/stored-agents.js +21 -6
- package/dist/server/handlers/stored-agents.js.map +1 -1
- package/dist/server/handlers/stored-mcp-clients.cjs +4 -4
- package/dist/server/handlers/stored-mcp-clients.js +4 -4
- package/dist/server/handlers/stored-prompt-blocks.cjs +4 -4
- package/dist/server/handlers/stored-prompt-blocks.js +4 -4
- package/dist/server/handlers/stored-scorers.cjs +4 -4
- package/dist/server/handlers/stored-scorers.js +4 -4
- package/dist/server/handlers/stored-skill-favorites.cjs +4 -4
- package/dist/server/handlers/stored-skill-favorites.js +4 -4
- package/dist/server/handlers/stored-skills.cjs +4 -4
- package/dist/server/handlers/stored-skills.js +4 -4
- package/dist/server/handlers/stored-workspaces.cjs +3 -3
- package/dist/server/handlers/stored-workspaces.js +3 -3
- package/dist/server/handlers/system.cjs +2 -2
- package/dist/server/handlers/system.js +2 -2
- package/dist/server/handlers/tool-providers.cjs +1 -1
- package/dist/server/handlers/tool-providers.js +1 -1
- package/dist/server/handlers/tools.cjs +6 -6
- package/dist/server/handlers/tools.js +6 -6
- package/dist/server/handlers/validate-agent-instructions.cjs +52 -0
- package/dist/server/handlers/validate-agent-instructions.cjs.map +1 -0
- package/dist/server/handlers/validate-agent-instructions.d.ts +13 -0
- package/dist/server/handlers/validate-agent-instructions.d.ts.map +1 -0
- package/dist/server/handlers/validate-agent-instructions.js +51 -0
- package/dist/server/handlers/validate-agent-instructions.js.map +1 -0
- package/dist/server/handlers/vector.cjs +2 -2
- package/dist/server/handlers/vector.js +2 -2
- package/dist/server/handlers/workflows.cjs +161 -27
- package/dist/server/handlers/workflows.cjs.map +1 -1
- package/dist/server/handlers/workflows.d.ts +13 -4
- package/dist/server/handlers/workflows.d.ts.map +1 -1
- package/dist/server/handlers/workflows.js +161 -29
- package/dist/server/handlers/workflows.js.map +1 -1
- package/dist/server/handlers/workspace.cjs +1 -1
- package/dist/server/handlers/workspace.js +1 -1
- package/dist/server/handlers.cjs +8 -8
- package/dist/server/handlers.d.ts +1 -1
- package/dist/server/handlers.d.ts.map +1 -1
- package/dist/server/handlers.js +3 -3
- package/dist/server/schemas/a2a.d.ts +70 -6
- 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 +23 -3
- package/dist/server/schemas/agents.d.ts.map +1 -1
- package/dist/server/schemas/common.d.ts.map +1 -1
- package/dist/server/schemas/datasets.d.ts +53 -0
- package/dist/server/schemas/datasets.d.ts.map +1 -1
- package/dist/server/schemas/default-options.d.ts +7 -1
- package/dist/server/schemas/default-options.d.ts.map +1 -1
- package/dist/server/schemas/{stored-workflows.d.ts → dynamic-workflows.d.ts} +13 -13
- package/dist/server/schemas/dynamic-workflows.d.ts.map +1 -0
- package/dist/server/schemas/index.cjs +26 -25
- package/dist/server/schemas/index.js +26 -26
- 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/workflows.d.ts +10 -2
- package/dist/server/schemas/workflows.d.ts.map +1 -1
- package/dist/server/server-adapter/index.cjs +44 -3
- package/dist/server/server-adapter/index.cjs.map +1 -1
- package/dist/server/server-adapter/index.d.ts +37 -0
- package/dist/server/server-adapter/index.d.ts.map +1 -1
- package/dist/server/server-adapter/index.js +45 -5
- package/dist/server/server-adapter/index.js.map +1 -1
- package/dist/server/server-adapter/routes/a2a.d.ts +116 -8
- package/dist/server/server-adapter/routes/a2a.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/agent-builder.d.ts +4 -4
- package/dist/server/server-adapter/routes/datasets.d.ts +136 -0
- package/dist/server/server-adapter/routes/datasets.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/dynamic-workflows.d.ts +16 -0
- package/dist/server/server-adapter/routes/dynamic-workflows.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/index.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/workflows.d.ts +11 -5
- package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -1
- package/dist/{stored-agents-D8ar1Pn7.js → stored-agents-BRBZM-Xl.js} +4 -4
- package/dist/{stored-agents-D8ar1Pn7.js.map → stored-agents-BRBZM-Xl.js.map} +1 -1
- package/dist/{stored-agents-DKd89v5z.cjs → stored-agents-CPxfYRH9.cjs} +4 -4
- package/dist/{stored-agents-DKd89v5z.cjs.map → stored-agents-CPxfYRH9.cjs.map} +1 -1
- package/dist/{stored-mcp-clients-CwA5_nZ9.cjs → stored-mcp-clients-CJJPe_09.cjs} +2 -2
- package/dist/{stored-mcp-clients-CwA5_nZ9.cjs.map → stored-mcp-clients-CJJPe_09.cjs.map} +1 -1
- package/dist/{stored-mcp-clients-DJ3E4g8-.js → stored-mcp-clients-CoCfZRhw.js} +2 -2
- package/dist/{stored-mcp-clients-DJ3E4g8-.js.map → stored-mcp-clients-CoCfZRhw.js.map} +1 -1
- package/dist/{stored-prompt-blocks-BlqcqnEX.js → stored-prompt-blocks-DcmkZaCm.js} +2 -2
- package/dist/{stored-prompt-blocks-BlqcqnEX.js.map → stored-prompt-blocks-DcmkZaCm.js.map} +1 -1
- package/dist/{stored-prompt-blocks-DR_Wts8r.cjs → stored-prompt-blocks-XI4frgZv.cjs} +2 -2
- package/dist/{stored-prompt-blocks-DR_Wts8r.cjs.map → stored-prompt-blocks-XI4frgZv.cjs.map} +1 -1
- package/dist/{stored-scorers-BIKumDRO.js → stored-scorers-B__LF0Cy.js} +3 -3
- package/dist/{stored-scorers-BIKumDRO.js.map → stored-scorers-B__LF0Cy.js.map} +1 -1
- package/dist/{stored-scorers-_dqFdh-G.cjs → stored-scorers-Cml7jPJv.cjs} +3 -3
- package/dist/{stored-scorers-_dqFdh-G.cjs.map → stored-scorers-Cml7jPJv.cjs.map} +1 -1
- package/dist/{stored-skills-CgwoCNNV.cjs → stored-skills-BqNK0ssS.cjs} +2 -2
- package/dist/{stored-skills-CgwoCNNV.cjs.map → stored-skills-BqNK0ssS.cjs.map} +1 -1
- package/dist/{stored-skills-B_aAMn5W.js → stored-skills-JTWbMybs.js} +2 -2
- package/dist/{stored-skills-B_aAMn5W.js.map → stored-skills-JTWbMybs.js.map} +1 -1
- package/dist/{stored-workspaces-Dib-ClOP.js → stored-workspaces-6PYE4Y3m.js} +2 -2
- package/dist/{stored-workspaces-Dib-ClOP.js.map → stored-workspaces-6PYE4Y3m.js.map} +1 -1
- package/dist/{stored-workspaces-CbJQaFuP.cjs → stored-workspaces-Dl8B20LD.cjs} +2 -2
- package/dist/{stored-workspaces-CbJQaFuP.cjs.map → stored-workspaces-Dl8B20LD.cjs.map} +1 -1
- package/dist/sync-BHatXKfg.cjs +1679 -0
- package/dist/sync-BHatXKfg.cjs.map +1 -0
- package/dist/sync-djJ8Lmds.js +1656 -0
- package/dist/sync-djJ8Lmds.js.map +1 -0
- package/dist/{utils-wESuBh27.cjs → utils-Bna_JCkb.cjs} +3 -3
- package/dist/{utils-wESuBh27.cjs.map → utils-Bna_JCkb.cjs.map} +1 -1
- package/dist/{utils-BUK03Frl.js → utils-QXKhjIm6.js} +3 -3
- package/dist/{utils-BUK03Frl.js.map → utils-QXKhjIm6.js.map} +1 -1
- package/dist/{vectors-CZY34X8R.js → vectors-Ck7Qu6yz.js} +2 -2
- package/dist/{vectors-CZY34X8R.js.map → vectors-Ck7Qu6yz.js.map} +1 -1
- package/dist/{vectors-Cj-SPxOy.cjs → vectors-D6uZn2f1.cjs} +2 -2
- package/dist/{vectors-Cj-SPxOy.cjs.map → vectors-D6uZn2f1.cjs.map} +1 -1
- package/dist/{version-common-CEBQY7M8.cjs → version-common-AtNRQ5xH.cjs} +2 -2
- package/dist/{version-common-CEBQY7M8.cjs.map → version-common-AtNRQ5xH.cjs.map} +1 -1
- package/dist/{version-common-Cmd1f9JX.js → version-common-CudZ_WuW.js} +2 -2
- package/dist/{version-common-Cmd1f9JX.js.map → version-common-CudZ_WuW.js.map} +1 -1
- package/dist/{workflows-XfiENvkF.cjs → workflows--79xhOOb.cjs} +14 -3
- package/dist/workflows--79xhOOb.cjs.map +1 -0
- package/dist/{workflows-DPW6FrY0.js → workflows-B2ooCiwN.js} +9 -4
- package/dist/workflows-B2ooCiwN.js.map +1 -0
- package/package.json +8 -8
- package/dist/a2a-CnU9zaGR.js.map +0 -1
- package/dist/a2a-DKnwIgiw.cjs.map +0 -1
- package/dist/a2a-oM7aqLz4.cjs.map +0 -1
- package/dist/a2a-uPi5sPwb.js.map +0 -1
- package/dist/agents-CYvun9iI.js.map +0 -1
- package/dist/agents-Dk2qoJi_.cjs.map +0 -1
- package/dist/common-CPNOpqxA.js.map +0 -1
- package/dist/common-spbwhiWS.cjs.map +0 -1
- package/dist/datasets-Cvix7Rms.cjs.map +0 -1
- package/dist/datasets-dhXnHLAL.js.map +0 -1
- package/dist/dist-COHIL6fR.cjs.map +0 -1
- package/dist/dist-DGqlUp0b.js.map +0 -1
- package/dist/probe-image-size-BQgIJeY_.js.map +0 -1
- package/dist/probe-image-size-DYJVSL0b.cjs.map +0 -1
- package/dist/route-builder-CIk5k35M.js.map +0 -1
- package/dist/route-builder-CgLVYL1c.cjs.map +0 -1
- package/dist/routes-CRoTKPvQ.js.map +0 -1
- package/dist/routes-hSY4wTeS.cjs.map +0 -1
- package/dist/schema-B8-5YCsA.js +0 -2
- package/dist/schema-BieM1qrc.cjs +0 -1
- package/dist/schema-Bv9OdW1f-BY6u3u8K.cjs.map +0 -1
- package/dist/schema-Bv9OdW1f-CIOfv-3w.js.map +0 -1
- package/dist/server/handlers/stored-workflows.cjs +0 -6
- package/dist/server/handlers/stored-workflows.js +0 -2
- package/dist/server/schemas/stored-workflows.d.ts.map +0 -1
- package/dist/server/server-adapter/routes/stored-workflows.d.ts +0 -16
- package/dist/server/server-adapter/routes/stored-workflows.d.ts.map +0 -1
- package/dist/stored-workflows-OanG0TmB.js.map +0 -1
- package/dist/stored-workflows-pCiWK305.cjs.map +0 -1
- package/dist/workflows-DPW6FrY0.js.map +0 -1
- package/dist/workflows-XfiENvkF.cjs.map +0 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
const require_rolldown_runtime = require("./rolldown-runtime-CVvi-lCc.cjs");
|
|
2
|
-
const require_schema_Bv9OdW1f = require("./schema-Bv9OdW1f-
|
|
3
|
-
require("./schema-
|
|
4
|
-
const
|
|
2
|
+
const require_schema_Bv9OdW1f = require("./schema-Bv9OdW1f-CHHI-NTr.cjs");
|
|
3
|
+
require("./schema-DkBbires.cjs");
|
|
4
|
+
const require_sync$1 = require("./sync-BHatXKfg.cjs");
|
|
5
|
+
const require_dist = require("./dist-CAVC0nWG.cjs");
|
|
5
6
|
let zod_v4 = require("zod/v4");
|
|
6
7
|
zod_v4 = require_rolldown_runtime.__toESM(zod_v4, 1);
|
|
7
8
|
let _mastra_core_schema = require("@mastra/core/schema");
|
|
@@ -4083,1278 +4084,8 @@ function getCharacterCount(text) {
|
|
|
4083
4084
|
return Array.from(text).length;
|
|
4084
4085
|
}
|
|
4085
4086
|
//#endregion
|
|
4086
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/inherits/2.0.4/3ed134d32829ca149a6c475be3507d0f5d7d58b7bb2c1b0fb4c43b3e2f7ba5d2/node_modules/inherits/inherits_browser.js
|
|
4087
|
-
var require_inherits_browser = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports, module) => {
|
|
4088
|
-
if (typeof Object.create === "function") module.exports = function inherits(ctor, superCtor) {
|
|
4089
|
-
if (superCtor) {
|
|
4090
|
-
ctor.super_ = superCtor;
|
|
4091
|
-
ctor.prototype = Object.create(superCtor.prototype, { constructor: {
|
|
4092
|
-
value: ctor,
|
|
4093
|
-
enumerable: false,
|
|
4094
|
-
writable: true,
|
|
4095
|
-
configurable: true
|
|
4096
|
-
} });
|
|
4097
|
-
}
|
|
4098
|
-
};
|
|
4099
|
-
else module.exports = function inherits(ctor, superCtor) {
|
|
4100
|
-
if (superCtor) {
|
|
4101
|
-
ctor.super_ = superCtor;
|
|
4102
|
-
var TempCtor = function() {};
|
|
4103
|
-
TempCtor.prototype = superCtor.prototype;
|
|
4104
|
-
ctor.prototype = new TempCtor();
|
|
4105
|
-
ctor.prototype.constructor = ctor;
|
|
4106
|
-
}
|
|
4107
|
-
};
|
|
4108
|
-
}));
|
|
4109
|
-
//#endregion
|
|
4110
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/inherits/2.0.4/3ed134d32829ca149a6c475be3507d0f5d7d58b7bb2c1b0fb4c43b3e2f7ba5d2/node_modules/inherits/inherits.js
|
|
4111
|
-
var require_inherits = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports, module) => {
|
|
4112
|
-
try {
|
|
4113
|
-
var util$1 = require("util");
|
|
4114
|
-
/* istanbul ignore next */
|
|
4115
|
-
if (typeof util$1.inherits !== "function") throw "";
|
|
4116
|
-
module.exports = util$1.inherits;
|
|
4117
|
-
} catch (e) {
|
|
4118
|
-
/* istanbul ignore next */
|
|
4119
|
-
module.exports = require_inherits_browser();
|
|
4120
|
-
}
|
|
4121
|
-
}));
|
|
4122
|
-
//#endregion
|
|
4123
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/queue/6.0.2/1ff508d6efe0b00278160bee66f3e5c85b96dfb4a4e9ee9d48c68898ab3c428f/node_modules/queue/index.js
|
|
4124
|
-
var require_queue = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports, module) => {
|
|
4125
|
-
var inherits = require_inherits();
|
|
4126
|
-
var EventEmitter = require("events").EventEmitter;
|
|
4127
|
-
module.exports = Queue;
|
|
4128
|
-
module.exports.default = Queue;
|
|
4129
|
-
function Queue(options) {
|
|
4130
|
-
if (!(this instanceof Queue)) return new Queue(options);
|
|
4131
|
-
EventEmitter.call(this);
|
|
4132
|
-
options = options || {};
|
|
4133
|
-
this.concurrency = options.concurrency || Infinity;
|
|
4134
|
-
this.timeout = options.timeout || 0;
|
|
4135
|
-
this.autostart = options.autostart || false;
|
|
4136
|
-
this.results = options.results || null;
|
|
4137
|
-
this.pending = 0;
|
|
4138
|
-
this.session = 0;
|
|
4139
|
-
this.running = false;
|
|
4140
|
-
this.jobs = [];
|
|
4141
|
-
this.timers = {};
|
|
4142
|
-
}
|
|
4143
|
-
inherits(Queue, EventEmitter);
|
|
4144
|
-
[
|
|
4145
|
-
"pop",
|
|
4146
|
-
"shift",
|
|
4147
|
-
"indexOf",
|
|
4148
|
-
"lastIndexOf"
|
|
4149
|
-
].forEach(function(method) {
|
|
4150
|
-
Queue.prototype[method] = function() {
|
|
4151
|
-
return Array.prototype[method].apply(this.jobs, arguments);
|
|
4152
|
-
};
|
|
4153
|
-
});
|
|
4154
|
-
Queue.prototype.slice = function(begin, end) {
|
|
4155
|
-
this.jobs = this.jobs.slice(begin, end);
|
|
4156
|
-
return this;
|
|
4157
|
-
};
|
|
4158
|
-
Queue.prototype.reverse = function() {
|
|
4159
|
-
this.jobs.reverse();
|
|
4160
|
-
return this;
|
|
4161
|
-
};
|
|
4162
|
-
[
|
|
4163
|
-
"push",
|
|
4164
|
-
"unshift",
|
|
4165
|
-
"splice"
|
|
4166
|
-
].forEach(function(method) {
|
|
4167
|
-
Queue.prototype[method] = function() {
|
|
4168
|
-
var methodResult = Array.prototype[method].apply(this.jobs, arguments);
|
|
4169
|
-
if (this.autostart) this.start();
|
|
4170
|
-
return methodResult;
|
|
4171
|
-
};
|
|
4172
|
-
});
|
|
4173
|
-
Object.defineProperty(Queue.prototype, "length", { get: function() {
|
|
4174
|
-
return this.pending + this.jobs.length;
|
|
4175
|
-
} });
|
|
4176
|
-
Queue.prototype.start = function(cb) {
|
|
4177
|
-
if (cb) callOnErrorOrEnd.call(this, cb);
|
|
4178
|
-
this.running = true;
|
|
4179
|
-
if (this.pending >= this.concurrency) return;
|
|
4180
|
-
if (this.jobs.length === 0) {
|
|
4181
|
-
if (this.pending === 0) done.call(this);
|
|
4182
|
-
return;
|
|
4183
|
-
}
|
|
4184
|
-
var self = this;
|
|
4185
|
-
var job = this.jobs.shift();
|
|
4186
|
-
var once = true;
|
|
4187
|
-
var session = this.session;
|
|
4188
|
-
var timeoutId = null;
|
|
4189
|
-
var didTimeout = false;
|
|
4190
|
-
var resultIndex = null;
|
|
4191
|
-
var timeout = job.hasOwnProperty("timeout") ? job.timeout : this.timeout;
|
|
4192
|
-
function next(err, result) {
|
|
4193
|
-
if (once && self.session === session) {
|
|
4194
|
-
once = false;
|
|
4195
|
-
self.pending--;
|
|
4196
|
-
if (timeoutId !== null) {
|
|
4197
|
-
delete self.timers[timeoutId];
|
|
4198
|
-
clearTimeout(timeoutId);
|
|
4199
|
-
}
|
|
4200
|
-
if (err) self.emit("error", err, job);
|
|
4201
|
-
else if (didTimeout === false) {
|
|
4202
|
-
if (resultIndex !== null) self.results[resultIndex] = Array.prototype.slice.call(arguments, 1);
|
|
4203
|
-
self.emit("success", result, job);
|
|
4204
|
-
}
|
|
4205
|
-
if (self.session === session) {
|
|
4206
|
-
if (self.pending === 0 && self.jobs.length === 0) done.call(self);
|
|
4207
|
-
else if (self.running) self.start();
|
|
4208
|
-
}
|
|
4209
|
-
}
|
|
4210
|
-
}
|
|
4211
|
-
if (timeout) {
|
|
4212
|
-
timeoutId = setTimeout(function() {
|
|
4213
|
-
didTimeout = true;
|
|
4214
|
-
if (self.listeners("timeout").length > 0) self.emit("timeout", next, job);
|
|
4215
|
-
else next();
|
|
4216
|
-
}, timeout);
|
|
4217
|
-
this.timers[timeoutId] = timeoutId;
|
|
4218
|
-
}
|
|
4219
|
-
if (this.results) {
|
|
4220
|
-
resultIndex = this.results.length;
|
|
4221
|
-
this.results[resultIndex] = null;
|
|
4222
|
-
}
|
|
4223
|
-
this.pending++;
|
|
4224
|
-
self.emit("start", job);
|
|
4225
|
-
var promise = job(next);
|
|
4226
|
-
if (promise && promise.then && typeof promise.then === "function") promise.then(function(result) {
|
|
4227
|
-
return next(null, result);
|
|
4228
|
-
}).catch(function(err) {
|
|
4229
|
-
return next(err || true);
|
|
4230
|
-
});
|
|
4231
|
-
if (this.running && this.jobs.length > 0) this.start();
|
|
4232
|
-
};
|
|
4233
|
-
Queue.prototype.stop = function() {
|
|
4234
|
-
this.running = false;
|
|
4235
|
-
};
|
|
4236
|
-
Queue.prototype.end = function(err) {
|
|
4237
|
-
clearTimers.call(this);
|
|
4238
|
-
this.jobs.length = 0;
|
|
4239
|
-
this.pending = 0;
|
|
4240
|
-
done.call(this, err);
|
|
4241
|
-
};
|
|
4242
|
-
function clearTimers() {
|
|
4243
|
-
for (var key in this.timers) {
|
|
4244
|
-
var timeoutId = this.timers[key];
|
|
4245
|
-
delete this.timers[key];
|
|
4246
|
-
clearTimeout(timeoutId);
|
|
4247
|
-
}
|
|
4248
|
-
}
|
|
4249
|
-
function callOnErrorOrEnd(cb) {
|
|
4250
|
-
var self = this;
|
|
4251
|
-
this.on("error", onerror);
|
|
4252
|
-
this.on("end", onend);
|
|
4253
|
-
function onerror(err) {
|
|
4254
|
-
self.end(err);
|
|
4255
|
-
}
|
|
4256
|
-
function onend(err) {
|
|
4257
|
-
self.removeListener("error", onerror);
|
|
4258
|
-
self.removeListener("end", onend);
|
|
4259
|
-
cb(err, this.results);
|
|
4260
|
-
}
|
|
4261
|
-
}
|
|
4262
|
-
function done(err) {
|
|
4263
|
-
this.session++;
|
|
4264
|
-
this.running = false;
|
|
4265
|
-
this.emit("end", err);
|
|
4266
|
-
}
|
|
4267
|
-
}));
|
|
4268
|
-
//#endregion
|
|
4269
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/utils.js
|
|
4270
|
-
var require_utils = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
4271
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4272
|
-
exports.findBox = exports.readUInt = exports.readUInt32LE = exports.readUInt32BE = exports.readInt32LE = exports.readUInt24LE = exports.readUInt16LE = exports.readUInt16BE = exports.readInt16LE = exports.toHexString = exports.toUTF8String = void 0;
|
|
4273
|
-
const decoder = new TextDecoder();
|
|
4274
|
-
const toUTF8String = (input, start = 0, end = input.length) => decoder.decode(input.slice(start, end));
|
|
4275
|
-
exports.toUTF8String = toUTF8String;
|
|
4276
|
-
const toHexString = (input, start = 0, end = input.length) => input.slice(start, end).reduce((memo, i) => memo + ("0" + i.toString(16)).slice(-2), "");
|
|
4277
|
-
exports.toHexString = toHexString;
|
|
4278
|
-
const readInt16LE = (input, offset = 0) => {
|
|
4279
|
-
const val = input[offset] + input[offset + 1] * 2 ** 8;
|
|
4280
|
-
return val | (val & 2 ** 15) * 131070;
|
|
4281
|
-
};
|
|
4282
|
-
exports.readInt16LE = readInt16LE;
|
|
4283
|
-
const readUInt16BE = (input, offset = 0) => input[offset] * 2 ** 8 + input[offset + 1];
|
|
4284
|
-
exports.readUInt16BE = readUInt16BE;
|
|
4285
|
-
const readUInt16LE = (input, offset = 0) => input[offset] + input[offset + 1] * 2 ** 8;
|
|
4286
|
-
exports.readUInt16LE = readUInt16LE;
|
|
4287
|
-
const readUInt24LE = (input, offset = 0) => input[offset] + input[offset + 1] * 2 ** 8 + input[offset + 2] * 2 ** 16;
|
|
4288
|
-
exports.readUInt24LE = readUInt24LE;
|
|
4289
|
-
const readInt32LE = (input, offset = 0) => input[offset] + input[offset + 1] * 2 ** 8 + input[offset + 2] * 2 ** 16 + (input[offset + 3] << 24);
|
|
4290
|
-
exports.readInt32LE = readInt32LE;
|
|
4291
|
-
const readUInt32BE = (input, offset = 0) => input[offset] * 2 ** 24 + input[offset + 1] * 2 ** 16 + input[offset + 2] * 2 ** 8 + input[offset + 3];
|
|
4292
|
-
exports.readUInt32BE = readUInt32BE;
|
|
4293
|
-
const readUInt32LE = (input, offset = 0) => input[offset] + input[offset + 1] * 2 ** 8 + input[offset + 2] * 2 ** 16 + input[offset + 3] * 2 ** 24;
|
|
4294
|
-
exports.readUInt32LE = readUInt32LE;
|
|
4295
|
-
const methods = {
|
|
4296
|
-
readUInt16BE: exports.readUInt16BE,
|
|
4297
|
-
readUInt16LE: exports.readUInt16LE,
|
|
4298
|
-
readUInt32BE: exports.readUInt32BE,
|
|
4299
|
-
readUInt32LE: exports.readUInt32LE
|
|
4300
|
-
};
|
|
4301
|
-
function readUInt(input, bits, offset, isBigEndian) {
|
|
4302
|
-
offset = offset || 0;
|
|
4303
|
-
const endian = isBigEndian ? "BE" : "LE";
|
|
4304
|
-
const methodName = "readUInt" + bits + endian;
|
|
4305
|
-
return methods[methodName](input, offset);
|
|
4306
|
-
}
|
|
4307
|
-
exports.readUInt = readUInt;
|
|
4308
|
-
function readBox(input, offset) {
|
|
4309
|
-
if (input.length - offset < 4) return;
|
|
4310
|
-
const boxSize = (0, exports.readUInt32BE)(input, offset);
|
|
4311
|
-
if (input.length - offset < boxSize) return;
|
|
4312
|
-
return {
|
|
4313
|
-
name: (0, exports.toUTF8String)(input, 4 + offset, 8 + offset),
|
|
4314
|
-
offset,
|
|
4315
|
-
size: boxSize
|
|
4316
|
-
};
|
|
4317
|
-
}
|
|
4318
|
-
function findBox(input, boxName, offset) {
|
|
4319
|
-
while (offset < input.length) {
|
|
4320
|
-
const box = readBox(input, offset);
|
|
4321
|
-
if (!box) break;
|
|
4322
|
-
if (box.name === boxName) return box;
|
|
4323
|
-
offset += box.size > 0 ? box.size : 8;
|
|
4324
|
-
}
|
|
4325
|
-
}
|
|
4326
|
-
exports.findBox = findBox;
|
|
4327
|
-
}));
|
|
4328
|
-
//#endregion
|
|
4329
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/bmp.js
|
|
4330
|
-
var require_bmp = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
4331
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4332
|
-
exports.BMP = void 0;
|
|
4333
|
-
const utils_1 = require_utils();
|
|
4334
|
-
exports.BMP = {
|
|
4335
|
-
validate: (input) => (0, utils_1.toUTF8String)(input, 0, 2) === "BM",
|
|
4336
|
-
calculate: (input) => ({
|
|
4337
|
-
height: Math.abs((0, utils_1.readInt32LE)(input, 22)),
|
|
4338
|
-
width: (0, utils_1.readUInt32LE)(input, 18)
|
|
4339
|
-
})
|
|
4340
|
-
};
|
|
4341
|
-
}));
|
|
4342
|
-
//#endregion
|
|
4343
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/ico.js
|
|
4344
|
-
var require_ico = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
4345
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4346
|
-
exports.ICO = void 0;
|
|
4347
|
-
const utils_1 = require_utils();
|
|
4348
|
-
const TYPE_ICON = 1;
|
|
4349
|
-
/**
|
|
4350
|
-
* ICON Header
|
|
4351
|
-
*
|
|
4352
|
-
* | Offset | Size | Purpose |
|
|
4353
|
-
* | 0 | 2 | Reserved. Must always be 0. |
|
|
4354
|
-
* | 2 | 2 | Image type: 1 for icon (.ICO) image, 2 for cursor (.CUR) image. Other values are invalid. |
|
|
4355
|
-
* | 4 | 2 | Number of images in the file. |
|
|
4356
|
-
*
|
|
4357
|
-
*/
|
|
4358
|
-
const SIZE_HEADER = 6;
|
|
4359
|
-
/**
|
|
4360
|
-
* Image Entry
|
|
4361
|
-
*
|
|
4362
|
-
* | Offset | Size | Purpose |
|
|
4363
|
-
* | 0 | 1 | Image width in pixels. Can be any number between 0 and 255. Value 0 means width is 256 pixels. |
|
|
4364
|
-
* | 1 | 1 | Image height in pixels. Can be any number between 0 and 255. Value 0 means height is 256 pixels. |
|
|
4365
|
-
* | 2 | 1 | Number of colors in the color palette. Should be 0 if the image does not use a color palette. |
|
|
4366
|
-
* | 3 | 1 | Reserved. Should be 0. |
|
|
4367
|
-
* | 4 | 2 | ICO format: Color planes. Should be 0 or 1. |
|
|
4368
|
-
* | | | CUR format: The horizontal coordinates of the hotspot in number of pixels from the left. |
|
|
4369
|
-
* | 6 | 2 | ICO format: Bits per pixel. |
|
|
4370
|
-
* | | | CUR format: The vertical coordinates of the hotspot in number of pixels from the top. |
|
|
4371
|
-
* | 8 | 4 | The size of the image's data in bytes |
|
|
4372
|
-
* | 12 | 4 | The offset of BMP or PNG data from the beginning of the ICO/CUR file |
|
|
4373
|
-
*
|
|
4374
|
-
*/
|
|
4375
|
-
const SIZE_IMAGE_ENTRY = 16;
|
|
4376
|
-
function getSizeFromOffset(input, offset) {
|
|
4377
|
-
const value = input[offset];
|
|
4378
|
-
return value === 0 ? 256 : value;
|
|
4379
|
-
}
|
|
4380
|
-
function getImageSize(input, imageIndex) {
|
|
4381
|
-
const offset = SIZE_HEADER + imageIndex * SIZE_IMAGE_ENTRY;
|
|
4382
|
-
return {
|
|
4383
|
-
height: getSizeFromOffset(input, offset + 1),
|
|
4384
|
-
width: getSizeFromOffset(input, offset)
|
|
4385
|
-
};
|
|
4386
|
-
}
|
|
4387
|
-
exports.ICO = {
|
|
4388
|
-
validate(input) {
|
|
4389
|
-
const reserved = (0, utils_1.readUInt16LE)(input, 0);
|
|
4390
|
-
const imageCount = (0, utils_1.readUInt16LE)(input, 4);
|
|
4391
|
-
if (reserved !== 0 || imageCount === 0) return false;
|
|
4392
|
-
return (0, utils_1.readUInt16LE)(input, 2) === TYPE_ICON;
|
|
4393
|
-
},
|
|
4394
|
-
calculate(input) {
|
|
4395
|
-
const nbImages = (0, utils_1.readUInt16LE)(input, 4);
|
|
4396
|
-
const imageSize = getImageSize(input, 0);
|
|
4397
|
-
if (nbImages === 1) return imageSize;
|
|
4398
|
-
const imgs = [imageSize];
|
|
4399
|
-
for (let imageIndex = 1; imageIndex < nbImages; imageIndex += 1) imgs.push(getImageSize(input, imageIndex));
|
|
4400
|
-
return {
|
|
4401
|
-
height: imageSize.height,
|
|
4402
|
-
images: imgs,
|
|
4403
|
-
width: imageSize.width
|
|
4404
|
-
};
|
|
4405
|
-
}
|
|
4406
|
-
};
|
|
4407
|
-
}));
|
|
4408
|
-
//#endregion
|
|
4409
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/cur.js
|
|
4410
|
-
var require_cur = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
4411
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4412
|
-
exports.CUR = void 0;
|
|
4413
|
-
const ico_1 = require_ico();
|
|
4414
|
-
const utils_1 = require_utils();
|
|
4415
|
-
const TYPE_CURSOR = 2;
|
|
4416
|
-
exports.CUR = {
|
|
4417
|
-
validate(input) {
|
|
4418
|
-
const reserved = (0, utils_1.readUInt16LE)(input, 0);
|
|
4419
|
-
const imageCount = (0, utils_1.readUInt16LE)(input, 4);
|
|
4420
|
-
if (reserved !== 0 || imageCount === 0) return false;
|
|
4421
|
-
return (0, utils_1.readUInt16LE)(input, 2) === TYPE_CURSOR;
|
|
4422
|
-
},
|
|
4423
|
-
calculate: (input) => ico_1.ICO.calculate(input)
|
|
4424
|
-
};
|
|
4425
|
-
}));
|
|
4426
|
-
//#endregion
|
|
4427
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/dds.js
|
|
4428
|
-
var require_dds = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
4429
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4430
|
-
exports.DDS = void 0;
|
|
4431
|
-
const utils_1 = require_utils();
|
|
4432
|
-
exports.DDS = {
|
|
4433
|
-
validate: (input) => (0, utils_1.readUInt32LE)(input, 0) === 542327876,
|
|
4434
|
-
calculate: (input) => ({
|
|
4435
|
-
height: (0, utils_1.readUInt32LE)(input, 12),
|
|
4436
|
-
width: (0, utils_1.readUInt32LE)(input, 16)
|
|
4437
|
-
})
|
|
4438
|
-
};
|
|
4439
|
-
}));
|
|
4440
|
-
//#endregion
|
|
4441
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/gif.js
|
|
4442
|
-
var require_gif = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
4443
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4444
|
-
exports.GIF = void 0;
|
|
4445
|
-
const utils_1 = require_utils();
|
|
4446
|
-
const gifRegexp = /^GIF8[79]a/;
|
|
4447
|
-
exports.GIF = {
|
|
4448
|
-
validate: (input) => gifRegexp.test((0, utils_1.toUTF8String)(input, 0, 6)),
|
|
4449
|
-
calculate: (input) => ({
|
|
4450
|
-
height: (0, utils_1.readUInt16LE)(input, 8),
|
|
4451
|
-
width: (0, utils_1.readUInt16LE)(input, 6)
|
|
4452
|
-
})
|
|
4453
|
-
};
|
|
4454
|
-
}));
|
|
4455
|
-
//#endregion
|
|
4456
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/heif.js
|
|
4457
|
-
var require_heif = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
4458
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4459
|
-
exports.HEIF = void 0;
|
|
4460
|
-
const utils_1 = require_utils();
|
|
4461
|
-
const brandMap = {
|
|
4462
|
-
avif: "avif",
|
|
4463
|
-
mif1: "heif",
|
|
4464
|
-
msf1: "heif",
|
|
4465
|
-
heic: "heic",
|
|
4466
|
-
heix: "heic",
|
|
4467
|
-
hevc: "heic",
|
|
4468
|
-
hevx: "heic"
|
|
4469
|
-
};
|
|
4470
|
-
exports.HEIF = {
|
|
4471
|
-
validate(input) {
|
|
4472
|
-
if ((0, utils_1.toUTF8String)(input, 4, 8) !== "ftyp") return false;
|
|
4473
|
-
const ftypBox = (0, utils_1.findBox)(input, "ftyp", 0);
|
|
4474
|
-
if (!ftypBox) return false;
|
|
4475
|
-
return (0, utils_1.toUTF8String)(input, ftypBox.offset + 8, ftypBox.offset + 12) in brandMap;
|
|
4476
|
-
},
|
|
4477
|
-
calculate(input) {
|
|
4478
|
-
const metaBox = (0, utils_1.findBox)(input, "meta", 0);
|
|
4479
|
-
const iprpBox = metaBox && (0, utils_1.findBox)(input, "iprp", metaBox.offset + 12);
|
|
4480
|
-
const ipcoBox = iprpBox && (0, utils_1.findBox)(input, "ipco", iprpBox.offset + 8);
|
|
4481
|
-
const ispeBox = ipcoBox && (0, utils_1.findBox)(input, "ispe", ipcoBox.offset + 8);
|
|
4482
|
-
if (ispeBox) return {
|
|
4483
|
-
height: (0, utils_1.readUInt32BE)(input, ispeBox.offset + 16),
|
|
4484
|
-
width: (0, utils_1.readUInt32BE)(input, ispeBox.offset + 12),
|
|
4485
|
-
type: (0, utils_1.toUTF8String)(input, 8, 12)
|
|
4486
|
-
};
|
|
4487
|
-
throw new TypeError("Invalid HEIF, no size found");
|
|
4488
|
-
}
|
|
4489
|
-
};
|
|
4490
|
-
}));
|
|
4491
|
-
//#endregion
|
|
4492
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/icns.js
|
|
4493
|
-
var require_icns = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
4494
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4495
|
-
exports.ICNS = void 0;
|
|
4496
|
-
const utils_1 = require_utils();
|
|
4497
|
-
/**
|
|
4498
|
-
* ICNS Header
|
|
4499
|
-
*
|
|
4500
|
-
* | Offset | Size | Purpose |
|
|
4501
|
-
* | 0 | 4 | Magic literal, must be "icns" (0x69, 0x63, 0x6e, 0x73) |
|
|
4502
|
-
* | 4 | 4 | Length of file, in bytes, msb first. |
|
|
4503
|
-
*
|
|
4504
|
-
*/
|
|
4505
|
-
const SIZE_HEADER = 8;
|
|
4506
|
-
const FILE_LENGTH_OFFSET = 4;
|
|
4507
|
-
/**
|
|
4508
|
-
* Image Entry
|
|
4509
|
-
*
|
|
4510
|
-
* | Offset | Size | Purpose |
|
|
4511
|
-
* | 0 | 4 | Icon type, see OSType below. |
|
|
4512
|
-
* | 4 | 4 | Length of data, in bytes (including type and length), msb first. |
|
|
4513
|
-
* | 8 | n | Icon data |
|
|
4514
|
-
*/
|
|
4515
|
-
const ENTRY_LENGTH_OFFSET = 4;
|
|
4516
|
-
const ICON_TYPE_SIZE = {
|
|
4517
|
-
ICON: 32,
|
|
4518
|
-
"ICN#": 32,
|
|
4519
|
-
"icm#": 16,
|
|
4520
|
-
icm4: 16,
|
|
4521
|
-
icm8: 16,
|
|
4522
|
-
"ics#": 16,
|
|
4523
|
-
ics4: 16,
|
|
4524
|
-
ics8: 16,
|
|
4525
|
-
is32: 16,
|
|
4526
|
-
s8mk: 16,
|
|
4527
|
-
icp4: 16,
|
|
4528
|
-
icl4: 32,
|
|
4529
|
-
icl8: 32,
|
|
4530
|
-
il32: 32,
|
|
4531
|
-
l8mk: 32,
|
|
4532
|
-
icp5: 32,
|
|
4533
|
-
ic11: 32,
|
|
4534
|
-
ich4: 48,
|
|
4535
|
-
ich8: 48,
|
|
4536
|
-
ih32: 48,
|
|
4537
|
-
h8mk: 48,
|
|
4538
|
-
icp6: 64,
|
|
4539
|
-
ic12: 32,
|
|
4540
|
-
it32: 128,
|
|
4541
|
-
t8mk: 128,
|
|
4542
|
-
ic07: 128,
|
|
4543
|
-
ic08: 256,
|
|
4544
|
-
ic13: 256,
|
|
4545
|
-
ic09: 512,
|
|
4546
|
-
ic14: 512,
|
|
4547
|
-
ic10: 1024
|
|
4548
|
-
};
|
|
4549
|
-
function readImageHeader(input, imageOffset) {
|
|
4550
|
-
const imageLengthOffset = imageOffset + ENTRY_LENGTH_OFFSET;
|
|
4551
|
-
return [(0, utils_1.toUTF8String)(input, imageOffset, imageLengthOffset), (0, utils_1.readUInt32BE)(input, imageLengthOffset)];
|
|
4552
|
-
}
|
|
4553
|
-
function getImageSize(type) {
|
|
4554
|
-
const size = ICON_TYPE_SIZE[type];
|
|
4555
|
-
return {
|
|
4556
|
-
width: size,
|
|
4557
|
-
height: size,
|
|
4558
|
-
type
|
|
4559
|
-
};
|
|
4560
|
-
}
|
|
4561
|
-
exports.ICNS = {
|
|
4562
|
-
validate: (input) => (0, utils_1.toUTF8String)(input, 0, 4) === "icns",
|
|
4563
|
-
calculate(input) {
|
|
4564
|
-
const inputLength = input.length;
|
|
4565
|
-
const fileLength = (0, utils_1.readUInt32BE)(input, FILE_LENGTH_OFFSET);
|
|
4566
|
-
let imageOffset = SIZE_HEADER;
|
|
4567
|
-
let imageHeader = readImageHeader(input, imageOffset);
|
|
4568
|
-
let imageSize = getImageSize(imageHeader[0]);
|
|
4569
|
-
imageOffset += imageHeader[1];
|
|
4570
|
-
if (imageOffset === fileLength) return imageSize;
|
|
4571
|
-
const result = {
|
|
4572
|
-
height: imageSize.height,
|
|
4573
|
-
images: [imageSize],
|
|
4574
|
-
width: imageSize.width
|
|
4575
|
-
};
|
|
4576
|
-
while (imageOffset < fileLength && imageOffset < inputLength) {
|
|
4577
|
-
imageHeader = readImageHeader(input, imageOffset);
|
|
4578
|
-
imageSize = getImageSize(imageHeader[0]);
|
|
4579
|
-
imageOffset += imageHeader[1];
|
|
4580
|
-
result.images.push(imageSize);
|
|
4581
|
-
}
|
|
4582
|
-
return result;
|
|
4583
|
-
}
|
|
4584
|
-
};
|
|
4585
|
-
}));
|
|
4586
|
-
//#endregion
|
|
4587
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/j2c.js
|
|
4588
|
-
var require_j2c = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
4589
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4590
|
-
exports.J2C = void 0;
|
|
4591
|
-
const utils_1 = require_utils();
|
|
4592
|
-
exports.J2C = {
|
|
4593
|
-
validate: (input) => (0, utils_1.readUInt32BE)(input, 0) === 4283432785,
|
|
4594
|
-
calculate: (input) => ({
|
|
4595
|
-
height: (0, utils_1.readUInt32BE)(input, 12),
|
|
4596
|
-
width: (0, utils_1.readUInt32BE)(input, 8)
|
|
4597
|
-
})
|
|
4598
|
-
};
|
|
4599
|
-
}));
|
|
4600
|
-
//#endregion
|
|
4601
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/jp2.js
|
|
4602
|
-
var require_jp2 = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
4603
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4604
|
-
exports.JP2 = void 0;
|
|
4605
|
-
const utils_1 = require_utils();
|
|
4606
|
-
exports.JP2 = {
|
|
4607
|
-
validate(input) {
|
|
4608
|
-
if ((0, utils_1.toUTF8String)(input, 4, 8) !== "jP ") return false;
|
|
4609
|
-
const ftypBox = (0, utils_1.findBox)(input, "ftyp", 0);
|
|
4610
|
-
if (!ftypBox) return false;
|
|
4611
|
-
return (0, utils_1.toUTF8String)(input, ftypBox.offset + 8, ftypBox.offset + 12) === "jp2 ";
|
|
4612
|
-
},
|
|
4613
|
-
calculate(input) {
|
|
4614
|
-
const jp2hBox = (0, utils_1.findBox)(input, "jp2h", 0);
|
|
4615
|
-
const ihdrBox = jp2hBox && (0, utils_1.findBox)(input, "ihdr", jp2hBox.offset + 8);
|
|
4616
|
-
if (ihdrBox) return {
|
|
4617
|
-
height: (0, utils_1.readUInt32BE)(input, ihdrBox.offset + 8),
|
|
4618
|
-
width: (0, utils_1.readUInt32BE)(input, ihdrBox.offset + 12)
|
|
4619
|
-
};
|
|
4620
|
-
throw new TypeError("Unsupported JPEG 2000 format");
|
|
4621
|
-
}
|
|
4622
|
-
};
|
|
4623
|
-
}));
|
|
4624
|
-
//#endregion
|
|
4625
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/jpg.js
|
|
4626
|
-
var require_jpg = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
4627
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4628
|
-
exports.JPG = void 0;
|
|
4629
|
-
const utils_1 = require_utils();
|
|
4630
|
-
const EXIF_MARKER = "45786966";
|
|
4631
|
-
const APP1_DATA_SIZE_BYTES = 2;
|
|
4632
|
-
const EXIF_HEADER_BYTES = 6;
|
|
4633
|
-
const BIG_ENDIAN_BYTE_ALIGN = "4d4d";
|
|
4634
|
-
const LITTLE_ENDIAN_BYTE_ALIGN = "4949";
|
|
4635
|
-
const IDF_ENTRY_BYTES = 12;
|
|
4636
|
-
function isEXIF(input) {
|
|
4637
|
-
return (0, utils_1.toHexString)(input, 2, 6) === EXIF_MARKER;
|
|
4638
|
-
}
|
|
4639
|
-
function extractSize(input, index) {
|
|
4640
|
-
return {
|
|
4641
|
-
height: (0, utils_1.readUInt16BE)(input, index),
|
|
4642
|
-
width: (0, utils_1.readUInt16BE)(input, index + 2)
|
|
4643
|
-
};
|
|
4644
|
-
}
|
|
4645
|
-
function extractOrientation(exifBlock, isBigEndian) {
|
|
4646
|
-
const idfDirectoryEntries = (0, utils_1.readUInt)(exifBlock, 16, 14, isBigEndian);
|
|
4647
|
-
for (let directoryEntryNumber = 0; directoryEntryNumber < idfDirectoryEntries; directoryEntryNumber++) {
|
|
4648
|
-
const start = 16 + directoryEntryNumber * IDF_ENTRY_BYTES;
|
|
4649
|
-
const end = start + IDF_ENTRY_BYTES;
|
|
4650
|
-
if (start > exifBlock.length) return;
|
|
4651
|
-
const block = exifBlock.slice(start, end);
|
|
4652
|
-
if ((0, utils_1.readUInt)(block, 16, 0, isBigEndian) === 274) {
|
|
4653
|
-
if ((0, utils_1.readUInt)(block, 16, 2, isBigEndian) !== 3) return;
|
|
4654
|
-
if ((0, utils_1.readUInt)(block, 32, 4, isBigEndian) !== 1) return;
|
|
4655
|
-
return (0, utils_1.readUInt)(block, 16, 8, isBigEndian);
|
|
4656
|
-
}
|
|
4657
|
-
}
|
|
4658
|
-
}
|
|
4659
|
-
function validateExifBlock(input, index) {
|
|
4660
|
-
const exifBlock = input.slice(APP1_DATA_SIZE_BYTES, index);
|
|
4661
|
-
const byteAlign = (0, utils_1.toHexString)(exifBlock, EXIF_HEADER_BYTES, 8);
|
|
4662
|
-
const isBigEndian = byteAlign === BIG_ENDIAN_BYTE_ALIGN;
|
|
4663
|
-
if (isBigEndian || byteAlign === LITTLE_ENDIAN_BYTE_ALIGN) return extractOrientation(exifBlock, isBigEndian);
|
|
4664
|
-
}
|
|
4665
|
-
function validateInput(input, index) {
|
|
4666
|
-
if (index > input.length) throw new TypeError("Corrupt JPG, exceeded buffer limits");
|
|
4667
|
-
}
|
|
4668
|
-
exports.JPG = {
|
|
4669
|
-
validate: (input) => (0, utils_1.toHexString)(input, 0, 2) === "ffd8",
|
|
4670
|
-
calculate(input) {
|
|
4671
|
-
input = input.slice(4);
|
|
4672
|
-
let orientation;
|
|
4673
|
-
let next;
|
|
4674
|
-
while (input.length) {
|
|
4675
|
-
const i = (0, utils_1.readUInt16BE)(input, 0);
|
|
4676
|
-
if (input[i] !== 255) {
|
|
4677
|
-
input = input.slice(1);
|
|
4678
|
-
continue;
|
|
4679
|
-
}
|
|
4680
|
-
if (isEXIF(input)) orientation = validateExifBlock(input, i);
|
|
4681
|
-
validateInput(input, i);
|
|
4682
|
-
next = input[i + 1];
|
|
4683
|
-
if (next === 192 || next === 193 || next === 194) {
|
|
4684
|
-
const size = extractSize(input, i + 5);
|
|
4685
|
-
if (!orientation) return size;
|
|
4686
|
-
return {
|
|
4687
|
-
height: size.height,
|
|
4688
|
-
orientation,
|
|
4689
|
-
width: size.width
|
|
4690
|
-
};
|
|
4691
|
-
}
|
|
4692
|
-
input = input.slice(i + 2);
|
|
4693
|
-
}
|
|
4694
|
-
throw new TypeError("Invalid JPG, no size found");
|
|
4695
|
-
}
|
|
4696
|
-
};
|
|
4697
|
-
}));
|
|
4698
|
-
//#endregion
|
|
4699
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/utils/bit-reader.js
|
|
4700
|
-
var require_bit_reader = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
4701
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4702
|
-
exports.BitReader = void 0;
|
|
4703
|
-
/** This class helps read Uint8Array bit-by-bit */
|
|
4704
|
-
var BitReader = class {
|
|
4705
|
-
constructor(input, endianness) {
|
|
4706
|
-
this.input = input;
|
|
4707
|
-
this.endianness = endianness;
|
|
4708
|
-
this.byteOffset = 2;
|
|
4709
|
-
this.bitOffset = 0;
|
|
4710
|
-
}
|
|
4711
|
-
/** Reads a specified number of bits, and move the offset */
|
|
4712
|
-
getBits(length = 1) {
|
|
4713
|
-
let result = 0;
|
|
4714
|
-
let bitsRead = 0;
|
|
4715
|
-
while (bitsRead < length) {
|
|
4716
|
-
if (this.byteOffset >= this.input.length) throw new Error("Reached end of input");
|
|
4717
|
-
const currentByte = this.input[this.byteOffset];
|
|
4718
|
-
const bitsLeft = 8 - this.bitOffset;
|
|
4719
|
-
const bitsToRead = Math.min(length - bitsRead, bitsLeft);
|
|
4720
|
-
if (this.endianness === "little-endian") {
|
|
4721
|
-
const mask = (1 << bitsToRead) - 1;
|
|
4722
|
-
const bits = currentByte >> this.bitOffset & mask;
|
|
4723
|
-
result |= bits << bitsRead;
|
|
4724
|
-
} else {
|
|
4725
|
-
const bits = (currentByte & (1 << bitsToRead) - 1 << 8 - this.bitOffset - bitsToRead) >> 8 - this.bitOffset - bitsToRead;
|
|
4726
|
-
result = result << bitsToRead | bits;
|
|
4727
|
-
}
|
|
4728
|
-
bitsRead += bitsToRead;
|
|
4729
|
-
this.bitOffset += bitsToRead;
|
|
4730
|
-
if (this.bitOffset === 8) {
|
|
4731
|
-
this.byteOffset++;
|
|
4732
|
-
this.bitOffset = 0;
|
|
4733
|
-
}
|
|
4734
|
-
}
|
|
4735
|
-
return result;
|
|
4736
|
-
}
|
|
4737
|
-
};
|
|
4738
|
-
exports.BitReader = BitReader;
|
|
4739
|
-
}));
|
|
4740
|
-
//#endregion
|
|
4741
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/jxl-stream.js
|
|
4742
|
-
var require_jxl_stream = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
4743
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4744
|
-
exports.JXLStream = void 0;
|
|
4745
|
-
const utils_1 = require_utils();
|
|
4746
|
-
const bit_reader_1 = require_bit_reader();
|
|
4747
|
-
function calculateImageDimension(reader, isSmallImage) {
|
|
4748
|
-
if (isSmallImage) return 8 * (1 + reader.getBits(5));
|
|
4749
|
-
else {
|
|
4750
|
-
const extraBits = [
|
|
4751
|
-
9,
|
|
4752
|
-
13,
|
|
4753
|
-
18,
|
|
4754
|
-
30
|
|
4755
|
-
][reader.getBits(2)];
|
|
4756
|
-
return 1 + reader.getBits(extraBits);
|
|
4757
|
-
}
|
|
4758
|
-
}
|
|
4759
|
-
function calculateImageWidth(reader, isSmallImage, widthMode, height) {
|
|
4760
|
-
if (isSmallImage && widthMode === 0) return 8 * (1 + reader.getBits(5));
|
|
4761
|
-
else if (widthMode === 0) return calculateImageDimension(reader, false);
|
|
4762
|
-
else return Math.floor(height * [
|
|
4763
|
-
1,
|
|
4764
|
-
1.2,
|
|
4765
|
-
4 / 3,
|
|
4766
|
-
1.5,
|
|
4767
|
-
16 / 9,
|
|
4768
|
-
5 / 4,
|
|
4769
|
-
2
|
|
4770
|
-
][widthMode - 1]);
|
|
4771
|
-
}
|
|
4772
|
-
exports.JXLStream = {
|
|
4773
|
-
validate: (input) => {
|
|
4774
|
-
return (0, utils_1.toHexString)(input, 0, 2) === "ff0a";
|
|
4775
|
-
},
|
|
4776
|
-
calculate(input) {
|
|
4777
|
-
const reader = new bit_reader_1.BitReader(input, "little-endian");
|
|
4778
|
-
const isSmallImage = reader.getBits(1) === 1;
|
|
4779
|
-
const height = calculateImageDimension(reader, isSmallImage);
|
|
4780
|
-
return {
|
|
4781
|
-
width: calculateImageWidth(reader, isSmallImage, reader.getBits(3), height),
|
|
4782
|
-
height
|
|
4783
|
-
};
|
|
4784
|
-
}
|
|
4785
|
-
};
|
|
4786
|
-
}));
|
|
4787
|
-
//#endregion
|
|
4788
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/jxl.js
|
|
4789
|
-
var require_jxl = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
4790
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4791
|
-
exports.JXL = void 0;
|
|
4792
|
-
const utils_1 = require_utils();
|
|
4793
|
-
const jxl_stream_1 = require_jxl_stream();
|
|
4794
|
-
/** Extracts the codestream from a containerized JPEG XL image */
|
|
4795
|
-
function extractCodestream(input) {
|
|
4796
|
-
const jxlcBox = (0, utils_1.findBox)(input, "jxlc", 0);
|
|
4797
|
-
if (jxlcBox) return input.slice(jxlcBox.offset + 8, jxlcBox.offset + jxlcBox.size);
|
|
4798
|
-
const partialStreams = extractPartialStreams(input);
|
|
4799
|
-
if (partialStreams.length > 0) return concatenateCodestreams(partialStreams);
|
|
4800
|
-
}
|
|
4801
|
-
/** Extracts partial codestreams from jxlp boxes */
|
|
4802
|
-
function extractPartialStreams(input) {
|
|
4803
|
-
const partialStreams = [];
|
|
4804
|
-
let offset = 0;
|
|
4805
|
-
while (offset < input.length) {
|
|
4806
|
-
const jxlpBox = (0, utils_1.findBox)(input, "jxlp", offset);
|
|
4807
|
-
if (!jxlpBox) break;
|
|
4808
|
-
partialStreams.push(input.slice(jxlpBox.offset + 12, jxlpBox.offset + jxlpBox.size));
|
|
4809
|
-
offset = jxlpBox.offset + jxlpBox.size;
|
|
4810
|
-
}
|
|
4811
|
-
return partialStreams;
|
|
4812
|
-
}
|
|
4813
|
-
/** Concatenates partial codestreams into a single codestream */
|
|
4814
|
-
function concatenateCodestreams(partialCodestreams) {
|
|
4815
|
-
const totalLength = partialCodestreams.reduce((acc, curr) => acc + curr.length, 0);
|
|
4816
|
-
const codestream = new Uint8Array(totalLength);
|
|
4817
|
-
let position = 0;
|
|
4818
|
-
for (const partial of partialCodestreams) {
|
|
4819
|
-
codestream.set(partial, position);
|
|
4820
|
-
position += partial.length;
|
|
4821
|
-
}
|
|
4822
|
-
return codestream;
|
|
4823
|
-
}
|
|
4824
|
-
exports.JXL = {
|
|
4825
|
-
validate: (input) => {
|
|
4826
|
-
if ((0, utils_1.toUTF8String)(input, 4, 8) !== "JXL ") return false;
|
|
4827
|
-
const ftypBox = (0, utils_1.findBox)(input, "ftyp", 0);
|
|
4828
|
-
if (!ftypBox) return false;
|
|
4829
|
-
return (0, utils_1.toUTF8String)(input, ftypBox.offset + 8, ftypBox.offset + 12) === "jxl ";
|
|
4830
|
-
},
|
|
4831
|
-
calculate(input) {
|
|
4832
|
-
const codestream = extractCodestream(input);
|
|
4833
|
-
if (codestream) return jxl_stream_1.JXLStream.calculate(codestream);
|
|
4834
|
-
throw new Error("No codestream found in JXL container");
|
|
4835
|
-
}
|
|
4836
|
-
};
|
|
4837
|
-
}));
|
|
4838
|
-
//#endregion
|
|
4839
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/ktx.js
|
|
4840
|
-
var require_ktx = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
4841
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4842
|
-
exports.KTX = void 0;
|
|
4843
|
-
const utils_1 = require_utils();
|
|
4844
|
-
exports.KTX = {
|
|
4845
|
-
validate: (input) => {
|
|
4846
|
-
const signature = (0, utils_1.toUTF8String)(input, 1, 7);
|
|
4847
|
-
return ["KTX 11", "KTX 20"].includes(signature);
|
|
4848
|
-
},
|
|
4849
|
-
calculate: (input) => {
|
|
4850
|
-
const type = input[5] === 49 ? "ktx" : "ktx2";
|
|
4851
|
-
const offset = type === "ktx" ? 36 : 20;
|
|
4852
|
-
return {
|
|
4853
|
-
height: (0, utils_1.readUInt32LE)(input, offset + 4),
|
|
4854
|
-
width: (0, utils_1.readUInt32LE)(input, offset),
|
|
4855
|
-
type
|
|
4856
|
-
};
|
|
4857
|
-
}
|
|
4858
|
-
};
|
|
4859
|
-
}));
|
|
4860
|
-
//#endregion
|
|
4861
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/png.js
|
|
4862
|
-
var require_png = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
4863
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4864
|
-
exports.PNG = void 0;
|
|
4865
|
-
const utils_1 = require_utils();
|
|
4866
|
-
const pngSignature = "PNG\r\n\n";
|
|
4867
|
-
const pngImageHeaderChunkName = "IHDR";
|
|
4868
|
-
const pngFriedChunkName = "CgBI";
|
|
4869
|
-
exports.PNG = {
|
|
4870
|
-
validate(input) {
|
|
4871
|
-
if (pngSignature === (0, utils_1.toUTF8String)(input, 1, 8)) {
|
|
4872
|
-
let chunkName = (0, utils_1.toUTF8String)(input, 12, 16);
|
|
4873
|
-
if (chunkName === pngFriedChunkName) chunkName = (0, utils_1.toUTF8String)(input, 28, 32);
|
|
4874
|
-
if (chunkName !== pngImageHeaderChunkName) throw new TypeError("Invalid PNG");
|
|
4875
|
-
return true;
|
|
4876
|
-
}
|
|
4877
|
-
return false;
|
|
4878
|
-
},
|
|
4879
|
-
calculate(input) {
|
|
4880
|
-
if ((0, utils_1.toUTF8String)(input, 12, 16) === pngFriedChunkName) return {
|
|
4881
|
-
height: (0, utils_1.readUInt32BE)(input, 36),
|
|
4882
|
-
width: (0, utils_1.readUInt32BE)(input, 32)
|
|
4883
|
-
};
|
|
4884
|
-
return {
|
|
4885
|
-
height: (0, utils_1.readUInt32BE)(input, 20),
|
|
4886
|
-
width: (0, utils_1.readUInt32BE)(input, 16)
|
|
4887
|
-
};
|
|
4888
|
-
}
|
|
4889
|
-
};
|
|
4890
|
-
}));
|
|
4891
|
-
//#endregion
|
|
4892
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/pnm.js
|
|
4893
|
-
var require_pnm = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
4894
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4895
|
-
exports.PNM = void 0;
|
|
4896
|
-
const utils_1 = require_utils();
|
|
4897
|
-
const PNMTypes = {
|
|
4898
|
-
P1: "pbm/ascii",
|
|
4899
|
-
P2: "pgm/ascii",
|
|
4900
|
-
P3: "ppm/ascii",
|
|
4901
|
-
P4: "pbm",
|
|
4902
|
-
P5: "pgm",
|
|
4903
|
-
P6: "ppm",
|
|
4904
|
-
P7: "pam",
|
|
4905
|
-
PF: "pfm"
|
|
4906
|
-
};
|
|
4907
|
-
const handlers = {
|
|
4908
|
-
default: (lines) => {
|
|
4909
|
-
let dimensions = [];
|
|
4910
|
-
while (lines.length > 0) {
|
|
4911
|
-
const line = lines.shift();
|
|
4912
|
-
if (line[0] === "#") continue;
|
|
4913
|
-
dimensions = line.split(" ");
|
|
4914
|
-
break;
|
|
4915
|
-
}
|
|
4916
|
-
if (dimensions.length === 2) return {
|
|
4917
|
-
height: parseInt(dimensions[1], 10),
|
|
4918
|
-
width: parseInt(dimensions[0], 10)
|
|
4919
|
-
};
|
|
4920
|
-
else throw new TypeError("Invalid PNM");
|
|
4921
|
-
},
|
|
4922
|
-
pam: (lines) => {
|
|
4923
|
-
const size = {};
|
|
4924
|
-
while (lines.length > 0) {
|
|
4925
|
-
const line = lines.shift();
|
|
4926
|
-
if (line.length > 16 || line.charCodeAt(0) > 128) continue;
|
|
4927
|
-
const [key, value] = line.split(" ");
|
|
4928
|
-
if (key && value) size[key.toLowerCase()] = parseInt(value, 10);
|
|
4929
|
-
if (size.height && size.width) break;
|
|
4930
|
-
}
|
|
4931
|
-
if (size.height && size.width) return {
|
|
4932
|
-
height: size.height,
|
|
4933
|
-
width: size.width
|
|
4934
|
-
};
|
|
4935
|
-
else throw new TypeError("Invalid PAM");
|
|
4936
|
-
}
|
|
4937
|
-
};
|
|
4938
|
-
exports.PNM = {
|
|
4939
|
-
validate: (input) => (0, utils_1.toUTF8String)(input, 0, 2) in PNMTypes,
|
|
4940
|
-
calculate(input) {
|
|
4941
|
-
const signature = (0, utils_1.toUTF8String)(input, 0, 2);
|
|
4942
|
-
const type = PNMTypes[signature];
|
|
4943
|
-
const lines = (0, utils_1.toUTF8String)(input, 3).split(/[\r\n]+/);
|
|
4944
|
-
return (handlers[type] || handlers.default)(lines);
|
|
4945
|
-
}
|
|
4946
|
-
};
|
|
4947
|
-
}));
|
|
4948
|
-
//#endregion
|
|
4949
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/psd.js
|
|
4950
|
-
var require_psd = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
4951
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4952
|
-
exports.PSD = void 0;
|
|
4953
|
-
const utils_1 = require_utils();
|
|
4954
|
-
exports.PSD = {
|
|
4955
|
-
validate: (input) => (0, utils_1.toUTF8String)(input, 0, 4) === "8BPS",
|
|
4956
|
-
calculate: (input) => ({
|
|
4957
|
-
height: (0, utils_1.readUInt32BE)(input, 14),
|
|
4958
|
-
width: (0, utils_1.readUInt32BE)(input, 18)
|
|
4959
|
-
})
|
|
4960
|
-
};
|
|
4961
|
-
}));
|
|
4962
|
-
//#endregion
|
|
4963
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/svg.js
|
|
4964
|
-
var require_svg = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
4965
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4966
|
-
exports.SVG = void 0;
|
|
4967
|
-
const utils_1 = require_utils();
|
|
4968
|
-
const svgReg = /<svg\s([^>"']|"[^"]*"|'[^']*')*>/;
|
|
4969
|
-
const extractorRegExps = {
|
|
4970
|
-
height: /\sheight=(['"])([^%]+?)\1/,
|
|
4971
|
-
root: svgReg,
|
|
4972
|
-
viewbox: /\sviewBox=(['"])(.+?)\1/i,
|
|
4973
|
-
width: /\swidth=(['"])([^%]+?)\1/
|
|
4974
|
-
};
|
|
4975
|
-
const INCH_CM = 2.54;
|
|
4976
|
-
const units = {
|
|
4977
|
-
in: 96,
|
|
4978
|
-
cm: 96 / INCH_CM,
|
|
4979
|
-
em: 16,
|
|
4980
|
-
ex: 8,
|
|
4981
|
-
m: 96 / INCH_CM * 100,
|
|
4982
|
-
mm: 96 / INCH_CM / 10,
|
|
4983
|
-
pc: 96 / 72 / 12,
|
|
4984
|
-
pt: 96 / 72,
|
|
4985
|
-
px: 1
|
|
4986
|
-
};
|
|
4987
|
-
const unitsReg = new RegExp(`^([0-9.]+(?:e\\d+)?)(${Object.keys(units).join("|")})?$`);
|
|
4988
|
-
function parseLength(len) {
|
|
4989
|
-
const m = unitsReg.exec(len);
|
|
4990
|
-
if (!m) return;
|
|
4991
|
-
return Math.round(Number(m[1]) * (units[m[2]] || 1));
|
|
4992
|
-
}
|
|
4993
|
-
function parseViewbox(viewbox) {
|
|
4994
|
-
const bounds = viewbox.split(" ");
|
|
4995
|
-
return {
|
|
4996
|
-
height: parseLength(bounds[3]),
|
|
4997
|
-
width: parseLength(bounds[2])
|
|
4998
|
-
};
|
|
4999
|
-
}
|
|
5000
|
-
function parseAttributes(root) {
|
|
5001
|
-
const width = root.match(extractorRegExps.width);
|
|
5002
|
-
const height = root.match(extractorRegExps.height);
|
|
5003
|
-
const viewbox = root.match(extractorRegExps.viewbox);
|
|
5004
|
-
return {
|
|
5005
|
-
height: height && parseLength(height[2]),
|
|
5006
|
-
viewbox: viewbox && parseViewbox(viewbox[2]),
|
|
5007
|
-
width: width && parseLength(width[2])
|
|
5008
|
-
};
|
|
5009
|
-
}
|
|
5010
|
-
function calculateByDimensions(attrs) {
|
|
5011
|
-
return {
|
|
5012
|
-
height: attrs.height,
|
|
5013
|
-
width: attrs.width
|
|
5014
|
-
};
|
|
5015
|
-
}
|
|
5016
|
-
function calculateByViewbox(attrs, viewbox) {
|
|
5017
|
-
const ratio = viewbox.width / viewbox.height;
|
|
5018
|
-
if (attrs.width) return {
|
|
5019
|
-
height: Math.floor(attrs.width / ratio),
|
|
5020
|
-
width: attrs.width
|
|
5021
|
-
};
|
|
5022
|
-
if (attrs.height) return {
|
|
5023
|
-
height: attrs.height,
|
|
5024
|
-
width: Math.floor(attrs.height * ratio)
|
|
5025
|
-
};
|
|
5026
|
-
return {
|
|
5027
|
-
height: viewbox.height,
|
|
5028
|
-
width: viewbox.width
|
|
5029
|
-
};
|
|
5030
|
-
}
|
|
5031
|
-
exports.SVG = {
|
|
5032
|
-
validate: (input) => svgReg.test((0, utils_1.toUTF8String)(input, 0, 1e3)),
|
|
5033
|
-
calculate(input) {
|
|
5034
|
-
const root = (0, utils_1.toUTF8String)(input).match(extractorRegExps.root);
|
|
5035
|
-
if (root) {
|
|
5036
|
-
const attrs = parseAttributes(root[0]);
|
|
5037
|
-
if (attrs.width && attrs.height) return calculateByDimensions(attrs);
|
|
5038
|
-
if (attrs.viewbox) return calculateByViewbox(attrs, attrs.viewbox);
|
|
5039
|
-
}
|
|
5040
|
-
throw new TypeError("Invalid SVG");
|
|
5041
|
-
}
|
|
5042
|
-
};
|
|
5043
|
-
}));
|
|
5044
|
-
//#endregion
|
|
5045
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/tga.js
|
|
5046
|
-
var require_tga = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
5047
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5048
|
-
exports.TGA = void 0;
|
|
5049
|
-
const utils_1 = require_utils();
|
|
5050
|
-
exports.TGA = {
|
|
5051
|
-
validate(input) {
|
|
5052
|
-
return (0, utils_1.readUInt16LE)(input, 0) === 0 && (0, utils_1.readUInt16LE)(input, 4) === 0;
|
|
5053
|
-
},
|
|
5054
|
-
calculate(input) {
|
|
5055
|
-
return {
|
|
5056
|
-
height: (0, utils_1.readUInt16LE)(input, 14),
|
|
5057
|
-
width: (0, utils_1.readUInt16LE)(input, 12)
|
|
5058
|
-
};
|
|
5059
|
-
}
|
|
5060
|
-
};
|
|
5061
|
-
}));
|
|
5062
|
-
//#endregion
|
|
5063
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/tiff.js
|
|
5064
|
-
var require_tiff = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
5065
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5066
|
-
exports.TIFF = void 0;
|
|
5067
|
-
const fs$2 = require("fs");
|
|
5068
|
-
const utils_1 = require_utils();
|
|
5069
|
-
function readIFD(input, filepath, isBigEndian) {
|
|
5070
|
-
const ifdOffset = (0, utils_1.readUInt)(input, 32, 4, isBigEndian);
|
|
5071
|
-
let bufferSize = 1024;
|
|
5072
|
-
const fileSize = fs$2.statSync(filepath).size;
|
|
5073
|
-
if (ifdOffset + bufferSize > fileSize) bufferSize = fileSize - ifdOffset - 10;
|
|
5074
|
-
const endBuffer = new Uint8Array(bufferSize);
|
|
5075
|
-
const descriptor = fs$2.openSync(filepath, "r");
|
|
5076
|
-
fs$2.readSync(descriptor, endBuffer, 0, bufferSize, ifdOffset);
|
|
5077
|
-
fs$2.closeSync(descriptor);
|
|
5078
|
-
return endBuffer.slice(2);
|
|
5079
|
-
}
|
|
5080
|
-
function readValue(input, isBigEndian) {
|
|
5081
|
-
const low = (0, utils_1.readUInt)(input, 16, 8, isBigEndian);
|
|
5082
|
-
return ((0, utils_1.readUInt)(input, 16, 10, isBigEndian) << 16) + low;
|
|
5083
|
-
}
|
|
5084
|
-
function nextTag(input) {
|
|
5085
|
-
if (input.length > 24) return input.slice(12);
|
|
5086
|
-
}
|
|
5087
|
-
function extractTags(input, isBigEndian) {
|
|
5088
|
-
const tags = {};
|
|
5089
|
-
let temp = input;
|
|
5090
|
-
while (temp && temp.length) {
|
|
5091
|
-
const code = (0, utils_1.readUInt)(temp, 16, 0, isBigEndian);
|
|
5092
|
-
const type = (0, utils_1.readUInt)(temp, 16, 2, isBigEndian);
|
|
5093
|
-
const length = (0, utils_1.readUInt)(temp, 32, 4, isBigEndian);
|
|
5094
|
-
if (code === 0) break;
|
|
5095
|
-
else {
|
|
5096
|
-
if (length === 1 && (type === 3 || type === 4)) tags[code] = readValue(temp, isBigEndian);
|
|
5097
|
-
temp = nextTag(temp);
|
|
5098
|
-
}
|
|
5099
|
-
}
|
|
5100
|
-
return tags;
|
|
5101
|
-
}
|
|
5102
|
-
function determineEndianness(input) {
|
|
5103
|
-
const signature = (0, utils_1.toUTF8String)(input, 0, 2);
|
|
5104
|
-
if ("II" === signature) return "LE";
|
|
5105
|
-
else if ("MM" === signature) return "BE";
|
|
5106
|
-
}
|
|
5107
|
-
const signatures = ["49492a00", "4d4d002a"];
|
|
5108
|
-
exports.TIFF = {
|
|
5109
|
-
validate: (input) => signatures.includes((0, utils_1.toHexString)(input, 0, 4)),
|
|
5110
|
-
calculate(input, filepath) {
|
|
5111
|
-
if (!filepath) throw new TypeError("Tiff doesn't support buffer");
|
|
5112
|
-
const isBigEndian = determineEndianness(input) === "BE";
|
|
5113
|
-
const tags = extractTags(readIFD(input, filepath, isBigEndian), isBigEndian);
|
|
5114
|
-
const width = tags[256];
|
|
5115
|
-
const height = tags[257];
|
|
5116
|
-
if (!width || !height) throw new TypeError("Invalid Tiff. Missing tags");
|
|
5117
|
-
return {
|
|
5118
|
-
height,
|
|
5119
|
-
width
|
|
5120
|
-
};
|
|
5121
|
-
}
|
|
5122
|
-
};
|
|
5123
|
-
}));
|
|
5124
|
-
//#endregion
|
|
5125
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/webp.js
|
|
5126
|
-
var require_webp = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
5127
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5128
|
-
exports.WEBP = void 0;
|
|
5129
|
-
const utils_1 = require_utils();
|
|
5130
|
-
function calculateExtended(input) {
|
|
5131
|
-
return {
|
|
5132
|
-
height: 1 + (0, utils_1.readUInt24LE)(input, 7),
|
|
5133
|
-
width: 1 + (0, utils_1.readUInt24LE)(input, 4)
|
|
5134
|
-
};
|
|
5135
|
-
}
|
|
5136
|
-
function calculateLossless(input) {
|
|
5137
|
-
return {
|
|
5138
|
-
height: 1 + ((input[4] & 15) << 10 | input[3] << 2 | (input[2] & 192) >> 6),
|
|
5139
|
-
width: 1 + ((input[2] & 63) << 8 | input[1])
|
|
5140
|
-
};
|
|
5141
|
-
}
|
|
5142
|
-
function calculateLossy(input) {
|
|
5143
|
-
return {
|
|
5144
|
-
height: (0, utils_1.readInt16LE)(input, 8) & 16383,
|
|
5145
|
-
width: (0, utils_1.readInt16LE)(input, 6) & 16383
|
|
5146
|
-
};
|
|
5147
|
-
}
|
|
5148
|
-
exports.WEBP = {
|
|
5149
|
-
validate(input) {
|
|
5150
|
-
const riffHeader = "RIFF" === (0, utils_1.toUTF8String)(input, 0, 4);
|
|
5151
|
-
const webpHeader = "WEBP" === (0, utils_1.toUTF8String)(input, 8, 12);
|
|
5152
|
-
const vp8Header = "VP8" === (0, utils_1.toUTF8String)(input, 12, 15);
|
|
5153
|
-
return riffHeader && webpHeader && vp8Header;
|
|
5154
|
-
},
|
|
5155
|
-
calculate(input) {
|
|
5156
|
-
const chunkHeader = (0, utils_1.toUTF8String)(input, 12, 16);
|
|
5157
|
-
input = input.slice(20, 30);
|
|
5158
|
-
if (chunkHeader === "VP8X") {
|
|
5159
|
-
const extendedHeader = input[0];
|
|
5160
|
-
const validStart = (extendedHeader & 192) === 0;
|
|
5161
|
-
const validEnd = (extendedHeader & 1) === 0;
|
|
5162
|
-
if (validStart && validEnd) return calculateExtended(input);
|
|
5163
|
-
else throw new TypeError("Invalid WebP");
|
|
5164
|
-
}
|
|
5165
|
-
if (chunkHeader === "VP8 " && input[0] !== 47) return calculateLossy(input);
|
|
5166
|
-
const signature = (0, utils_1.toHexString)(input, 3, 6);
|
|
5167
|
-
if (chunkHeader === "VP8L" && signature !== "9d012a") return calculateLossless(input);
|
|
5168
|
-
throw new TypeError("Invalid WebP");
|
|
5169
|
-
}
|
|
5170
|
-
};
|
|
5171
|
-
}));
|
|
5172
|
-
//#endregion
|
|
5173
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/types/index.js
|
|
5174
|
-
var require_types = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
5175
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5176
|
-
exports.typeHandlers = void 0;
|
|
5177
|
-
const bmp_1 = require_bmp();
|
|
5178
|
-
const cur_1 = require_cur();
|
|
5179
|
-
const dds_1 = require_dds();
|
|
5180
|
-
const gif_1 = require_gif();
|
|
5181
|
-
const heif_1 = require_heif();
|
|
5182
|
-
const icns_1 = require_icns();
|
|
5183
|
-
const ico_1 = require_ico();
|
|
5184
|
-
const j2c_1 = require_j2c();
|
|
5185
|
-
const jp2_1 = require_jp2();
|
|
5186
|
-
const jpg_1 = require_jpg();
|
|
5187
|
-
const jxl_1 = require_jxl();
|
|
5188
|
-
const jxl_stream_1 = require_jxl_stream();
|
|
5189
|
-
const ktx_1 = require_ktx();
|
|
5190
|
-
const png_1 = require_png();
|
|
5191
|
-
const pnm_1 = require_pnm();
|
|
5192
|
-
const psd_1 = require_psd();
|
|
5193
|
-
const svg_1 = require_svg();
|
|
5194
|
-
const tga_1 = require_tga();
|
|
5195
|
-
const tiff_1 = require_tiff();
|
|
5196
|
-
const webp_1 = require_webp();
|
|
5197
|
-
exports.typeHandlers = {
|
|
5198
|
-
bmp: bmp_1.BMP,
|
|
5199
|
-
cur: cur_1.CUR,
|
|
5200
|
-
dds: dds_1.DDS,
|
|
5201
|
-
gif: gif_1.GIF,
|
|
5202
|
-
heif: heif_1.HEIF,
|
|
5203
|
-
icns: icns_1.ICNS,
|
|
5204
|
-
ico: ico_1.ICO,
|
|
5205
|
-
j2c: j2c_1.J2C,
|
|
5206
|
-
jp2: jp2_1.JP2,
|
|
5207
|
-
jpg: jpg_1.JPG,
|
|
5208
|
-
jxl: jxl_1.JXL,
|
|
5209
|
-
"jxl-stream": jxl_stream_1.JXLStream,
|
|
5210
|
-
ktx: ktx_1.KTX,
|
|
5211
|
-
png: png_1.PNG,
|
|
5212
|
-
pnm: pnm_1.PNM,
|
|
5213
|
-
psd: psd_1.PSD,
|
|
5214
|
-
svg: svg_1.SVG,
|
|
5215
|
-
tga: tga_1.TGA,
|
|
5216
|
-
tiff: tiff_1.TIFF,
|
|
5217
|
-
webp: webp_1.WEBP
|
|
5218
|
-
};
|
|
5219
|
-
}));
|
|
5220
|
-
//#endregion
|
|
5221
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/detector.js
|
|
5222
|
-
var require_detector = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports) => {
|
|
5223
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5224
|
-
exports.detector = void 0;
|
|
5225
|
-
const index_1 = require_types();
|
|
5226
|
-
const keys = Object.keys(index_1.typeHandlers);
|
|
5227
|
-
const firstBytes = {
|
|
5228
|
-
56: "psd",
|
|
5229
|
-
66: "bmp",
|
|
5230
|
-
68: "dds",
|
|
5231
|
-
71: "gif",
|
|
5232
|
-
73: "tiff",
|
|
5233
|
-
77: "tiff",
|
|
5234
|
-
82: "webp",
|
|
5235
|
-
105: "icns",
|
|
5236
|
-
137: "png",
|
|
5237
|
-
255: "jpg"
|
|
5238
|
-
};
|
|
5239
|
-
function detector(input) {
|
|
5240
|
-
const byte = input[0];
|
|
5241
|
-
if (byte in firstBytes) {
|
|
5242
|
-
const type = firstBytes[byte];
|
|
5243
|
-
if (type && index_1.typeHandlers[type].validate(input)) return type;
|
|
5244
|
-
}
|
|
5245
|
-
const finder = (key) => index_1.typeHandlers[key].validate(input);
|
|
5246
|
-
return keys.find(finder);
|
|
5247
|
-
}
|
|
5248
|
-
exports.detector = detector;
|
|
5249
|
-
}));
|
|
5250
|
-
//#endregion
|
|
5251
|
-
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/image-size/1.2.1/9bf0036384935b954c14e11e917ababb8784279feffccfde373a89bf4fb7a87e/node_modules/image-size/dist/index.js
|
|
5252
|
-
var require_dist = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports, module) => {
|
|
5253
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5254
|
-
exports.types = exports.setConcurrency = exports.disableTypes = exports.disableFS = exports.imageSize = void 0;
|
|
5255
|
-
const fs$1 = require("fs");
|
|
5256
|
-
const path$1 = require("path");
|
|
5257
|
-
const queue_1 = require_queue();
|
|
5258
|
-
const index_1 = require_types();
|
|
5259
|
-
const detector_1 = require_detector();
|
|
5260
|
-
const MaxInputSize = 512 * 1024;
|
|
5261
|
-
const queue = new queue_1.default({
|
|
5262
|
-
concurrency: 100,
|
|
5263
|
-
autostart: true
|
|
5264
|
-
});
|
|
5265
|
-
const globalOptions = {
|
|
5266
|
-
disabledFS: false,
|
|
5267
|
-
disabledTypes: []
|
|
5268
|
-
};
|
|
5269
|
-
/**
|
|
5270
|
-
* Return size information based on an Uint8Array
|
|
5271
|
-
*
|
|
5272
|
-
* @param {Uint8Array} input
|
|
5273
|
-
* @param {String} filepath
|
|
5274
|
-
* @returns {Object}
|
|
5275
|
-
*/
|
|
5276
|
-
function lookup(input, filepath) {
|
|
5277
|
-
const type = (0, detector_1.detector)(input);
|
|
5278
|
-
if (typeof type !== "undefined") {
|
|
5279
|
-
if (globalOptions.disabledTypes.indexOf(type) > -1) throw new TypeError("disabled file type: " + type);
|
|
5280
|
-
if (type in index_1.typeHandlers) {
|
|
5281
|
-
const size = index_1.typeHandlers[type].calculate(input, filepath);
|
|
5282
|
-
if (size !== void 0) {
|
|
5283
|
-
size.type = size.type ?? type;
|
|
5284
|
-
return size;
|
|
5285
|
-
}
|
|
5286
|
-
}
|
|
5287
|
-
}
|
|
5288
|
-
throw new TypeError("unsupported file type: " + type + " (file: " + filepath + ")");
|
|
5289
|
-
}
|
|
5290
|
-
/**
|
|
5291
|
-
* Reads a file into an Uint8Array.
|
|
5292
|
-
* @param {String} filepath
|
|
5293
|
-
* @returns {Promise<Uint8Array>}
|
|
5294
|
-
*/
|
|
5295
|
-
async function readFileAsync(filepath) {
|
|
5296
|
-
const handle = await fs$1.promises.open(filepath, "r");
|
|
5297
|
-
try {
|
|
5298
|
-
const { size } = await handle.stat();
|
|
5299
|
-
if (size <= 0) throw new Error("Empty file");
|
|
5300
|
-
const inputSize = Math.min(size, MaxInputSize);
|
|
5301
|
-
const input = new Uint8Array(inputSize);
|
|
5302
|
-
await handle.read(input, 0, inputSize, 0);
|
|
5303
|
-
return input;
|
|
5304
|
-
} finally {
|
|
5305
|
-
await handle.close();
|
|
5306
|
-
}
|
|
5307
|
-
}
|
|
5308
|
-
/**
|
|
5309
|
-
* Synchronously reads a file into an Uint8Array, blocking the nodejs process.
|
|
5310
|
-
*
|
|
5311
|
-
* @param {String} filepath
|
|
5312
|
-
* @returns {Uint8Array}
|
|
5313
|
-
*/
|
|
5314
|
-
function readFileSync(filepath) {
|
|
5315
|
-
const descriptor = fs$1.openSync(filepath, "r");
|
|
5316
|
-
try {
|
|
5317
|
-
const { size } = fs$1.fstatSync(descriptor);
|
|
5318
|
-
if (size <= 0) throw new Error("Empty file");
|
|
5319
|
-
const inputSize = Math.min(size, MaxInputSize);
|
|
5320
|
-
const input = new Uint8Array(inputSize);
|
|
5321
|
-
fs$1.readSync(descriptor, input, 0, inputSize, 0);
|
|
5322
|
-
return input;
|
|
5323
|
-
} finally {
|
|
5324
|
-
fs$1.closeSync(descriptor);
|
|
5325
|
-
}
|
|
5326
|
-
}
|
|
5327
|
-
module.exports = exports = imageSize;
|
|
5328
|
-
exports.default = imageSize;
|
|
5329
|
-
/**
|
|
5330
|
-
* @param {Uint8Array|string} input - Uint8Array or relative/absolute path of the image file
|
|
5331
|
-
* @param {Function=} [callback] - optional function for async detection
|
|
5332
|
-
*/
|
|
5333
|
-
function imageSize(input, callback) {
|
|
5334
|
-
if (input instanceof Uint8Array) return lookup(input);
|
|
5335
|
-
if (typeof input !== "string" || globalOptions.disabledFS) throw new TypeError("invalid invocation. input should be a Uint8Array");
|
|
5336
|
-
const filepath = path$1.resolve(input);
|
|
5337
|
-
if (typeof callback === "function") queue.push(() => readFileAsync(filepath).then((input) => process.nextTick(callback, null, lookup(input, filepath))).catch(callback));
|
|
5338
|
-
else return lookup(readFileSync(filepath), filepath);
|
|
5339
|
-
}
|
|
5340
|
-
exports.imageSize = imageSize;
|
|
5341
|
-
const disableFS = (v) => {
|
|
5342
|
-
globalOptions.disabledFS = v;
|
|
5343
|
-
};
|
|
5344
|
-
exports.disableFS = disableFS;
|
|
5345
|
-
const disableTypes = (types) => {
|
|
5346
|
-
globalOptions.disabledTypes = types;
|
|
5347
|
-
};
|
|
5348
|
-
exports.disableTypes = disableTypes;
|
|
5349
|
-
const setConcurrency = (c) => {
|
|
5350
|
-
queue.concurrency = c;
|
|
5351
|
-
};
|
|
5352
|
-
exports.setConcurrency = setConcurrency;
|
|
5353
|
-
exports.types = Object.keys(index_1.typeHandlers);
|
|
5354
|
-
}));
|
|
5355
|
-
//#endregion
|
|
5356
4087
|
//#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/diff/8.0.4/6781cdda9837821c30a1f4c4db1d9286b838fe139b78d9658b2471e961b45953/node_modules/diff/libesm/diff/base.js
|
|
5357
|
-
var
|
|
4088
|
+
var import_sync = /* @__PURE__ */ require_rolldown_runtime.__toESM(require_sync$1.require_sync(), 1);
|
|
5358
4089
|
var Diff = class {
|
|
5359
4090
|
diff(oldStr, newStr, options = {}) {
|
|
5360
4091
|
let callback;
|
|
@@ -5962,7 +4693,7 @@ function splitLines(text) {
|
|
|
5962
4693
|
return result;
|
|
5963
4694
|
}
|
|
5964
4695
|
//#endregion
|
|
5965
|
-
//#region ../memory/dist/src-
|
|
4696
|
+
//#region ../memory/dist/src-B_n15_Xg.js
|
|
5966
4697
|
var __defProp$3 = Object.defineProperty;
|
|
5967
4698
|
var __exportAll = (all, no_symbols) => {
|
|
5968
4699
|
let target = {};
|
|
@@ -20725,6 +19456,7 @@ var Extractor = class Extractor {
|
|
|
20725
19456
|
includePreviousExtraction;
|
|
20726
19457
|
metadataKeyPath;
|
|
20727
19458
|
onExtracted;
|
|
19459
|
+
retryStructuredExtractionOnEmptyObject;
|
|
20728
19460
|
/** @internal */
|
|
20729
19461
|
internal;
|
|
20730
19462
|
instructionsConfig;
|
|
@@ -20747,6 +19479,7 @@ var Extractor = class Extractor {
|
|
|
20747
19479
|
this.includePreviousExtraction = config.includePreviousExtraction ?? true;
|
|
20748
19480
|
this.metadataKeyPath = config.metadataKeyPath ?? `extracted.${slug}`;
|
|
20749
19481
|
this.onExtracted = config.onExtracted;
|
|
19482
|
+
this.retryStructuredExtractionOnEmptyObject = config.retryStructuredExtractionOnEmptyObject ?? false;
|
|
20750
19483
|
this.internal = internal;
|
|
20751
19484
|
}
|
|
20752
19485
|
async resolve(context) {
|
|
@@ -20759,7 +19492,8 @@ var Extractor = class Extractor {
|
|
|
20759
19492
|
...schema ? { schema } : {},
|
|
20760
19493
|
includePreviousExtraction: this.includePreviousExtraction,
|
|
20761
19494
|
metadataKeyPath: this.metadataKeyPath,
|
|
20762
|
-
onExtracted: this.onExtracted
|
|
19495
|
+
onExtracted: this.onExtracted,
|
|
19496
|
+
retryStructuredExtractionOnEmptyObject: this.retryStructuredExtractionOnEmptyObject
|
|
20763
19497
|
}, this.internal);
|
|
20764
19498
|
}
|
|
20765
19499
|
};
|
|
@@ -21078,6 +19812,9 @@ if (OM_DEBUG_LOG) {
|
|
|
21078
19812
|
function isAbortError$1(error, abortSignal) {
|
|
21079
19813
|
return abortSignal?.aborted === true || error instanceof DOMException && error.name === "AbortError" || error instanceof Error && error.name === "AbortError";
|
|
21080
19814
|
}
|
|
19815
|
+
function shouldRetryEmptyStructuredObject(object, extractors) {
|
|
19816
|
+
return Object.keys(object).length === 0 && extractors.some((extractor) => extractor.retryStructuredExtractionOnEmptyObject);
|
|
19817
|
+
}
|
|
21081
19818
|
async function extractStructuredValues(opts) {
|
|
21082
19819
|
const structuredExtractors = (opts.extractors ?? []).filter((extractor) => extractor.mode === "structured");
|
|
21083
19820
|
if (structuredExtractors.length === 0) return {
|
|
@@ -21114,8 +19851,10 @@ ${extractorInstructions}${priorLines.length > 0 ? `\n\n## Prior Extracted Values
|
|
|
21114
19851
|
return output.object;
|
|
21115
19852
|
};
|
|
21116
19853
|
let object;
|
|
19854
|
+
let retryEmptyObject = false;
|
|
21117
19855
|
try {
|
|
21118
19856
|
object = await generateWithStructuredOutput();
|
|
19857
|
+
retryEmptyObject = shouldRetryEmptyStructuredObject(object, structuredExtractors);
|
|
21119
19858
|
} catch (error) {
|
|
21120
19859
|
if (isAbortError$1(error, opts.abortSignal)) throw error;
|
|
21121
19860
|
try {
|
|
@@ -21132,6 +19871,19 @@ ${extractorInstructions}${priorLines.length > 0 ? `\n\n## Prior Extracted Values
|
|
|
21132
19871
|
};
|
|
21133
19872
|
}
|
|
21134
19873
|
}
|
|
19874
|
+
if (retryEmptyObject) try {
|
|
19875
|
+
object = await generateWithStructuredOutput(_mastra_core_features.coreFeatures.has("json-prompt-injection:inline") ? "inline" : true);
|
|
19876
|
+
} catch (fallbackError) {
|
|
19877
|
+
if (isAbortError$1(fallbackError, opts.abortSignal)) throw fallbackError;
|
|
19878
|
+
const message = fallbackError instanceof Error ? fallbackError.message : String(fallbackError);
|
|
19879
|
+
return {
|
|
19880
|
+
values,
|
|
19881
|
+
failures: structuredExtractors.map((extractor) => ({
|
|
19882
|
+
slug: extractor.slug,
|
|
19883
|
+
error: message
|
|
19884
|
+
}))
|
|
19885
|
+
};
|
|
19886
|
+
}
|
|
21135
19887
|
for (const extractor of structuredExtractors) {
|
|
21136
19888
|
const value = object[extractor.slug];
|
|
21137
19889
|
if (value === void 0 || value === null || value === "") continue;
|
|
@@ -21467,6 +20219,16 @@ function sanitizeToolResultValue(value, seen = /* @__PURE__ */ new WeakMap()) {
|
|
|
21467
20219
|
}
|
|
21468
20220
|
return sanitizedObject;
|
|
21469
20221
|
}
|
|
20222
|
+
/**
|
|
20223
|
+
* Serializes a tool result without truncating it.
|
|
20224
|
+
*
|
|
20225
|
+
* Token accounting must see the full result: the truncation applied by
|
|
20226
|
+
* {@link formatToolResultForObserver} exists to bound what the Observer LLM reads,
|
|
20227
|
+
* not to describe what the agent's provider context actually holds.
|
|
20228
|
+
*/
|
|
20229
|
+
function serializeToolResultForTokenCounting(value) {
|
|
20230
|
+
return stringifyToolResult(value);
|
|
20231
|
+
}
|
|
21470
20232
|
function stringifyToolResult(value) {
|
|
21471
20233
|
if (typeof value === "string") return value;
|
|
21472
20234
|
const sanitized = sanitizeToolResultValue(value);
|
|
@@ -23177,6 +21939,40 @@ var ObserverRunner = class {
|
|
|
23177
21939
|
};
|
|
23178
21940
|
}
|
|
23179
21941
|
};
|
|
21942
|
+
/**
|
|
21943
|
+
* Synchronous image dimension lookup for in-memory image buffers.
|
|
21944
|
+
*
|
|
21945
|
+
* Uses `probe-image-size`'s sync parsers rather than `image-size`, which has unfixed
|
|
21946
|
+
* denial-of-service advisories (GHSA-w3rx-r6r6-pgpr / CVE-2025-71330 and
|
|
21947
|
+
* GHSA-5p2g-fcmc-qvqq) affecting every published version, on an archived repository
|
|
21948
|
+
* with no fixed release coming. A malformed 32-byte ICNS buffer was enough to hang the
|
|
21949
|
+
* parse loop and exhaust the heap, and image bytes reaching agent memory are untrusted.
|
|
21950
|
+
*
|
|
21951
|
+
* `probe-image-size` covers the formats models actually accept (PNG, JPEG, WebP, GIF,
|
|
21952
|
+
* AVIF, BMP, ICO, PSD, SVG, TIFF). Anything else returns `undefined`, which callers
|
|
21953
|
+
* already handle as "dimensions unknown".
|
|
21954
|
+
*/
|
|
21955
|
+
const probeBuffer = import_sync.default;
|
|
21956
|
+
/**
|
|
21957
|
+
* Read the pixel dimensions of an image buffer.
|
|
21958
|
+
*
|
|
21959
|
+
* @returns The dimensions, or `undefined` if the buffer isn't a recognized image.
|
|
21960
|
+
*/
|
|
21961
|
+
function measureImageBuffer(buffer) {
|
|
21962
|
+
let probed;
|
|
21963
|
+
try {
|
|
21964
|
+
probed = probeBuffer(buffer);
|
|
21965
|
+
} catch {
|
|
21966
|
+
return;
|
|
21967
|
+
}
|
|
21968
|
+
if (!probed) return;
|
|
21969
|
+
const { width, height } = probed;
|
|
21970
|
+
if (typeof width !== "number" || !Number.isFinite(width) || typeof height !== "number" || !Number.isFinite(height)) return;
|
|
21971
|
+
return {
|
|
21972
|
+
width,
|
|
21973
|
+
height
|
|
21974
|
+
};
|
|
21975
|
+
}
|
|
23180
21976
|
const IMAGE_FILE_EXTENSIONS = /* @__PURE__ */ new Set([
|
|
23181
21977
|
"png",
|
|
23182
21978
|
"jpg",
|
|
@@ -23449,7 +22245,7 @@ async function resolveImageDimensionsAsync(part) {
|
|
|
23449
22245
|
const url = resolveHttpAssetUrl(getObjectValue(part, "image") ?? getObjectValue(part, "data"));
|
|
23450
22246
|
if (!url) return existing;
|
|
23451
22247
|
try {
|
|
23452
|
-
const probeImageSize = (await Promise.resolve().then(() => /* @__PURE__ */ require_rolldown_runtime.__toESM(require("./probe-image-size-
|
|
22248
|
+
const probeImageSize = (await Promise.resolve().then(() => /* @__PURE__ */ require_rolldown_runtime.__toESM(require("./probe-image-size-C2F59z8Z.cjs").default, 1))).default;
|
|
23453
22249
|
const probed = await probeImageSize(url, {
|
|
23454
22250
|
open_timeout: REMOTE_IMAGE_PROBE_TIMEOUT_MS,
|
|
23455
22251
|
response_timeout: REMOTE_IMAGE_PROBE_TIMEOUT_MS,
|
|
@@ -23482,26 +22278,23 @@ function resolveImageDimensions(part) {
|
|
|
23482
22278
|
width,
|
|
23483
22279
|
height
|
|
23484
22280
|
};
|
|
23485
|
-
|
|
23486
|
-
|
|
23487
|
-
|
|
23488
|
-
|
|
23489
|
-
|
|
23490
|
-
|
|
23491
|
-
|
|
23492
|
-
|
|
23493
|
-
|
|
23494
|
-
|
|
23495
|
-
|
|
23496
|
-
|
|
23497
|
-
|
|
23498
|
-
|
|
23499
|
-
}
|
|
23500
|
-
|
|
23501
|
-
|
|
23502
|
-
height
|
|
23503
|
-
};
|
|
23504
|
-
}
|
|
22281
|
+
const measured = measureImageBuffer(buffer);
|
|
22282
|
+
if (!measured) return {
|
|
22283
|
+
width,
|
|
22284
|
+
height
|
|
22285
|
+
};
|
|
22286
|
+
const measuredWidth = getFiniteNumber(measured.width);
|
|
22287
|
+
const measuredHeight = getFiniteNumber(measured.height);
|
|
22288
|
+
if (!measuredWidth || !measuredHeight) return {
|
|
22289
|
+
width,
|
|
22290
|
+
height
|
|
22291
|
+
};
|
|
22292
|
+
const resolved = {
|
|
22293
|
+
width: width ?? measuredWidth,
|
|
22294
|
+
height: height ?? measuredHeight
|
|
22295
|
+
};
|
|
22296
|
+
persistImageDimensions(part, resolved);
|
|
22297
|
+
return resolved;
|
|
23505
22298
|
}
|
|
23506
22299
|
function getBase64Size(base64) {
|
|
23507
22300
|
const sanitized = base64.replace(/\s+/g, "");
|
|
@@ -23797,9 +22590,9 @@ function createTimeoutSignal(timeoutMs) {
|
|
|
23797
22590
|
};
|
|
23798
22591
|
}
|
|
23799
22592
|
function getNumericResponseField(value, paths) {
|
|
23800
|
-
for (const path$
|
|
22593
|
+
for (const path$3 of paths) {
|
|
23801
22594
|
let current = value;
|
|
23802
|
-
for (const segment of path$
|
|
22595
|
+
for (const segment of path$3) {
|
|
23803
22596
|
current = getObjectValue(current, segment);
|
|
23804
22597
|
if (current === void 0) break;
|
|
23805
22598
|
}
|
|
@@ -24060,7 +22853,7 @@ var TokenCounter = class TokenCounter {
|
|
|
24060
22853
|
let tokens = 0;
|
|
24061
22854
|
const cacheParts = [];
|
|
24062
22855
|
const countJsonContentPart = (contentPart) => {
|
|
24063
|
-
const formatted =
|
|
22856
|
+
const formatted = serializeToolResultForTokenCounting(contentPart);
|
|
24064
22857
|
tokens += this.countString(formatted);
|
|
24065
22858
|
cacheParts.push({
|
|
24066
22859
|
type: "json",
|
|
@@ -24362,39 +23155,68 @@ var TokenCounter = class TokenCounter {
|
|
|
24362
23155
|
if (isImageAttachment) await resolveImageDimensionsAsync(part);
|
|
24363
23156
|
return this.countAttachmentPartSync(part);
|
|
24364
23157
|
}
|
|
23158
|
+
/**
|
|
23159
|
+
* Count the name and the arguments of a tool call. Every state before the tool produces an
|
|
23160
|
+
* output holds the same call signature in the context window, so all of those states share
|
|
23161
|
+
* these cache kinds. `buildEstimateKey` hashes the text, so a shared kind stays correct and
|
|
23162
|
+
* keeps the estimate warm while the invocation moves from one state to the next.
|
|
23163
|
+
*/
|
|
23164
|
+
countToolCallSignature(part, invocation) {
|
|
23165
|
+
let tokens = 0;
|
|
23166
|
+
let overheadDelta = 0;
|
|
23167
|
+
if (invocation.toolName) tokens += this.readOrPersistPartEstimate(part, "tool-call-name", invocation.toolName);
|
|
23168
|
+
if (invocation.args) if (typeof invocation.args === "string") tokens += this.readOrPersistPartEstimate(part, "tool-call-args", invocation.args);
|
|
23169
|
+
else {
|
|
23170
|
+
const argsJson = JSON.stringify(invocation.args);
|
|
23171
|
+
tokens += this.readOrPersistPartEstimate(part, "tool-call-args-json", argsJson);
|
|
23172
|
+
overheadDelta -= 12;
|
|
23173
|
+
}
|
|
23174
|
+
return {
|
|
23175
|
+
tokens,
|
|
23176
|
+
overheadDelta
|
|
23177
|
+
};
|
|
23178
|
+
}
|
|
24365
23179
|
countNonAttachmentPart(part) {
|
|
24366
23180
|
let overheadDelta = 0;
|
|
24367
|
-
let
|
|
23181
|
+
let extraMessageDelta = 0;
|
|
24368
23182
|
if (part.type === "text") return {
|
|
24369
23183
|
tokens: this.readOrPersistPartEstimate(part, "text", part.text),
|
|
24370
23184
|
overheadDelta,
|
|
24371
|
-
|
|
23185
|
+
extraMessageDelta
|
|
24372
23186
|
};
|
|
24373
23187
|
if (part.type === "tool-invocation") {
|
|
24374
23188
|
const invocation = part.toolInvocation;
|
|
23189
|
+
const state = invocation.state;
|
|
24375
23190
|
let tokens = 0;
|
|
24376
|
-
if (
|
|
24377
|
-
|
|
24378
|
-
|
|
24379
|
-
|
|
24380
|
-
|
|
24381
|
-
|
|
24382
|
-
|
|
24383
|
-
|
|
23191
|
+
if (state === "call" || state === "partial-call" || state === "approval-requested") {
|
|
23192
|
+
const signature = this.countToolCallSignature(part, invocation);
|
|
23193
|
+
return {
|
|
23194
|
+
tokens: signature.tokens,
|
|
23195
|
+
overheadDelta: overheadDelta + signature.overheadDelta,
|
|
23196
|
+
extraMessageDelta
|
|
23197
|
+
};
|
|
23198
|
+
}
|
|
23199
|
+
if (state === "approval-responded") {
|
|
23200
|
+
extraMessageDelta++;
|
|
23201
|
+
const signature = this.countToolCallSignature(part, invocation);
|
|
23202
|
+
tokens += signature.tokens;
|
|
23203
|
+
overheadDelta += signature.overheadDelta;
|
|
23204
|
+
const reason = invocation.approval?.reason;
|
|
23205
|
+
if (reason) tokens += this.readOrPersistPartEstimate(part, "tool-approval-reason", reason);
|
|
24384
23206
|
return {
|
|
24385
23207
|
tokens,
|
|
24386
23208
|
overheadDelta,
|
|
24387
|
-
|
|
23209
|
+
extraMessageDelta
|
|
24388
23210
|
};
|
|
24389
23211
|
}
|
|
24390
|
-
if (
|
|
24391
|
-
|
|
23212
|
+
if (state === "result") {
|
|
23213
|
+
extraMessageDelta++;
|
|
24392
23214
|
const { value: resultForCounting, usingStoredModelOutput } = this.resolveToolResultForTokenCounting(part, invocation.result);
|
|
24393
23215
|
if (resultForCounting !== void 0) {
|
|
24394
23216
|
const contentTokens = this.countMultimodalToolResultContent(part, resultForCounting);
|
|
24395
23217
|
if (contentTokens !== void 0) tokens += contentTokens;
|
|
24396
23218
|
else {
|
|
24397
|
-
const formattedResult =
|
|
23219
|
+
const formattedResult = serializeToolResultForTokenCounting(resultForCounting);
|
|
24398
23220
|
tokens += this.readOrPersistPartEstimate(part, usingStoredModelOutput ? "tool-result-model-output-json" : "tool-result-json", formattedResult);
|
|
24399
23221
|
}
|
|
24400
23222
|
if (typeof resultForCounting !== "string") overheadDelta -= 12;
|
|
@@ -24402,36 +23224,45 @@ var TokenCounter = class TokenCounter {
|
|
|
24402
23224
|
return {
|
|
24403
23225
|
tokens,
|
|
24404
23226
|
overheadDelta,
|
|
24405
|
-
|
|
23227
|
+
extraMessageDelta
|
|
24406
23228
|
};
|
|
24407
23229
|
}
|
|
24408
|
-
if (
|
|
24409
|
-
|
|
23230
|
+
if (state === "output-denied") {
|
|
23231
|
+
extraMessageDelta++;
|
|
24410
23232
|
const reason = invocation.approval?.reason ?? "Tool call was not approved by the user";
|
|
24411
23233
|
tokens += this.readOrPersistPartEstimate(part, "tool-result-denied", reason);
|
|
24412
23234
|
return {
|
|
24413
23235
|
tokens,
|
|
24414
23236
|
overheadDelta,
|
|
24415
|
-
|
|
23237
|
+
extraMessageDelta
|
|
23238
|
+
};
|
|
23239
|
+
}
|
|
23240
|
+
if (state === "output-error") {
|
|
23241
|
+
extraMessageDelta++;
|
|
23242
|
+
const errorMessage = typeof invocation.errorText === "string" ? invocation.errorText : "Tool execution failed";
|
|
23243
|
+
tokens += this.readOrPersistPartEstimate(part, "tool-result-error", errorMessage);
|
|
23244
|
+
return {
|
|
23245
|
+
tokens,
|
|
23246
|
+
overheadDelta,
|
|
23247
|
+
extraMessageDelta
|
|
24416
23248
|
};
|
|
24417
23249
|
}
|
|
24418
|
-
throw new Error(`Unhandled tool-invocation state '${part.toolInvocation?.state}' in token counting for part type '${part.type}'`);
|
|
24419
23250
|
}
|
|
24420
23251
|
if (typeof part.type === "string" && part.type.startsWith("data-")) return {
|
|
24421
23252
|
tokens: 0,
|
|
24422
23253
|
overheadDelta,
|
|
24423
|
-
|
|
23254
|
+
extraMessageDelta
|
|
24424
23255
|
};
|
|
24425
23256
|
if (part.type === "reasoning") return {
|
|
24426
23257
|
tokens: 0,
|
|
24427
23258
|
overheadDelta,
|
|
24428
|
-
|
|
23259
|
+
extraMessageDelta
|
|
24429
23260
|
};
|
|
24430
23261
|
const serialized = serializePartForTokenCounting(part);
|
|
24431
23262
|
return {
|
|
24432
23263
|
tokens: this.readOrPersistPartEstimate(part, `part-${part.type}`, serialized),
|
|
24433
23264
|
overheadDelta,
|
|
24434
|
-
|
|
23265
|
+
extraMessageDelta
|
|
24435
23266
|
};
|
|
24436
23267
|
}
|
|
24437
23268
|
/**
|
|
@@ -24440,7 +23271,7 @@ var TokenCounter = class TokenCounter {
|
|
|
24440
23271
|
countMessage(message) {
|
|
24441
23272
|
let payloadTokens = this.countString(message.role);
|
|
24442
23273
|
let overhead = TokenCounter.TOKENS_PER_MESSAGE;
|
|
24443
|
-
let
|
|
23274
|
+
let extraMessageCount = 0;
|
|
24444
23275
|
if (typeof message.content === "string") payloadTokens += this.readOrPersistMessageEstimate(message, "message-content", message.content);
|
|
24445
23276
|
else if (message.content && typeof message.content === "object") {
|
|
24446
23277
|
if (message.content.content && !Array.isArray(message.content.parts)) payloadTokens += this.readOrPersistMessageEstimate(message, "content-content", message.content.content);
|
|
@@ -24453,16 +23284,16 @@ var TokenCounter = class TokenCounter {
|
|
|
24453
23284
|
const result = this.countNonAttachmentPart(part);
|
|
24454
23285
|
payloadTokens += result.tokens;
|
|
24455
23286
|
overhead += result.overheadDelta;
|
|
24456
|
-
|
|
23287
|
+
extraMessageCount += result.extraMessageDelta;
|
|
24457
23288
|
}
|
|
24458
23289
|
}
|
|
24459
|
-
if (
|
|
23290
|
+
if (extraMessageCount > 0) overhead += extraMessageCount * TokenCounter.TOKENS_PER_MESSAGE;
|
|
24460
23291
|
return Math.round(payloadTokens + overhead);
|
|
24461
23292
|
}
|
|
24462
23293
|
async countMessageAsync(message) {
|
|
24463
23294
|
let payloadTokens = this.countString(message.role);
|
|
24464
23295
|
let overhead = TokenCounter.TOKENS_PER_MESSAGE;
|
|
24465
|
-
let
|
|
23296
|
+
let extraMessageCount = 0;
|
|
24466
23297
|
if (typeof message.content === "string") payloadTokens += this.readOrPersistMessageEstimate(message, "message-content", message.content);
|
|
24467
23298
|
else if (message.content && typeof message.content === "object") {
|
|
24468
23299
|
if (message.content.content && !Array.isArray(message.content.parts)) payloadTokens += this.readOrPersistMessageEstimate(message, "content-content", message.content.content);
|
|
@@ -24475,10 +23306,10 @@ var TokenCounter = class TokenCounter {
|
|
|
24475
23306
|
const result = this.countNonAttachmentPart(part);
|
|
24476
23307
|
payloadTokens += result.tokens;
|
|
24477
23308
|
overhead += result.overheadDelta;
|
|
24478
|
-
|
|
23309
|
+
extraMessageCount += result.extraMessageDelta;
|
|
24479
23310
|
}
|
|
24480
23311
|
}
|
|
24481
|
-
if (
|
|
23312
|
+
if (extraMessageCount > 0) overhead += extraMessageCount * TokenCounter.TOKENS_PER_MESSAGE;
|
|
24482
23313
|
return Math.round(payloadTokens + overhead);
|
|
24483
23314
|
}
|
|
24484
23315
|
/**
|
|
@@ -24636,6 +23467,7 @@ var WorkingMemoryExtractor = class extends Extractor {
|
|
|
24636
23467
|
name: "Working Memory",
|
|
24637
23468
|
includePreviousExtraction: false,
|
|
24638
23469
|
metadataKeyPath: false,
|
|
23470
|
+
retryStructuredExtractionOnEmptyObject: true,
|
|
24639
23471
|
instructions: async (context) => buildWorkingMemoryInstructions(await getWorkingMemoryDetails(context)),
|
|
24640
23472
|
schema: async (context) => {
|
|
24641
23473
|
return (await getWorkingMemoryDetails(context)).usesSchema ? zod.z.union([zod.z.record(zod.z.string(), zod.z.unknown()), zod.z.null()]) : void 0;
|
|
@@ -24782,9 +23614,10 @@ async function listThreadsForResource({ memory, resourceId, currentThreadId, pag
|
|
|
24782
23614
|
hasMore
|
|
24783
23615
|
};
|
|
24784
23616
|
}
|
|
23617
|
+
const SEARCH_NOT_CONFIGURED_MESSAGE = "Search is not configured. Enable it with `retrieval: { vector: true }` and configure a vector store and embedder on your Memory instance.";
|
|
24785
23618
|
async function searchMessagesForResource({ memory, resourceId, currentThreadId, query, topK = 10, maxTokens = DEFAULT_MAX_RESULT_TOKENS, before, after, threadScope }) {
|
|
24786
23619
|
if (!memory.searchMessages) return {
|
|
24787
|
-
results:
|
|
23620
|
+
results: SEARCH_NOT_CONFIGURED_MESSAGE,
|
|
24788
23621
|
count: 0
|
|
24789
23622
|
};
|
|
24790
23623
|
const MAX_TOPK = 20;
|
|
@@ -25330,9 +24163,16 @@ async function recallThreadFromStart({ memory, threadId, resourceId, page = 1, l
|
|
|
25330
24163
|
}
|
|
25331
24164
|
const recallTool = (_memoryConfig, options) => {
|
|
25332
24165
|
const isResourceScope = (options?.retrievalScope ?? "thread") === "resource";
|
|
24166
|
+
const searchEnabled = options?.searchEnabled ?? true;
|
|
24167
|
+
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.`;
|
|
24168
|
+
const modeEnum = searchEnabled ? [
|
|
24169
|
+
"messages",
|
|
24170
|
+
"threads",
|
|
24171
|
+
"search"
|
|
24172
|
+
] : ["messages", "threads"];
|
|
25333
24173
|
return (0, _mastra_core_tools.createTool)({
|
|
25334
24174
|
id: "recall",
|
|
25335
|
-
description
|
|
24175
|
+
description,
|
|
25336
24176
|
inputSchema: {
|
|
25337
24177
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
25338
24178
|
type: "object",
|
|
@@ -25340,12 +24180,8 @@ const recallTool = (_memoryConfig, options) => {
|
|
|
25340
24180
|
...isResourceScope ? {
|
|
25341
24181
|
mode: {
|
|
25342
24182
|
type: "string",
|
|
25343
|
-
enum:
|
|
25344
|
-
|
|
25345
|
-
"threads",
|
|
25346
|
-
"search"
|
|
25347
|
-
],
|
|
25348
|
-
description: "What to retrieve. \"messages\" (default) pages through message history. \"threads\" lists all threads for the current user. \"search\" finds messages by semantic similarity across all threads."
|
|
24183
|
+
enum: modeEnum,
|
|
24184
|
+
description: `What to retrieve. "messages" (default) pages through message history. "threads" lists all threads for the current user.${searchEnabled ? " \"search\" finds messages by semantic similarity across all threads." : ""}`
|
|
25349
24185
|
},
|
|
25350
24186
|
threadId: {
|
|
25351
24187
|
type: "string",
|
|
@@ -25362,18 +24198,14 @@ const recallTool = (_memoryConfig, options) => {
|
|
|
25362
24198
|
}
|
|
25363
24199
|
} : { mode: {
|
|
25364
24200
|
type: "string",
|
|
25365
|
-
enum:
|
|
25366
|
-
|
|
25367
|
-
"threads",
|
|
25368
|
-
"search"
|
|
25369
|
-
],
|
|
25370
|
-
description: "What to retrieve. \"messages\" (default) pages through message history. \"threads\" returns info about the current thread. \"search\" finds messages by semantic similarity in this thread."
|
|
24201
|
+
enum: modeEnum,
|
|
24202
|
+
description: `What to retrieve. "messages" (default) pages through message history. "threads" returns info about the current thread.${searchEnabled ? " \"search\" finds messages by semantic similarity in this thread." : ""}`
|
|
25371
24203
|
} },
|
|
25372
|
-
query: {
|
|
24204
|
+
...searchEnabled ? { query: {
|
|
25373
24205
|
type: "string",
|
|
25374
24206
|
minLength: 1,
|
|
25375
24207
|
description: "Search query for mode=\"search\". Finds messages semantically similar to this text."
|
|
25376
|
-
},
|
|
24208
|
+
} } : {},
|
|
25377
24209
|
cursor: {
|
|
25378
24210
|
type: "string",
|
|
25379
24211
|
minLength: 1,
|
|
@@ -25434,6 +24266,10 @@ const recallTool = (_memoryConfig, options) => {
|
|
|
25434
24266
|
if (!memory) throw new Error("Memory instance is required for recall");
|
|
25435
24267
|
if (explicitThreadId === "current" && !currentThreadId) throw new Error("Could not resolve current thread.");
|
|
25436
24268
|
if (mode === "search") {
|
|
24269
|
+
if (!searchEnabled) return {
|
|
24270
|
+
results: SEARCH_NOT_CONFIGURED_MESSAGE,
|
|
24271
|
+
count: 0
|
|
24272
|
+
};
|
|
25437
24273
|
if (!query) throw new Error("query is required for mode=\"search\"");
|
|
25438
24274
|
if (!resourceId) throw new Error("Resource ID is required for recall");
|
|
25439
24275
|
return searchMessagesForResource({
|
|
@@ -25568,6 +24404,7 @@ function deepMergeWorkingMemory(existing, update) {
|
|
|
25568
24404
|
for (const key of Object.keys(update)) {
|
|
25569
24405
|
const updateValue = update[key];
|
|
25570
24406
|
const existingValue = result[key];
|
|
24407
|
+
if (updateValue === void 0) continue;
|
|
25571
24408
|
if (updateValue === null) delete result[key];
|
|
25572
24409
|
else if (Array.isArray(updateValue)) result[key] = updateValue;
|
|
25573
24410
|
else if (typeof updateValue === "object" && updateValue !== null && typeof existingValue === "object" && existingValue !== null && !Array.isArray(existingValue)) result[key] = deepMergeWorkingMemory(existingValue, updateValue);
|
|
@@ -25620,7 +24457,7 @@ const updateWorkingMemoryTool = (memoryConfig) => {
|
|
|
25620
24457
|
version: 1,
|
|
25621
24458
|
vendor: "mastra",
|
|
25622
24459
|
validate: (value) => {
|
|
25623
|
-
const memoryValue = !!value && typeof value === "object" && !Array.isArray(value) && "memory" in value ? value.memory :
|
|
24460
|
+
const memoryValue = stripNullsFromOptional(!!value && typeof value === "object" && !Array.isArray(value) && "memory" in value ? value.memory : value, jsonSchema);
|
|
25624
24461
|
const result = validateMemory(memoryValue);
|
|
25625
24462
|
return result instanceof Promise ? result.then(toWrappedResult) : toWrappedResult(result);
|
|
25626
24463
|
},
|
|
@@ -25637,6 +24474,7 @@ const updateWorkingMemoryTool = (memoryConfig) => {
|
|
|
25637
24474
|
id: "update-working-memory",
|
|
25638
24475
|
description: schema ? useStateSignals ? `${stateSignalsPreamble} Data is merged with existing memory — only include fields you want to add or update.` : `Update the working memory with new information. Data is merged with existing memory - only include fields you want to add or update. To preserve existing data, omit the field entirely. Arrays are replaced entirely when provided, so pass the complete array or omit it to keep the existing values.` : useStateSignals ? `${stateSignalsPreamble} Pass the full updated Markdown blob as a string in the memory field.` : `Update the working memory with new information. Any data not included will be overwritten. Always pass data as string to the memory field. Never pass an object.`,
|
|
25639
24476
|
inputSchema,
|
|
24477
|
+
...usesMergeSemantics ? { strict: false } : {},
|
|
25640
24478
|
execute: async (inputData, context) => {
|
|
25641
24479
|
const workingMemoryInput = inputData;
|
|
25642
24480
|
const threadId = context?.agent?.threadId;
|
|
@@ -26377,6 +25215,24 @@ function getUnobservedPartsPreservingToolCallPairs(message) {
|
|
|
26377
25215
|
return preservedCalls.length > 0 ? [...preservedCalls, ...unobservedParts] : unobservedParts;
|
|
26378
25216
|
}
|
|
26379
25217
|
/**
|
|
25218
|
+
* Get the messages Observational Memory is allowed to work with.
|
|
25219
|
+
*
|
|
25220
|
+
* Messages supplied through the `context` option are per-run ephemeral input. Core's
|
|
25221
|
+
* persistence contract already treats them as never-persist: `MessageStateManager` routes
|
|
25222
|
+
* them into `userContextMessages`, and `drainUnsavedMessages` only drains input/response.
|
|
25223
|
+
*
|
|
25224
|
+
* OM builds its windows from `get.all.db()`, which includes context messages, and then
|
|
25225
|
+
* seals and persists candidates directly — turning ephemeral context into durable user
|
|
25226
|
+
* messages. Excluding them here keeps OM's window, sealing, persistence and token
|
|
25227
|
+
* accounting consistent with that contract.
|
|
25228
|
+
*/
|
|
25229
|
+
function getObservableMessages(messageList) {
|
|
25230
|
+
const allMessages = messageList.get.all.db();
|
|
25231
|
+
const contextMessageIds = messageList.makeMessageSourceChecker().context;
|
|
25232
|
+
if (contextMessageIds.size === 0) return allMessages;
|
|
25233
|
+
return allMessages.filter((message) => !contextMessageIds.has(message.id));
|
|
25234
|
+
}
|
|
25235
|
+
/**
|
|
26380
25236
|
* Safely extract buffered observation chunks from a record.
|
|
26381
25237
|
* Handles both array and JSON-string formats, returning empty array if malformed.
|
|
26382
25238
|
*/
|
|
@@ -26389,7 +25245,7 @@ function getUnobservedPartsPreservingToolCallPairs(message) {
|
|
|
26389
25245
|
*/
|
|
26390
25246
|
function filterObservedMessages(opts) {
|
|
26391
25247
|
const { messageList, record } = opts;
|
|
26392
|
-
const allMessages = messageList
|
|
25248
|
+
const allMessages = getObservableMessages(messageList);
|
|
26393
25249
|
const useMarkerBoundaryPruning = opts.useMarkerBoundaryPruning ?? true;
|
|
26394
25250
|
const preserveMessageIds = opts.preserveMessageIds ?? /* @__PURE__ */ new Set();
|
|
26395
25251
|
const observedIds = new Set(Array.isArray(record?.observedMessageIds) ? record.observedMessageIds : []);
|
|
@@ -26801,7 +25657,7 @@ var ObservationStrategy = class ObservationStrategy {
|
|
|
26801
25657
|
transient: true
|
|
26802
25658
|
}).catch(() => {});
|
|
26803
25659
|
const markerThreadId = marker.data?.threadId ?? this.opts.threadId;
|
|
26804
|
-
await this.persistMarkerToStorage(marker, markerThreadId, this.opts.resourceId);
|
|
25660
|
+
if (!await this.persistMarkerToMessage(marker, this.opts.messageList, markerThreadId, this.opts.resourceId)) await this.persistMarkerToStorage(marker, markerThreadId, this.opts.resourceId);
|
|
26805
25661
|
}
|
|
26806
25662
|
getObservationMarkerConfig() {
|
|
26807
25663
|
return {
|
|
@@ -26929,10 +25785,14 @@ var ObservationStrategy = class ObservationStrategy {
|
|
|
26929
25785
|
/**
|
|
26930
25786
|
* Persist a marker part on the last assistant message in a MessageList
|
|
26931
25787
|
* AND save the updated message to the DB.
|
|
25788
|
+
*
|
|
25789
|
+
* @returns true when a marker was placed on an assistant message, false when
|
|
25790
|
+
* no list was provided or the list contains no assistant message (caller
|
|
25791
|
+
* should fall back to `persistMarkerToStorage`).
|
|
26932
25792
|
*/
|
|
26933
25793
|
async persistMarkerToMessage(marker, messageList, threadId, resourceId) {
|
|
26934
|
-
if (!messageList) return;
|
|
26935
|
-
const allMsgs = messageList
|
|
25794
|
+
if (!messageList) return false;
|
|
25795
|
+
const allMsgs = getObservableMessages(messageList);
|
|
26936
25796
|
for (let i = allMsgs.length - 1; i >= 0; i--) {
|
|
26937
25797
|
const msg = allMsgs[i];
|
|
26938
25798
|
if (msg?.role === "assistant" && msg.content?.parts && Array.isArray(msg.content.parts)) {
|
|
@@ -26947,9 +25807,10 @@ var ObservationStrategy = class ObservationStrategy {
|
|
|
26947
25807
|
} catch (e) {
|
|
26948
25808
|
omDebug(`[OM:persistMarker] failed to save marker to DB: ${e}`);
|
|
26949
25809
|
}
|
|
26950
|
-
return;
|
|
25810
|
+
return true;
|
|
26951
25811
|
}
|
|
26952
25812
|
}
|
|
25813
|
+
return false;
|
|
26953
25814
|
}
|
|
26954
25815
|
};
|
|
26955
25816
|
var SyncObservationStrategy = class extends ObservationStrategy {
|
|
@@ -27112,7 +25973,7 @@ var SyncObservationStrategy = class extends ObservationStrategy {
|
|
|
27112
25973
|
});
|
|
27113
25974
|
await this.storage.updateThread({
|
|
27114
25975
|
id: threadId,
|
|
27115
|
-
|
|
25976
|
+
...shouldUpdateThreadTitle ? { title: newTitle } : {},
|
|
27116
25977
|
metadata: newMetadata
|
|
27117
25978
|
});
|
|
27118
25979
|
if (shouldUpdateThreadTitle) threadUpdateMarker = createThreadUpdateMarker({
|
|
@@ -27302,7 +26163,7 @@ var AsyncBufferObservationStrategy = class extends ObservationStrategy {
|
|
|
27302
26163
|
});
|
|
27303
26164
|
await this.storage.updateThread({
|
|
27304
26165
|
id: threadId,
|
|
27305
|
-
|
|
26166
|
+
...shouldUpdateThreadTitle ? { title: newTitle } : {},
|
|
27306
26167
|
metadata: newMetadata
|
|
27307
26168
|
});
|
|
27308
26169
|
if (shouldUpdateThreadTitle) {
|
|
@@ -27645,7 +26506,7 @@ var ResourceScopedObservationStrategy = class extends ObservationStrategy {
|
|
|
27645
26506
|
});
|
|
27646
26507
|
await this.storage.updateThread({
|
|
27647
26508
|
id: update.threadId,
|
|
27648
|
-
|
|
26509
|
+
...shouldUpdateThreadTitle ? { title: newTitle } : {},
|
|
27649
26510
|
metadata: newMetadata
|
|
27650
26511
|
});
|
|
27651
26512
|
if (shouldUpdateThreadTitle) threadUpdateMarkers.push(createThreadUpdateMarker({
|
|
@@ -27746,6 +26607,12 @@ var ObservationStep = class {
|
|
|
27746
26607
|
stepNumber;
|
|
27747
26608
|
_prepared = false;
|
|
27748
26609
|
_context;
|
|
26610
|
+
/**
|
|
26611
|
+
* True when this step seeded an empty assistant response message for a step-0
|
|
26612
|
+
* observation. While set, the response-id rotation hook must NOT run — rotating
|
|
26613
|
+
* would orphan the seed (markers would sit on a message the agent never streams into).
|
|
26614
|
+
*/
|
|
26615
|
+
seededResponseMessage = false;
|
|
27749
26616
|
constructor(turn, stepNumber) {
|
|
27750
26617
|
this.turn = turn;
|
|
27751
26618
|
this.stepNumber = stepNumber;
|
|
@@ -27792,7 +26659,7 @@ var ObservationStep = class {
|
|
|
27792
26659
|
let didThresholdCleanup = false;
|
|
27793
26660
|
let observerExchange;
|
|
27794
26661
|
if (this.stepNumber === 0) {
|
|
27795
|
-
const step0Messages = messageList
|
|
26662
|
+
const step0Messages = getObservableMessages(messageList);
|
|
27796
26663
|
const activation = await om.activate({
|
|
27797
26664
|
threadId,
|
|
27798
26665
|
resourceId,
|
|
@@ -27824,7 +26691,7 @@ var ObservationStep = class {
|
|
|
27824
26691
|
currentModel: this.turn.actorModelContext,
|
|
27825
26692
|
requestContext: this.turn.requestContext,
|
|
27826
26693
|
observabilityContext: this.turn.observabilityContext,
|
|
27827
|
-
lastActivityAt: getLastActivityFromMessages(messageList
|
|
26694
|
+
lastActivityAt: getLastActivityFromMessages(getObservableMessages(messageList)),
|
|
27828
26695
|
reflectionHooks: om.composeHooks(void 0, {
|
|
27829
26696
|
threadId,
|
|
27830
26697
|
resourceId,
|
|
@@ -27834,7 +26701,7 @@ var ObservationStep = class {
|
|
|
27834
26701
|
await this.turn.refreshRecord();
|
|
27835
26702
|
if (this.turn.record.generationCount > preReflectGeneration) reflected = true;
|
|
27836
26703
|
}
|
|
27837
|
-
const allMsgsForToolCheck = messageList
|
|
26704
|
+
const allMsgsForToolCheck = getObservableMessages(messageList);
|
|
27838
26705
|
const lastMessage = allMsgsForToolCheck[allMsgsForToolCheck.length - 1];
|
|
27839
26706
|
const pendingStepMessages = [...messageList.get.input.db(), ...messageList.get.response.db()];
|
|
27840
26707
|
const latestStepParts = [...getLatestStepParts(lastMessage?.content?.parts ?? []), ...pendingStepMessages.flatMap((msg) => getLatestStepParts(msg.content?.parts ?? []))];
|
|
@@ -27843,10 +26710,10 @@ var ObservationStep = class {
|
|
|
27843
26710
|
let statusSnapshot = await om.getStatus({
|
|
27844
26711
|
threadId,
|
|
27845
26712
|
resourceId,
|
|
27846
|
-
messages: messageList
|
|
26713
|
+
messages: getObservableMessages(messageList)
|
|
27847
26714
|
});
|
|
27848
26715
|
if (statusSnapshot.shouldBuffer && !hasIncompleteToolCalls) {
|
|
27849
|
-
const allMessages = messageList
|
|
26716
|
+
const allMessages = getObservableMessages(messageList);
|
|
27850
26717
|
const unobservedMessages = om.getUnobservedMessages(allMessages, statusSnapshot.record);
|
|
27851
26718
|
const candidates = om.getUnobservedMessages(unobservedMessages, statusSnapshot.record, { excludeBuffered: true });
|
|
27852
26719
|
if (candidates.length > 0) {
|
|
@@ -27874,15 +26741,41 @@ var ObservationStep = class {
|
|
|
27874
26741
|
});
|
|
27875
26742
|
buffered = true;
|
|
27876
26743
|
}
|
|
27877
|
-
|
|
27878
|
-
|
|
27879
|
-
|
|
27880
|
-
|
|
27881
|
-
if (
|
|
27882
|
-
|
|
27883
|
-
|
|
26744
|
+
const willObserveNow = statusSnapshot.shouldObserve && !hasIncompleteToolCalls;
|
|
26745
|
+
/** In-flight message ids the step-0 cleanup must never remove from live context. */
|
|
26746
|
+
let step0PreserveIds;
|
|
26747
|
+
if (this.stepNumber > 0 || willObserveNow) {
|
|
26748
|
+
if (this.stepNumber > 0) {
|
|
26749
|
+
const newInput = messageList.clear.input.db();
|
|
26750
|
+
const newOutput = messageList.clear.response.db();
|
|
26751
|
+
const messagesToSave = [...newInput, ...newOutput];
|
|
26752
|
+
if (messagesToSave.length > 0) {
|
|
26753
|
+
await om.persistMessages(messagesToSave, threadId, resourceId);
|
|
26754
|
+
for (const msg of messagesToSave) messageList.add(msg, "memory");
|
|
26755
|
+
}
|
|
26756
|
+
} else {
|
|
26757
|
+
const pending = [...messageList.get.input.db(), ...messageList.get.response.db()];
|
|
26758
|
+
if (pending.length > 0) await om.persistMessages(pending, threadId, resourceId);
|
|
26759
|
+
step0PreserveIds = pending.map((msg) => msg.id);
|
|
26760
|
+
}
|
|
26761
|
+
if (this.stepNumber === 0 && willObserveNow && this.turn.responseMessageId) {
|
|
26762
|
+
const seed = {
|
|
26763
|
+
id: this.turn.responseMessageId,
|
|
26764
|
+
role: "assistant",
|
|
26765
|
+
content: {
|
|
26766
|
+
format: 2,
|
|
26767
|
+
parts: []
|
|
26768
|
+
},
|
|
26769
|
+
type: "text",
|
|
26770
|
+
createdAt: /* @__PURE__ */ new Date(),
|
|
26771
|
+
threadId,
|
|
26772
|
+
resourceId
|
|
26773
|
+
};
|
|
26774
|
+
messageList.add(seed, "response");
|
|
26775
|
+
this.seededResponseMessage = true;
|
|
26776
|
+
omDebug(`[OM:step0] seeded response message ${seed.id} for step-0 observation markers`);
|
|
27884
26777
|
}
|
|
27885
|
-
if (
|
|
26778
|
+
if (willObserveNow) {
|
|
27886
26779
|
const preObsGeneration = this.turn.record.generationCount;
|
|
27887
26780
|
const obsResult = await this.runThresholdObservation();
|
|
27888
26781
|
observerExchange = obsResult.observerExchange;
|
|
@@ -27896,7 +26789,8 @@ var ObservationStep = class {
|
|
|
27896
26789
|
resourceId,
|
|
27897
26790
|
messages: messageList,
|
|
27898
26791
|
observedMessageIds: observedIds,
|
|
27899
|
-
retentionFloor: minRemaining
|
|
26792
|
+
retentionFloor: minRemaining,
|
|
26793
|
+
preserveMessageIds: step0PreserveIds
|
|
27900
26794
|
});
|
|
27901
26795
|
if (statusSnapshot.asyncObservationEnabled) await om.resetBufferingState({
|
|
27902
26796
|
threadId,
|
|
@@ -27911,7 +26805,7 @@ var ObservationStep = class {
|
|
|
27911
26805
|
statusSnapshot = await om.getStatus({
|
|
27912
26806
|
threadId,
|
|
27913
26807
|
resourceId,
|
|
27914
|
-
messages: messageList
|
|
26808
|
+
messages: getObservableMessages(messageList)
|
|
27915
26809
|
});
|
|
27916
26810
|
}
|
|
27917
26811
|
const otherThreadsContext = await this.turn.refreshOtherThreadsContext();
|
|
@@ -27960,10 +26854,11 @@ var ObservationStep = class {
|
|
|
27960
26854
|
const { threadId, resourceId, messageList } = this.turn;
|
|
27961
26855
|
const om = this.turn.om;
|
|
27962
26856
|
await om.waitForBuffering(threadId, resourceId);
|
|
26857
|
+
const observableMessages = this.seededResponseMessage ? getObservableMessages(messageList).filter((msg) => msg.id !== this.turn.responseMessageId) : getObservableMessages(messageList);
|
|
27963
26858
|
const freshStatus = await om.getStatus({
|
|
27964
26859
|
threadId,
|
|
27965
26860
|
resourceId,
|
|
27966
|
-
messages:
|
|
26861
|
+
messages: observableMessages
|
|
27967
26862
|
});
|
|
27968
26863
|
if (!freshStatus.shouldObserve) return {
|
|
27969
26864
|
succeeded: false,
|
|
@@ -27973,7 +26868,7 @@ var ObservationStep = class {
|
|
|
27973
26868
|
const activation = await om.activate({
|
|
27974
26869
|
threadId,
|
|
27975
26870
|
resourceId,
|
|
27976
|
-
messages:
|
|
26871
|
+
messages: observableMessages,
|
|
27977
26872
|
currentModel: this.turn.actorModelContext,
|
|
27978
26873
|
writer: this.turn.writer,
|
|
27979
26874
|
messageList
|
|
@@ -27989,7 +26884,7 @@ var ObservationStep = class {
|
|
|
27989
26884
|
currentModel: this.turn.actorModelContext,
|
|
27990
26885
|
requestContext: this.turn.requestContext,
|
|
27991
26886
|
observabilityContext: this.turn.observabilityContext,
|
|
27992
|
-
lastActivityAt: getLastActivityFromMessages(messageList
|
|
26887
|
+
lastActivityAt: getLastActivityFromMessages(getObservableMessages(messageList)),
|
|
27993
26888
|
reflectionHooks: om.composeHooks(void 0, {
|
|
27994
26889
|
threadId,
|
|
27995
26890
|
resourceId,
|
|
@@ -28006,7 +26901,8 @@ var ObservationStep = class {
|
|
|
28006
26901
|
const obsResult = await om.observe({
|
|
28007
26902
|
threadId,
|
|
28008
26903
|
resourceId,
|
|
28009
|
-
messages:
|
|
26904
|
+
messages: observableMessages,
|
|
26905
|
+
messageList,
|
|
28010
26906
|
trigger: "turn-sync",
|
|
28011
26907
|
requestContext: this.turn.requestContext,
|
|
28012
26908
|
writer: this.turn.writer,
|
|
@@ -28014,7 +26910,7 @@ var ObservationStep = class {
|
|
|
28014
26910
|
});
|
|
28015
26911
|
if (obsResult.observed) {
|
|
28016
26912
|
const observedMessageIds = new Set(obsResult.record.observedMessageIds ?? []);
|
|
28017
|
-
const liveMessages = messageList
|
|
26913
|
+
const liveMessages = getObservableMessages(messageList);
|
|
28018
26914
|
let latestObservedIndex = -1;
|
|
28019
26915
|
for (let i = liveMessages.length - 1; i >= 0; i--) {
|
|
28020
26916
|
const message = liveMessages[i];
|
|
@@ -28023,10 +26919,12 @@ var ObservationStep = class {
|
|
|
28023
26919
|
break;
|
|
28024
26920
|
}
|
|
28025
26921
|
}
|
|
28026
|
-
|
|
26922
|
+
let messageToSeal = latestObservedIndex >= 0 ? liveMessages[latestObservedIndex] : void 0;
|
|
26923
|
+
if (this.stepNumber === 0 && messageToSeal?.role !== "assistant") messageToSeal = void 0;
|
|
28027
26924
|
const messagesToSeal = messageToSeal ? [messageToSeal] : [];
|
|
28028
26925
|
om.sealMessagesForBuffering(messagesToSeal);
|
|
28029
|
-
|
|
26926
|
+
if (this.seededResponseMessage) omDebug("[OM:observe] skipping response-id rotation — step-0 seeded response message holds the active id");
|
|
26927
|
+
else try {
|
|
28030
26928
|
await this.turn.hooks?.onSyncObservationComplete?.();
|
|
28031
26929
|
} catch (error) {
|
|
28032
26930
|
omDebug(`[OM:observe] onSyncObservationComplete hook failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
@@ -28085,6 +26983,8 @@ var ObservationTurn = class {
|
|
|
28085
26983
|
sendSignal;
|
|
28086
26984
|
/** Current actor model for this step. Updated by the processor before prepare(). */
|
|
28087
26985
|
actorModelContext;
|
|
26986
|
+
/** The active assistant response message ID for this step. Updated by the processor before prepare(). */
|
|
26987
|
+
responseMessageId;
|
|
28088
26988
|
/** Processor-provided hooks for turn/step lifecycle integration. */
|
|
28089
26989
|
hooks;
|
|
28090
26990
|
constructor(opts) {
|
|
@@ -28183,7 +27083,7 @@ var ObservationTurn = class {
|
|
|
28183
27083
|
const asyncObservationEnabled = this.om.buffering.isAsyncObservationEnabled();
|
|
28184
27084
|
const bufferOnIdle = this.om.getObservationConfig().bufferOnIdle;
|
|
28185
27085
|
if (asyncObservationEnabled && bufferOnIdle) {
|
|
28186
|
-
const allMessages = this.messageList
|
|
27086
|
+
const allMessages = getObservableMessages(this.messageList);
|
|
28187
27087
|
const record = this._record;
|
|
28188
27088
|
const unobservedMessages = this.om.getUnobservedMessages(allMessages, record);
|
|
28189
27089
|
if (unobservedMessages.length > 0) this.om.buffer({
|
|
@@ -28537,7 +27437,6 @@ async function persistThreadExtractedValues(storage, extractors, threadId, value
|
|
|
28537
27437
|
});
|
|
28538
27438
|
await storage.updateThread({
|
|
28539
27439
|
id: threadId,
|
|
28540
|
-
title: thread.title ?? "",
|
|
28541
27440
|
metadata: newMetadata
|
|
28542
27441
|
});
|
|
28543
27442
|
}
|
|
@@ -28549,7 +27448,7 @@ function getCurrentModel$1(model) {
|
|
|
28549
27448
|
return formatModelContext$1(model?.provider, model?.modelId);
|
|
28550
27449
|
}
|
|
28551
27450
|
function getLastModelFromMessageList(messageList) {
|
|
28552
|
-
const messages = messageList
|
|
27451
|
+
const messages = messageList ? getObservableMessages(messageList) : void 0;
|
|
28553
27452
|
if (!messages) return void 0;
|
|
28554
27453
|
for (let i = messages.length - 1; i >= 0; i--) {
|
|
28555
27454
|
const message = messages[i];
|
|
@@ -30129,7 +29028,7 @@ var ObservationalMemory = class ObservationalMemory {
|
|
|
30129
29028
|
*/
|
|
30130
29029
|
async persistMarkerToMessage(marker, messageList, threadId, resourceId) {
|
|
30131
29030
|
if (!messageList) return;
|
|
30132
|
-
const allMsgs = messageList
|
|
29031
|
+
const allMsgs = getObservableMessages(messageList);
|
|
30133
29032
|
for (let i = allMsgs.length - 1; i >= 0; i--) {
|
|
30134
29033
|
const msg = allMsgs[i];
|
|
30135
29034
|
if (msg?.role === "assistant" && msg.content?.parts && Array.isArray(msg.content.parts)) {
|
|
@@ -30745,6 +29644,7 @@ ${formattedMessages}
|
|
|
30745
29644
|
*/
|
|
30746
29645
|
async getObservedMessageIdsForCleanup(opts) {
|
|
30747
29646
|
const { threadId, resourceId, messages, observedMessageIds, retentionFloor } = opts;
|
|
29647
|
+
const preserveSet = opts.preserveMessageIds?.length ? new Set(opts.preserveMessageIds) : null;
|
|
30748
29648
|
const record = await this.getOrCreateRecord(threadId, resourceId);
|
|
30749
29649
|
const effectiveObservedIds = observedMessageIds && observedMessageIds.length > 0 ? observedMessageIds : Array.isArray(record.observedMessageIds) ? record.observedMessageIds : [];
|
|
30750
29650
|
if (effectiveObservedIds.length === 0) return [];
|
|
@@ -30756,6 +29656,10 @@ ${formattedMessages}
|
|
|
30756
29656
|
const retentionCounter = typeof retentionFloor === "number" ? new TokenCounter() : null;
|
|
30757
29657
|
for (const msg of messages) {
|
|
30758
29658
|
if (!msg?.id || msg.id === "om-continuation" || !observedSet.has(msg.id)) continue;
|
|
29659
|
+
if (preserveSet?.has(msg.id)) {
|
|
29660
|
+
skipped += 1;
|
|
29661
|
+
continue;
|
|
29662
|
+
}
|
|
30759
29663
|
const unobservedParts = getUnobservedParts(msg);
|
|
30760
29664
|
const totalParts = msg.content?.parts?.length ?? 0;
|
|
30761
29665
|
if (unobservedParts.length > 0 && unobservedParts.length < totalParts) {
|
|
@@ -30800,9 +29704,9 @@ ${formattedMessages}
|
|
|
30800
29704
|
*/
|
|
30801
29705
|
/** @internal Used by ObservationStep. */
|
|
30802
29706
|
async cleanupMessages(opts) {
|
|
30803
|
-
const { threadId, resourceId, observedMessageIds, retentionFloor } = opts;
|
|
29707
|
+
const { threadId, resourceId, observedMessageIds, retentionFloor, preserveMessageIds } = opts;
|
|
30804
29708
|
const messageList = this.isMessageList(opts.messages) ? opts.messages : void 0;
|
|
30805
|
-
const allMsgs = messageList ? messageList
|
|
29709
|
+
const allMsgs = messageList ? getObservableMessages(messageList) : opts.messages;
|
|
30806
29710
|
let markerIdx = -1;
|
|
30807
29711
|
let markerMsg = null;
|
|
30808
29712
|
for (let i = allMsgs.length - 1; i >= 0; i--) {
|
|
@@ -30821,7 +29725,8 @@ ${formattedMessages}
|
|
|
30821
29725
|
resourceId,
|
|
30822
29726
|
messages: allMsgs,
|
|
30823
29727
|
observedMessageIds,
|
|
30824
|
-
retentionFloor
|
|
29728
|
+
retentionFloor,
|
|
29729
|
+
preserveMessageIds
|
|
30825
29730
|
});
|
|
30826
29731
|
if (messageList) {
|
|
30827
29732
|
if (idsToRemoveList.length > 0) messageList.removeByIds(idsToRemoveList);
|
|
@@ -30833,18 +29738,21 @@ ${formattedMessages}
|
|
|
30833
29738
|
if (markerMsg && markerIdx !== -1) {
|
|
30834
29739
|
const idsToRemove = [];
|
|
30835
29740
|
const messagesToSave = [];
|
|
29741
|
+
const preserveSet = preserveMessageIds?.length ? new Set(preserveMessageIds) : null;
|
|
30836
29742
|
for (let i = 0; i < markerIdx; i++) {
|
|
30837
29743
|
const msg = allMsgs[i];
|
|
30838
|
-
if (msg?.id && msg.id !== "om-continuation") {
|
|
29744
|
+
if (msg?.id && msg.id !== "om-continuation" && !preserveSet?.has(msg.id)) {
|
|
30839
29745
|
idsToRemove.push(msg.id);
|
|
30840
29746
|
messagesToSave.push(msg);
|
|
30841
29747
|
}
|
|
30842
29748
|
}
|
|
30843
29749
|
messagesToSave.push(markerMsg);
|
|
30844
|
-
|
|
30845
|
-
|
|
30846
|
-
if (
|
|
30847
|
-
|
|
29750
|
+
if (!Boolean(markerMsg.id && preserveSet?.has(markerMsg.id))) {
|
|
29751
|
+
const unobservedParts = getUnobservedParts(markerMsg);
|
|
29752
|
+
if (unobservedParts.length === 0) {
|
|
29753
|
+
if (markerMsg.id) idsToRemove.push(markerMsg.id);
|
|
29754
|
+
} else if (unobservedParts.length < (markerMsg.content?.parts?.length ?? 0)) markerMsg.content.parts = unobservedParts;
|
|
29755
|
+
}
|
|
30848
29756
|
if (messageList) {
|
|
30849
29757
|
if (idsToRemove.length > 0) messageList.removeByIds(idsToRemove);
|
|
30850
29758
|
if (messagesToSave.length > 0) await this.persistMessages(messagesToSave, threadId, resourceId);
|
|
@@ -31496,7 +30404,7 @@ ${formattedMessages}
|
|
|
31496
30404
|
const shouldUpdateThreadTitle = !!newTitle && newTitle.length >= 3 && newTitle !== oldTitle;
|
|
31497
30405
|
await this.storage.updateThread({
|
|
31498
30406
|
id: threadId,
|
|
31499
|
-
|
|
30407
|
+
...shouldUpdateThreadTitle ? { title: newTitle } : {},
|
|
31500
30408
|
metadata: newMetadata
|
|
31501
30409
|
});
|
|
31502
30410
|
}
|
|
@@ -31631,6 +30539,7 @@ ${formattedMessages}
|
|
|
31631
30539
|
threadId,
|
|
31632
30540
|
resourceId,
|
|
31633
30541
|
messages: unobservedMessages,
|
|
30542
|
+
messageList: opts.messageList,
|
|
31634
30543
|
reflectionHooks,
|
|
31635
30544
|
agent: opts.agent,
|
|
31636
30545
|
requestContext,
|
|
@@ -31713,7 +30622,6 @@ ${formattedMessages}
|
|
|
31713
30622
|
});
|
|
31714
30623
|
await this.storage.updateThread({
|
|
31715
30624
|
id: threadId,
|
|
31716
|
-
title: thread.title ?? "",
|
|
31717
30625
|
metadata: newMetadata
|
|
31718
30626
|
});
|
|
31719
30627
|
}
|
|
@@ -31911,7 +30819,7 @@ function isTemporalGapMarkerForMessage(message, targetMessageId) {
|
|
|
31911
30819
|
async function insertTemporalGapMarkers({ messageList, sendSignal }) {
|
|
31912
30820
|
const latestInputMessage = messageList.get.input.db().filter((message) => Boolean(message)).at(-1);
|
|
31913
30821
|
if (!latestInputMessage || isTemporalGapMarker(latestInputMessage)) return;
|
|
31914
|
-
const allMessages = messageList
|
|
30822
|
+
const allMessages = getObservableMessages(messageList).filter((message) => Boolean(message));
|
|
31915
30823
|
const latestInputIndex = allMessages.findIndex((message) => message.id === latestInputMessage.id);
|
|
31916
30824
|
if (latestInputIndex <= 0) return;
|
|
31917
30825
|
if (allMessages.some((message) => isTemporalGapMarkerForMessage(message, latestInputMessage.id))) return;
|
|
@@ -32016,7 +30924,7 @@ var ObservationalMemoryProcessor = class {
|
|
|
32016
30924
|
this.temporalMarkers = options?.temporalMarkers ?? false;
|
|
32017
30925
|
}
|
|
32018
30926
|
async processInputStep(args) {
|
|
32019
|
-
const { messageList, requestContext, stepNumber, state: _state, writer, model, abortSignal, abort, rotateResponseMessageId } = args;
|
|
30927
|
+
const { messageList, requestContext, stepNumber, state: _state, writer, model, abortSignal, abort, messageId, rotateResponseMessageId } = args;
|
|
32020
30928
|
const state = _state ?? {};
|
|
32021
30929
|
omDebug(`[OM:processInputStep:ENTER] step=${stepNumber}, hasMastraMemory=${!!requestContext?.get("MastraMemory")}, hasMemoryInfo=${!!messageList?.serialize()?.memoryInfo?.threadId}`);
|
|
32022
30930
|
const context = this.engine.getThreadContext(requestContext, messageList);
|
|
@@ -32102,6 +31010,7 @@ var ObservationalMemoryProcessor = class {
|
|
|
32102
31010
|
state.__omObservabilityContext = observabilityContext;
|
|
32103
31011
|
this.turn.observabilityContext = observabilityContext;
|
|
32104
31012
|
this.turn.actorModelContext = actorModelContext;
|
|
31013
|
+
this.turn.responseMessageId = messageId;
|
|
32105
31014
|
{
|
|
32106
31015
|
const step = this.turn.step(stepNumber);
|
|
32107
31016
|
let ctx;
|
|
@@ -32132,7 +31041,7 @@ var ObservationalMemoryProcessor = class {
|
|
|
32132
31041
|
threadId,
|
|
32133
31042
|
resourceId
|
|
32134
31043
|
});
|
|
32135
|
-
const allDbMsgs = messageList
|
|
31044
|
+
const allDbMsgs = getObservableMessages(messageList);
|
|
32136
31045
|
const tokenCounter = this.engine.getTokenCounter();
|
|
32137
31046
|
const contextTokens = await tokenCounter.countMessagesAsync(allDbMsgs);
|
|
32138
31047
|
const otherThreadsContext = this.turn.context.otherThreadsContext;
|
|
@@ -32479,6 +31388,18 @@ var Memory = class extends _mastra_core_memory.MastraMemory {
|
|
|
32479
31388
|
_omEngine;
|
|
32480
31389
|
_omEngineInstance;
|
|
32481
31390
|
_mastraInstance;
|
|
31391
|
+
/**
|
|
31392
|
+
* Every vector cleanup that deleteThread or deleteMessages started in the background.
|
|
31393
|
+
* Callers do not wait for the cleanup, so this handle is the only join point.
|
|
31394
|
+
*/
|
|
31395
|
+
pendingVectorCleanup = Promise.resolve();
|
|
31396
|
+
/**
|
|
31397
|
+
* Adds a background vector cleanup to the join handle.
|
|
31398
|
+
* The handle keeps the earlier cleanups, so it settles only after all of them end.
|
|
31399
|
+
*/
|
|
31400
|
+
trackVectorCleanup(cleanup) {
|
|
31401
|
+
this.pendingVectorCleanup = Promise.allSettled([this.pendingVectorCleanup, cleanup]).then(() => void 0);
|
|
31402
|
+
}
|
|
32482
31403
|
/** The shared ObservationalMemory engine. Lazily created on first access. */
|
|
32483
31404
|
get omEngine() {
|
|
32484
31405
|
if (!this._omEngine) this._omEngine = this._initOMEngine().then((engine) => {
|
|
@@ -32743,26 +31664,40 @@ var Memory = class extends _mastra_core_memory.MastraMemory {
|
|
|
32743
31664
|
const thread = await memoryStore.getThreadById({ threadId });
|
|
32744
31665
|
await memoryStore.deleteThread({ threadId });
|
|
32745
31666
|
if (thread?.resourceId && memoryStore.supportsObservationalMemory) await memoryStore.clearObservationalMemory(threadId, thread.resourceId);
|
|
32746
|
-
if (this.vector) this.deleteThreadVectors(threadId);
|
|
31667
|
+
if (this.vector) this.trackVectorCleanup(this.deleteThreadVectors(threadId));
|
|
32747
31668
|
}
|
|
32748
31669
|
/**
|
|
32749
|
-
*
|
|
32750
|
-
*
|
|
31670
|
+
* Prefix shared by every message index. The index for the default embedding
|
|
31671
|
+
* dimension is named with the bare prefix; other dimensions add a suffix.
|
|
32751
31672
|
*/
|
|
32752
|
-
|
|
31673
|
+
get messageIndexPrefix() {
|
|
31674
|
+
return this.getEmbeddingIndexName();
|
|
31675
|
+
}
|
|
31676
|
+
/**
|
|
31677
|
+
* Prefix shared by every observation index. Each observation index adds a dimension suffix.
|
|
31678
|
+
*/
|
|
31679
|
+
get observationIndexPrefix() {
|
|
31680
|
+
return `memory${this.vector?.indexSeparator ?? "_"}observations`;
|
|
31681
|
+
}
|
|
31682
|
+
/**
|
|
31683
|
+
* Lists the vector indexes whose name starts with one of the given prefixes.
|
|
31684
|
+
* Index names can carry a dimension suffix, so discovery matches on the prefix.
|
|
31685
|
+
*/
|
|
31686
|
+
async getMemoryVectorIndexes(prefixes) {
|
|
32753
31687
|
if (!this.vector) return [];
|
|
32754
|
-
|
|
32755
|
-
return (await this.vector.listIndexes()).filter((name) => name.startsWith(prefix));
|
|
31688
|
+
return (await this.vector.listIndexes()).filter((name) => prefixes.some((prefix) => name.startsWith(prefix)));
|
|
32756
31689
|
}
|
|
32757
31690
|
/**
|
|
32758
31691
|
* Deletes all vector embeddings associated with a thread.
|
|
32759
31692
|
* This is called internally by deleteThread to clean up orphaned vectors.
|
|
31693
|
+
* Both message and observation vectors are removed, so no text of the deleted
|
|
31694
|
+
* thread stays reachable through resource-scoped retrieval.
|
|
32760
31695
|
*
|
|
32761
31696
|
* @param threadId - The ID of the thread whose vectors should be deleted
|
|
32762
31697
|
*/
|
|
32763
31698
|
async deleteThreadVectors(threadId) {
|
|
32764
31699
|
try {
|
|
32765
|
-
const memoryIndexes = await this.getMemoryVectorIndexes();
|
|
31700
|
+
const memoryIndexes = await this.getMemoryVectorIndexes([this.messageIndexPrefix, this.observationIndexPrefix]);
|
|
32766
31701
|
await Promise.all(memoryIndexes.map(async (indexName) => {
|
|
32767
31702
|
try {
|
|
32768
31703
|
await this.vector.deleteVectors({
|
|
@@ -32770,14 +31705,14 @@ var Memory = class extends _mastra_core_memory.MastraMemory {
|
|
|
32770
31705
|
filter: { thread_id: threadId }
|
|
32771
31706
|
});
|
|
32772
31707
|
} catch {
|
|
32773
|
-
this.logger.
|
|
31708
|
+
this.logger.warn("Failed to delete vectors of the deleted thread from index", {
|
|
32774
31709
|
threadId,
|
|
32775
31710
|
indexName
|
|
32776
31711
|
});
|
|
32777
31712
|
}
|
|
32778
31713
|
}));
|
|
32779
31714
|
} catch {
|
|
32780
|
-
this.logger.
|
|
31715
|
+
this.logger.warn("Failed to clean up vectors of the deleted thread", { threadId });
|
|
32781
31716
|
}
|
|
32782
31717
|
}
|
|
32783
31718
|
async updateWorkingMemory({ threadId, resourceId, workingMemory, memoryConfig, observabilityContext }) {
|
|
@@ -32805,7 +31740,6 @@ var Memory = class extends _mastra_core_memory.MastraMemory {
|
|
|
32805
31740
|
if (!thread) throw new Error(`Thread ${threadId} not found`);
|
|
32806
31741
|
await memoryStore.updateThread({
|
|
32807
31742
|
id: threadId,
|
|
32808
|
-
title: thread.title || "",
|
|
32809
31743
|
metadata: {
|
|
32810
31744
|
...thread.metadata,
|
|
32811
31745
|
workingMemory
|
|
@@ -32894,7 +31828,6 @@ ${workingMemory}`;
|
|
|
32894
31828
|
if (!thread) throw new Error(`Thread ${threadId} not found`);
|
|
32895
31829
|
await memoryStore.updateThread({
|
|
32896
31830
|
id: threadId,
|
|
32897
|
-
title: thread.title || "",
|
|
32898
31831
|
metadata: {
|
|
32899
31832
|
...thread.metadata,
|
|
32900
31833
|
workingMemory
|
|
@@ -33450,7 +32383,7 @@ Notes:
|
|
|
33450
32383
|
getObservationEmbeddingIndexName(dimensions) {
|
|
33451
32384
|
const usedDimensions = dimensions ?? 384;
|
|
33452
32385
|
const separator = this.vector?.indexSeparator ?? "_";
|
|
33453
|
-
return
|
|
32386
|
+
return `${this.observationIndexPrefix}${separator}${usedDimensions}`;
|
|
33454
32387
|
}
|
|
33455
32388
|
async createObservationEmbeddingIndex(dimensions) {
|
|
33456
32389
|
const usedDimensions = dimensions ?? 384;
|
|
@@ -33696,7 +32629,10 @@ Notes:
|
|
|
33696
32629
|
tools[name] = tool;
|
|
33697
32630
|
}
|
|
33698
32631
|
const omConfig = normalizeObservationalMemoryConfig(mergedConfig.observationalMemory);
|
|
33699
|
-
if (omConfig?.retrieval) tools.recall = recallTool(mergedConfig, {
|
|
32632
|
+
if (omConfig?.retrieval) tools.recall = recallTool(mergedConfig, {
|
|
32633
|
+
retrievalScope: typeof omConfig.retrieval === "object" ? omConfig.retrieval.scope ?? "resource" : "resource",
|
|
32634
|
+
searchEnabled: this.hasRetrievalSearch(omConfig.retrieval)
|
|
32635
|
+
});
|
|
33700
32636
|
return tools;
|
|
33701
32637
|
}
|
|
33702
32638
|
/**
|
|
@@ -33752,7 +32688,7 @@ Notes:
|
|
|
33752
32688
|
}));
|
|
33753
32689
|
const messageIdsNeedingDeletion = /* @__PURE__ */ new Set([...messageIdsWithClearedContent, ...messageIdsWithNewEmbeddings]);
|
|
33754
32690
|
if (messageIdsNeedingDeletion.size > 0) try {
|
|
33755
|
-
const memoryIndexes = await this.getMemoryVectorIndexes();
|
|
32691
|
+
const memoryIndexes = await this.getMemoryVectorIndexes([this.messageIndexPrefix]);
|
|
33756
32692
|
const idsToDelete = [...messageIdsNeedingDeletion];
|
|
33757
32693
|
await Promise.all(memoryIndexes.map(async (indexName) => {
|
|
33758
32694
|
for (let i = 0; i < idsToDelete.length; i += VECTOR_DELETE_BATCH_SIZE) {
|
|
@@ -33811,7 +32747,7 @@ Notes:
|
|
|
33811
32747
|
const span = this.createMemorySpan("delete", observabilityContext, void 0, { messageCount: messageIds.length });
|
|
33812
32748
|
try {
|
|
33813
32749
|
await (await this.getMemoryStore()).deleteMessages(messageIds);
|
|
33814
|
-
if (this.vector) this.deleteMessageVectors(messageIds);
|
|
32750
|
+
if (this.vector) this.trackVectorCleanup(this.deleteMessageVectors(messageIds));
|
|
33815
32751
|
span?.end({
|
|
33816
32752
|
output: { success: true },
|
|
33817
32753
|
attributes: { messageCount: messageIds.length }
|
|
@@ -33827,12 +32763,14 @@ Notes:
|
|
|
33827
32763
|
/**
|
|
33828
32764
|
* Deletes vector embeddings for specific messages.
|
|
33829
32765
|
* This is called internally by deleteMessages to clean up orphaned vectors.
|
|
32766
|
+
* Only the message indexes are touched, because observation vectors can hold
|
|
32767
|
+
* text of other messages of the thread.
|
|
33830
32768
|
*
|
|
33831
32769
|
* @param messageIds - The IDs of the messages whose vectors should be deleted
|
|
33832
32770
|
*/
|
|
33833
32771
|
async deleteMessageVectors(messageIds) {
|
|
33834
32772
|
try {
|
|
33835
|
-
const memoryIndexes = await this.getMemoryVectorIndexes();
|
|
32773
|
+
const memoryIndexes = await this.getMemoryVectorIndexes([this.messageIndexPrefix]);
|
|
33836
32774
|
await Promise.all(memoryIndexes.map(async (indexName) => {
|
|
33837
32775
|
for (let i = 0; i < messageIds.length; i += VECTOR_DELETE_BATCH_SIZE) {
|
|
33838
32776
|
const batch = messageIds.slice(i, i + VECTOR_DELETE_BATCH_SIZE);
|
|
@@ -37021,8 +35959,8 @@ export const mastra = new Mastra({
|
|
|
37021
35959
|
if (fileTypes.length > 0) fileTypes.forEach((ft) => {
|
|
37022
35960
|
rgArgs.push("--type-add", `custom:*.${ft}`, "-t", "custom");
|
|
37023
35961
|
});
|
|
37024
|
-
excludePaths.forEach((path$
|
|
37025
|
-
rgArgs.push("--glob", `!${path$
|
|
35962
|
+
excludePaths.forEach((path$1) => {
|
|
35963
|
+
rgArgs.push("--glob", `!${path$1}`);
|
|
37026
35964
|
});
|
|
37027
35965
|
rgArgs.push("-m", maxResults.toString());
|
|
37028
35966
|
rgArgs.push(query);
|
|
@@ -37144,7 +36082,7 @@ export const mastra = new Mastra({
|
|
|
37144
36082
|
*/
|
|
37145
36083
|
static async listDirectory(context) {
|
|
37146
36084
|
try {
|
|
37147
|
-
const { path: path$
|
|
36085
|
+
const { path: path$2, recursive = false, includeHidden = false, pattern, maxDepth = 10, includeMetadata = true, projectPath } = context;
|
|
37148
36086
|
const gitignorePath = (0, path.join)(projectPath || process.cwd(), ".gitignore");
|
|
37149
36087
|
let gitignoreFilter;
|
|
37150
36088
|
try {
|
|
@@ -37153,7 +36091,7 @@ export const mastra = new Mastra({
|
|
|
37153
36091
|
} catch (err) {
|
|
37154
36092
|
if (err.code !== "ENOENT") console.error(`Error reading .gitignore file:`, err);
|
|
37155
36093
|
}
|
|
37156
|
-
const resolvedPath = (0, path.isAbsolute)(path$
|
|
36094
|
+
const resolvedPath = (0, path.isAbsolute)(path$2) ? path$2 : (0, path.resolve)(projectPath || process.cwd(), path$2);
|
|
37157
36095
|
const items = [];
|
|
37158
36096
|
async function processDirectory(dirPath, currentDepth = 0) {
|
|
37159
36097
|
const relativeToProject = (0, path.relative)(projectPath || process.cwd(), dirPath);
|
|
@@ -37615,7 +36553,7 @@ const discoverUnitsStep = (0, _mastra_core_workflows.createStep)({
|
|
|
37615
36553
|
const model = await resolveModel({
|
|
37616
36554
|
requestContext,
|
|
37617
36555
|
projectPath: targetPath,
|
|
37618
|
-
defaultModel: require_dist
|
|
36556
|
+
defaultModel: require_dist.openai("gpt-4.1")
|
|
37619
36557
|
});
|
|
37620
36558
|
try {
|
|
37621
36559
|
const agent = new _mastra_core_agent.Agent({
|
|
@@ -38310,7 +37248,7 @@ const intelligentMergeStep = (0, _mastra_core_workflows.createStep)({
|
|
|
38310
37248
|
const model = await resolveModel({
|
|
38311
37249
|
requestContext,
|
|
38312
37250
|
projectPath: targetPath,
|
|
38313
|
-
defaultModel: require_dist
|
|
37251
|
+
defaultModel: require_dist.openai("gpt-4.1")
|
|
38314
37252
|
});
|
|
38315
37253
|
const copyFileTool = (0, _mastra_core_tools.createTool)({
|
|
38316
37254
|
id: "copy-file",
|
|
@@ -38586,7 +37524,7 @@ const validationAndFixStep = (0, _mastra_core_workflows.createStep)({
|
|
|
38586
37524
|
const model = await resolveModel({
|
|
38587
37525
|
requestContext,
|
|
38588
37526
|
projectPath: targetPath,
|
|
38589
|
-
defaultModel: require_dist
|
|
37527
|
+
defaultModel: require_dist.openai("gpt-4.1")
|
|
38590
37528
|
});
|
|
38591
37529
|
const allTools = await AgentBuilderDefaults.listToolsForMode(targetPath, "template");
|
|
38592
37530
|
const validationAgent = new _mastra_core_agent.Agent({
|
|
@@ -44608,4 +43546,4 @@ const agentBuilderWorkflows = {
|
|
|
44608
43546
|
//#endregion
|
|
44609
43547
|
exports.agentBuilderWorkflows = agentBuilderWorkflows;
|
|
44610
43548
|
|
|
44611
|
-
//# sourceMappingURL=dist-
|
|
43549
|
+
//# sourceMappingURL=dist-TkFPtpuy.cjs.map
|