@mastra/core 1.0.0-beta.3 → 1.0.0-beta.4

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 (146) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/dist/agent/index.cjs +9 -9
  3. package/dist/agent/index.js +2 -2
  4. package/dist/agent/message-list/index.cjs +3 -3
  5. package/dist/agent/message-list/index.d.ts +5 -0
  6. package/dist/agent/message-list/index.d.ts.map +1 -1
  7. package/dist/agent/message-list/index.js +1 -1
  8. package/dist/{chunk-OWX2PUFH.cjs → chunk-2NVBZKZI.cjs} +161 -129
  9. package/dist/chunk-2NVBZKZI.cjs.map +1 -0
  10. package/dist/{chunk-OQF4H5Y2.js → chunk-2OTDXX73.js} +4 -4
  11. package/dist/{chunk-OQF4H5Y2.js.map → chunk-2OTDXX73.js.map} +1 -1
  12. package/dist/{chunk-4DWZ4Z6H.js → chunk-3RW5EMSB.js} +3 -4
  13. package/dist/chunk-3RW5EMSB.js.map +1 -0
  14. package/dist/{chunk-N4SJ4YX7.cjs → chunk-3W5RQCCY.cjs} +40 -24
  15. package/dist/chunk-3W5RQCCY.cjs.map +1 -0
  16. package/dist/{chunk-XRIVPHXV.cjs → chunk-4RXG622P.cjs} +5 -5
  17. package/dist/{chunk-XRIVPHXV.cjs.map → chunk-4RXG622P.cjs.map} +1 -1
  18. package/dist/{chunk-VZGBVYXA.cjs → chunk-5WXEYDFI.cjs} +22 -23
  19. package/dist/chunk-5WXEYDFI.cjs.map +1 -0
  20. package/dist/{chunk-EZVRSZMK.cjs → chunk-CYVNOIXS.cjs} +11 -11
  21. package/dist/{chunk-EZVRSZMK.cjs.map → chunk-CYVNOIXS.cjs.map} +1 -1
  22. package/dist/{chunk-MCUX2D5Q.js → chunk-FVNT7VTO.js} +29 -13
  23. package/dist/chunk-FVNT7VTO.js.map +1 -0
  24. package/dist/{chunk-T3WZCEC4.js → chunk-IHJDOC3A.js} +34 -587
  25. package/dist/chunk-IHJDOC3A.js.map +1 -0
  26. package/dist/{chunk-QUKUN6NR.cjs → chunk-ISMGVGUM.cjs} +105 -5
  27. package/dist/chunk-ISMGVGUM.cjs.map +1 -0
  28. package/dist/{chunk-4RSHBKDJ.cjs → chunk-IWB65P37.cjs} +5 -5
  29. package/dist/{chunk-4RSHBKDJ.cjs.map → chunk-IWB65P37.cjs.map} +1 -1
  30. package/dist/{chunk-5CWWU22H.js → chunk-IWQDBVJK.js} +3 -3
  31. package/dist/{chunk-5CWWU22H.js.map → chunk-IWQDBVJK.js.map} +1 -1
  32. package/dist/{chunk-KOSW5PP5.js → chunk-MDKPL2R2.js} +464 -124
  33. package/dist/chunk-MDKPL2R2.js.map +1 -0
  34. package/dist/{chunk-UIZSWUKP.js → chunk-NZAXAFI3.js} +104 -6
  35. package/dist/chunk-NZAXAFI3.js.map +1 -0
  36. package/dist/{chunk-GRGPQ32U.js → chunk-RXDJL5QT.js} +3 -3
  37. package/dist/{chunk-GRGPQ32U.js.map → chunk-RXDJL5QT.js.map} +1 -1
  38. package/dist/{chunk-YQ7NLZZ3.cjs → chunk-S6OEQHEI.cjs} +61 -614
  39. package/dist/chunk-S6OEQHEI.cjs.map +1 -0
  40. package/dist/{chunk-G3OOCXAI.js → chunk-U7VECK2G.js} +4 -4
  41. package/dist/{chunk-G3OOCXAI.js.map → chunk-U7VECK2G.js.map} +1 -1
  42. package/dist/{chunk-G36A2JRR.cjs → chunk-VSM3NLUX.cjs} +296 -199
  43. package/dist/chunk-VSM3NLUX.cjs.map +1 -0
  44. package/dist/{chunk-3VOUB4ZU.cjs → chunk-VZC4BWWH.cjs} +8 -8
  45. package/dist/{chunk-3VOUB4ZU.cjs.map → chunk-VZC4BWWH.cjs.map} +1 -1
  46. package/dist/{chunk-BAMR7HKO.js → chunk-W3DD3XP5.js} +296 -199
  47. package/dist/chunk-W3DD3XP5.js.map +1 -0
  48. package/dist/{chunk-JTXVR2RA.cjs → chunk-WQSGX6XA.cjs} +5 -5
  49. package/dist/{chunk-JTXVR2RA.cjs.map → chunk-WQSGX6XA.cjs.map} +1 -1
  50. package/dist/{chunk-VU6DVS7J.js → chunk-WTYNK7Q4.js} +4 -4
  51. package/dist/{chunk-VU6DVS7J.js.map → chunk-WTYNK7Q4.js.map} +1 -1
  52. package/dist/{chunk-CKGIPST2.js → chunk-XXBWX7DT.js} +138 -106
  53. package/dist/chunk-XXBWX7DT.js.map +1 -0
  54. package/dist/{chunk-ZPMFINU2.cjs → chunk-ZCVTH3CH.cjs} +464 -130
  55. package/dist/chunk-ZCVTH3CH.cjs.map +1 -0
  56. package/dist/evals/index.cjs +4 -4
  57. package/dist/evals/index.js +1 -1
  58. package/dist/evals/scoreTraces/index.cjs +3 -3
  59. package/dist/evals/scoreTraces/index.js +1 -1
  60. package/dist/index.cjs +2 -2
  61. package/dist/index.js +1 -1
  62. package/dist/llm/index.cjs +14 -14
  63. package/dist/llm/index.js +5 -5
  64. package/dist/llm/model/aisdk/v5/model.d.ts.map +1 -1
  65. package/dist/loop/index.cjs +2 -2
  66. package/dist/loop/index.js +1 -1
  67. package/dist/loop/test-utils/generateText.d.ts.map +1 -1
  68. package/dist/loop/test-utils/resultObject.d.ts.map +1 -1
  69. package/dist/loop/test-utils/toUIMessageStream.d.ts.map +1 -1
  70. package/dist/loop/test-utils/utils.d.ts.map +1 -1
  71. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
  72. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts.map +1 -1
  73. package/dist/mastra/index.cjs +2 -2
  74. package/dist/mastra/index.js +1 -1
  75. package/dist/memory/index.cjs +6 -6
  76. package/dist/memory/index.js +3 -3
  77. package/dist/models-dev-6PRLJKVZ.js +3 -0
  78. package/dist/{models-dev-GCVENVWA.js.map → models-dev-6PRLJKVZ.js.map} +1 -1
  79. package/dist/models-dev-WHMI5G6Y.cjs +12 -0
  80. package/dist/{models-dev-TIBJR6IG.cjs.map → models-dev-WHMI5G6Y.cjs.map} +1 -1
  81. package/dist/netlify-46I3SNNV.cjs +12 -0
  82. package/dist/{netlify-NTSNNT6F.cjs.map → netlify-46I3SNNV.cjs.map} +1 -1
  83. package/dist/netlify-EBQ6YUC6.js +3 -0
  84. package/dist/{netlify-O5NJW7CF.js.map → netlify-EBQ6YUC6.js.map} +1 -1
  85. package/dist/processors/index.cjs +11 -11
  86. package/dist/processors/index.js +1 -1
  87. package/dist/provider-registry-HDG6UMUC.js +3 -0
  88. package/dist/{provider-registry-74GMFZKT.js.map → provider-registry-HDG6UMUC.js.map} +1 -1
  89. package/dist/provider-registry-RP2W4B24.cjs +40 -0
  90. package/dist/{provider-registry-BZP3DIIV.cjs.map → provider-registry-RP2W4B24.cjs.map} +1 -1
  91. package/dist/relevance/index.cjs +2 -2
  92. package/dist/relevance/index.js +1 -1
  93. package/dist/server/auth.d.ts +11 -0
  94. package/dist/server/auth.d.ts.map +1 -1
  95. package/dist/server/index.cjs +10 -0
  96. package/dist/server/index.cjs.map +1 -1
  97. package/dist/server/index.js +10 -0
  98. package/dist/server/index.js.map +1 -1
  99. package/dist/storage/index.cjs +29 -29
  100. package/dist/storage/index.js +1 -1
  101. package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts.map +1 -1
  102. package/dist/stream/index.cjs +11 -11
  103. package/dist/stream/index.js +2 -2
  104. package/dist/test-utils/llm-mock.cjs +66 -29
  105. package/dist/test-utils/llm-mock.cjs.map +1 -1
  106. package/dist/test-utils/llm-mock.d.ts +4 -2
  107. package/dist/test-utils/llm-mock.d.ts.map +1 -1
  108. package/dist/test-utils/llm-mock.js +66 -29
  109. package/dist/test-utils/llm-mock.js.map +1 -1
  110. package/dist/voice/aisdk/index.d.ts +3 -0
  111. package/dist/voice/aisdk/index.d.ts.map +1 -0
  112. package/dist/voice/aisdk/speech.d.ts +23 -0
  113. package/dist/voice/aisdk/speech.d.ts.map +1 -0
  114. package/dist/voice/aisdk/transcription.d.ts +22 -0
  115. package/dist/voice/aisdk/transcription.d.ts.map +1 -0
  116. package/dist/voice/composite-voice.d.ts +4 -3
  117. package/dist/voice/composite-voice.d.ts.map +1 -1
  118. package/dist/voice/index.cjs +12 -4
  119. package/dist/voice/index.d.ts +1 -0
  120. package/dist/voice/index.d.ts.map +1 -1
  121. package/dist/voice/index.js +1 -1
  122. package/dist/workflows/evented/index.cjs +10 -10
  123. package/dist/workflows/evented/index.js +1 -1
  124. package/dist/workflows/index.cjs +19 -19
  125. package/dist/workflows/index.js +1 -1
  126. package/package.json +10 -10
  127. package/dist/chunk-4DWZ4Z6H.js.map +0 -1
  128. package/dist/chunk-BAMR7HKO.js.map +0 -1
  129. package/dist/chunk-CKGIPST2.js.map +0 -1
  130. package/dist/chunk-G36A2JRR.cjs.map +0 -1
  131. package/dist/chunk-KOSW5PP5.js.map +0 -1
  132. package/dist/chunk-MCUX2D5Q.js.map +0 -1
  133. package/dist/chunk-N4SJ4YX7.cjs.map +0 -1
  134. package/dist/chunk-OWX2PUFH.cjs.map +0 -1
  135. package/dist/chunk-QUKUN6NR.cjs.map +0 -1
  136. package/dist/chunk-T3WZCEC4.js.map +0 -1
  137. package/dist/chunk-UIZSWUKP.js.map +0 -1
  138. package/dist/chunk-VZGBVYXA.cjs.map +0 -1
  139. package/dist/chunk-YQ7NLZZ3.cjs.map +0 -1
  140. package/dist/chunk-ZPMFINU2.cjs.map +0 -1
  141. package/dist/models-dev-GCVENVWA.js +0 -3
  142. package/dist/models-dev-TIBJR6IG.cjs +0 -12
  143. package/dist/netlify-NTSNNT6F.cjs +0 -12
  144. package/dist/netlify-O5NJW7CF.js +0 -3
  145. package/dist/provider-registry-74GMFZKT.js +0 -3
  146. package/dist/provider-registry-BZP3DIIV.cjs +0 -40
