@mastra/server 1.78.0-alpha.9 → 1.78.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/dist/{a2a-BeW8w9CL.cjs → a2a-D5CGFO8W.cjs} +2 -2
  2. package/dist/{a2a-BeW8w9CL.cjs.map → a2a-D5CGFO8W.cjs.map} +1 -1
  3. package/dist/{a2a-BWKuwXQY.js → a2a-Dg3ylOKc.js} +2 -2
  4. package/dist/{a2a-BWKuwXQY.js.map → a2a-Dg3ylOKc.js.map} +1 -1
  5. package/dist/{api-schema-manifest-C1XMN6QZ.cjs → api-schema-manifest-Dr8PM4Qj.cjs} +2 -2
  6. package/dist/{api-schema-manifest-C1XMN6QZ.cjs.map → api-schema-manifest-Dr8PM4Qj.cjs.map} +1 -1
  7. package/dist/{api-schema-manifest-BWXv2l4E.js → api-schema-manifest-aur2BK6a.js} +2 -2
  8. package/dist/{api-schema-manifest-BWXv2l4E.js.map → api-schema-manifest-aur2BK6a.js.map} +1 -1
  9. package/dist/{background-tasks-CP6TSFhc.cjs → background-tasks-BbYzMhlD.cjs} +2 -2
  10. package/dist/{background-tasks-CP6TSFhc.cjs.map → background-tasks-BbYzMhlD.cjs.map} +1 -1
  11. package/dist/{background-tasks-Clbud7G4.js → background-tasks-zvlIcbhg.js} +2 -2
  12. package/dist/{background-tasks-Clbud7G4.js.map → background-tasks-zvlIcbhg.js.map} +1 -1
  13. package/dist/{builder-registry-6A0b4EwP.js → builder-registry-1GwmVVwr.js} +2 -2
  14. package/dist/{builder-registry-6A0b4EwP.js.map → builder-registry-1GwmVVwr.js.map} +1 -1
  15. package/dist/{builder-registry-DbSG3HJ8.cjs → builder-registry-DagCZI4A.cjs} +2 -2
  16. package/dist/{builder-registry-DbSG3HJ8.cjs.map → builder-registry-DagCZI4A.cjs.map} +1 -1
  17. package/dist/{channels-DNWITrYK.cjs → channels-5J7CTFyY.cjs} +2 -2
  18. package/dist/{channels-DNWITrYK.cjs.map → channels-5J7CTFyY.cjs.map} +1 -1
  19. package/dist/{channels-DjOa1rPQ.js → channels-B3aoI-f1.js} +2 -2
  20. package/dist/{channels-DjOa1rPQ.js.map → channels-B3aoI-f1.js.map} +1 -1
  21. package/dist/{constants-C631oS02.js → constants-DazK_RZj.js} +9 -4
  22. package/dist/constants-DazK_RZj.js.map +1 -0
  23. package/dist/{constants-epIL4td4.cjs → constants-e7aaPCLj.cjs} +14 -3
  24. package/dist/constants-e7aaPCLj.cjs.map +1 -0
  25. package/dist/{dist-KzbPuRgb.cjs → dist-B8rA8_Wt.cjs} +83 -35
  26. package/dist/dist-B8rA8_Wt.cjs.map +1 -0
  27. package/dist/{dist-0eJzATDs.js → dist-CdMzvOLk.js} +83 -35
  28. package/dist/dist-CdMzvOLk.js.map +1 -0
  29. package/dist/docs/SKILL.md +1 -1
  30. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  31. package/dist/{helpers-C_FYiA-F.js → helpers-DLhX1fqc.js} +2 -2
  32. package/dist/{helpers-C_FYiA-F.js.map → helpers-DLhX1fqc.js.map} +1 -1
  33. package/dist/{helpers-59ZdrW8t.cjs → helpers-ElhPeCSK.cjs} +2 -2
  34. package/dist/{helpers-59ZdrW8t.cjs.map → helpers-ElhPeCSK.cjs.map} +1 -1
  35. package/dist/{observability-new-endpoints-CJMR84MD.cjs → observability-new-endpoints-BoALDMSi.cjs} +2 -2
  36. package/dist/{observability-new-endpoints-CJMR84MD.cjs.map → observability-new-endpoints-BoALDMSi.cjs.map} +1 -1
  37. package/dist/{observability-new-endpoints-D9MEJyaw.js → observability-new-endpoints-CB7T6Z7c.js} +2 -2
  38. package/dist/{observability-new-endpoints-D9MEJyaw.js.map → observability-new-endpoints-CB7T6Z7c.js.map} +1 -1
  39. package/dist/{routes-CH2PZ0PI.js → routes-BhI1lW_W.js} +12 -12
  40. package/dist/{routes-CH2PZ0PI.js.map → routes-BhI1lW_W.js.map} +1 -1
  41. package/dist/{routes-BpxhmR6Y.cjs → routes-CuJPLAh8.cjs} +12 -12
  42. package/dist/{routes-BpxhmR6Y.cjs.map → routes-CuJPLAh8.cjs.map} +1 -1
  43. package/dist/{schedules-DvLXX2nW.cjs → schedules-B0g72u5Y.cjs} +2 -2
  44. package/dist/{schedules-DvLXX2nW.cjs.map → schedules-B0g72u5Y.cjs.map} +1 -1
  45. package/dist/{schedules-BRdVmFYi.js → schedules-CrAmZ2gu.js} +2 -2
  46. package/dist/{schedules-BRdVmFYi.js.map → schedules-CrAmZ2gu.js.map} +1 -1
  47. package/dist/server/auth/index.cjs +2 -2
  48. package/dist/server/auth/index.js +2 -2
  49. package/dist/server/constants.d.ts +5 -0
  50. package/dist/server/constants.d.ts.map +1 -1
  51. package/dist/server/handlers/a2a.cjs +1 -1
  52. package/dist/server/handlers/a2a.js +1 -1
  53. package/dist/server/handlers/agent-builder.cjs +2 -2
  54. package/dist/server/handlers/agent-builder.js +2 -2
  55. package/dist/server/handlers/agent-controller.cjs +2 -2
  56. package/dist/server/handlers/agent-controller.js +2 -2
  57. package/dist/server/handlers/agent-versions.cjs +1 -1
  58. package/dist/server/handlers/agent-versions.js +1 -1
  59. package/dist/server/handlers/agents.cjs +3 -3
  60. package/dist/server/handlers/agents.js +3 -3
  61. package/dist/server/handlers/auth.cjs +2 -2
  62. package/dist/server/handlers/auth.js +2 -2
  63. package/dist/server/handlers/authorship.cjs +1 -1
  64. package/dist/server/handlers/authorship.js +1 -1
  65. package/dist/server/handlers/background-tasks.cjs +1 -1
  66. package/dist/server/handlers/background-tasks.js +1 -1
  67. package/dist/server/handlers/builder-registry.cjs +1 -1
  68. package/dist/server/handlers/builder-registry.js +1 -1
  69. package/dist/server/handlers/channels.cjs +1 -1
  70. package/dist/server/handlers/channels.js +1 -1
  71. package/dist/server/handlers/conversations.cjs +1 -1
  72. package/dist/server/handlers/conversations.js +1 -1
  73. package/dist/server/handlers/datasets.cjs +1 -1
  74. package/dist/server/handlers/datasets.js +1 -1
  75. package/dist/server/handlers/logs.cjs +1 -1
  76. package/dist/server/handlers/logs.js +1 -1
  77. package/dist/server/handlers/mcp-client-versions.cjs +2 -2
  78. package/dist/server/handlers/mcp-client-versions.js +2 -2
  79. package/dist/server/handlers/memory.cjs +1 -1
  80. package/dist/server/handlers/memory.js +1 -1
  81. package/dist/server/handlers/observability-new-endpoints.cjs +1 -1
  82. package/dist/server/handlers/observability-new-endpoints.js +1 -1
  83. package/dist/server/handlers/observability.cjs +1 -1
  84. package/dist/server/handlers/observability.js +1 -1
  85. package/dist/server/handlers/plans.cjs +1 -1
  86. package/dist/server/handlers/plans.js +1 -1
  87. package/dist/server/handlers/prompt-block-versions.cjs +2 -2
  88. package/dist/server/handlers/prompt-block-versions.js +2 -2
  89. package/dist/server/handlers/responses.cjs +1 -1
  90. package/dist/server/handlers/responses.js +1 -1
  91. package/dist/server/handlers/responses.storage.cjs +1 -1
  92. package/dist/server/handlers/responses.storage.js +1 -1
  93. package/dist/server/handlers/schedules.cjs +1 -1
  94. package/dist/server/handlers/schedules.js +1 -1
  95. package/dist/server/handlers/scorer-versions.cjs +2 -2
  96. package/dist/server/handlers/scorer-versions.js +2 -2
  97. package/dist/server/handlers/stored-agent-favorites.cjs +1 -1
  98. package/dist/server/handlers/stored-agent-favorites.js +1 -1
  99. package/dist/server/handlers/stored-agents.cjs +2 -2
  100. package/dist/server/handlers/stored-agents.js +2 -2
  101. package/dist/server/handlers/stored-mcp-clients.cjs +2 -2
  102. package/dist/server/handlers/stored-mcp-clients.js +2 -2
  103. package/dist/server/handlers/stored-prompt-blocks.cjs +2 -2
  104. package/dist/server/handlers/stored-prompt-blocks.js +2 -2
  105. package/dist/server/handlers/stored-scorers.cjs +2 -2
  106. package/dist/server/handlers/stored-scorers.js +2 -2
  107. package/dist/server/handlers/stored-skill-favorites.cjs +2 -2
  108. package/dist/server/handlers/stored-skill-favorites.js +2 -2
  109. package/dist/server/handlers/stored-skills.cjs +2 -2
  110. package/dist/server/handlers/stored-skills.js +2 -2
  111. package/dist/server/handlers/stored-workspaces.cjs +1 -1
  112. package/dist/server/handlers/stored-workspaces.js +1 -1
  113. package/dist/server/handlers/system.cjs +1 -1
  114. package/dist/server/handlers/system.js +1 -1
  115. package/dist/server/handlers/tool-providers.cjs +1 -1
  116. package/dist/server/handlers/tool-providers.js +1 -1
  117. package/dist/server/handlers/tools.cjs +2 -2
  118. package/dist/server/handlers/tools.js +2 -2
  119. package/dist/server/handlers/utils.cjs +1 -1
  120. package/dist/server/handlers/utils.js +1 -1
  121. package/dist/server/handlers/validate-agent-instructions.cjs +1 -1
  122. package/dist/server/handlers/validate-agent-instructions.js +1 -1
  123. package/dist/server/handlers/workflow-builder.cjs +1 -1
  124. package/dist/server/handlers/workflow-builder.js +1 -1
  125. package/dist/server/handlers/workflows.cjs +2 -2
  126. package/dist/server/handlers/workflows.js +2 -2
  127. package/dist/server/handlers.cjs +1 -1
  128. package/dist/server/handlers.js +1 -1
  129. package/dist/server/schemas/index.cjs +6 -6
  130. package/dist/server/schemas/index.js +6 -6
  131. package/dist/server/server-adapter/index.cjs +5 -4
  132. package/dist/server/server-adapter/index.cjs.map +1 -1
  133. package/dist/server/server-adapter/index.d.ts +1 -1
  134. package/dist/server/server-adapter/index.d.ts.map +1 -1
  135. package/dist/server/server-adapter/index.js +5 -5
  136. package/dist/server/server-adapter/index.js.map +1 -1
  137. package/dist/{utils-CJxnYdr3.cjs → utils-BZdnPmsW.cjs} +2 -2
  138. package/dist/{utils-CJxnYdr3.cjs.map → utils-BZdnPmsW.cjs.map} +1 -1
  139. package/dist/{utils-DdGLbkOl.cjs → utils-CczRcgHQ.cjs} +2 -2
  140. package/dist/{utils-DdGLbkOl.cjs.map → utils-CczRcgHQ.cjs.map} +1 -1
  141. package/dist/{utils-mIFmRM_j.js → utils-D5DHrO3K.js} +2 -2
  142. package/dist/{utils-mIFmRM_j.js.map → utils-D5DHrO3K.js.map} +1 -1
  143. package/dist/{utils-BpQY-tBr.js → utils-tmrFs-gf.js} +2 -2
  144. package/dist/{utils-BpQY-tBr.js.map → utils-tmrFs-gf.js.map} +1 -1
  145. package/dist/{workflow-builder-BnKKH8iT.js → workflow-builder-DJ0eeJuG.js} +2 -2
  146. package/dist/{workflow-builder-BnKKH8iT.js.map → workflow-builder-DJ0eeJuG.js.map} +1 -1
  147. package/dist/{workflow-builder-BM6Nen0q.cjs → workflow-builder-DdSutoga.cjs} +2 -2
  148. package/dist/{workflow-builder-BM6Nen0q.cjs.map → workflow-builder-DdSutoga.cjs.map} +1 -1
  149. package/package.json +10 -10
  150. package/dist/constants-C631oS02.js.map +0 -1
  151. package/dist/constants-epIL4td4.cjs.map +0 -1
  152. package/dist/dist-0eJzATDs.js.map +0 -1
  153. package/dist/dist-KzbPuRgb.cjs.map +0 -1
