@pltn/adonis-mastra-server-adapter 0.1.1

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/README.md ADDED
@@ -0,0 +1,50 @@
1
+ # @pltn/adonis-mastra-server-adapter
2
+
3
+ AdonisJS adapter for Mastra server routes.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm i @pltn/adonis-mastra-server-adapter
9
+ ```
10
+
11
+ Peer dependencies (install in your app):
12
+
13
+ ```bash
14
+ npm i @adonisjs/core @mastra/core @mastra/server zod
15
+ ```
16
+
17
+ ## Usage
18
+
19
+ ```ts
20
+ import router from '@adonisjs/core/services/router'
21
+ import { mastra } from './mastra/index.js'
22
+ import { registerAdonisMastraServer } from '@pltn/adonis-mastra-server-adapter'
23
+
24
+ await registerAdonisMastraServer({
25
+ router,
26
+ mastra,
27
+ prefix: '/mastra',
28
+ })
29
+ ```
30
+
31
+ ## Auth behavior
32
+
33
+ - Uses Adonis session (`ctx.auth.check()`) for protected routes.
34
+ - If route has `requiresAuth !== false` and no session user is present, returns `401`.
35
+
36
+ ## Local development
37
+
38
+ ```bash
39
+ npm install
40
+ npm run typecheck
41
+ npm run build
42
+ ```
43
+
44
+ ## Publish
45
+
46
+ ```bash
47
+ npm publish --access public
48
+ ```
49
+
50
+ Before publishing, change package name/scope if needed.
@@ -0,0 +1,51 @@
1
+ import type { HttpContext } from '@adonisjs/core/http';
2
+ import type { HttpRouterService } from '@adonisjs/core/types';
3
+ import type { ToolsInput } from '@mastra/core/agent';
4
+ import type { Mastra } from '@mastra/core/mastra';
5
+ import type { ApiRoute } from '@mastra/core/server';
6
+ import { MastraServer, type BodyLimitOptions, type MCPOptions, type ParsedRequestParams, type ServerRoute, type StreamOptions } from '@mastra/server/server-adapter';
7
+ import type { InMemoryTaskStore } from '@mastra/server/a2a/store';
8
+ interface AdonisMastraServerOptions {
9
+ app: HttpRouterService;
10
+ mastra: Mastra;
11
+ prefix?: string;
12
+ openapiPath?: string;
13
+ bodyLimitOptions?: BodyLimitOptions;
14
+ streamOptions?: StreamOptions;
15
+ tools?: ToolsInput;
16
+ taskStore?: InMemoryTaskStore;
17
+ customRouteAuthConfig?: Map<string, boolean>;
18
+ customApiRoutes?: ApiRoute[];
19
+ mcpOptions?: MCPOptions;
20
+ }
21
+ interface RegisterAdonisMastraServerOptions extends Omit<AdonisMastraServerOptions, 'app'> {
22
+ router: HttpRouterService;
23
+ }
24
+ export declare class AdonisMastraServer extends MastraServer<HttpRouterService, HttpContext, HttpContext> {
25
+ registerContextMiddleware(): void;
26
+ registerAuthMiddleware(): void;
27
+ registerCustomApiRoutes(): Promise<void>;
28
+ registerRoute(app: HttpRouterService, route: ServerRoute, { prefix }: {
29
+ prefix?: string;
30
+ }): Promise<void>;
31
+ getParams(route: ServerRoute, request: HttpContext): Promise<ParsedRequestParams>;
32
+ sendResponse(route: ServerRoute, response: HttpContext, result: unknown): Promise<unknown>;
33
+ stream(route: ServerRoute, response: HttpContext, result: unknown): Promise<unknown>;
34
+ private registerAdonisHandler;
35
+ private createRuntimeContext;
36
+ private extractRequestContext;
37
+ private tryParseRequestContext;
38
+ private buildRoutePath;
39
+ private buildAbsoluteRequestUrl;
40
+ private getQueryValue;
41
+ private checkRouteAuthWithAdonisSession;
42
+ private resolveAdonisSessionUser;
43
+ private parsePath;
44
+ private parseQuery;
45
+ private parseRequestBody;
46
+ private handleParseError;
47
+ private resolveErrorStatus;
48
+ }
49
+ export declare function registerAdonisMastraServer({ router, mastra, prefix, openapiPath, bodyLimitOptions, streamOptions, tools, taskStore, customRouteAuthConfig, customApiRoutes, mcpOptions, }: RegisterAdonisMastraServerOptions): Promise<AdonisMastraServer>;
50
+ export {};
51
+ //# sourceMappingURL=adonis_server_adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adonis_server_adapter.d.ts","sourceRoot":"","sources":["../src/adonis_server_adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAGnD,OAAO,EACH,YAAY,EAGZ,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,aAAa,EACrB,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAGjE,UAAU,yBAAyB;IAC/B,GAAG,EAAE,iBAAiB,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,SAAS,CAAC,EAAE,iBAAiB,CAAA;IAC7B,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5C,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAA;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAA;CAC1B;AAED,UAAU,iCAAkC,SAAQ,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC;IACtF,MAAM,EAAE,iBAAiB,CAAA;CAC5B;AAiBD,qBAAa,kBAAmB,SAAQ,YAAY,CAAC,iBAAiB,EAAE,WAAW,EAAE,WAAW,CAAC;IAC7F,yBAAyB,IAAI,IAAI;IAKjC,sBAAsB,IAAI,IAAI;IAKxB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmDxC,aAAa,CACf,GAAG,EAAE,iBAAiB,EACtB,KAAK,EAAE,WAAW,EAClB,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAChC,OAAO,CAAC,IAAI,CAAC;IA6FV,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAqBjF,YAAY,CACd,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,OAAO,GAChB,OAAO,CAAC,OAAO,CAAC;IAqHb,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAmD1F,OAAO,CAAC,qBAAqB;IA6B7B,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,sBAAsB;IA0B9B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,aAAa;YAcP,+BAA+B;YA0B/B,wBAAwB;YAkBxB,SAAS;YAaT,UAAU;YAaV,gBAAgB;IAa9B,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,kBAAkB;CAmB7B;AAED,wBAAsB,0BAA0B,CAAC,EAC7C,MAAM,EACN,MAAM,EACN,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,KAAK,EACL,SAAS,EACT,qBAAqB,EACrB,eAAe,EACf,UAAU,GACb,EAAE,iCAAiC,+BAiBnC"}
@@ -0,0 +1,477 @@
1
+ import { formatZodError } from '@mastra/server/handlers/error';
2
+ import { MastraServer, normalizeQueryParams, redactStreamChunk, } from '@mastra/server/server-adapter';
3
+ import { ZodError } from 'zod';
4
+ const REQUEST_METHODS_WITH_BODY = new Set(['POST', 'PUT', 'PATCH', 'DELETE']);
5
+ export class AdonisMastraServer extends MastraServer {
6
+ registerContextMiddleware() {
7
+ // Adonis router doesn't accept per-path function middleware registration like Express.
8
+ // Request context is created lazily inside each registered route handler.
9
+ }
10
+ registerAuthMiddleware() {
11
+ // Auth is checked via `checkRouteAuth` inside each route handler.
12
+ // This preserves Mastra auth behavior without Adonis global middleware coupling.
13
+ }
14
+ async registerCustomApiRoutes() {
15
+ const hasCustomRoutes = await this.buildCustomRouteHandler();
16
+ if (!hasCustomRoutes) {
17
+ return;
18
+ }
19
+ const customRoutes = this.customApiRoutes ?? this.mastra.getServer()?.apiRoutes ?? [];
20
+ for (const route of customRoutes) {
21
+ const routePath = this.buildRoutePath(this.prefix, route.path);
22
+ this.registerAdonisHandler(this.app, route.method, routePath, async (ctx) => {
23
+ const runtime = this.createRuntimeContext(ctx);
24
+ const authError = await this.checkRouteAuthWithAdonisSession({
25
+ method: route.method,
26
+ path: route.path,
27
+ responseType: 'json',
28
+ handler: async () => null,
29
+ requiresAuth: route.requiresAuth,
30
+ }, ctx, runtime.requestContext);
31
+ if (authError) {
32
+ ctx.response.status(authError.status);
33
+ ctx.response.json({ error: authError.error });
34
+ return;
35
+ }
36
+ const body = REQUEST_METHODS_WITH_BODY.has(route.method)
37
+ ? ctx.request.body()
38
+ : undefined;
39
+ const response = await this.handleCustomRouteRequest(this.buildAbsoluteRequestUrl(ctx), route.method, ctx.request.headers(), body, runtime.requestContext);
40
+ if (!response) {
41
+ ctx.response.status(404);
42
+ ctx.response.json({ error: 'Custom route not found' });
43
+ return;
44
+ }
45
+ await this.writeCustomRouteResponse(response, ctx.response.response);
46
+ });
47
+ }
48
+ }
49
+ async registerRoute(app, route, { prefix }) {
50
+ const resolvedPrefix = prefix ?? this.prefix;
51
+ const fullPath = this.buildRoutePath(resolvedPrefix, route.path);
52
+ this.registerAdonisHandler(app, route.method, fullPath, async (ctx) => {
53
+ const runtime = this.createRuntimeContext(ctx);
54
+ const authError = await this.checkRouteAuthWithAdonisSession(route, ctx, runtime.requestContext);
55
+ if (authError) {
56
+ ctx.response.status(authError.status);
57
+ ctx.response.json({ error: authError.error });
58
+ return;
59
+ }
60
+ const maxSize = route.maxBodySize ?? this.bodyLimitOptions?.maxSize;
61
+ if (REQUEST_METHODS_WITH_BODY.has(route.method) && maxSize) {
62
+ const contentLength = ctx.request.header('content-length');
63
+ const parsedLength = contentLength ? Number.parseInt(contentLength, 10) : Number.NaN;
64
+ if (Number.isFinite(parsedLength) && parsedLength > maxSize) {
65
+ const payload = this.bodyLimitOptions?.onError
66
+ ? this.bodyLimitOptions.onError({ error: 'Request body too large' })
67
+ : { error: 'Request body too large' };
68
+ ctx.response.status(413);
69
+ ctx.response.json(payload);
70
+ return;
71
+ }
72
+ }
73
+ const params = await this.getParams(route, ctx);
74
+ if (params.bodyParseError) {
75
+ ctx.response.status(400);
76
+ ctx.response.json({
77
+ error: 'Invalid request body',
78
+ issues: [{ field: 'body', message: params.bodyParseError.message }],
79
+ });
80
+ return;
81
+ }
82
+ const pathParams = await this.parsePath(route, params.urlParams, ctx);
83
+ if (!pathParams) {
84
+ return;
85
+ }
86
+ const queryParams = await this.parseQuery(route, params.queryParams, ctx);
87
+ if (!queryParams) {
88
+ return;
89
+ }
90
+ const body = await this.parseRequestBody(route, params.body, ctx);
91
+ if (body === null) {
92
+ return;
93
+ }
94
+ const handlerParams = {
95
+ ...pathParams,
96
+ ...queryParams,
97
+ ...(typeof body === 'object' && body !== null ? body : {}),
98
+ mastra: this.mastra,
99
+ requestContext: runtime.requestContext,
100
+ registeredTools: runtime.registeredTools,
101
+ taskStore: runtime.taskStore,
102
+ abortSignal: runtime.abortSignal,
103
+ routePrefix: resolvedPrefix,
104
+ };
105
+ try {
106
+ const result = await route.handler(handlerParams);
107
+ await this.sendResponse(route, ctx, result);
108
+ }
109
+ catch (error) {
110
+ this.mastra.getLogger()?.error('Error calling Mastra route handler', {
111
+ error: error instanceof Error
112
+ ? { message: error.message, stack: error.stack }
113
+ : error,
114
+ path: route.path,
115
+ method: route.method,
116
+ });
117
+ const status = this.resolveErrorStatus(error);
118
+ ctx.response.status(status);
119
+ ctx.response.json({
120
+ error: error instanceof Error ? error.message : 'Unknown error',
121
+ });
122
+ }
123
+ });
124
+ }
125
+ async getParams(route, request) {
126
+ const queryParams = normalizeQueryParams(request.request.qs());
127
+ const urlParams = Object.entries(request.params).reduce((acc, [key, value]) => {
128
+ acc[key] = String(value);
129
+ return acc;
130
+ }, {});
131
+ const body = REQUEST_METHODS_WITH_BODY.has(route.method)
132
+ ? request.request.body()
133
+ : undefined;
134
+ return {
135
+ urlParams,
136
+ queryParams,
137
+ body,
138
+ };
139
+ }
140
+ async sendResponse(route, response, result) {
141
+ const resolvedPrefix = this.prefix ?? '';
142
+ if (route.responseType === 'json') {
143
+ response.response.json(result);
144
+ return;
145
+ }
146
+ if (route.responseType === 'stream') {
147
+ await this.stream(route, response, result);
148
+ return;
149
+ }
150
+ if (route.responseType === 'datastream-response') {
151
+ const fetchResponse = result;
152
+ fetchResponse.headers.forEach((value, key) => {
153
+ response.response.header(key, value);
154
+ });
155
+ response.response.status(fetchResponse.status);
156
+ if (fetchResponse.body) {
157
+ const reader = fetchResponse.body.getReader();
158
+ const rawResponse = response.response.response;
159
+ try {
160
+ while (true) {
161
+ const { done, value } = await reader.read();
162
+ if (done) {
163
+ break;
164
+ }
165
+ rawResponse.write(value);
166
+ }
167
+ }
168
+ finally {
169
+ rawResponse.end();
170
+ }
171
+ }
172
+ else {
173
+ response.response.response.end();
174
+ }
175
+ return;
176
+ }
177
+ if (route.responseType === 'mcp-http') {
178
+ const payload = result;
179
+ const options = { ...this.mcpOptions, ...payload.mcpOptions };
180
+ try {
181
+ await payload.server.startHTTP({
182
+ url: new URL(this.buildAbsoluteRequestUrl(response)),
183
+ httpPath: this.buildRoutePath(resolvedPrefix, payload.httpPath),
184
+ req: response.request.request,
185
+ res: response.response.response,
186
+ options: Object.keys(options).length > 0 ? options : undefined,
187
+ });
188
+ }
189
+ catch {
190
+ if (!response.response.headersSent) {
191
+ response.response.status(500);
192
+ response.response.json({
193
+ jsonrpc: '2.0',
194
+ error: { code: -32603, message: 'Internal server error' },
195
+ id: null,
196
+ });
197
+ }
198
+ }
199
+ return;
200
+ }
201
+ if (route.responseType === 'mcp-sse') {
202
+ const payload = result;
203
+ try {
204
+ await payload.server.startSSE({
205
+ url: new URL(this.buildAbsoluteRequestUrl(response)),
206
+ ssePath: this.buildRoutePath(resolvedPrefix, payload.ssePath),
207
+ messagePath: this.buildRoutePath(resolvedPrefix, payload.messagePath),
208
+ req: response.request.request,
209
+ res: response.response.response,
210
+ });
211
+ }
212
+ catch {
213
+ if (!response.response.headersSent) {
214
+ response.response.status(500);
215
+ response.response.json({ error: 'Error handling MCP SSE request' });
216
+ }
217
+ }
218
+ return;
219
+ }
220
+ response.response.status(500);
221
+ response.response.json({ error: 'Unsupported response type' });
222
+ }
223
+ async stream(route, response, result) {
224
+ const streamFormat = route.streamFormat ?? 'stream';
225
+ const isSse = streamFormat === 'sse';
226
+ response.response.header('Content-Type', isSse ? 'text/event-stream' : 'text/plain');
227
+ response.response.header('Transfer-Encoding', 'chunked');
228
+ response.response.header('Cache-Control', 'no-cache');
229
+ const rawResponse = response.response.response;
230
+ const readableStream = result instanceof ReadableStream
231
+ ? result
232
+ : (result.fullStream ?? null);
233
+ if (!readableStream) {
234
+ rawResponse.end();
235
+ return;
236
+ }
237
+ const reader = readableStream.getReader();
238
+ try {
239
+ while (true) {
240
+ const { done, value } = await reader.read();
241
+ if (done) {
242
+ break;
243
+ }
244
+ if (!value) {
245
+ continue;
246
+ }
247
+ const shouldRedact = this.streamOptions?.redact ?? true;
248
+ const outputValue = shouldRedact ? redactStreamChunk(value) : value;
249
+ if (isSse) {
250
+ rawResponse.write(`data: ${JSON.stringify(outputValue)}\n\n`);
251
+ }
252
+ else {
253
+ rawResponse.write(JSON.stringify(outputValue) + '\x1E');
254
+ }
255
+ }
256
+ }
257
+ catch (error) {
258
+ this.mastra.getLogger()?.error('Error in Mastra stream processing', {
259
+ error: error instanceof Error ? { message: error.message, stack: error.stack } : error,
260
+ });
261
+ }
262
+ finally {
263
+ rawResponse.end();
264
+ }
265
+ }
266
+ registerAdonisHandler(app, method, path, handler) {
267
+ switch (method) {
268
+ case 'GET':
269
+ app.get(path, handler);
270
+ break;
271
+ case 'POST':
272
+ app.post(path, handler);
273
+ break;
274
+ case 'PUT':
275
+ app.put(path, handler);
276
+ break;
277
+ case 'PATCH':
278
+ app.patch(path, handler);
279
+ break;
280
+ case 'DELETE':
281
+ app.delete(path, handler);
282
+ break;
283
+ case 'ALL':
284
+ default:
285
+ app.any(path, handler);
286
+ break;
287
+ }
288
+ }
289
+ createRuntimeContext(ctx) {
290
+ const requestContext = this.extractRequestContext(ctx);
291
+ const abortController = new AbortController();
292
+ const rawResponse = ctx.response.response;
293
+ rawResponse.on('close', () => {
294
+ if (!rawResponse.writableEnded) {
295
+ abortController.abort();
296
+ }
297
+ });
298
+ return {
299
+ requestContext,
300
+ abortSignal: abortController.signal,
301
+ registeredTools: this.tools ?? {},
302
+ taskStore: this.taskStore,
303
+ };
304
+ }
305
+ extractRequestContext(ctx) {
306
+ const body = ctx.request.body();
307
+ const rawQueryRequestContext = ctx.request.qs().requestContext;
308
+ const paramsRequestContext = this.tryParseRequestContext(rawQueryRequestContext);
309
+ const bodyRequestContext = body && typeof body === 'object' && !Array.isArray(body)
310
+ ? this.tryParseRequestContext(body.requestContext)
311
+ : undefined;
312
+ return this.mergeRequestContext({ paramsRequestContext, bodyRequestContext });
313
+ }
314
+ tryParseRequestContext(value) {
315
+ if (!value) {
316
+ return undefined;
317
+ }
318
+ if (typeof value === 'object' && !Array.isArray(value)) {
319
+ return value;
320
+ }
321
+ const candidate = Array.isArray(value) ? value[0] : value;
322
+ if (typeof candidate !== 'string') {
323
+ return undefined;
324
+ }
325
+ try {
326
+ return JSON.parse(candidate);
327
+ }
328
+ catch {
329
+ try {
330
+ const decoded = Buffer.from(candidate, 'base64').toString('utf-8');
331
+ return JSON.parse(decoded);
332
+ }
333
+ catch {
334
+ return undefined;
335
+ }
336
+ }
337
+ }
338
+ buildRoutePath(prefix, path) {
339
+ const normalizedPrefix = (prefix ?? '').replace(/\/+$/, '');
340
+ const normalizedPath = path.startsWith('/') ? path : `/${path}`;
341
+ if (!normalizedPrefix) {
342
+ return normalizedPath;
343
+ }
344
+ return `${normalizedPrefix}${normalizedPath}`;
345
+ }
346
+ buildAbsoluteRequestUrl(ctx) {
347
+ const protocol = ctx.request.protocol();
348
+ const host = ctx.request.header('host') || 'localhost';
349
+ const relativeUrl = ctx.request.url(true);
350
+ return new URL(relativeUrl, `${protocol}://${host}`).toString();
351
+ }
352
+ getQueryValue(ctx, name) {
353
+ const value = ctx.request.qs()[name];
354
+ if (typeof value === 'string') {
355
+ return value;
356
+ }
357
+ if (Array.isArray(value) && typeof value[0] === 'string') {
358
+ return value[0];
359
+ }
360
+ return undefined;
361
+ }
362
+ async checkRouteAuthWithAdonisSession(route, ctx, requestContext) {
363
+ const sessionUser = await this.resolveAdonisSessionUser(ctx);
364
+ if (sessionUser) {
365
+ requestContext.set('user', sessionUser);
366
+ return null;
367
+ }
368
+ // Mastra's default auth check is skipped entirely when `mastra.server.auth`
369
+ // isn't configured. We still need to enforce route-level auth for Adonis sessions.
370
+ if (route.requiresAuth !== false) {
371
+ return { status: 401, error: 'Authentication required' };
372
+ }
373
+ return this.checkRouteAuth(route, {
374
+ path: String(ctx.request.url() || '/'),
375
+ method: String(ctx.request.method() || route.method),
376
+ getHeader: (name) => ctx.request.header(name),
377
+ getQuery: (name) => this.getQueryValue(ctx, name),
378
+ requestContext,
379
+ });
380
+ }
381
+ async resolveAdonisSessionUser(ctx) {
382
+ try {
383
+ const auth = ctx.auth;
384
+ if (!auth) {
385
+ return null;
386
+ }
387
+ const isAuthenticated = await auth.check();
388
+ if (!isAuthenticated || !auth.user) {
389
+ return null;
390
+ }
391
+ return auth.user;
392
+ }
393
+ catch {
394
+ return null;
395
+ }
396
+ }
397
+ async parsePath(route, params, ctx) {
398
+ try {
399
+ return await this.parsePathParams(route, params);
400
+ }
401
+ catch (error) {
402
+ this.handleParseError(error, 'path parameters', ctx);
403
+ return null;
404
+ }
405
+ }
406
+ async parseQuery(route, params, ctx) {
407
+ try {
408
+ return await this.parseQueryParams(route, params);
409
+ }
410
+ catch (error) {
411
+ this.handleParseError(error, 'query parameters', ctx);
412
+ return null;
413
+ }
414
+ }
415
+ async parseRequestBody(route, body, ctx) {
416
+ try {
417
+ return await this.parseBody(route, body);
418
+ }
419
+ catch (error) {
420
+ this.handleParseError(error, 'request body', ctx);
421
+ return null;
422
+ }
423
+ }
424
+ handleParseError(error, target, ctx) {
425
+ this.mastra.getLogger()?.error(`Error parsing ${target}`, {
426
+ error: error instanceof Error ? { message: error.message, stack: error.stack } : error,
427
+ });
428
+ if (error instanceof ZodError) {
429
+ ctx.response.status(400);
430
+ ctx.response.json(formatZodError(error, target));
431
+ return;
432
+ }
433
+ ctx.response.status(400);
434
+ ctx.response.json({
435
+ error: `Invalid ${target}`,
436
+ issues: [
437
+ {
438
+ field: 'unknown',
439
+ message: error instanceof Error ? error.message : 'Unknown error',
440
+ },
441
+ ],
442
+ });
443
+ }
444
+ resolveErrorStatus(error) {
445
+ if (error && typeof error === 'object') {
446
+ if ('status' in error && typeof error.status === 'number') {
447
+ return error.status;
448
+ }
449
+ if ('details' in error &&
450
+ error.details &&
451
+ typeof error.details === 'object' &&
452
+ 'status' in error.details &&
453
+ typeof error.details.status === 'number') {
454
+ return error.details.status;
455
+ }
456
+ }
457
+ return 500;
458
+ }
459
+ }
460
+ export async function registerAdonisMastraServer({ router, mastra, prefix, openapiPath, bodyLimitOptions, streamOptions, tools, taskStore, customRouteAuthConfig, customApiRoutes, mcpOptions, }) {
461
+ const server = new AdonisMastraServer({
462
+ app: router,
463
+ mastra,
464
+ prefix,
465
+ openapiPath,
466
+ bodyLimitOptions,
467
+ streamOptions,
468
+ tools,
469
+ taskStore,
470
+ customRouteAuthConfig,
471
+ customApiRoutes,
472
+ mcpOptions,
473
+ });
474
+ await server.init();
475
+ return server;
476
+ }
477
+ //# sourceMappingURL=adonis_server_adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adonis_server_adapter.js","sourceRoot":"","sources":["../src/adonis_server_adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { AdonisMastraServer, registerAdonisMastraServer } from './adonis_server_adapter.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { AdonisMastraServer, registerAdonisMastraServer } from './adonis_server_adapter.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA"}
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "@pltn/adonis-mastra-server-adapter",
3
+ "version": "0.1.1",
4
+ "description": "AdonisJS server adapter for Mastra",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "author": "Ivan Plotnikov",
8
+ "sideEffects": false,
9
+ "files": [
10
+ "dist",
11
+ "README.md",
12
+ "LICENSE"
13
+ ],
14
+ "exports": {
15
+ ".": {
16
+ "types": "./dist/index.d.ts",
17
+ "import": "./dist/index.js"
18
+ }
19
+ },
20
+ "main": "./dist/index.js",
21
+ "types": "./dist/index.d.ts",
22
+ "scripts": {
23
+ "build": "tsc -p tsconfig.json",
24
+ "clean": "rm -rf dist",
25
+ "typecheck": "tsc -p tsconfig.json --noEmit",
26
+ "prepublishOnly": "npm run clean && npm run build"
27
+ },
28
+ "peerDependencies": {
29
+ "@adonisjs/core": ">=6.0.0",
30
+ "@mastra/core": ">=1.4.0",
31
+ "@mastra/server": ">=1.4.0",
32
+ "zod": ">=3.0.0"
33
+ },
34
+ "devDependencies": {
35
+ "@types/node": "^22.15.18",
36
+ "typescript": "^5.8.3"
37
+ },
38
+ "engines": {
39
+ "node": ">=20"
40
+ },
41
+ "publishConfig": {
42
+ "access": "public",
43
+ "provenance": true
44
+ },
45
+ "keywords": [
46
+ "adonisjs",
47
+ "mastra",
48
+ "adapter"
49
+ ]
50
+ }