@@ -3,16 +3,26 @@ import { MastraBase } from '../chunk-S6URFGCZ.js';
3
3
 
4
4
  // src/server/auth.ts
5
5
  var MastraAuthProvider = class extends MastraBase {
6
+ protected;
7
+ public;
6
8
  constructor(options) {
7
9
  super({ component: "AUTH", name: options?.name });
8
10
  if (options?.authorizeUser) {
9
11
  this.authorizeUser = options.authorizeUser.bind(this);
10
12
  }
13
+ this.protected = options?.protected;
14
+ this.public = options?.public;
11
15
  }
12
16
  registerOptions(opts) {
13
17
  if (opts?.authorizeUser) {
14
18
  this.authorizeUser = opts.authorizeUser.bind(this);
15
19
  }
20
+ if (opts?.protected) {
21
+ this.protected = opts.protected;
22
+ }
23
+ if (opts?.public) {
24
+ this.public = opts.public;
25
+ }
16
26
  }
17
27
  };
18
28
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/server/auth.ts","../../src/server/index.ts"],"names":[],"mappings":";;;;AAQO,IAAe,kBAAA,GAAf,cAA2D,UAAA,CAAW;AAAA,EAC3E,YAAY,OAAA,EAA4C;AACtD,IAAA,KAAA,CAAM,EAAE,SAAA,EAAW,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAS,MAAM,CAAA;AAEhD,IAAA,IAAI,SAAS,aAAA,EAAe;AAC1B,MAAA,IAAA,CAAK,aAAA,GAAgB,OAAA,CAAQ,aAAA,CAAc,IAAA,CAAK,IAAI,CAAA;AAAA,IACtD;AAAA,EACF;AAAA,EAkBU,gBAAgB,IAAA,EAAyC;AACjE,IAAA,IAAI,MAAM,aAAA,EAAe;AACvB,MAAA,IAAA,CAAK,aAAA,GAAgB,IAAA,CAAK,aAAA,CAAc,IAAA,CAAK,IAAI,CAAA;AAAA,IACnD;AAAA,EACF;AACF;;;ACWA,SAAS,eAAA,CACP,MACA,OAAA,EAC+C;AAC/C,EAAA,MAAM,IAAA,GAAO,OAAA;AAEb,EAAA,IAAI,IAAA,CAAK,WAAW,MAAA,EAAW;AAC7B,IAAA,MAAM,IAAI,WAAA,CAAY;AAAA,MACpB,EAAA,EAAI,yCAAA;AAAA,MACJ,IAAA,EAAM,8BAA8B,IAAI,CAAA,4BAAA,CAAA;AAAA,MACxC,MAAA,EAAA,eAAA;AAAA,MACA,QAAA,EAAA,MAAA;AAAA,KACD,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,IAAA,CAAK,OAAA,KAAY,MAAA,IAAa,IAAA,CAAK,kBAAkB,MAAA,EAAW;AAClE,IAAA,MAAM,IAAI,WAAA,CAAY;AAAA,MACpB,EAAA,EAAI,yCAAA;AAAA,MACJ,IAAA,EAAM,8BAA8B,IAAI,CAAA,0DAAA,CAAA;AAAA,MACxC,MAAA,EAAA,eAAA;AAAA,MACA,QAAA,EAAA,MAAA;AAAA,KACD,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,IAAA,CAAK,OAAA,KAAY,MAAA,IAAa,IAAA,CAAK,kBAAkB,MAAA,EAAW;AAClE,IAAA,MAAM,IAAI,WAAA,CAAY;AAAA,MACpB,EAAA,EAAI,yCAAA;AAAA,MACJ,IAAA,EAAM,8BAA8B,IAAI,CAAA,oFAAA,CAAA;AAAA,MACxC,MAAA,EAAA,eAAA;AAAA,MACA,QAAA,EAAA,MAAA;AAAA,KACD,CAAA;AAAA,EACH;AACF;AAEO,SAAS,gBAAA,CACd,MACA,OAAA,EAC2B;AAC3B,EAAA,IAAI,IAAA,CAAK,UAAA,CAAW,OAAO,CAAA,EAAG;AAC5B,IAAA,MAAM,IAAI,WAAA,CAAY;AAAA,MACpB,EAAA,EAAI,iCAAA;AAAA,MACJ,IAAA,EAAM,CAAA,sEAAA,CAAA;AAAA,MACN,MAAA,EAAA,eAAA;AAAA,MACA,QAAA,EAAA,MAAA;AAAA,KACD,CAAA;AAAA,EACH;AAEA,EAAA,eAAA,CAAgB,MAAM,OAAO,CAAA;AAE7B,EAAA,OAAO;AAAA,IACL,IAAA;AAAA,IACA,QAAQ,OAAA,CAAQ,MAAA;AAAA,IAChB,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,eAAe,OAAA,CAAQ,aAAA;AAAA,IACvB,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,YAAY,OAAA,CAAQ,UAAA;AAAA,IACpB,cAAc,OAAA,CAAQ;AAAA,GACxB;AACF;AAEO,SAAS,WAAkB,MAAA,EAA0D;AAC1F,EAAA,OAAO,MAAA;AACT","file":"index.js","sourcesContent":["import type { HonoRequest } from 'hono';\nimport { MastraBase } from '../base';\n\nexport interface MastraAuthProviderOptions<TUser = unknown> {\n name?: string;\n authorizeUser?: (user: TUser, request: HonoRequest) => Promise<boolean> | boolean;\n}\n\nexport abstract class MastraAuthProvider<TUser = unknown> extends MastraBase {\n constructor(options?: MastraAuthProviderOptions<TUser>) {\n super({ component: 'AUTH', name: options?.name });\n\n if (options?.authorizeUser) {\n this.authorizeUser = options.authorizeUser.bind(this);\n }\n }\n\n /**\n * Authenticate a token and return the payload\n * @param token - The token to authenticate\n * @param request - The request\n * @returns The payload\n */\n abstract authenticateToken(token: string, request: HonoRequest): Promise<TUser | null>;\n\n /**\n * Authorize a user for a path and method\n * @param user - The user to authorize\n * @param request - The request\n * @returns The authorization result\n */\n abstract authorizeUser(user: TUser, request: HonoRequest): Promise<boolean> | boolean;\n\n protected registerOptions(opts?: MastraAuthProviderOptions<TUser>) {\n if (opts?.authorizeUser) {\n this.authorizeUser = opts.authorizeUser.bind(this);\n }\n }\n}\n","import type { Context, Handler, MiddlewareHandler } from 'hono';\nimport type { DescribeRouteOptions } from 'hono-openapi';\nimport { MastraError, ErrorDomain, ErrorCategory } from '../error';\nimport type { Mastra } from '../mastra';\nimport type { ApiRoute, MastraAuthConfig, Methods } from './types';\n\nexport type { MastraAuthConfig, ContextWithMastra, ApiRoute } from './types';\nexport { MastraAuthProvider } from './auth';\nexport type { MastraAuthProviderOptions } from './auth';\n\n// Helper type for inferring parameters from a path\n// Thank you Claude!\ntype ParamsFromPath<P extends string> = {\n [K in P extends `${string}:${infer Param}/${string}` | `${string}:${infer Param}` ? Param : never]: string;\n};\n\ntype RegisterApiRoutePathError = `Param 'path' must not start with '/api', it is reserved for internal API routes.`;\ntype ValidatePath<P extends string, T> = P extends `/api/${string}` ? RegisterApiRoutePathError : T;\n\ntype RegisterApiRouteOptions<P extends string> = {\n method: Methods;\n openapi?: DescribeRouteOptions;\n handler?: Handler<\n {\n Variables: {\n mastra: Mastra;\n };\n },\n P,\n ParamsFromPath<P>\n >;\n createHandler?: (c: Context) => Promise<\n Handler<\n {\n Variables: {\n mastra: Mastra;\n };\n },\n P,\n ParamsFromPath<P>\n >\n >;\n middleware?: MiddlewareHandler | MiddlewareHandler[];\n /**\n * When false, skips Mastra auth for this route (defaults to true)\n */\n requiresAuth?: boolean;\n};\n\nfunction validateOptions<P extends string>(\n path: P,\n options: RegisterApiRoutePathError | RegisterApiRouteOptions<P>,\n): asserts options is RegisterApiRouteOptions<P> {\n const opts = options as RegisterApiRouteOptions<P>;\n\n if (opts.method === undefined) {\n throw new MastraError({\n id: 'MASTRA_SERVER_API_INVALID_ROUTE_OPTIONS',\n text: `Invalid options for route \"${path}\", missing \"method\" property`,\n domain: ErrorDomain.MASTRA_SERVER,\n category: ErrorCategory.USER,\n });\n }\n\n if (opts.handler === undefined && opts.createHandler === undefined) {\n throw new MastraError({\n id: 'MASTRA_SERVER_API_INVALID_ROUTE_OPTIONS',\n text: `Invalid options for route \"${path}\", you must define a \"handler\" or \"createHandler\" property`,\n domain: ErrorDomain.MASTRA_SERVER,\n category: ErrorCategory.USER,\n });\n }\n\n if (opts.handler !== undefined && opts.createHandler !== undefined) {\n throw new MastraError({\n id: 'MASTRA_SERVER_API_INVALID_ROUTE_OPTIONS',\n text: `Invalid options for route \"${path}\", you can only define one of the following properties: \"handler\" or \"createHandler\"`,\n domain: ErrorDomain.MASTRA_SERVER,\n category: ErrorCategory.USER,\n });\n }\n}\n\nexport function registerApiRoute<P extends string>(\n path: P,\n options: ValidatePath<P, RegisterApiRouteOptions<P>>,\n): ValidatePath<P, ApiRoute> {\n if (path.startsWith('/api/')) {\n throw new MastraError({\n id: 'MASTRA_SERVER_API_PATH_RESERVED',\n text: 'Path must not start with \"/api\", it\\'s reserved for internal API routes',\n domain: ErrorDomain.MASTRA_SERVER,\n category: ErrorCategory.USER,\n });\n }\n\n validateOptions(path, options);\n\n return {\n path,\n method: options.method,\n handler: options.handler,\n createHandler: options.createHandler,\n openapi: options.openapi,\n middleware: options.middleware,\n requiresAuth: options.requiresAuth,\n } as unknown as ValidatePath<P, ApiRoute>;\n}\n\nexport function defineAuth<TUser>(config: MastraAuthConfig<TUser>): MastraAuthConfig<TUser> {\n return config;\n}\n"]}
1
+ {"version":3,"sources":["../../src/server/auth.ts","../../src/server/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { HonoRequest } from 'hono';\nimport { MastraBase } from '../base';\nimport type { MastraAuthConfig } from './types';\n\nexport interface MastraAuthProviderOptions<TUser = unknown> {\n name?: string;\n authorizeUser?: (user: TUser, request: HonoRequest) => Promise<boolean> | boolean;\n /**\n * Protected paths for the auth provider\n */\n protected?: MastraAuthConfig['protected'];\n /**\n * Public paths for the auth provider\n */\n public?: MastraAuthConfig['public'];\n}\n\nexport abstract class MastraAuthProvider<TUser = unknown> extends MastraBase {\n public protected?: MastraAuthConfig['protected'];\n public public?: MastraAuthConfig['public'];\n\n constructor(options?: MastraAuthProviderOptions<TUser>) {\n super({ component: 'AUTH', name: options?.name });\n\n if (options?.authorizeUser) {\n this.authorizeUser = options.authorizeUser.bind(this);\n }\n\n this.protected = options?.protected;\n this.public = options?.public;\n }\n\n /**\n * Authenticate a token and return the payload\n * @param token - The token to authenticate\n * @param request - The request\n * @returns The payload\n */\n abstract authenticateToken(token: string, request: HonoRequest): Promise<TUser | null>;\n\n /**\n * Authorize a user for a path and method\n * @param user - The user to authorize\n * @param request - The request\n * @returns The authorization result\n */\n abstract authorizeUser(user: TUser, request: HonoRequest): Promise<boolean> | boolean;\n\n protected registerOptions(opts?: MastraAuthProviderOptions<TUser>) {\n if (opts?.authorizeUser) {\n this.authorizeUser = opts.authorizeUser.bind(this);\n }\n if (opts?.protected) {\n this.protected = opts.protected;\n }\n if (opts?.public) {\n this.public = opts.public;\n }\n }\n}\n","import type { Context, Handler, MiddlewareHandler } from 'hono';\nimport type { DescribeRouteOptions } from 'hono-openapi';\nimport { MastraError, ErrorDomain, ErrorCategory } from '../error';\nimport type { Mastra } from '../mastra';\nimport type { ApiRoute, MastraAuthConfig, Methods } from './types';\n\nexport type { MastraAuthConfig, ContextWithMastra, ApiRoute } from './types';\nexport { MastraAuthProvider } from './auth';\nexport type { MastraAuthProviderOptions } from './auth';\n\n// Helper type for inferring parameters from a path\n// Thank you Claude!\ntype ParamsFromPath<P extends string> = {\n [K in P extends `${string}:${infer Param}/${string}` | `${string}:${infer Param}` ? Param : never]: string;\n};\n\ntype RegisterApiRoutePathError = `Param 'path' must not start with '/api', it is reserved for internal API routes.`;\ntype ValidatePath<P extends string, T> = P extends `/api/${string}` ? RegisterApiRoutePathError : T;\n\ntype RegisterApiRouteOptions<P extends string> = {\n method: Methods;\n openapi?: DescribeRouteOptions;\n handler?: Handler<\n {\n Variables: {\n mastra: Mastra;\n };\n },\n P,\n ParamsFromPath<P>\n >;\n createHandler?: (c: Context) => Promise<\n Handler<\n {\n Variables: {\n mastra: Mastra;\n };\n },\n P,\n ParamsFromPath<P>\n >\n >;\n middleware?: MiddlewareHandler | MiddlewareHandler[];\n /**\n * When false, skips Mastra auth for this route (defaults to true)\n */\n requiresAuth?: boolean;\n};\n\nfunction validateOptions<P extends string>(\n path: P,\n options: RegisterApiRoutePathError | RegisterApiRouteOptions<P>,\n): asserts options is RegisterApiRouteOptions<P> {\n const opts = options as RegisterApiRouteOptions<P>;\n\n if (opts.method === undefined) {\n throw new MastraError({\n id: 'MASTRA_SERVER_API_INVALID_ROUTE_OPTIONS',\n text: `Invalid options for route \"${path}\", missing \"method\" property`,\n domain: ErrorDomain.MASTRA_SERVER,\n category: ErrorCategory.USER,\n });\n }\n\n if (opts.handler === undefined && opts.createHandler === undefined) {\n throw new MastraError({\n id: 'MASTRA_SERVER_API_INVALID_ROUTE_OPTIONS',\n text: `Invalid options for route \"${path}\", you must define a \"handler\" or \"createHandler\" property`,\n domain: ErrorDomain.MASTRA_SERVER,\n category: ErrorCategory.USER,\n });\n }\n\n if (opts.handler !== undefined && opts.createHandler !== undefined) {\n throw new MastraError({\n id: 'MASTRA_SERVER_API_INVALID_ROUTE_OPTIONS',\n text: `Invalid options for route \"${path}\", you can only define one of the following properties: \"handler\" or \"createHandler\"`,\n domain: ErrorDomain.MASTRA_SERVER,\n category: ErrorCategory.USER,\n });\n }\n}\n\nexport function registerApiRoute<P extends string>(\n path: P,\n options: ValidatePath<P, RegisterApiRouteOptions<P>>,\n): ValidatePath<P, ApiRoute> {\n if (path.startsWith('/api/')) {\n throw new MastraError({\n id: 'MASTRA_SERVER_API_PATH_RESERVED',\n text: 'Path must not start with \"/api\", it\\'s reserved for internal API routes',\n domain: ErrorDomain.MASTRA_SERVER,\n category: ErrorCategory.USER,\n });\n }\n\n validateOptions(path, options);\n\n return {\n path,\n method: options.method,\n handler: options.handler,\n createHandler: options.createHandler,\n openapi: options.openapi,\n middleware: options.middleware,\n requiresAuth: options.requiresAuth,\n } as unknown as ValidatePath<P, ApiRoute>;\n}\n\nexport function defineAuth<TUser>(config: MastraAuthConfig<TUser>): MastraAuthConfig<TUser> {\n return config;\n}\n"]}
@@ -1,120 +1,120 @@
1
1
  'use strict';
