@mastra/koa 1.5.2-alpha.1 → 1.5.2-alpha.13

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 CHANGED
@@ -1,5 +1,125 @@
1
1
  # @mastra/koa
2
2
 
3
+ ## 1.5.2-alpha.13
4
+
5
+ ### Patch Changes
6
+
7
+ - Fixed `TypeError: Cannot read properties of undefined (reading 'length')` thrown during `MastraServer.init()` when a subclass forwards a non-Koa app-like object (for example a `koa-router` instance, a mounted sub-app, or a custom wrapper) to `super.registerRoute(app, route, opts)`. The dispatcher-reuse optimization introduced in 1.5.0 now requires the target to expose an `app.middleware` array; otherwise it falls back to registering a fresh dispatcher per route via `app.use`, matching the pre-1.5.0 per-route behavior. ([#16484](https://github.com/mastra-ai/mastra/pull/16484))
8
+
9
+ **Example (subclass that previously crashed):**
10
+
11
+ ```ts
12
+ import { MastraServer } from '@mastra/koa';
13
+ import Router from 'koa-router';
14
+
15
+ class CustomKoaMastraServer extends MastraServer {
16
+ private router = new Router();
17
+
18
+ async registerCustomApiRoutes() {
19
+ const routes = this.mastra.getServer()?.apiRoutes ?? [];
20
+ for (const route of routes) {
21
+ // The router has no `middleware` array — this used to throw at init.
22
+ await super.registerRoute(this.router as any, route, { prefix: this.prefix });
23
+ }
24
+ this.app.use(this.router.routes());
25
+ }
26
+ }
27
+ ```
28
+
29
+ - Updated dependencies [[`f984b4d`](https://github.com/mastra-ai/mastra/commit/f984b4d6c60bf2ae2a9b156f0e8c35a66fe96c91), [`ce01024`](https://github.com/mastra-ai/mastra/commit/ce010242eee9bdfc09e4c26725b9d37998679a8d), [`f984b4d`](https://github.com/mastra-ai/mastra/commit/f984b4d6c60bf2ae2a9b156f0e8c35a66fe96c91), [`8373ff4`](https://github.com/mastra-ai/mastra/commit/8373ff46745d77af79f183c4470f80fa2727a6b2), [`11c1528`](https://github.com/mastra-ai/mastra/commit/11c152848c5d0ef227184853b5040f5b41ee7b1e)]:
30
+ - @mastra/core@1.33.0-alpha.13
31
+ - @mastra/server@1.33.0-alpha.13
32
+
33
+ ## 1.5.2-alpha.12
34
+
35
+ ### Patch Changes
36
+
37
+ - Updated dependencies [[`b59316f`](https://github.com/mastra-ai/mastra/commit/b59316ffa0f7688165b0f9c81ccdf85da461e5b2), [`55f1e2d`](https://github.com/mastra-ai/mastra/commit/55f1e2d65425b95a49ae788053b266f256e38c96), [`d48a705`](https://github.com/mastra-ai/mastra/commit/d48a705ff3dfbdc7a996e07ecd8293b5effd9a2a)]:
38
+ - @mastra/core@1.33.0-alpha.12
39
+ - @mastra/server@1.33.0-alpha.12
40
+
41
+ ## 1.5.2-alpha.11
42
+
43
+ ### Patch Changes
44
+
45
+ - Updated dependencies [[`37c0dc5`](https://github.com/mastra-ai/mastra/commit/37c0dc5697d343db98628bf867bf71ce6deec6d7), [`ef6b584`](https://github.com/mastra-ai/mastra/commit/ef6b5847ac33c0a7e80af3a86e8801e2933dd3ee), [`4dd900d`](https://github.com/mastra-ai/mastra/commit/4dd900d75dfe9be89f8c15188b368a8622aa1e18), [`4ff5bdf`](https://github.com/mastra-ai/mastra/commit/4ff5bdfe170cba6dfb5260c6af0f4ba668430772), [`bbcd93c`](https://github.com/mastra-ai/mastra/commit/bbcd93cf7d8aa1007d6d84bfd033b8015c912087), [`308bd07`](https://github.com/mastra-ai/mastra/commit/308bd074f35cef0c75d82fc1eb19382fe04ecf6f)]:
46
+ - @mastra/core@1.33.0-alpha.11
47
+ - @mastra/server@1.33.0-alpha.11
48
+
49
+ ## 1.5.2-alpha.10
50
+
51
+ ### Patch Changes
52
+
53
+ - Updated dependencies [[`7ad5585`](https://github.com/mastra-ai/mastra/commit/7ad55856406f1de398dc713f6a9eaa78b2784bb6), [`210ea7a`](https://github.com/mastra-ai/mastra/commit/210ea7af559791b73a44fc9c12179908aaa3183f), [`83218c8`](https://github.com/mastra-ai/mastra/commit/83218c88b37773c9424fbe733b37be556e55e94d), [`265ec9f`](https://github.com/mastra-ai/mastra/commit/265ec9f887b5c81255c873a76ff7796f16e4f99b), [`6ce80bf`](https://github.com/mastra-ai/mastra/commit/6ce80bf4872a891e0bddf8b80561a80584efb14b), [`9268531`](https://github.com/mastra-ai/mastra/commit/9268531e7ec4be98beeba3b3ae8be0a7ea380662), [`13ead79`](https://github.com/mastra-ai/mastra/commit/13ead79149486b88144db7e11e6ff551caef5be1), [`bd36d8e`](https://github.com/mastra-ai/mastra/commit/bd36d8eb6de8c9a0310352649dbd4b06703c2299), [`8ac9141`](https://github.com/mastra-ai/mastra/commit/8ac9141439caa8fdd674944c4d84f29b3c730296)]:
54
+ - @mastra/core@1.33.0-alpha.10
55
+ - @mastra/server@1.33.0-alpha.10
56
+
57
+ ## 1.5.2-alpha.9
58
+
59
+ ### Patch Changes
60
+
61
+ - Updated dependencies [[`5688881`](https://github.com/mastra-ai/mastra/commit/5688881669c7ed157f31ac77f6fc5f8d95ceea32)]:
62
+ - @mastra/core@1.33.0-alpha.9
63
+ - @mastra/server@1.33.0-alpha.9
64
+
65
+ ## 1.5.2-alpha.8
66
+
67
+ ### Patch Changes
68
+
69
+ - Updated dependencies [[`7c275a8`](https://github.com/mastra-ai/mastra/commit/7c275a810595e1a6c41ccc39720531ab65734700), [`890b24c`](https://github.com/mastra-ai/mastra/commit/890b24cc7d32ed6aa4dfe253e54dc6bf4099f690), [`0f48ebf`](https://github.com/mastra-ai/mastra/commit/0f48ebfc7ac7897b2092a189f45751924cf56d1c), [`f180e49`](https://github.com/mastra-ai/mastra/commit/f180e4990e71b04c9a475b523584071712f0048f), [`9260e01`](https://github.com/mastra-ai/mastra/commit/9260e015276fb1b500f7878ee452b47476bf1583), [`2f6c54e`](https://github.com/mastra-ai/mastra/commit/2f6c54e17c041cac1def54baaa6b771647836414), [`e06a159`](https://github.com/mastra-ai/mastra/commit/e06a1598ca07a6c3778aefc2a2d288363c6294ff), [`db34bc6`](https://github.com/mastra-ai/mastra/commit/db34bc6fb36cf125bda0c46be4d3fdc774b70cc4)]:
70
+ - @mastra/core@1.33.0-alpha.8
71
+ - @mastra/server@1.33.0-alpha.8
72
+
73
+ ## 1.5.2-alpha.7
74
+
75
+ ### Patch Changes
76
+
77
+ - Improved Studio agent serialization by making Studio mode and auth-related request context server-controlled across adapters. Playground requests now identify Studio traffic consistently, body and query request context cannot set reserved server values, and Studio placeholder fallback is limited to instruction rendering while serialized models, workspace, skills, tools, and default options use the real request context. ([#16152](https://github.com/mastra-ai/mastra/pull/16152))
78
+
79
+ - Updated dependencies [[`6742347`](https://github.com/mastra-ai/mastra/commit/6742347d71955d7639adc9ddf6ff8282de7ee3ba), [`7d57eeb`](https://github.com/mastra-ai/mastra/commit/7d57eeb8ad67c2e93c39d8fddb697aa11d677dbb), [`7b0ad1f`](https://github.com/mastra-ai/mastra/commit/7b0ad1f5c53dc118c6da12ae82ae2587037dc2b8), [`62666c3`](https://github.com/mastra-ai/mastra/commit/62666c367eaeac3941ead454b1d38810cc855721), [`4af2160`](https://github.com/mastra-ai/mastra/commit/4af2160322f4718cac421930cce85641e9512389), [`136c959`](https://github.com/mastra-ai/mastra/commit/136c9592fb0eeb0cd212f28629d8a29b7557a2fc), [`4df7cc7`](https://github.com/mastra-ai/mastra/commit/4df7cc79342fd065fe7fdeef93c094db14b12bcd), [`aca3121`](https://github.com/mastra-ai/mastra/commit/aca31211233dac25459f140ea4fcfb3a5af64c18), [`284b0d7`](https://github.com/mastra-ai/mastra/commit/284b0d78d0edb306413447e5268007491006937c), [`9cdf38e`](https://github.com/mastra-ai/mastra/commit/9cdf38e58506e1109c8b38f97cd7770978a4218e), [`990851e`](https://github.com/mastra-ai/mastra/commit/990851edcb0e30be5c2c18b6532f1a876cc2d335), [`6068a6c`](https://github.com/mastra-ai/mastra/commit/6068a6c42950fad3ebfc92346417896ba60803d2), [`00106be`](https://github.com/mastra-ai/mastra/commit/00106bede59b81e5b0e9cd6aad8d3b5dbc336387), [`284b0d7`](https://github.com/mastra-ai/mastra/commit/284b0d78d0edb306413447e5268007491006937c), [`e2a079c`](https://github.com/mastra-ai/mastra/commit/e2a079cc3755b1895f7bd5dc36e9be81b11c7c22), [`534a456`](https://github.com/mastra-ai/mastra/commit/534a456a25e4df1e5407e7e632f4cb3b1fa14f9d), [`36bae07`](https://github.com/mastra-ai/mastra/commit/36bae07c0e70b1b3006f2fd20830e8883dcbd066)]:
80
+ - @mastra/core@1.33.0-alpha.7
81
+ - @mastra/server@1.33.0-alpha.7
82
+
83
+ ## 1.5.2-alpha.6
84
+
85
+ ### Patch Changes
86
+
87
+ - Updated dependencies [[`b560d6f`](https://github.com/mastra-ai/mastra/commit/b560d6f88b9b904b15c10f75c949eb145bc27684), [`36b3bbf`](https://github.com/mastra-ai/mastra/commit/36b3bbf5a8d59f7e23d47e29340e76c681b4929c), [`b275631`](https://github.com/mastra-ai/mastra/commit/b275631dc10541a482b2e2d4a3e3cfa843bd5fa1)]:
88
+ - @mastra/core@1.33.0-alpha.6
89
+ - @mastra/server@1.33.0-alpha.6
90
+
91
+ ## 1.5.2-alpha.5
92
+
93
+ ### Patch Changes
94
+
95
+ - Updated dependencies [[`bae019e`](https://github.com/mastra-ai/mastra/commit/bae019ecb6694da96909f7ec7b9eb3a0a33aa887), [`33f5061`](https://github.com/mastra-ai/mastra/commit/33f5061cd1c0335020c3faae61ce96de822854fa), [`99869ec`](https://github.com/mastra-ai/mastra/commit/99869ecb1f2aa6dfcc44fa4e843e5ee0344efa64), [`d86f031`](https://github.com/mastra-ai/mastra/commit/d86f031eb6b0b2570145afafea664e59bf688962)]:
96
+ - @mastra/core@1.33.0-alpha.5
97
+ - @mastra/server@1.33.0-alpha.5
98
+
99
+ ## 1.5.2-alpha.4
100
+
101
+ ### Patch Changes
102
+
103
+ - Updated dependencies [[`9f17410`](https://github.com/mastra-ai/mastra/commit/9f1741080def23d42ee50b39887a385ae316a3c6), [`c6eb39e`](https://github.com/mastra-ai/mastra/commit/c6eb39ea6dca381c6563cb240237fbe608e02f93), [`900d086`](https://github.com/mastra-ai/mastra/commit/900d086bb737b9cf2fcf68f11b0389b801a2738c), [`4c0e286`](https://github.com/mastra-ai/mastra/commit/4c0e28637c9cfb4f416549b55e97ebfa13319dfc), [`c6eb39e`](https://github.com/mastra-ai/mastra/commit/c6eb39ea6dca381c6563cb240237fbe608e02f93), [`25184ff`](https://github.com/mastra-ai/mastra/commit/25184ffaf1293ec95119426eb1a1f8d38831b96c), [`25184ff`](https://github.com/mastra-ai/mastra/commit/25184ffaf1293ec95119426eb1a1f8d38831b96c), [`aebde9c`](https://github.com/mastra-ai/mastra/commit/aebde9cfacf56592c6b6350cae721740fe090b8a)]:
104
+ - @mastra/core@1.33.0-alpha.4
105
+ - @mastra/server@1.33.0-alpha.4
106
+
107
+ ## 1.5.2-alpha.3
108
+
109
+ ### Patch Changes
110
+
111
+ - Updated dependencies [[`087e413`](https://github.com/mastra-ai/mastra/commit/087e4133e5d6efa36619e9556c16750e4179c047), [`087e413`](https://github.com/mastra-ai/mastra/commit/087e4133e5d6efa36619e9556c16750e4179c047), [`087e413`](https://github.com/mastra-ai/mastra/commit/087e4133e5d6efa36619e9556c16750e4179c047), [`087e413`](https://github.com/mastra-ai/mastra/commit/087e4133e5d6efa36619e9556c16750e4179c047), [`0461546`](https://github.com/mastra-ai/mastra/commit/0461546755951706ca81bc24d1d31013d9d70a6d)]:
112
+ - @mastra/core@1.33.0-alpha.3
113
+ - @mastra/server@1.33.0-alpha.3
114
+
115
+ ## 1.5.2-alpha.2
116
+
117
+ ### Patch Changes
118
+
119
+ - Updated dependencies [[`d1fdbd0`](https://github.com/mastra-ai/mastra/commit/d1fdbd012add5623cb7e6b7f882b605ab358bbb4), [`d91ebe2`](https://github.com/mastra-ai/mastra/commit/d91ebe28ee065d8f2ed6df741c3c07f58d359529)]:
120
+ - @mastra/core@1.33.0-alpha.2
121
+ - @mastra/server@1.33.0-alpha.2
122
+
3
123
  ## 1.5.2-alpha.1
4
124
 
5
125
  ### Patch Changes
package/dist/index.cjs CHANGED
@@ -427,6 +427,10 @@ var MastraServer = class extends serverAdapter.MastraServer {
427
427
  }
428
428
  }
429
429
  const requestContext = server.mergeRequestContext({ paramsRequestContext, bodyRequestContext });
430
+ server.applyRequestMetadataToContext({
431
+ requestContext,
432
+ getHeader: (name) => ctx.get(name)
433
+ });
430
434
  ctx.state.requestContext = requestContext;
431
435
  ctx.state.mastra = server.mastra;
432
436
  ctx.state.tools = server.tools || {};
@@ -445,17 +449,23 @@ var MastraServer = class extends serverAdapter.MastraServer {
445
449
  };
446
450
  }
447
451
  getRouteDispatcherGroup(app) {
448
- const activeGroup = this.activeRouteDispatchers.get(app);
449
- if (activeGroup && app.middleware.length === activeGroup.stackLengthAfterRegistration) {
450
- return activeGroup;
452
+ const middlewareStack = app.middleware;
453
+ const supportsReuse = Array.isArray(middlewareStack);
454
+ if (supportsReuse) {
455
+ const activeGroup = this.activeRouteDispatchers.get(app);
456
+ if (activeGroup && middlewareStack.length === activeGroup.stackLengthAfterRegistration) {
457
+ return activeGroup;
458
+ }
451
459
  }
452
460
  const group = {
453
461
  routes: [],
454
462
  stackLengthAfterRegistration: 0
455
463
  };
456
464
  app.use(this.createRouteDispatcherMiddleware(group));
457
- group.stackLengthAfterRegistration = app.middleware.length;
458
- this.activeRouteDispatchers.set(app, group);
465
+ if (supportsReuse) {
466
+ group.stackLengthAfterRegistration = app.middleware.length;
467
+ this.activeRouteDispatchers.set(app, group);
468
+ }
459
469
  return group;
460
470
  }
461
471
  createRouteDispatcherMiddleware(group) {