@@ -21,8 +21,8 @@ import { InMemoryStore, MAX_KNOWLEDGE_NODE_DESCRIPTION_LENGTH, MAX_KNOWLEDGE_REC
21
21
  import { coreFeatures } from "@mastra/core/features";
22
22
  import { EntityType, SpanType, createObservabilityContext, getOrCreateSpan } from "@mastra/core/observability";
23
23
  import { MessageHistory, TokenLimiterProcessor } from "@mastra/core/processors";
24
- import { createStep, createWorkflow } from "@mastra/core/workflows";
25
24
  import { appendFileSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
25
+ import { createStep, createWorkflow } from "@mastra/core/workflows";
26
26
  import { tmpdir } from "os";
27
27
  import { basename, dirname, extname, isAbsolute, join, relative, resolve } from "path";
28
28
  import { createHash } from "crypto";
@@ -4637,7 +4637,7 @@ function splitLines(text) {
4637
4637
  return result;
4638
4638
  }
4639
4639
  //#endregion
4640
- //#region ../memory/dist/src-CnLuefUv.js
4640
+ //#region ../memory/dist/src-D9Uu93Xu.js
4641
4641
  var __defProp$3 = Object.defineProperty;
4642
4642
  var __exportAll = (all, no_symbols) => {
4643
4643
  let target = {};
@@ -24319,18 +24319,19 @@ function safeSlice(str, end) {
24319
24319
  }
24320
24320
  const PATTERNS = {
24321
24321
  whitespace: /^\s+$/,
24322
- cjk: /[\u4E00-\u9FFF\u3400-\u4DBF\u3000-\u303F\uFF00-\uFFEF\u30A0-\u30FF\u2E80-\u2EFF\u31C0-\u31EF\u3200-\u32FF\u3300-\u33FF\uAC00-\uD7AF\u1100-\u11FF\u3130-\u318F\uA960-\uA97F\uD7B0-\uD7FF]/,
24323
- numeric: /^\d+(?:[.,]\d+)*$/,
24324
- punctuation: /[.,!?;(){}[\]<>:/\\|@#$%^&*+=`~_-]/,
24325
- alphanumeric: /^[a-zA-Z0-9\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+$/
24322
+ structuredWhitespace: /\n\s/,
24323
+ cjk: /[\u4E00-\u9FFF\u3400-\u4DBF\u3000-\u30FF\uFF00-\uFFEF\u2E80-\u2EFF\u31C0-\u31EF\u3200-\u32FF\u3300-\u33FF\uAC00-\uD7AF\u1100-\u11FF\u3130-\u318F\uA960-\uA97F\uD7B0-\uD7FF]/,
24324
+ numeric: /^\d+$/,
24325
+ punctuation: /[.,!?;(){}[\]<>:/\\|@#$%^&*+=`~_"-]/
24326
24326
  };
24327
- const TOKEN_SPLIT_PATTERN = /* @__PURE__ */ new RegExp(`(\\s+|${PATTERNS.punctuation.source}+)`);
24327
+ const TOKEN_SPLIT_PATTERN = new RegExp(`(\\s+|${PATTERNS.punctuation.source}+)`);
24328
24328
  const DEFAULT_CHARS_PER_TOKEN = 6;
24329
24329
  const SHORT_TOKEN_THRESHOLD = 3;
24330
+ const KANA_CHARS_PER_TOKEN = 1.35;
24330
24331
  const DEFAULT_LANGUAGE_CONFIGS = [
24331
24332
  {
24332
24333
  pattern: /[äöüßẞ]/i,
24333
- averageCharsPerToken: 3
24334
+ averageCharsPerToken: 2.6
24334
24335
  },
24335
24336
  {
24336
24337
  pattern: /[éèêëàâîïôûùüÿçœæáíóúñ]/i,
@@ -24338,39 +24339,75 @@ const DEFAULT_LANGUAGE_CONFIGS = [
24338
24339
  },
24339
24340
  {
24340
24341
  pattern: /[ąćęłńóśźżěščřžýůúďťň]/i,
24341
- averageCharsPerToken: 3.5
24342
+ averageCharsPerToken: 2.5
24343
+ },
24344
+ {
24345
+ pattern: /[\u0430-\u044F\u0451]/i,
24346
+ averageCharsPerToken: 4
24347
+ },
24348
+ {
24349
+ pattern: /[\u03AC-\u03CE]/i,
24350
+ averageCharsPerToken: 2.75
24351
+ },
24352
+ {
24353
+ pattern: /^\p{Extended_Pictographic}[\p{Extended_Pictographic}\p{Emoji_Component}]*$/u,
24354
+ averageCharsPerToken: .75
24342
24355
  }
24343
24356
  ];
24344
24357
  /**
24345
- * Estimates the number of tokens in a text string using heuristic rules.
24358
+ * Walks a text as (segment, estimated token count) pairs. The segments
24359
+ * concatenate back to the original text; whitespace segments count zero
24360
+ * tokens unless they carry structure (indentation or blank lines).
24346
24361
  */
24347
- function estimateTokenCount(text, options = {}) {
24348
- if (!text) return 0;
24349
- const { defaultCharsPerToken = DEFAULT_CHARS_PER_TOKEN, languageConfigs = DEFAULT_LANGUAGE_CONFIGS } = options;
24350
- const segments = text.split(TOKEN_SPLIT_PATTERN).filter(Boolean);
24351
- let tokenCount = 0;
24352
- for (const segment of segments) tokenCount += estimateSegmentTokens(segment, languageConfigs, defaultCharsPerToken);
24353
- return tokenCount;
24362
+ function* walkSegments(text, options = {}) {
24363
+ if (!text) return;
24364
+ const resolvedOptions = resolveOptions(options);
24365
+ for (const segment of text.split(TOKEN_SPLIT_PATTERN)) if (segment) yield {
24366
+ segment,
24367
+ tokenCount: estimateSegmentTokens(segment, resolvedOptions)
24368
+ };
24369
+ }
24370
+ function resolveOptions(options) {
24371
+ return {
24372
+ defaultCharsPerToken: options.defaultCharsPerToken ?? DEFAULT_CHARS_PER_TOKEN,
24373
+ languageConfigs: options.languageConfigs ?? DEFAULT_LANGUAGE_CONFIGS
24374
+ };
24354
24375
  }
24355
- function estimateSegmentTokens(segment, languageConfigs, defaultCharsPerToken) {
24356
- if (PATTERNS.whitespace.test(segment)) return 0;
24357
- if (PATTERNS.cjk.test(segment)) return getCharacterCount(segment);
24358
- if (PATTERNS.numeric.test(segment)) return 1;
24376
+ function estimateSegmentTokens(segment, { languageConfigs, defaultCharsPerToken }) {
24377
+ if (PATTERNS.whitespace.test(segment)) return PATTERNS.structuredWhitespace.test(segment) ? 1 : 0;
24378
+ const languageCharsPerToken = getLanguageSpecificCharsPerToken(segment, languageConfigs);
24379
+ if (languageCharsPerToken !== void 0) return Math.ceil(getCharacterCount(segment) / languageCharsPerToken);
24380
+ if (PATTERNS.cjk.test(segment)) return estimateCjkTokens(segment);
24381
+ if (PATTERNS.numeric.test(segment)) return Math.ceil(segment.length / 3);
24359
24382
  if (segment.length <= SHORT_TOKEN_THRESHOLD) return 1;
24360
- if (PATTERNS.punctuation.test(segment)) return segment.length > 1 ? Math.ceil(segment.length / 2) : 1;
24361
- if (PATTERNS.alphanumeric.test(segment)) {
24362
- const charsPerToken$1 = getLanguageSpecificCharsPerToken(segment, languageConfigs) ?? defaultCharsPerToken;
24363
- return Math.ceil(segment.length / charsPerToken$1);
24364
- }
24365
- const charsPerToken = getLanguageSpecificCharsPerToken(segment, languageConfigs) ?? defaultCharsPerToken;
24366
- return Math.ceil(segment.length / charsPerToken);
24383
+ if (PATTERNS.punctuation.test(segment)) return Math.ceil(segment.length / 2);
24384
+ return Math.ceil(segment.length / defaultCharsPerToken);
24367
24385
  }
24368
24386
  function getLanguageSpecificCharsPerToken(segment, languageConfigs) {
24369
- for (const config of languageConfigs) if (config.pattern.test(segment)) return config.averageCharsPerToken;
24387
+ for (const config of languageConfigs) if (segment.search(config.pattern) !== -1) return config.averageCharsPerToken;
24370
24388
  }
24371
24389
  function getCharacterCount(text) {
24372
24390
  return Array.from(text).length;
24373
24391
  }
24392
+ function estimateCjkTokens(segment) {
24393
+ let kanaCount = 0;
24394
+ let otherCount = 0;
24395
+ for (const character of segment) {
24396
+ const codePoint = character.codePointAt(0);
24397
+ if (codePoint >= 12352 && codePoint <= 12543) kanaCount++;
24398
+ else otherCount++;
24399
+ }
24400
+ return otherCount + Math.ceil(kanaCount / KANA_CHARS_PER_TOKEN);
24401
+ }
24402
+ /**
24403
+ * Estimates the number of tokens in a text string using heuristic rules
24404
+ */
24405
+ function estimateTokenCount(text, options = {}) {
24406
+ if (!text) return 0;
24407
+ let tokenCount = 0;
24408
+ for (const segmentEstimate of walkSegments(text, options)) tokenCount += segmentEstimate.tokenCount;
24409
+ return tokenCount;
24410
+ }
24374
24411
  const DEFAULT_OBSERVER_TOOL_ARGUMENT_MAX_TOKENS = 2e3;
24375
24412
  const OBSERVER_TOOL_ARGUMENT_INLINE_STRING_MAX_CHARS = 160;
24376
24413
  const OBSERVER_TOOL_ARGUMENT_MAX_DEPTH = 5;
@@ -26873,7 +26910,7 @@ const IMAGE_FILE_EXTENSIONS = /* @__PURE__ */ new Set([
26873
26910
  "heif",
26874
26911
  "avif"
26875
26912
  ]);
26876
- const TOKEN_ESTIMATE_CACHE_VERSION = 7;
26913
+ const TOKEN_ESTIMATE_CACHE_VERSION = 8;
26877
26914
  /**
26878
26915
  * Cache `source` marker for token estimates supplied by the caller via
26879
26916
  * `part.providerMetadata.mastra.tokenEstimate`. Pipelines that strip the real
@@ -30952,7 +30989,8 @@ function hasGoogleGenerativeAIKey() {
30952
30989
  /**
30953
30990
  * Resolve the concrete model ID `'auto'` selects for a main model ID.
30954
30991
  *
30955
- * Order: Gemini when `GOOGLE_GENERATIVE_AI_API_KEY` is set; else the main provider's low-cost
30992
+ * Order: Gemini when Google is usable (`canUseProvider('google')`, or `GOOGLE_GENERATIVE_AI_API_KEY`
30993
+ * when no check is given); else the main provider's low-cost
30956
30994
  * model (keeping a `mastra/` gateway prefix); else the main model ID itself. Returns `undefined`
30957
30995
  * only when there is no Google key and no main model ID.
30958
30996
  */
@@ -30961,7 +30999,7 @@ function resolveAutoModelId(mainModelId, options) {
30961
30999
  ...AUTO_MODEL_BY_PROVIDER,
30962
31000
  ...options?.autoModels
30963
31001
  };
30964
- if (hasGoogleGenerativeAIKey() && models.google) return models.google;
31002
+ if ((options?.canUseProvider ? options.canUseProvider("google") : hasGoogleGenerativeAIKey()) && models.google) return models.google;
30965
31003
  if (!mainModelId) return;
30966
31004
  const prefix = mainModelId.startsWith(ROUTE_PREFIX) ? ROUTE_PREFIX : "";
30967
31005
  const provider = mainModelId.slice(prefix.length).split("/", 1)[0];
@@ -35598,6 +35636,7 @@ var ObservationalMemory = class ObservationalMemory {
35598
35636
  mastra;
35599
35637
  autoModels;
35600
35638
  resolveAutoModelHook;
35639
+ canUseProvider;
35601
35640
  memory;
35602
35641
  /**
35603
35642
  * Track message IDs observed during this instance's lifetime.
@@ -35696,6 +35735,7 @@ var ObservationalMemory = class ObservationalMemory {
35696
35735
  this.hooks = config.hooks;
35697
35736
  this.autoModels = config.autoModels;
35698
35737
  this.resolveAutoModelHook = config.resolveModel;
35738
+ this.canUseProvider = config.canUseProvider;
35699
35739
  this.hookExecution = config.hookExecution ?? "non-blocking";
35700
35740
  this.mastra = config.mastra;
35701
35741
  this.memory = config.memory;
@@ -35895,11 +35935,18 @@ var ObservationalMemory = class ObservationalMemory {
35895
35935
  model: await this.resolveAutoModel(options)
35896
35936
  };
35897
35937
  }
35938
+ autoModelOptions(requestContext) {
35939
+ const canUseProvider = this.canUseProvider;
35940
+ return {
35941
+ autoModels: this.autoModels,
35942
+ canUseProvider: canUseProvider ? (providerId) => canUseProvider(providerId, { requestContext }) : void 0
35943
+ };
35944
+ }
35898
35945
  async resolveAutoModel(options) {
35899
35946
  let mainModel = options?.currentModel?.model;
35900
35947
  if (!mainModel && options?.mainAgent) mainModel = await options.mainAgent.getModel({ requestContext: options.requestContext });
35901
35948
  const mainModelId = getModelId(mainModel);
35902
- const pick = resolveAutoModelId(mainModelId, { autoModels: this.autoModels }) ?? (mainModel ? void 0 : OBSERVATIONAL_MEMORY_DEFAULTS.observation.model);
35949
+ const pick = resolveAutoModelId(mainModelId, this.autoModelOptions(options?.requestContext)) ?? (mainModel ? void 0 : OBSERVATIONAL_MEMORY_DEFAULTS.observation.model);
35903
35950
  if (mainModel && (!pick || pick === mainModelId)) return mainModel;
35904
35951
  const modelId = pick;
35905
35952
  return this.resolveAutoModelHook ? await this.resolveAutoModelHook(modelId, { requestContext: options?.requestContext }) : modelId;
@@ -35966,7 +36013,7 @@ var ObservationalMemory = class ObservationalMemory {
35966
36013
  async getCompressionStartLevel(requestContext) {
35967
36014
  try {
35968
36015
  const reflectionModel = await this.resolveModelFunction(this.reflectionConfig.model, requestContext);
35969
- if ((reflectionModel === "auto" ? resolveAutoModelId(void 0, { autoModels: this.autoModels }) ?? "" : (await this.resolveModelContext(reflectionModel, requestContext))?.modelId ?? "").includes("gemini-2.5-flash")) return 2;
36016
+ if ((reflectionModel === "auto" ? resolveAutoModelId(void 0, this.autoModelOptions(requestContext)) ?? "" : (await this.resolveModelContext(reflectionModel, requestContext))?.modelId ?? "").includes("gemini-2.5-flash")) return 2;
35970
36017
  return 1;
35971
36018
  } catch {
35972
36019
  return 1;
@@ -39926,6 +39973,7 @@ ${workingMemory}`;
39926
39973
  shareTokenBudget: omConfig.shareTokenBudget,
39927
39974
  model: omConfig.model,
39928
39975
  autoModels: omConfig.autoModels,
39976
+ canUseProvider: omConfig.canUseProvider,
39929
39977
  resolveModel: omConfig.resolveModel,
39930
39978
  mastra: this._mastraInstance,
39931
39979
  onIndexObservations,
@@ -51859,4 +51907,4 @@ const agentBuilderWorkflows = {
51859
51907
  //#endregion
51860
51908
  export { agentBuilderWorkflows };
51861
51909
 
51862
- //# sourceMappingURL=dist-0eJzATDs.js.map
51910
+ //# sourceMappingURL=dist-CdMzvOLk.js.map