2
2
 
3
- var chunkJTXVR2RA_cjs = require('../chunk-JTXVR2RA.cjs');
3
+ var chunkWQSGX6XA_cjs = require('../chunk-WQSGX6XA.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "InMemoryMemory", {
8
8
  enumerable: true,
9
- get: function () { return chunkJTXVR2RA_cjs.InMemoryMemory; }
9
+ get: function () { return chunkWQSGX6XA_cjs.InMemoryMemory; }
10
10
  });
11
11
  Object.defineProperty(exports, "InMemoryStore", {
12
12
  enumerable: true,
13
- get: function () { return chunkJTXVR2RA_cjs.InMemoryStore; }
13
+ get: function () { return chunkWQSGX6XA_cjs.InMemoryStore; }
14
14
  });
15
15
  Object.defineProperty(exports, "MastraStorage", {
16
16
  enumerable: true,
17
- get: function () { return chunkJTXVR2RA_cjs.MastraStorage; }
17
+ get: function () { return chunkWQSGX6XA_cjs.MastraStorage; }
18
18
  });
19
19
  Object.defineProperty(exports, "MemoryStorage", {
20
20
  enumerable: true,
21
- get: function () { return chunkJTXVR2RA_cjs.MemoryStorage; }
21
+ get: function () { return chunkWQSGX6XA_cjs.MemoryStorage; }
22
22
  });
23
23
  Object.defineProperty(exports, "MockStore", {
24
24
  enumerable: true,
25
- get: function () { return chunkJTXVR2RA_cjs.MockStore; }
25
+ get: function () { return chunkWQSGX6XA_cjs.MockStore; }
26
26
  });
27
27
  Object.defineProperty(exports, "ObservabilityInMemory", {
28
28
  enumerable: true,
29
- get: function () { return chunkJTXVR2RA_cjs.ObservabilityInMemory; }
29
+ get: function () { return chunkWQSGX6XA_cjs.ObservabilityInMemory; }
30
30
  });
31
31
  Object.defineProperty(exports, "ObservabilityStorage", {
32
32
  enumerable: true,
33
- get: function () { return chunkJTXVR2RA_cjs.ObservabilityStorage; }
33
+ get: function () { return chunkWQSGX6XA_cjs.ObservabilityStorage; }
34
34
  });
35
35
  Object.defineProperty(exports, "SCORERS_SCHEMA", {
36
36
  enumerable: true,
37
- get: function () { return chunkJTXVR2RA_cjs.SCORERS_SCHEMA; }
37
+ get: function () { return chunkWQSGX6XA_cjs.SCORERS_SCHEMA; }
38
38
  });
39
39
  Object.defineProperty(exports, "SPAN_SCHEMA", {
40
40
  enumerable: true,
41
- get: function () { return chunkJTXVR2RA_cjs.SPAN_SCHEMA; }
41
+ get: function () { return chunkWQSGX6XA_cjs.SPAN_SCHEMA; }
42
42
  });
43
43
  Object.defineProperty(exports, "ScoresInMemory", {
44
44
  enumerable: true,
45
- get: function () { return chunkJTXVR2RA_cjs.ScoresInMemory; }
45
+ get: function () { return chunkWQSGX6XA_cjs.ScoresInMemory; }
46
46
  });
47
47
  Object.defineProperty(exports, "ScoresStorage", {
48
48
  enumerable: true,
49
- get: function () { return chunkJTXVR2RA_cjs.ScoresStorage; }
49
+ get: function () { return chunkWQSGX6XA_cjs.ScoresStorage; }
50
50
  });
51
51
  Object.defineProperty(exports, "StoreOperations", {
52
52
  enumerable: true,
53
- get: function () { return chunkJTXVR2RA_cjs.StoreOperations; }
53
+ get: function () { return chunkWQSGX6XA_cjs.StoreOperations; }
54
54
  });
55
55
  Object.defineProperty(exports, "StoreOperationsInMemory", {
56
56
  enumerable: true,
57
- get: function () { return chunkJTXVR2RA_cjs.StoreOperationsInMemory; }
57
+ get: function () { return chunkWQSGX6XA_cjs.StoreOperationsInMemory; }
58
58
  });
59
59
  Object.defineProperty(exports, "TABLE_MESSAGES", {
60
60
  enumerable: true,
61
- get: function () { return chunkJTXVR2RA_cjs.TABLE_MESSAGES; }
61
+ get: function () { return chunkWQSGX6XA_cjs.TABLE_MESSAGES; }
62
62
  });
63
63
  Object.defineProperty(exports, "TABLE_RESOURCES", {
64
64
  enumerable: true,
65
- get: function () { return chunkJTXVR2RA_cjs.TABLE_RESOURCES; }
65
+ get: function () { return chunkWQSGX6XA_cjs.TABLE_RESOURCES; }
66
66
  });
67
67
  Object.defineProperty(exports, "TABLE_SCHEMAS", {
68
68
  enumerable: true,
69
- get: function () { return chunkJTXVR2RA_cjs.TABLE_SCHEMAS; }
69
+ get: function () { return chunkWQSGX6XA_cjs.TABLE_SCHEMAS; }
70
70
  });
71
71
  Object.defineProperty(exports, "TABLE_SCORERS", {
72
72
  enumerable: true,
73
- get: function () { return chunkJTXVR2RA_cjs.TABLE_SCORERS; }
73
+ get: function () { return chunkWQSGX6XA_cjs.TABLE_SCORERS; }
74
74
  });
75
75
  Object.defineProperty(exports, "TABLE_SPANS", {
76
76
  enumerable: true,
77
- get: function () { return chunkJTXVR2RA_cjs.TABLE_SPANS; }
77
+ get: function () { return chunkWQSGX6XA_cjs.TABLE_SPANS; }
78
78
  });
79
79
  Object.defineProperty(exports, "TABLE_THREADS", {
80
80
  enumerable: true,
81
- get: function () { return chunkJTXVR2RA_cjs.TABLE_THREADS; }
81
+ get: function () { return chunkWQSGX6XA_cjs.TABLE_THREADS; }
82
82
  });
83
83
  Object.defineProperty(exports, "TABLE_TRACES", {
84
84
  enumerable: true,
85
- get: function () { return chunkJTXVR2RA_cjs.TABLE_TRACES; }
85
+ get: function () { return chunkWQSGX6XA_cjs.TABLE_TRACES; }
86
86
  });
87
87
  Object.defineProperty(exports, "TABLE_WORKFLOW_SNAPSHOT", {
88
88
  enumerable: true,
89
- get: function () { return chunkJTXVR2RA_cjs.TABLE_WORKFLOW_SNAPSHOT; }
89
+ get: function () { return chunkWQSGX6XA_cjs.TABLE_WORKFLOW_SNAPSHOT; }
90
90
  });
91
91
  Object.defineProperty(exports, "WorkflowsInMemory", {
92
92
  enumerable: true,
93
- get: function () { return chunkJTXVR2RA_cjs.WorkflowsInMemory; }
93
+ get: function () { return chunkWQSGX6XA_cjs.WorkflowsInMemory; }
94
94
  });
95
95
  Object.defineProperty(exports, "WorkflowsStorage", {
96
96
  enumerable: true,
97
- get: function () { return chunkJTXVR2RA_cjs.WorkflowsStorage; }
97
+ get: function () { return chunkWQSGX6XA_cjs.WorkflowsStorage; }
98
98
  });
99
99
  Object.defineProperty(exports, "calculatePagination", {
100
100
  enumerable: true,
101
- get: function () { return chunkJTXVR2RA_cjs.calculatePagination; }
101
+ get: function () { return chunkWQSGX6XA_cjs.calculatePagination; }
102
102
  });
103
103
  Object.defineProperty(exports, "ensureDate", {
104
104
  enumerable: true,
105
- get: function () { return chunkJTXVR2RA_cjs.ensureDate; }
105
+ get: function () { return chunkWQSGX6XA_cjs.ensureDate; }
106
106
  });
107
107
  Object.defineProperty(exports, "normalizePerPage", {
108
108
  enumerable: true,
109
- get: function () { return chunkJTXVR2RA_cjs.normalizePerPage; }
109
+ get: function () { return chunkWQSGX6XA_cjs.normalizePerPage; }
110
110
  });
111
111
  Object.defineProperty(exports, "safelyParseJSON", {
112
112
  enumerable: true,
113
- get: function () { return chunkJTXVR2RA_cjs.safelyParseJSON; }
113
+ get: function () { return chunkWQSGX6XA_cjs.safelyParseJSON; }
114
114
  });
115
115
  Object.defineProperty(exports, "serializeDate", {
116
116
  enumerable: true,
117
- get: function () { return chunkJTXVR2RA_cjs.serializeDate; }
117
+ get: function () { return chunkWQSGX6XA_cjs.serializeDate; }
118
118
  });
119
119
  //# sourceMappingURL=index.cjs.map
120
120
  //# sourceMappingURL=index.cjs.map
@@ -1,3 +1,3 @@
1
- export { InMemoryMemory, InMemoryStore, MastraStorage, MemoryStorage, MockStore, ObservabilityInMemory, ObservabilityStorage, SCORERS_SCHEMA, SPAN_SCHEMA, ScoresInMemory, ScoresStorage, StoreOperations, StoreOperationsInMemory, TABLE_MESSAGES, TABLE_RESOURCES, TABLE_SCHEMAS, TABLE_SCORERS, TABLE_SPANS, TABLE_THREADS, TABLE_TRACES, TABLE_WORKFLOW_SNAPSHOT, WorkflowsInMemory, WorkflowsStorage, calculatePagination, ensureDate, normalizePerPage, safelyParseJSON, serializeDate } from '../chunk-5CWWU22H.js';
1
+ export { InMemoryMemory, InMemoryStore, MastraStorage, MemoryStorage, MockStore, ObservabilityInMemory, ObservabilityStorage, SCORERS_SCHEMA, SPAN_SCHEMA, ScoresInMemory, ScoresStorage, StoreOperations, StoreOperationsInMemory, TABLE_MESSAGES, TABLE_RESOURCES, TABLE_SCHEMAS, TABLE_SCORERS, TABLE_SPANS, TABLE_THREADS, TABLE_TRACES, TABLE_WORKFLOW_SNAPSHOT, WorkflowsInMemory, WorkflowsStorage, calculatePagination, ensureDate, normalizePerPage, safelyParseJSON, serializeDate } from '../chunk-IWQDBVJK.js';
2
2
  //# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prepare-tools.d.ts","sourceRoot":"","sources":["../../../../../src/stream/aisdk/v5/compat/prepare-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,kCAAkC,EAClC,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE9C,wBAAgB,yBAAyB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAC5E,KAAK,EACL,UAAU,EACV,WAAW,GACZ,EAAE;IACD,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAC1C,WAAW,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,SAAS,CAAC;CAC7C,GAAG;IACF,KAAK,EAAE,KAAK,CAAC,2BAA2B,GAAG,kCAAkC,CAAC,GAAG,SAAS,CAAC;IAC3F,UAAU,EAAE,yBAAyB,GAAG,SAAS,CAAC;CACnD,CAuEA"}
1
+ {"version":3,"file":"prepare-tools.d.ts","sourceRoot":"","sources":["../../../../../src/stream/aisdk/v5/compat/prepare-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,kCAAkC,EAClC,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE9C,wBAAgB,yBAAyB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAC5E,KAAK,EACL,UAAU,EACV,WAAW,GACZ,EAAE;IACD,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAC1C,WAAW,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,SAAS,CAAC;CAC7C,GAAG;IACF,KAAK,EAAE,KAAK,CAAC,2BAA2B,GAAG,kCAAkC,CAAC,GAAG,SAAS,CAAC;IAC3F,UAAU,EAAE,yBAAyB,GAAG,SAAS,CAAC;CACnD,CAqFA"}
@@ -1,45 +1,45 @@
1
1
  'use strict';
2
2
 
3
- var chunkOWX2PUFH_cjs = require('../chunk-OWX2PUFH.cjs');
4
- var chunkG36A2JRR_cjs = require('../chunk-G36A2JRR.cjs');
3
+ var chunk2NVBZKZI_cjs = require('../chunk-2NVBZKZI.cjs');
4
+ var chunkVSM3NLUX_cjs = require('../chunk-VSM3NLUX.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "AISDKV5OutputStream", {
9
9
  enumerable: true,
10
- get: function () { return chunkOWX2PUFH_cjs.AISDKV5OutputStream; }
10
+ get: function () { return chunk2NVBZKZI_cjs.AISDKV5OutputStream; }
11
11
  });
12
12
  Object.defineProperty(exports, "ChunkFrom", {
13
13
  enumerable: true,
14
- get: function () { return chunkOWX2PUFH_cjs.ChunkFrom; }
14
+ get: function () { return chunk2NVBZKZI_cjs.ChunkFrom; }
15
15
  });
16
16
  Object.defineProperty(exports, "MastraAgentNetworkStream", {
17
17
  enumerable: true,
18
- get: function () { return chunkOWX2PUFH_cjs.MastraAgentNetworkStream; }
18
+ get: function () { return chunk2NVBZKZI_cjs.MastraAgentNetworkStream; }
19
19
  });
20
20
  Object.defineProperty(exports, "MastraModelOutput", {
21
21
  enumerable: true,
22
- get: function () { return chunkOWX2PUFH_cjs.MastraModelOutput; }
22
+ get: function () { return chunk2NVBZKZI_cjs.MastraModelOutput; }
23
23
  });
24
24
  Object.defineProperty(exports, "WorkflowRunOutput", {
25
25
  enumerable: true,
26
- get: function () { return chunkOWX2PUFH_cjs.WorkflowRunOutput; }
26
+ get: function () { return chunk2NVBZKZI_cjs.WorkflowRunOutput; }
27
27
  });
28
28
  Object.defineProperty(exports, "convertFullStreamChunkToUIMessageStream", {
29
29
  enumerable: true,
30
- get: function () { return chunkOWX2PUFH_cjs.convertFullStreamChunkToUIMessageStream; }
30
+ get: function () { return chunk2NVBZKZI_cjs.convertFullStreamChunkToUIMessageStream; }
31
31
  });
32
32
  Object.defineProperty(exports, "convertMastraChunkToAISDKv5", {
33
33
  enumerable: true,
34
- get: function () { return chunkOWX2PUFH_cjs.convertMastraChunkToAISDKv5; }
34
+ get: function () { return chunk2NVBZKZI_cjs.convertMastraChunkToAISDKv5; }
35
35
  });
36
36
  Object.defineProperty(exports, "DefaultGeneratedFile", {
37
37
  enumerable: true,
38
- get: function () { return chunkG36A2JRR_cjs.DefaultGeneratedFile; }
38
+ get: function () { return chunkVSM3NLUX_cjs.DefaultGeneratedFile; }
39
39
  });
40
40
  Object.defineProperty(exports, "DefaultGeneratedFileWithType", {
41
41
  enumerable: true,
42
- get: function () { return chunkG36A2JRR_cjs.DefaultGeneratedFileWithType; }
42
+ get: function () { return chunkVSM3NLUX_cjs.DefaultGeneratedFileWithType; }
43
43
  });
44
44
  //# sourceMappingURL=index.cjs.map
45
45
  //# sourceMappingURL=index.cjs.map
@@ -1,4 +1,4 @@
1
- export { AISDKV5OutputStream, ChunkFrom, MastraAgentNetworkStream, MastraModelOutput, WorkflowRunOutput, convertFullStreamChunkToUIMessageStream, convertMastraChunkToAISDKv5 } from '../chunk-CKGIPST2.js';
2
- export { DefaultGeneratedFile, DefaultGeneratedFileWithType } from '../chunk-BAMR7HKO.js';
1
+ export { AISDKV5OutputStream, ChunkFrom, MastraAgentNetworkStream, MastraModelOutput, WorkflowRunOutput, convertFullStreamChunkToUIMessageStream, convertMastraChunkToAISDKv5 } from '../chunk-XXBWX7DT.js';
2
+ export { DefaultGeneratedFile, DefaultGeneratedFileWithType } from '../chunk-W3DD3XP5.js';
3
3
  //# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
@@ -2,57 +2,94 @@
2
2
 
3
3
  var chunkO6NA3Z43_cjs = require('../chunk-O6NA3Z43.cjs');
4
4
  var chunkSVLMF4UZ_cjs = require('../chunk-SVLMF4UZ.cjs');
5
+ var test = require('ai-v5/test');
5
6
 
6
- // src/test-utils/llm-mock.ts
7
7
  function createMockModel({
8
8
  objectGenerationMode,
9
9
  mockText,
10
10
  spyGenerate,
11
- spyStream
11
+ spyStream,
12
+ version = "v2"
12
13
  }) {
13
- const mockModel = new chunkSVLMF4UZ_cjs.MockLanguageModelV1({
14
- defaultObjectGenerationMode: objectGenerationMode,
15
- doGenerate: async (props) => {
16
- if (spyGenerate) {
17
- spyGenerate(props);
18
- }
19
- if (objectGenerationMode === "json") {
14
+ const text = typeof mockText === "string" ? mockText : JSON.stringify(mockText);
15
+ const finalText = objectGenerationMode === "json" ? JSON.stringify(mockText) : text;
16
+ if (version === "v1") {
17
+ const mockModel2 = new chunkSVLMF4UZ_cjs.MockLanguageModelV1({
18
+ defaultObjectGenerationMode: objectGenerationMode,
19
+ doGenerate: async (props) => {
20
+ if (spyGenerate) {
21
+ spyGenerate(props);
22
+ }
20
23
  return {
21
24
  rawCall: { rawPrompt: null, rawSettings: {} },
22
25
  finishReason: "stop",
23
26
  usage: { promptTokens: 10, completionTokens: 20 },
24
- text: JSON.stringify(mockText)
27
+ text: finalText
28
+ };
29
+ },
30
+ doStream: async (props) => {
31
+ if (spyStream) {
32
+ spyStream(props);
33
+ }
34
+ const chunks = finalText.split(" ").map((word) => ({
35
+ type: "text-delta",
36
+ textDelta: word + " "
37
+ }));
38
+ return {
39
+ stream: chunkSVLMF4UZ_cjs.simulateReadableStream({
40
+ chunks: [
41
+ ...chunks,
42
+ {
43
+ type: "finish",
44
+ finishReason: "stop",
45
+ logprobs: void 0,
46
+ usage: { completionTokens: 10, promptTokens: 3 }
47
+ }
48
+ ]
49
+ }),
50
+ rawCall: { rawPrompt: null, rawSettings: {} }
25
51
  };
26
52
  }
53
+ });
54
+ return mockModel2;
55
+ }
56
+ const mockModel = new test.MockLanguageModelV2({
57
+ doGenerate: async (props) => {
58
+ if (spyGenerate) {
59
+ spyGenerate(props);
60
+ }
27
61
  return {
28
62
  rawCall: { rawPrompt: null, rawSettings: {} },
29
63
  finishReason: "stop",
30
- usage: { promptTokens: 10, completionTokens: 20 },
31
- text: typeof mockText === "string" ? mockText : JSON.stringify(mockText)
64
+ usage: { inputTokens: 10, outputTokens: 20, totalTokens: 30 },
65
+ content: [
66
+ {
67
+ type: "text",
68
+ text: finalText
69
+ }
70
+ ],
71
+ warnings: []
32
72
  };
33
73
  },
34
74
  doStream: async (props) => {
35
75
  if (spyStream) {
36
76
  spyStream(props);
37
77
  }
38
- const text = typeof mockText === "string" ? mockText : JSON.stringify(mockText);
39
- const chunks = text.split(" ").map((word) => ({
40
- type: "text-delta",
41
- textDelta: word + " "
42
- }));
43
78
  return {
44
- stream: chunkSVLMF4UZ_cjs.simulateReadableStream({
45
- chunks: [
46
- ...chunks,
47
- {
48
- type: "finish",
49
- finishReason: "stop",
50
- logprobs: void 0,
51
- usage: { completionTokens: 10, promptTokens: 3 }
52
- }
53
- ]
54
- }),
55
- rawCall: { rawPrompt: null, rawSettings: {} }
79
+ rawCall: { rawPrompt: null, rawSettings: {} },
80
+ warnings: [],
81
+ stream: test.convertArrayToReadableStream([
82
+ { type: "stream-start", warnings: [] },
83
+ { type: "response-metadata", id: "id-0", modelId: "mock-model-id", timestamp: /* @__PURE__ */ new Date(0) },
84
+ { type: "text-start", id: "1" },
85
+ { type: "text-delta", id: "1", delta: finalText },
86
+ { type: "text-end", id: "1" },
87
+ {
88
+ type: "finish",
89
+ finishReason: "stop",
90
+ usage: { inputTokens: 10, outputTokens: 20, totalTokens: 30 }
91
+ }
92
+ ])
56
93
  };
57
94
  }
58
95
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/test-utils/llm-mock.ts"],"names":["MockLanguageModelV1","simulateReadableStream","MastraLLMV1"],"mappings":"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","file":"llm-mock.cjs","sourcesContent":["import { simulateReadableStream } from '@internal/ai-sdk-v4';\nimport { MockLanguageModelV1 } from '@internal/ai-sdk-v4';\n\nimport { MastraLLMV1 } from '../llm/model/model';\n\nexport function createMockModel({\n objectGenerationMode,\n mockText,\n spyGenerate,\n spyStream,\n}: {\n objectGenerationMode?: 'json';\n mockText: string | Record<string, any>;\n spyGenerate?: (props: any) => void;\n spyStream?: (props: any) => void;\n}) {\n const mockModel = new MockLanguageModelV1({\n defaultObjectGenerationMode: objectGenerationMode,\n doGenerate: async props => {\n if (spyGenerate) {\n spyGenerate(props);\n }\n\n if (objectGenerationMode === 'json') {\n return {\n rawCall: { rawPrompt: null, rawSettings: {} },\n finishReason: 'stop',\n usage: { promptTokens: 10, completionTokens: 20 },\n text: JSON.stringify(mockText),\n };\n }\n\n return {\n rawCall: { rawPrompt: null, rawSettings: {} },\n finishReason: 'stop',\n usage: { promptTokens: 10, completionTokens: 20 },\n text: typeof mockText === 'string' ? mockText : JSON.stringify(mockText),\n };\n },\n doStream: async props => {\n if (spyStream) {\n spyStream(props);\n }\n\n const text = typeof mockText === 'string' ? mockText : JSON.stringify(mockText);\n // Split the mock text into chunks for streaming\n const chunks = text.split(' ').map(word => ({\n type: 'text-delta' as const,\n textDelta: word + ' ',\n }));\n\n return {\n stream: simulateReadableStream({\n chunks: [\n ...chunks,\n {\n type: 'finish',\n finishReason: 'stop',\n logprobs: undefined,\n usage: { completionTokens: 10, promptTokens: 3 },\n },\n ],\n }),\n rawCall: { rawPrompt: null, rawSettings: {} },\n };\n },\n });\n\n return mockModel;\n}\n\nexport class MockProvider extends MastraLLMV1 {\n constructor({\n spyGenerate,\n spyStream,\n objectGenerationMode,\n mockText = 'Hello, world!',\n }: {\n spyGenerate?: (props: any) => void;\n spyStream?: (props: any) => void;\n objectGenerationMode?: 'json';\n mockText?: string | Record<string, any>;\n }) {\n const mockModel = new MockLanguageModelV1({\n defaultObjectGenerationMode: objectGenerationMode,\n doGenerate: async props => {\n if (spyGenerate) {\n spyGenerate(props);\n }\n\n if (objectGenerationMode === 'json') {\n return {\n rawCall: { rawPrompt: null, rawSettings: {} },\n finishReason: 'stop',\n usage: { promptTokens: 10, completionTokens: 20 },\n text: JSON.stringify(mockText),\n };\n }\n\n return {\n rawCall: { rawPrompt: null, rawSettings: {} },\n finishReason: 'stop',\n usage: { promptTokens: 10, completionTokens: 20 },\n text: typeof mockText === 'string' ? mockText : JSON.stringify(mockText),\n };\n },\n doStream: async props => {\n if (spyStream) {\n spyStream(props);\n }\n\n const text = typeof mockText === 'string' ? mockText : JSON.stringify(mockText);\n // Split the mock text into chunks for streaming\n const chunks = text.split(' ').map(word => ({\n type: 'text-delta' as const,\n textDelta: word + ' ',\n }));\n\n return {\n stream: simulateReadableStream({\n chunks: [\n ...chunks,\n {\n type: 'finish',\n finishReason: 'stop',\n logprobs: undefined,\n usage: { completionTokens: 10, promptTokens: 3 },\n },\n ],\n }),\n rawCall: { rawPrompt: null, rawSettings: {} },\n };\n },\n });\n\n super({ model: mockModel });\n }\n\n // @ts-ignore\n stream(...args: any): PromiseLike<StreamReturn<any, any, any>> {\n // @ts-ignore\n const result = super.stream(...args);\n\n return {\n ...result,\n // @ts-ignore on await read the stream\n then: (onfulfilled, onrejected) => {\n // @ts-ignore\n return result.baseStream.pipeTo(new WritableStream()).then(onfulfilled, onrejected);\n },\n };\n }\n\n // @ts-ignore\n __streamObject(...args): PromiseLike<StreamObjectResult<any>> {\n // @ts-ignore\n const result = super.__streamObject(...args);\n\n return {\n ...result,\n // @ts-ignore on await read the stream\n then: (onfulfilled, onrejected) => {\n // @ts-ignore\n return result.baseStream.pipeTo(new WritableStream()).then(onfulfilled, onrejected);\n },\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/test-utils/llm-mock.ts"],"names":["mockModel","MockLanguageModelV1","simulateReadableStream","MockLanguageModelV2","convertArrayToReadableStream","MastraLLMV1"],"mappings":"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","file":"llm-mock.cjs","sourcesContent":["import { simulateReadableStream } from '@internal/ai-sdk-v4';\nimport { MockLanguageModelV1 } from '@internal/ai-sdk-v4';\nimport { convertArrayToReadableStream, MockLanguageModelV2 } from 'ai-v5/test';\n\nimport { MastraLLMV1 } from '../llm/model/model';\n\nexport function createMockModel({\n objectGenerationMode,\n mockText,\n spyGenerate,\n spyStream,\n version = 'v2',\n}: {\n objectGenerationMode?: 'json';\n mockText: string | Record<string, any>;\n spyGenerate?: (props: any) => void;\n spyStream?: (props: any) => void;\n version?: 'v1' | 'v2';\n}) {\n const text = typeof mockText === 'string' ? mockText : JSON.stringify(mockText);\n const finalText = objectGenerationMode === 'json' ? JSON.stringify(mockText) : text;\n\n if (version === 'v1') {\n // Return a v1 model\n const mockModel = new MockLanguageModelV1({\n defaultObjectGenerationMode: objectGenerationMode,\n doGenerate: async props => {\n if (spyGenerate) {\n spyGenerate(props);\n }\n\n return {\n rawCall: { rawPrompt: null, rawSettings: {} },\n finishReason: 'stop',\n usage: { promptTokens: 10, completionTokens: 20 },\n text: finalText,\n };\n },\n doStream: async props => {\n if (spyStream) {\n spyStream(props);\n }\n\n // Split the mock text into chunks for streaming\n const chunks = finalText.split(' ').map(word => ({\n type: 'text-delta' as const,\n textDelta: word + ' ',\n }));\n\n return {\n stream: simulateReadableStream({\n chunks: [\n ...chunks,\n {\n type: 'finish',\n finishReason: 'stop',\n logprobs: undefined,\n usage: { completionTokens: 10, promptTokens: 3 },\n },\n ],\n }),\n rawCall: { rawPrompt: null, rawSettings: {} },\n };\n },\n });\n\n return mockModel;\n }\n\n // Return a v2 model (default)\n const mockModel = new MockLanguageModelV2({\n doGenerate: async props => {\n if (spyGenerate) {\n spyGenerate(props);\n }\n\n return {\n rawCall: { rawPrompt: null, rawSettings: {} },\n finishReason: 'stop',\n usage: { inputTokens: 10, outputTokens: 20, totalTokens: 30 },\n content: [\n {\n type: 'text',\n text: finalText,\n },\n ],\n warnings: [],\n };\n },\n doStream: async props => {\n if (spyStream) {\n spyStream(props);\n }\n\n return {\n rawCall: { rawPrompt: null, rawSettings: {} },\n warnings: [],\n stream: convertArrayToReadableStream([\n { type: 'stream-start', warnings: [] },\n { type: 'response-metadata', id: 'id-0', modelId: 'mock-model-id', timestamp: new Date(0) },\n { type: 'text-start', id: '1' },\n { type: 'text-delta', id: '1', delta: finalText },\n { type: 'text-end', id: '1' },\n {\n type: 'finish',\n finishReason: 'stop',\n usage: { inputTokens: 10, outputTokens: 20, totalTokens: 30 },\n },\n ]),\n };\n },\n });\n\n return mockModel;\n}\n\nexport class MockProvider extends MastraLLMV1 {\n constructor({\n spyGenerate,\n spyStream,\n objectGenerationMode,\n mockText = 'Hello, world!',\n }: {\n spyGenerate?: (props: any) => void;\n spyStream?: (props: any) => void;\n objectGenerationMode?: 'json';\n mockText?: string | Record<string, any>;\n }) {\n const mockModel = new MockLanguageModelV1({\n defaultObjectGenerationMode: objectGenerationMode,\n doGenerate: async props => {\n if (spyGenerate) {\n spyGenerate(props);\n }\n\n if (objectGenerationMode === 'json') {\n return {\n rawCall: { rawPrompt: null, rawSettings: {} },\n finishReason: 'stop',\n usage: { promptTokens: 10, completionTokens: 20 },\n text: JSON.stringify(mockText),\n };\n }\n\n return {\n rawCall: { rawPrompt: null, rawSettings: {} },\n finishReason: 'stop',\n usage: { promptTokens: 10, completionTokens: 20 },\n text: typeof mockText === 'string' ? mockText : JSON.stringify(mockText),\n };\n },\n doStream: async props => {\n if (spyStream) {\n spyStream(props);\n }\n\n const text = typeof mockText === 'string' ? mockText : JSON.stringify(mockText);\n // Split the mock text into chunks for streaming\n const chunks = text.split(' ').map(word => ({\n type: 'text-delta' as const,\n textDelta: word + ' ',\n }));\n\n return {\n stream: simulateReadableStream({\n chunks: [\n ...chunks,\n {\n type: 'finish',\n finishReason: 'stop',\n logprobs: undefined,\n usage: { completionTokens: 10, promptTokens: 3 },\n },\n ],\n }),\n rawCall: { rawPrompt: null, rawSettings: {} },\n };\n },\n });\n\n super({ model: mockModel });\n }\n\n // @ts-ignore\n stream(...args: any): PromiseLike<StreamReturn<any, any, any>> {\n // @ts-ignore\n const result = super.stream(...args);\n\n return {\n ...result,\n // @ts-ignore on await read the stream\n then: (onfulfilled, onrejected) => {\n // @ts-ignore\n return result.baseStream.pipeTo(new WritableStream()).then(onfulfilled, onrejected);\n },\n };\n }\n\n // @ts-ignore\n __streamObject(...args): PromiseLike<StreamObjectResult<any>> {\n // @ts-ignore\n const result = super.__streamObject(...args);\n\n return {\n ...result,\n // @ts-ignore on await read the stream\n then: (onfulfilled, onrejected) => {\n // @ts-ignore\n return result.baseStream.pipeTo(new WritableStream()).then(onfulfilled, onrejected);\n },\n };\n }\n}\n"]}
@@ -1,11 +1,13 @@
1
1
  import { MockLanguageModelV1 } from '../ai-sdk.types.d.ts';
2
+ import { MockLanguageModelV2 } from 'ai-v5/test';
2
3
  import { MastraLLMV1 } from '../llm/model/model.js';
3
- export declare function createMockModel({ objectGenerationMode, mockText, spyGenerate, spyStream, }: {
4
+ export declare function createMockModel({ objectGenerationMode, mockText, spyGenerate, spyStream, version, }: {
4
5
  objectGenerationMode?: 'json';
5
6
  mockText: string | Record<string, any>;
6
7
  spyGenerate?: (props: any) => void;
7
8
  spyStream?: (props: any) => void;
8
- }): MockLanguageModelV1;
9
+ version?: 'v1' | 'v2';
10
+ }): MockLanguageModelV1 | MockLanguageModelV2;
9
11
  export declare class MockProvider extends MastraLLMV1 {
10
12
  constructor({ spyGenerate, spyStream, objectGenerationMode, mockText, }: {
11
13
  spyGenerate?: (props: any) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"llm-mock.d.ts","sourceRoot":"","sources":["../../src/test-utils/llm-mock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,wBAAgB,eAAe,CAAC,EAC9B,oBAAoB,EACpB,QAAQ,EACR,WAAW,EACX,SAAS,GACV,EAAE;IACD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAClC,uBAsDA;AAED,qBAAa,YAAa,SAAQ,WAAW;gBAC/B,EACV,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,QAA0B,GAC3B,EAAE;QACD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;QACnC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;QACjC,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACzC;IAyDD,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAe9D,cAAc,CAAC,GAAG,IAAI,OAAA,GAAG,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;CAa9D"}
1
+ {"version":3,"file":"llm-mock.d.ts","sourceRoot":"","sources":["../../src/test-utils/llm-mock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAgC,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE/E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,wBAAgB,eAAe,CAAC,EAC9B,oBAAoB,EACpB,QAAQ,EACR,WAAW,EACX,SAAS,EACT,OAAc,GACf,EAAE;IACD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACvB,6CAgGA;AAED,qBAAa,YAAa,SAAQ,WAAW;gBAC/B,EACV,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,QAA0B,GAC3B,EAAE;QACD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;QACnC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;QACjC,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACzC;IAyDD,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAe9D,cAAc,CAAC,GAAG,IAAI,OAAA,GAAG,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;CAa9D"}
@@ -1,56 +1,93 @@
1
1
  import { MastraLLMV1 } from '../chunk-JXESKY4A.js';
2
2
  import { MockLanguageModelV1, simulateReadableStream } from '../chunk-QM5SRDJX.js';
3
+ import { MockLanguageModelV2, convertArrayToReadableStream } from 'ai-v5/test';
3
4
 
4
- // src/test-utils/llm-mock.ts
5
5
  function createMockModel({
6
6
  objectGenerationMode,
7
7
  mockText,
8
8
  spyGenerate,
9
- spyStream
9
+ spyStream,
10
+ version = "v2"
10
11
  }) {
11
- const mockModel = new MockLanguageModelV1({
12
- defaultObjectGenerationMode: objectGenerationMode,
13
- doGenerate: async (props) => {
14
- if (spyGenerate) {
15
- spyGenerate(props);
16
- }
17
- if (objectGenerationMode === "json") {
12
+ const text = typeof mockText === "string" ? mockText : JSON.stringify(mockText);
13
+ const finalText = objectGenerationMode === "json" ? JSON.stringify(mockText) : text;
14
+ if (version === "v1") {
15
+ const mockModel2 = new MockLanguageModelV1({
16
+ defaultObjectGenerationMode: objectGenerationMode,
17
+ doGenerate: async (props) => {
18
+ if (spyGenerate) {
19
+ spyGenerate(props);
20
+ }
18
21
  return {
19
22
  rawCall: { rawPrompt: null, rawSettings: {} },
20
23
  finishReason: "stop",
21
24
  usage: { promptTokens: 10, completionTokens: 20 },
22
- text: JSON.stringify(mockText)
25
+ text: finalText
26
+ };
27
+ },
28
+ doStream: async (props) => {
29
+ if (spyStream) {
30
+ spyStream(props);
31
+ }
32
+ const chunks = finalText.split(" ").map((word) => ({
33
+ type: "text-delta",
34
+ textDelta: word + " "
35
+ }));
36
+ return {
37
+ stream: simulateReadableStream({
38
+ chunks: [
39
+ ...chunks,
40
+ {
41
+ type: "finish",
42
+ finishReason: "stop",
43
+ logprobs: void 0,
44
+ usage: { completionTokens: 10, promptTokens: 3 }
45
+ }
46
+ ]
47
+ }),
48
+ rawCall: { rawPrompt: null, rawSettings: {} }
23
49
  };
24
50
  }
51
+ });
52
+ return mockModel2;
53
+ }
54
+ const mockModel = new MockLanguageModelV2({
55
+ doGenerate: async (props) => {
56
+ if (spyGenerate) {
57
+ spyGenerate(props);
58
+ }
25
59
  return {
26
60
  rawCall: { rawPrompt: null, rawSettings: {} },
27
61
  finishReason: "stop",
28
- usage: { promptTokens: 10, completionTokens: 20 },
29
- text: typeof mockText === "string" ? mockText : JSON.stringify(mockText)
62
+ usage: { inputTokens: 10, outputTokens: 20, totalTokens: 30 },
63
+ content: [
64
+ {
65
+ type: "text",
66
+ text: finalText
67
+ }
68
+ ],
69
+ warnings: []
30
70
  };
31
71
  },
32
72
  doStream: async (props) => {
33
73
  if (spyStream) {
34
74
  spyStream(props);
35
75
  }
36
- const text = typeof mockText === "string" ? mockText : JSON.stringify(mockText);
37
- const chunks = text.split(" ").map((word) => ({
38
- type: "text-delta",
39
- textDelta: word + " "
40
- }));
41
76
  return {
42
- stream: simulateReadableStream({
43
- chunks: [
44
- ...chunks,
45
- {
46
- type: "finish",
47
- finishReason: "stop",
48
- logprobs: void 0,
49
- usage: { completionTokens: 10, promptTokens: 3 }
50
- }
51
- ]
52
- }),
53
- rawCall: { rawPrompt: null, rawSettings: {} }
77
+ rawCall: { rawPrompt: null, rawSettings: {} },
78
+ warnings: [],
79
+ stream: convertArrayToReadableStream([
80
+ { type: "stream-start", warnings: [] },
81
+ { type: "response-metadata", id: "id-0", modelId: "mock-model-id", timestamp: /* @__PURE__ */ new Date(0) },
82
+ { type: "text-start", id: "1" },
83
+ { type: "text-delta", id: "1", delta: finalText },
84
+ { type: "text-end", id: "1" },
85
+ {
86
+ type: "finish",
87
+ finishReason: "stop",
88
+ usage: { inputTokens: 10, outputTokens: 20, totalTokens: 30 }
89
+ }
90
+ ])
54
91
  };
55
92
  }
56
93
  });