@decocms/runtime 0.24.0 → 0.25.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.
- package/dist/bindings/deconfig/index.d.ts +3 -3
- package/dist/bindings/deconfig/index.js +5 -5
- package/dist/bindings/index.d.ts +41 -41
- package/dist/bindings/index.js +6 -6
- package/dist/{chunk-4UQ5U73Y.js → chunk-F6XZPFWM.js} +3 -5
- package/dist/chunk-F6XZPFWM.js.map +1 -0
- package/dist/{chunk-ZRJ5SGAO.js → chunk-I2KGAHFY.js} +26 -6
- package/dist/chunk-I2KGAHFY.js.map +1 -0
- package/dist/{chunk-73FIKR3X.js → chunk-NKUMVYKI.js} +3 -3
- package/dist/chunk-NKUMVYKI.js.map +1 -0
- package/dist/{chunk-377XXI4J.js → chunk-O6IURJAY.js} +4 -4
- package/dist/{chunk-377XXI4J.js.map → chunk-O6IURJAY.js.map} +1 -1
- package/dist/{chunk-G3NWZG2F.js → chunk-QELHWEZH.js} +3 -3
- package/dist/chunk-QELHWEZH.js.map +1 -0
- package/dist/drizzle.d.ts +2 -2
- package/dist/{index-D_J_044C.d.ts → index-CStCyFvK.d.ts} +12 -3
- package/dist/{index-BBAR4TQu.d.ts → index-DswRTp9B.d.ts} +8 -8
- package/dist/index.d.ts +2 -2
- package/dist/index.js +6 -6
- package/dist/mastra.d.ts +2 -2
- package/dist/mastra.js +2 -2
- package/dist/mcp-client.js +1 -1
- package/dist/{mcp-Bv7IAgWX.d.ts → mcp-yTBduksO.d.ts} +4 -4
- package/dist/proxy.d.ts +1 -1
- package/dist/proxy.js +2 -2
- package/dist/resources.d.ts +44 -75
- package/dist/resources.js +1 -1
- package/dist/views.d.ts +12 -12
- package/package.json +14 -1
- package/src/admin.ts +16 -0
- package/src/auth.ts +233 -0
- package/src/bindings/README.md +132 -0
- package/src/bindings/binder.ts +143 -0
- package/src/bindings/channels.ts +54 -0
- package/src/bindings/deconfig/helpers.ts +107 -0
- package/src/bindings/deconfig/index.ts +1 -0
- package/src/bindings/deconfig/resources.ts +659 -0
- package/src/bindings/deconfig/types.ts +106 -0
- package/src/bindings/index.ts +61 -0
- package/src/bindings/resources/bindings.ts +99 -0
- package/src/bindings/resources/helpers.ts +95 -0
- package/src/bindings/resources/schemas.ts +265 -0
- package/src/bindings/utils.ts +22 -0
- package/src/bindings/views.ts +14 -0
- package/src/bindings.ts +178 -0
- package/src/cf-imports.ts +1 -0
- package/src/client.ts +201 -0
- package/src/connection.ts +53 -0
- package/src/d1-store.ts +34 -0
- package/src/deprecated.ts +59 -0
- package/src/drizzle.ts +201 -0
- package/src/http-client-transport.ts +66 -0
- package/src/index.ts +405 -0
- package/src/mastra.ts +894 -0
- package/src/mcp-client.ts +119 -0
- package/src/mcp.ts +170 -0
- package/src/proxy.ts +212 -0
- package/src/resources.ts +168 -0
- package/src/state.ts +44 -0
- package/src/views.ts +26 -0
- package/src/well-known.ts +20 -0
- package/src/workflow.ts +193 -0
- package/src/wrangler.ts +146 -0
- package/dist/chunk-4UQ5U73Y.js.map +0 -1
- package/dist/chunk-73FIKR3X.js.map +0 -1
- package/dist/chunk-G3NWZG2F.js.map +0 -1
- package/dist/chunk-ZRJ5SGAO.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export { D as DeconfigClient, i as DeconfigResource, b as DeconfigResourceOptions, E as EnhancedResourcesTools, N as NotFoundError, h as RESOURCE_WATCH_BASE_PATHNAME, R as ResourcesBinding, d as ResourcesTools, U as UserInputError, W as WatchOptions, a as createDeconfigResource } from '../../index-
|
|
1
|
+
export { D as DeconfigClient, i as DeconfigResource, b as DeconfigResourceOptions, E as EnhancedResourcesTools, N as NotFoundError, h as RESOURCE_WATCH_BASE_PATHNAME, R as ResourcesBinding, d as ResourcesTools, U as UserInputError, W as WatchOptions, a as createDeconfigResource } from '../../index-DswRTp9B.js';
|
|
2
2
|
import '@mastra/core';
|
|
3
3
|
import 'zod';
|
|
4
|
-
import '../../index-
|
|
4
|
+
import '../../index-CStCyFvK.js';
|
|
5
5
|
import '@cloudflare/workers-types';
|
|
6
6
|
import '@mastra/core/di';
|
|
7
7
|
import '@mastra/core/workflows';
|
|
8
8
|
import '../../resources.js';
|
|
9
|
-
import '../../mcp-
|
|
9
|
+
import '../../mcp-yTBduksO.js';
|
|
10
10
|
import '../../connection-DDtQYrea.js';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export { DeconfigResource, NotFoundError, RESOURCE_WATCH_BASE_PATHNAME, UserInputError, createDeconfigResource } from '../../chunk-
|
|
2
|
-
import '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
1
|
+
export { DeconfigResource, NotFoundError, RESOURCE_WATCH_BASE_PATHNAME, UserInputError, createDeconfigResource } from '../../chunk-O6IURJAY.js';
|
|
2
|
+
import '../../chunk-QELHWEZH.js';
|
|
3
|
+
import '../../chunk-F6XZPFWM.js';
|
|
4
4
|
import '../../chunk-UHR3BLMF.js';
|
|
5
|
-
import '../../chunk-
|
|
5
|
+
import '../../chunk-I2KGAHFY.js';
|
|
6
6
|
import '../../chunk-AOFOWQXY.js';
|
|
7
|
-
import '../../chunk-
|
|
7
|
+
import '../../chunk-NKUMVYKI.js';
|
|
8
8
|
import '../../chunk-I7BWSAN6.js';
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
package/dist/bindings/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as zod from 'zod';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
export { B as BaseResourceDataSchema, D as DeconfigClient, b as DeconfigResourceOptions, E as EnhancedResourcesTools, f as ResourceBinding, g as ResourceBindingsFunction, R as ResourcesBinding, d as ResourcesTools, a as createDeconfigResource, c as createResourceBindings, e as deconfigTools } from '../index-
|
|
3
|
+
export { B as BaseResourceDataSchema, D as DeconfigClient, b as DeconfigResourceOptions, E as EnhancedResourcesTools, f as ResourceBinding, g as ResourceBindingsFunction, R as ResourcesBinding, d as ResourcesTools, a as createDeconfigResource, c as createResourceBindings, e as deconfigTools } from '../index-DswRTp9B.js';
|
|
4
4
|
import * as _mastra_core from '@mastra/core';
|
|
5
5
|
import { M as MCPConnection } from '../connection-DDtQYrea.js';
|
|
6
|
-
import { c as createPrivateTool } from '../index-
|
|
7
|
-
import { T as ToolBinder, M as MCPClientFetchStub } from '../mcp-
|
|
6
|
+
import { c as createPrivateTool } from '../index-CStCyFvK.js';
|
|
7
|
+
import { T as ToolBinder, M as MCPClientFetchStub } from '../mcp-yTBduksO.js';
|
|
8
8
|
import '@cloudflare/workers-types';
|
|
9
9
|
import '@mastra/core/di';
|
|
10
10
|
import '@mastra/core/workflows';
|
|
@@ -311,13 +311,13 @@ declare const ViewBinding: {
|
|
|
311
311
|
prompt: z.ZodOptional<z.ZodString>;
|
|
312
312
|
installBehavior: z.ZodOptional<z.ZodEnum<["none", "open", "autoPin"]>>;
|
|
313
313
|
}, "strip", z.ZodTypeAny, {
|
|
314
|
-
tools: string[];
|
|
315
314
|
title: string;
|
|
315
|
+
tools: string[];
|
|
316
316
|
icon: string;
|
|
317
|
-
id?: string | undefined;
|
|
318
|
-
name?: string | undefined;
|
|
319
317
|
url?: string | undefined;
|
|
318
|
+
name?: string | undefined;
|
|
320
319
|
description?: string | undefined;
|
|
320
|
+
id?: string | undefined;
|
|
321
321
|
resourceName?: string | undefined;
|
|
322
322
|
mimeTypePattern?: string | undefined;
|
|
323
323
|
prompt?: string | undefined;
|
|
@@ -325,25 +325,25 @@ declare const ViewBinding: {
|
|
|
325
325
|
}, {
|
|
326
326
|
title: string;
|
|
327
327
|
icon: string;
|
|
328
|
-
id?: string | undefined;
|
|
329
|
-
name?: string | undefined;
|
|
330
328
|
url?: string | undefined;
|
|
329
|
+
name?: string | undefined;
|
|
331
330
|
description?: string | undefined;
|
|
332
|
-
resourceName?: string | undefined;
|
|
333
331
|
tools?: string[] | undefined;
|
|
332
|
+
id?: string | undefined;
|
|
333
|
+
resourceName?: string | undefined;
|
|
334
334
|
mimeTypePattern?: string | undefined;
|
|
335
335
|
prompt?: string | undefined;
|
|
336
336
|
installBehavior?: "open" | "none" | "autoPin" | undefined;
|
|
337
337
|
}>, "many">;
|
|
338
338
|
}, "strip", z.ZodTypeAny, {
|
|
339
339
|
views: {
|
|
340
|
-
tools: string[];
|
|
341
340
|
title: string;
|
|
341
|
+
tools: string[];
|
|
342
342
|
icon: string;
|
|
343
|
-
id?: string | undefined;
|
|
344
|
-
name?: string | undefined;
|
|
345
343
|
url?: string | undefined;
|
|
344
|
+
name?: string | undefined;
|
|
346
345
|
description?: string | undefined;
|
|
346
|
+
id?: string | undefined;
|
|
347
347
|
resourceName?: string | undefined;
|
|
348
348
|
mimeTypePattern?: string | undefined;
|
|
349
349
|
prompt?: string | undefined;
|
|
@@ -353,12 +353,12 @@ declare const ViewBinding: {
|
|
|
353
353
|
views: {
|
|
354
354
|
title: string;
|
|
355
355
|
icon: string;
|
|
356
|
-
id?: string | undefined;
|
|
357
|
-
name?: string | undefined;
|
|
358
356
|
url?: string | undefined;
|
|
357
|
+
name?: string | undefined;
|
|
359
358
|
description?: string | undefined;
|
|
360
|
-
resourceName?: string | undefined;
|
|
361
359
|
tools?: string[] | undefined;
|
|
360
|
+
id?: string | undefined;
|
|
361
|
+
resourceName?: string | undefined;
|
|
362
362
|
mimeTypePattern?: string | undefined;
|
|
363
363
|
prompt?: string | undefined;
|
|
364
364
|
installBehavior?: "open" | "none" | "autoPin" | undefined;
|
|
@@ -390,13 +390,13 @@ declare const VIEW_BINDING_SCHEMA: readonly [{
|
|
|
390
390
|
prompt: z.ZodOptional<z.ZodString>;
|
|
391
391
|
installBehavior: z.ZodOptional<z.ZodEnum<["none", "open", "autoPin"]>>;
|
|
392
392
|
}, "strip", z.ZodTypeAny, {
|
|
393
|
-
tools: string[];
|
|
394
393
|
title: string;
|
|
394
|
+
tools: string[];
|
|
395
395
|
icon: string;
|
|
396
|
-
id?: string | undefined;
|
|
397
|
-
name?: string | undefined;
|
|
398
396
|
url?: string | undefined;
|
|
397
|
+
name?: string | undefined;
|
|
399
398
|
description?: string | undefined;
|
|
399
|
+
id?: string | undefined;
|
|
400
400
|
resourceName?: string | undefined;
|
|
401
401
|
mimeTypePattern?: string | undefined;
|
|
402
402
|
prompt?: string | undefined;
|
|
@@ -404,25 +404,25 @@ declare const VIEW_BINDING_SCHEMA: readonly [{
|
|
|
404
404
|
}, {
|
|
405
405
|
title: string;
|
|
406
406
|
icon: string;
|
|
407
|
-
id?: string | undefined;
|
|
408
|
-
name?: string | undefined;
|
|
409
407
|
url?: string | undefined;
|
|
408
|
+
name?: string | undefined;
|
|
410
409
|
description?: string | undefined;
|
|
411
|
-
resourceName?: string | undefined;
|
|
412
410
|
tools?: string[] | undefined;
|
|
411
|
+
id?: string | undefined;
|
|
412
|
+
resourceName?: string | undefined;
|
|
413
413
|
mimeTypePattern?: string | undefined;
|
|
414
414
|
prompt?: string | undefined;
|
|
415
415
|
installBehavior?: "open" | "none" | "autoPin" | undefined;
|
|
416
416
|
}>, "many">;
|
|
417
417
|
}, "strip", z.ZodTypeAny, {
|
|
418
418
|
views: {
|
|
419
|
-
tools: string[];
|
|
420
419
|
title: string;
|
|
420
|
+
tools: string[];
|
|
421
421
|
icon: string;
|
|
422
|
-
id?: string | undefined;
|
|
423
|
-
name?: string | undefined;
|
|
424
422
|
url?: string | undefined;
|
|
423
|
+
name?: string | undefined;
|
|
425
424
|
description?: string | undefined;
|
|
425
|
+
id?: string | undefined;
|
|
426
426
|
resourceName?: string | undefined;
|
|
427
427
|
mimeTypePattern?: string | undefined;
|
|
428
428
|
prompt?: string | undefined;
|
|
@@ -432,12 +432,12 @@ declare const VIEW_BINDING_SCHEMA: readonly [{
|
|
|
432
432
|
views: {
|
|
433
433
|
title: string;
|
|
434
434
|
icon: string;
|
|
435
|
-
id?: string | undefined;
|
|
436
|
-
name?: string | undefined;
|
|
437
435
|
url?: string | undefined;
|
|
436
|
+
name?: string | undefined;
|
|
438
437
|
description?: string | undefined;
|
|
439
|
-
resourceName?: string | undefined;
|
|
440
438
|
tools?: string[] | undefined;
|
|
439
|
+
id?: string | undefined;
|
|
440
|
+
resourceName?: string | undefined;
|
|
441
441
|
mimeTypePattern?: string | undefined;
|
|
442
442
|
prompt?: string | undefined;
|
|
443
443
|
installBehavior?: "open" | "none" | "autoPin" | undefined;
|
|
@@ -458,13 +458,13 @@ declare const listViewsSchema: z.ZodObject<{
|
|
|
458
458
|
prompt: z.ZodOptional<z.ZodString>;
|
|
459
459
|
installBehavior: z.ZodOptional<z.ZodEnum<["none", "open", "autoPin"]>>;
|
|
460
460
|
}, "strip", z.ZodTypeAny, {
|
|
461
|
-
tools: string[];
|
|
462
461
|
title: string;
|
|
462
|
+
tools: string[];
|
|
463
463
|
icon: string;
|
|
464
|
-
id?: string | undefined;
|
|
465
|
-
name?: string | undefined;
|
|
466
464
|
url?: string | undefined;
|
|
465
|
+
name?: string | undefined;
|
|
467
466
|
description?: string | undefined;
|
|
467
|
+
id?: string | undefined;
|
|
468
468
|
resourceName?: string | undefined;
|
|
469
469
|
mimeTypePattern?: string | undefined;
|
|
470
470
|
prompt?: string | undefined;
|
|
@@ -472,25 +472,25 @@ declare const listViewsSchema: z.ZodObject<{
|
|
|
472
472
|
}, {
|
|
473
473
|
title: string;
|
|
474
474
|
icon: string;
|
|
475
|
-
id?: string | undefined;
|
|
476
|
-
name?: string | undefined;
|
|
477
475
|
url?: string | undefined;
|
|
476
|
+
name?: string | undefined;
|
|
478
477
|
description?: string | undefined;
|
|
479
|
-
resourceName?: string | undefined;
|
|
480
478
|
tools?: string[] | undefined;
|
|
479
|
+
id?: string | undefined;
|
|
480
|
+
resourceName?: string | undefined;
|
|
481
481
|
mimeTypePattern?: string | undefined;
|
|
482
482
|
prompt?: string | undefined;
|
|
483
483
|
installBehavior?: "open" | "none" | "autoPin" | undefined;
|
|
484
484
|
}>, "many">;
|
|
485
485
|
}, "strip", z.ZodTypeAny, {
|
|
486
486
|
views: {
|
|
487
|
-
tools: string[];
|
|
488
487
|
title: string;
|
|
488
|
+
tools: string[];
|
|
489
489
|
icon: string;
|
|
490
|
-
id?: string | undefined;
|
|
491
|
-
name?: string | undefined;
|
|
492
490
|
url?: string | undefined;
|
|
491
|
+
name?: string | undefined;
|
|
493
492
|
description?: string | undefined;
|
|
493
|
+
id?: string | undefined;
|
|
494
494
|
resourceName?: string | undefined;
|
|
495
495
|
mimeTypePattern?: string | undefined;
|
|
496
496
|
prompt?: string | undefined;
|
|
@@ -500,12 +500,12 @@ declare const listViewsSchema: z.ZodObject<{
|
|
|
500
500
|
views: {
|
|
501
501
|
title: string;
|
|
502
502
|
icon: string;
|
|
503
|
-
id?: string | undefined;
|
|
504
|
-
name?: string | undefined;
|
|
505
503
|
url?: string | undefined;
|
|
504
|
+
name?: string | undefined;
|
|
506
505
|
description?: string | undefined;
|
|
507
|
-
resourceName?: string | undefined;
|
|
508
506
|
tools?: string[] | undefined;
|
|
507
|
+
id?: string | undefined;
|
|
508
|
+
resourceName?: string | undefined;
|
|
509
509
|
mimeTypePattern?: string | undefined;
|
|
510
510
|
prompt?: string | undefined;
|
|
511
511
|
installBehavior?: "open" | "none" | "autoPin" | undefined;
|
|
@@ -750,11 +750,11 @@ declare const DeleteOutputSchema: z.ZodObject<{
|
|
|
750
750
|
success: z.ZodBoolean;
|
|
751
751
|
uri: z.ZodString;
|
|
752
752
|
}, "strip", z.ZodTypeAny, {
|
|
753
|
-
success: boolean;
|
|
754
753
|
uri: string;
|
|
755
|
-
}, {
|
|
756
754
|
success: boolean;
|
|
755
|
+
}, {
|
|
757
756
|
uri: string;
|
|
757
|
+
success: boolean;
|
|
758
758
|
}>;
|
|
759
759
|
/**
|
|
760
760
|
* Factory function to create item schema for a specific resource type
|
package/dist/bindings/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { VIEW_BINDING_SCHEMA, CHANNEL_BINDING_SCHEMA, ResourceUriSchema } from '../chunk-
|
|
2
|
-
export { CHANNEL_BINDING_SCHEMA, ChannelBinding, DeleteInputSchema, DeleteOutputSchema, DescribeInputSchema, DescribeOutputSchema, ReadInputSchema, ResourceUriSchema, SearchInputSchema, VIEW_BINDING_SCHEMA, ViewBinding, bindingClient, createCreateInputSchema, createCreateOutputSchema, createDeconfigResource, createItemSchema, createReadOutputSchema, createResourceBindings, createSearchOutputSchema, createUpdateInputSchema, createUpdateOutputSchema, impl, listViewsSchema } from '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
1
|
+
import { VIEW_BINDING_SCHEMA, CHANNEL_BINDING_SCHEMA, ResourceUriSchema } from '../chunk-O6IURJAY.js';
|
|
2
|
+
export { CHANNEL_BINDING_SCHEMA, ChannelBinding, DeleteInputSchema, DeleteOutputSchema, DescribeInputSchema, DescribeOutputSchema, ReadInputSchema, ResourceUriSchema, SearchInputSchema, VIEW_BINDING_SCHEMA, ViewBinding, bindingClient, createCreateInputSchema, createCreateOutputSchema, createDeconfigResource, createItemSchema, createReadOutputSchema, createResourceBindings, createSearchOutputSchema, createUpdateInputSchema, createUpdateOutputSchema, impl, listViewsSchema } from '../chunk-O6IURJAY.js';
|
|
3
|
+
import '../chunk-QELHWEZH.js';
|
|
4
|
+
import '../chunk-F6XZPFWM.js';
|
|
5
5
|
export { ResourcePath, ResourceUri, getMetadataString as deconfigGetMetadataString, getMetadataValue as deconfigGetMetadataValue, normalizeDirectory as deconfigNormalizeDirectory } from '../chunk-UHR3BLMF.js';
|
|
6
|
-
import '../chunk-
|
|
6
|
+
import '../chunk-I2KGAHFY.js';
|
|
7
7
|
import '../chunk-AOFOWQXY.js';
|
|
8
|
-
import '../chunk-
|
|
8
|
+
import '../chunk-NKUMVYKI.js';
|
|
9
9
|
import '../chunk-I7BWSAN6.js';
|
|
10
10
|
import { z } from 'zod';
|
|
11
11
|
|
|
@@ -74,9 +74,7 @@ var createServerClient = async (mcpServer, signal, extraHeaders) => {
|
|
|
74
74
|
}
|
|
75
75
|
const client = new Client({
|
|
76
76
|
name: mcpServer?.name ?? "MCP Client",
|
|
77
|
-
version: "1.0.0"
|
|
78
|
-
timeout: 18e4
|
|
79
|
-
// 3 minutes
|
|
77
|
+
version: "1.0.0"
|
|
80
78
|
});
|
|
81
79
|
await client.connect(transport);
|
|
82
80
|
return client;
|
|
@@ -125,5 +123,5 @@ var createTransport = (connection, signal, extraHeaders) => {
|
|
|
125
123
|
};
|
|
126
124
|
|
|
127
125
|
export { createServerClient, createTransport };
|
|
128
|
-
//# sourceMappingURL=chunk-
|
|
129
|
-
//# sourceMappingURL=chunk-
|
|
126
|
+
//# sourceMappingURL=chunk-F6XZPFWM.js.map
|
|
127
|
+
//# sourceMappingURL=chunk-F6XZPFWM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/http-client-transport.ts","../src/mcp-client.ts"],"names":["BaseClient"],"mappings":"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","file":"chunk-F6XZPFWM.js","sourcesContent":["import type { JSONRPCMessage } from \"@modelcontextprotocol/sdk/types.js\";\nimport {\n StreamableHTTPClientTransport,\n type StreamableHTTPClientTransportOptions,\n} from \"@modelcontextprotocol/sdk/client/streamableHttp.js\";\n\nexport class HTTPClientTransport extends StreamableHTTPClientTransport {\n constructor(url: URL, opts?: StreamableHTTPClientTransportOptions) {\n super(url, opts);\n }\n\n override send(\n message: JSONRPCMessage,\n options?: {\n resumptionToken?: string;\n onresumptiontoken?: (token: string) => void;\n },\n ): Promise<void> {\n const mockAction = getMockActionFor(message);\n if (mockAction?.type === \"emit\") {\n this.onmessage?.(mockAction.message);\n return Promise.resolve();\n }\n if (mockAction?.type === \"suppress\") {\n return Promise.resolve();\n }\n return super.send(message, options);\n }\n}\n\ntype MockAction =\n | { type: \"emit\"; message: JSONRPCMessage }\n | { type: \"suppress\" };\n\nfunction getMockActionFor(message: JSONRPCMessage): MockAction | null {\n const m = message;\n if (!m || typeof m !== \"object\" || !(\"method\" in m)) return null;\n\n switch (m.method) {\n case \"initialize\": {\n const protocolVersion = m?.params?.protocolVersion;\n if (!protocolVersion) return null;\n return {\n type: \"emit\",\n message: {\n result: {\n protocolVersion,\n capabilities: { tools: {} },\n serverInfo: { name: \"deco-chat-server\", version: \"1.0.0\" },\n },\n jsonrpc: m.jsonrpc ?? \"2.0\",\n // @ts-expect-error - id is not typed\n id: m.id,\n } as JSONRPCMessage,\n };\n }\n case \"notifications/roots/list_changed\":\n case \"notifications/initialized\":\n case \"notifications/cancelled\":\n case \"notifications/progress\": {\n return { type: \"suppress\" };\n }\n default:\n return null;\n }\n}\n","import {\n Client as BaseClient,\n ClientOptions,\n} from \"@modelcontextprotocol/sdk/client/index.js\";\nimport {\n SSEClientTransport,\n SSEClientTransportOptions,\n} from \"@modelcontextprotocol/sdk/client/sse.js\";\nimport { WebSocketClientTransport } from \"@modelcontextprotocol/sdk/client/websocket.js\";\nimport { RequestOptions } from \"@modelcontextprotocol/sdk/shared/protocol.js\";\nimport {\n Implementation,\n ListToolsRequest,\n ListToolsResultSchema,\n} from \"@modelcontextprotocol/sdk/types.js\";\nimport { MCPConnection } from \"./connection.ts\";\nimport { HTTPClientTransport } from \"./http-client-transport.ts\";\n\n/**\n * WARNNING: This is a hack to prevent schema compilation errors.\n * More info at: https://github.com/modelcontextprotocol/typescript-sdk/issues/923\n *\n * Make sure to keep this updated with the right version of the SDK.\n * https://github.com/modelcontextprotocol/typescript-sdk/blob/bf817939917277a4c59f2e19e7b44b8dd7ff140c/src/client/index.ts#L480\n */\nclass Client extends BaseClient {\n constructor(_clientInfo: Implementation, options?: ClientOptions) {\n super(_clientInfo, options);\n }\n\n override async listTools(\n params?: ListToolsRequest[\"params\"],\n options?: RequestOptions,\n ) {\n const result = await this.request(\n { method: \"tools/list\", params },\n ListToolsResultSchema,\n options,\n );\n\n return result;\n }\n}\n\nexport const createServerClient = async (\n mcpServer: { connection: MCPConnection; name?: string },\n signal?: AbortSignal,\n extraHeaders?: Record<string, string>,\n): Promise<Client> => {\n const transport = createTransport(mcpServer.connection, signal, extraHeaders);\n\n if (!transport) {\n throw new Error(\"Unknown MCP connection type\");\n }\n\n const client = new Client({\n name: mcpServer?.name ?? \"MCP Client\",\n version: \"1.0.0\",\n });\n\n await client.connect(transport);\n\n return client;\n};\n\nexport const createTransport = (\n connection: MCPConnection,\n signal?: AbortSignal,\n extraHeaders?: Record<string, string>,\n) => {\n if (connection.type === \"Websocket\") {\n return new WebSocketClientTransport(new URL(connection.url));\n }\n\n if (connection.type !== \"SSE\" && connection.type !== \"HTTP\") {\n return null;\n }\n\n const authHeaders: Record<string, string> = connection.token\n ? { authorization: `Bearer ${connection.token}` }\n : {};\n\n const headers: Record<string, string> = {\n ...authHeaders,\n ...(extraHeaders ?? {}),\n ...(\"headers\" in connection ? connection.headers || {} : {}),\n };\n\n if (connection.type === \"SSE\") {\n const config: SSEClientTransportOptions = {\n requestInit: { headers, signal },\n };\n\n if (connection.token) {\n config.eventSourceInit = {\n fetch: (req, init) => {\n return fetch(req, {\n ...init,\n headers: {\n ...headers,\n Accept: \"text/event-stream\",\n },\n signal,\n });\n },\n };\n }\n\n return new SSEClientTransport(new URL(connection.url), config);\n }\n return new HTTPClientTransport(new URL(connection.url), {\n requestInit: {\n headers,\n signal,\n // @ts-ignore - this is a valid option for fetch\n credentials: \"include\",\n },\n });\n};\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ViewsListOutputSchema } from './chunk-AOFOWQXY.js';
|
|
2
|
-
import { ResourcesReadOutputSchema, ResourcesReadInputSchema, ResourceSearchOutputSchema, ResourceSearchInputSchema, ResourceCreateOutputSchema, ResourceCreateInputSchema, ResourceUpdateOutputSchema, ResourceUpdateInputSchema, ResourceDeleteOutputSchema, ResourceDeleteInputSchema, ResourcesListOutputSchema } from './chunk-
|
|
2
|
+
import { ResourcesReadOutputSchema, ResourcesReadInputSchema, ResourceSearchOutputSchema, ResourceSearchInputSchema, ResourceCreateOutputSchema, ResourceCreateInputSchema, ResourceUpdateOutputSchema, ResourceUpdateInputSchema, ResourceDeleteOutputSchema, ResourceDeleteInputSchema, ResourcesListOutputSchema } from './chunk-NKUMVYKI.js';
|
|
3
3
|
import { __using, __callDispose } from './chunk-I7BWSAN6.js';
|
|
4
4
|
import { HttpServerTransport } from '@deco/mcp/http';
|
|
5
5
|
import { createTool as createTool$1 } from '@mastra/core';
|
|
@@ -68,6 +68,17 @@ function createPrivateTool(opts) {
|
|
|
68
68
|
}
|
|
69
69
|
return createTool(opts);
|
|
70
70
|
}
|
|
71
|
+
function createStreamableTool(streamableTool) {
|
|
72
|
+
return {
|
|
73
|
+
...streamableTool,
|
|
74
|
+
execute: (input) => {
|
|
75
|
+
return streamableTool.execute({
|
|
76
|
+
...input,
|
|
77
|
+
runtimeContext: createRuntimeContext(input.runtimeContext)
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
71
82
|
function createTool(opts) {
|
|
72
83
|
return createTool$1({
|
|
73
84
|
...opts,
|
|
@@ -93,6 +104,9 @@ function createStep(opts) {
|
|
|
93
104
|
}
|
|
94
105
|
});
|
|
95
106
|
}
|
|
107
|
+
function isStreamableTool(tool) {
|
|
108
|
+
return tool && "streamable" in tool && tool.streamable === true;
|
|
109
|
+
}
|
|
96
110
|
var decoChatOAuthToolsFor = ({
|
|
97
111
|
state: schema,
|
|
98
112
|
scopes
|
|
@@ -433,16 +447,22 @@ var createMCPServer = (options) => {
|
|
|
433
447
|
server.registerTool(
|
|
434
448
|
tool.id,
|
|
435
449
|
{
|
|
450
|
+
_meta: {
|
|
451
|
+
streamable: isStreamableTool(tool)
|
|
452
|
+
},
|
|
436
453
|
description: tool.description,
|
|
437
454
|
inputSchema: tool.inputSchema && "shape" in tool.inputSchema ? tool.inputSchema.shape : z.object({}).shape,
|
|
438
|
-
outputSchema: tool.outputSchema && typeof tool.outputSchema === "object" && "shape" in tool.outputSchema ? tool.outputSchema.shape : z.object({}).shape
|
|
455
|
+
outputSchema: isStreamableTool(tool) ? z.object({ bytes: z.record(z.string(), z.number()) }).shape : tool.outputSchema && typeof tool.outputSchema === "object" && "shape" in tool.outputSchema ? tool.outputSchema.shape : z.object({}).shape
|
|
439
456
|
},
|
|
440
457
|
async (args) => {
|
|
441
|
-
|
|
458
|
+
let result = await tool.execute({
|
|
442
459
|
context: args,
|
|
443
460
|
runId: crypto.randomUUID(),
|
|
444
461
|
runtimeContext: createRuntimeContext()
|
|
445
462
|
});
|
|
463
|
+
if (isStreamableTool(tool) && result instanceof Response) {
|
|
464
|
+
result = { bytes: await result.bytes() };
|
|
465
|
+
}
|
|
446
466
|
return {
|
|
447
467
|
structuredContent: result,
|
|
448
468
|
content: [
|
|
@@ -489,6 +509,6 @@ var createMCPServer = (options) => {
|
|
|
489
509
|
};
|
|
490
510
|
};
|
|
491
511
|
|
|
492
|
-
export { State, createMCPServer, createPrivateTool, createRuntimeContext, createStep, createStepFromTool, createTool, isWorkflow };
|
|
493
|
-
//# sourceMappingURL=chunk-
|
|
494
|
-
//# sourceMappingURL=chunk-
|
|
512
|
+
export { State, createMCPServer, createPrivateTool, createRuntimeContext, createStep, createStepFromTool, createStreamableTool, createTool, isStreamableTool, isWorkflow };
|
|
513
|
+
//# sourceMappingURL=chunk-I2KGAHFY.js.map
|
|
514
|
+
//# sourceMappingURL=chunk-I2KGAHFY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/state.ts","../src/mastra.ts"],"names":["mastraCreateTool","mastraCreateStep","z","_","bindings","w","base"],"mappings":"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","file":"chunk-I2KGAHFY.js","sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\nimport { z } from \"zod\";\nimport type { AppContext } from \"./mastra.ts\";\nimport { createTool } from \"./mastra.ts\";\n\nconst asyncLocalStorage = new AsyncLocalStorage<AppContext | undefined>();\n\nexport const State = {\n getStore: () => {\n return asyncLocalStorage.getStore();\n },\n run: <TEnv, R, TArgs extends unknown[]>(\n ctx: AppContext<TEnv>,\n f: (...args: TArgs) => R,\n ...args: TArgs\n ): R => asyncLocalStorage.run(ctx, f, ...args),\n};\n\nexport interface ValidationPayload {\n state: unknown;\n}\n\nexport const createStateValidationTool = (stateSchema?: z.ZodTypeAny) => {\n return createTool({\n id: \"DECO_CHAT_STATE_VALIDATION\",\n description: \"Validate the state of the OAuth flow\",\n inputSchema: z.object({\n state: z.unknown(),\n }),\n outputSchema: z.object({\n valid: z.boolean(),\n }),\n execute: (ctx) => {\n if (!stateSchema) {\n return Promise.resolve({ valid: true });\n }\n const parsed = stateSchema.safeParse(ctx.context.state);\n return Promise.resolve({\n valid: parsed.success,\n reason: parsed.error?.message,\n });\n },\n });\n};\n","/* oxlint-disable no-explicit-any */\n/* oxlint-disable ban-types */\nimport { HttpServerTransport } from \"@deco/mcp/http\";\nimport {\n createTool as mastraCreateTool,\n Tool,\n type ToolAction,\n type ToolExecutionContext,\n type Workflow,\n} from \"@mastra/core\";\nimport { RuntimeContext } from \"@mastra/core/di\";\nimport {\n createWorkflow,\n createStep as mastraCreateStep,\n type DefaultEngineType,\n type ExecuteFunction,\n type Step as MastraStep,\n} from \"@mastra/core/workflows\";\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { z } from \"zod\";\nimport { zodToJsonSchema } from \"zod-to-json-schema\";\nimport type { DefaultEnv } from \"./index.ts\";\nimport {\n ResourceCreateInputSchema,\n ResourceCreateOutputSchema,\n ResourceDeleteInputSchema,\n ResourceDeleteOutputSchema,\n ResourceSearchInputSchema,\n ResourceSearchOutputSchema,\n ResourcesListOutputSchema,\n ResourcesReadInputSchema,\n ResourcesReadOutputSchema,\n ResourceUpdateInputSchema,\n ResourceUpdateOutputSchema,\n} from \"./resources.ts\";\nimport { createStateValidationTool, State } from \"./state.ts\";\nimport { ViewsListOutputSchema } from \"./views.ts\";\nexport { createWorkflow };\n\nexport { cloneStep, cloneWorkflow } from \"@mastra/core/workflows\";\n\nexport const createRuntimeContext = (prev?: RuntimeContext<AppContext>) => {\n const runtimeContext = new RuntimeContext<AppContext>();\n const store = State.getStore();\n if (!store) {\n if (prev) {\n return prev;\n }\n throw new Error(\"Missing context, did you forget to call State.bind?\");\n }\n const { env, ctx, req } = store;\n runtimeContext.set(\"env\", env);\n runtimeContext.set(\"ctx\", ctx);\n runtimeContext.set(\"req\", req);\n return runtimeContext;\n};\n\n/**\n * creates a private tool that always ensure for athentication before being executed\n */\nexport function createPrivateTool<\n TSchemaIn extends z.ZodSchema = z.ZodSchema,\n TSchemaOut extends z.ZodSchema | undefined = undefined,\n TSuspendSchema extends z.ZodSchema = z.ZodSchema,\n TResumeSchema extends z.ZodSchema = z.ZodSchema,\n TContext extends\n ToolExecutionContext<TSchemaIn> = ToolExecutionContext<TSchemaIn>,\n TExecute extends ToolAction<\n TSchemaIn,\n TSchemaOut,\n any,\n any,\n TContext\n >[\"execute\"] = ToolAction<\n TSchemaIn,\n TSchemaOut,\n any,\n any,\n TContext\n >[\"execute\"],\n>(\n opts: ToolAction<\n TSchemaIn,\n TSchemaOut,\n TSuspendSchema,\n TResumeSchema,\n TContext\n > & {\n execute?: TExecute;\n },\n): [TSchemaIn, TSchemaOut, TSuspendSchema, TResumeSchema, TExecute] extends [\n z.ZodSchema,\n z.ZodSchema,\n z.ZodSchema,\n z.ZodSchema,\n Function,\n]\n ? Tool<TSchemaIn, TSchemaOut, TSuspendSchema, TResumeSchema, TContext> & {\n inputSchema: TSchemaIn;\n outputSchema: TSchemaOut;\n execute: (context: TContext) => Promise<any>;\n }\n : Tool<TSchemaIn, TSchemaOut, TSuspendSchema, TResumeSchema, TContext> {\n const execute = opts.execute;\n if (typeof execute === \"function\") {\n opts.execute = ((input, options) => {\n const env = input.runtimeContext.get(\"env\") as DefaultEnv;\n if (env) {\n env.DECO_REQUEST_CONTEXT.ensureAuthenticated();\n }\n return execute(input, options);\n }) as TExecute;\n }\n return createTool(opts);\n}\n\nexport interface StreamableTool<TSchemaIn extends z.ZodSchema = z.ZodSchema> {\n id: string;\n inputSchema: TSchemaIn;\n streamable?: true;\n description?: string;\n execute: (input: ToolExecutionContext<TSchemaIn>) => Promise<Response>;\n}\n\nexport function createStreamableTool<\n TSchemaIn extends z.ZodSchema = z.ZodSchema,\n>(streamableTool: StreamableTool<TSchemaIn>): StreamableTool<TSchemaIn> {\n return {\n ...streamableTool,\n execute: (input: ToolExecutionContext<TSchemaIn>) => {\n return streamableTool.execute({\n ...input,\n runtimeContext: createRuntimeContext(input.runtimeContext),\n });\n },\n };\n}\n\nexport function createTool<\n TSchemaIn extends z.ZodSchema | undefined = undefined,\n TSchemaOut extends z.ZodSchema | undefined = undefined,\n TSuspendSchema extends z.ZodSchema = z.ZodSchema,\n TResumeSchema extends z.ZodSchema = z.ZodSchema,\n TContext extends ToolExecutionContext<\n TSchemaIn,\n TSuspendSchema,\n TResumeSchema\n > = ToolExecutionContext<TSchemaIn, TSuspendSchema, TResumeSchema>,\n TExecute extends ToolAction<\n TSchemaIn,\n TSchemaOut,\n TSuspendSchema,\n TResumeSchema,\n TContext\n >[\"execute\"] = ToolAction<\n TSchemaIn,\n TSchemaOut,\n TSuspendSchema,\n TResumeSchema,\n TContext\n >[\"execute\"],\n>(\n opts: ToolAction<\n TSchemaIn,\n TSchemaOut,\n TSuspendSchema,\n TResumeSchema,\n TContext\n > & {\n execute?: TExecute;\n },\n): [TSchemaIn, TSchemaOut, TSuspendSchema, TResumeSchema, TExecute] extends [\n z.ZodSchema,\n z.ZodSchema,\n z.ZodSchema,\n z.ZodSchema,\n Function,\n]\n ? Tool<TSchemaIn, TSchemaOut, TSuspendSchema, TResumeSchema, TContext> & {\n inputSchema: TSchemaIn;\n outputSchema: TSchemaOut;\n execute: (context: TContext) => Promise<any>;\n }\n : Tool<TSchemaIn, TSchemaOut, TSuspendSchema, TResumeSchema, TContext> {\n // @ts-expect-error - TSchemaIn is not a ZodType\n return mastraCreateTool({\n ...opts,\n execute:\n typeof opts?.execute === \"function\"\n ? (((input) => {\n return opts.execute!({\n ...input,\n runtimeContext: createRuntimeContext(input.runtimeContext),\n });\n }) as TExecute)\n : opts.execute,\n });\n}\n\nexport type ExecWithContext<TF extends (...args: any[]) => any> = (\n input: Omit<Parameters<TF>[0], \"runtimeContext\"> & {\n runtimeContext: RuntimeContext<AppContext>;\n },\n) => ReturnType<TF>;\n\nexport interface Step<\n TStepId extends string = string,\n // @ts-expect-error - TState is not a ZodObject\n TState extends z.ZodObject<any> = z.ZodObject<any, z.$strip>,\n TSchemaIn extends z.ZodType<any> = z.ZodType<any>,\n TSchemaOut extends z.ZodType<any> = z.ZodType<any>,\n TResumeSchema extends z.ZodType<any> = z.ZodType<any>,\n TSuspendSchema extends z.ZodType<any> = z.ZodType<any>,\n TEngineType = any,\n> extends Omit<\n MastraStep<\n TStepId,\n TState,\n TSchemaIn,\n TSchemaOut,\n TResumeSchema,\n TSuspendSchema,\n TEngineType\n >,\n \"execute\"\n > {\n execute: ExecWithContext<\n ExecuteFunction<\n z.infer<TState>,\n z.infer<TSchemaIn>,\n z.infer<TSchemaOut>,\n z.infer<TResumeSchema>,\n z.infer<TSuspendSchema>,\n TEngineType\n >\n >;\n}\nexport function createStepFromTool<\n TSchemaIn extends z.ZodType<any>,\n TSchemaOut extends z.ZodType<any>,\n TSuspendSchema extends z.ZodType<any>,\n TResumeSchema extends z.ZodType<any>,\n TContext extends ToolExecutionContext<\n TSchemaIn,\n TSuspendSchema,\n TResumeSchema\n >,\n>(\n tool: Tool<TSchemaIn, TSchemaOut, TSuspendSchema, TResumeSchema, TContext> & {\n inputSchema: TSchemaIn;\n outputSchema: TSchemaOut;\n execute: (context: TContext) => Promise<any>;\n },\n): Step<\n string,\n // @ts-expect-error - TSchemaIn is not a ZodType\n TSchemaIn,\n TSchemaOut,\n z.ZodType<any>,\n z.ZodType<any>,\n DefaultEngineType\n> {\n // @ts-expect-error - TSchemaIn is not a ZodType\n return mastraCreateStep(tool);\n}\n\nexport function createStep<\n TStepId extends string,\n TStepInput extends z.ZodType<any>,\n TStepOutput extends z.ZodType<any>,\n TResumeSchema extends z.ZodType<any>,\n TSuspendSchema extends z.ZodType<any>,\n>(opts: {\n id: TStepId;\n description?: string;\n inputSchema: TStepInput;\n outputSchema: TStepOutput;\n resumeSchema?: TResumeSchema;\n suspendSchema?: TSuspendSchema;\n execute: ExecWithContext<\n // @ts-expect-error - TStepInput is not a ZodObject\n ExecuteFunction<\n z.infer<TStepInput>,\n z.infer<TStepOutput>,\n z.infer<TResumeSchema>,\n z.infer<TSuspendSchema>,\n DefaultEngineType\n >\n >;\n}): Step<\n TStepId,\n // @ts-expect-error - TStepInput is not a ZodObject\n TStepInput,\n TStepOutput,\n TResumeSchema,\n TSuspendSchema,\n DefaultEngineType\n> {\n // @ts-expect-error - TStepInput is not a ZodObject\n return mastraCreateStep({\n ...opts,\n execute: (input) => {\n return opts.execute({\n ...input,\n runtimeContext: createRuntimeContext(input.runtimeContext),\n });\n },\n });\n}\n\nexport interface ViewExport {\n title: string;\n icon: string;\n url: string;\n tools?: string[];\n rules?: string[];\n installBehavior?: \"none\" | \"open\" | \"autoPin\";\n}\n\nexport type Resources<Env = any, TSchema extends z.ZodTypeAny = never> = Array<\n (env: Env & DefaultEnv<TSchema>) => {\n name: string;\n icon: string;\n title: string;\n description?: string;\n tools: {\n read: (args: { uri: string }) => Promise<unknown>;\n search: (args: {\n term: string;\n cursor?: string;\n limit?: number;\n }) => Promise<unknown>;\n create?: (\n args: z.infer<typeof ResourceCreateInputSchema>,\n ) => Promise<unknown>;\n update?: (\n args: z.infer<typeof ResourceUpdateInputSchema>,\n ) => Promise<unknown>;\n delete?: (\n args: z.infer<typeof ResourceDeleteInputSchema>,\n ) => Promise<unknown>;\n };\n views?: {\n list?: { url?: string; tools?: string[]; rules?: string[] };\n detail?: {\n url?: string;\n mimeTypePattern?: string;\n resourceName?: string;\n tools?: string[];\n rules?: string[];\n };\n };\n }\n>;\nexport interface Integration {\n id: string;\n appId: string;\n}\nexport type CreatedTool =\n | ReturnType<typeof createTool>\n | ReturnType<typeof createStreamableTool>;\nexport function isStreamableTool(tool: CreatedTool): tool is StreamableTool {\n return tool && \"streamable\" in tool && tool.streamable === true;\n}\nexport interface CreateMCPServerOptions<\n Env = any,\n TSchema extends z.ZodTypeAny = never,\n> {\n before?: (env: Env & DefaultEnv<TSchema>) => Promise<void> | void;\n oauth?: {\n state?: TSchema;\n scopes?: string[];\n };\n views?: (\n env: Env & DefaultEnv<TSchema>,\n ) => Promise<ViewExport[]> | ViewExport[];\n resources?: Resources<Env, TSchema>;\n tools?:\n | Array<\n (\n env: Env & DefaultEnv<TSchema>,\n ) =>\n | Promise<CreatedTool>\n | CreatedTool\n | CreatedTool[]\n | Promise<CreatedTool[]>\n >\n | ((\n env: Env & DefaultEnv<TSchema>,\n ) => CreatedTool[] | Promise<CreatedTool[]>);\n workflows?: Array<\n (\n env: Env & DefaultEnv<TSchema>,\n ) => // this is a workaround to allow workflows to be thenables\n | Promise<{ workflow: ReturnType<typeof createWorkflow> }>\n | ReturnType<typeof createWorkflow>\n >;\n}\n\nexport type Fetch<TEnv = any> = (\n req: Request,\n env: TEnv,\n ctx: ExecutionContext,\n) => Promise<Response> | Response;\n\nexport interface AppContext<TEnv = any> {\n env: TEnv;\n ctx: { waitUntil: (promise: Promise<any>) => void };\n req?: Request;\n}\n\nconst decoChatOAuthToolsFor = <TSchema extends z.ZodTypeAny = never>({\n state: schema,\n scopes,\n}: CreateMCPServerOptions<any, TSchema>[\"oauth\"] = {}) => {\n const jsonSchema = schema\n ? zodToJsonSchema(schema)\n : { type: \"object\", properties: {} };\n return [\n createTool({\n id: \"DECO_CHAT_OAUTH_START\",\n description: \"OAuth for Deco Chat\",\n inputSchema: z.object({\n returnUrl: z.string(),\n }),\n outputSchema: z.object({\n stateSchema: z.any(),\n scopes: z.array(z.string()).optional(),\n }),\n execute: () => {\n return Promise.resolve({\n stateSchema: jsonSchema,\n scopes,\n });\n },\n }),\n ];\n};\n\nconst createWorkflowTools = <TEnv = any, TSchema extends z.ZodTypeAny = never>(\n workflow: ReturnType<typeof createWorkflow>,\n bindings: TEnv & DefaultEnv<TSchema>,\n) => {\n const startTool = createTool({\n id: `DECO_CHAT_WORKFLOWS_START_${workflow.id}`,\n description: workflow.description ?? `Start workflow ${workflow.id}`,\n inputSchema:\n workflow.inputSchema && \"shape\" in workflow.inputSchema\n ? workflow.inputSchema\n : z.object({}),\n outputSchema: z.object({\n id: z.string(),\n }),\n execute: async (args) => {\n const store = State.getStore();\n const runId =\n store?.req?.headers.get(\"x-deco-chat-run-id\") ?? crypto.randomUUID();\n const workflowDO = bindings.DECO_WORKFLOW_DO.get(\n bindings.DECO_WORKFLOW_DO.idFromName(runId),\n );\n\n using result = await workflowDO.start({\n workflowId: workflow.id,\n args: args.context,\n runId,\n ctx: bindings.DECO_REQUEST_CONTEXT,\n });\n return { id: result.runId };\n },\n });\n\n const cancelTool = createTool({\n id: `DECO_CHAT_WORKFLOWS_CANCEL_${workflow.id}`,\n description: `Cancel ${workflow.description ?? `workflow ${workflow.id}`}`,\n inputSchema: z.object({ runId: z.string() }),\n outputSchema: z.object({ cancelled: z.boolean() }),\n execute: async (args) => {\n const runId = args.context.runId;\n const workflowDO = bindings.DECO_WORKFLOW_DO.get(\n bindings.DECO_WORKFLOW_DO.idFromName(runId),\n );\n\n using _ = await workflowDO.cancel({\n workflowId: workflow.id,\n runId,\n ctx: bindings.DECO_REQUEST_CONTEXT,\n });\n\n return { cancelled: true };\n },\n });\n\n const resumeTool = createTool({\n id: `DECO_CHAT_WORKFLOWS_RESUME_${workflow.id}`,\n description: `Resume ${workflow.description ?? `workflow ${workflow.id}`}`,\n inputSchema: z.object({\n runId: z.string(),\n stepId: z.string(),\n resumeData: z.any(),\n }),\n outputSchema: z.object({ resumed: z.boolean() }),\n execute: async (args) => {\n const runId = args.context.runId;\n const workflowDO = bindings.DECO_WORKFLOW_DO.get(\n bindings.DECO_WORKFLOW_DO.idFromName(runId),\n );\n\n using _ = await workflowDO.resume({\n workflowId: workflow.id,\n runId,\n resumeData: args.context.resumeData,\n stepId: args.context.stepId,\n ctx: bindings.DECO_REQUEST_CONTEXT,\n });\n\n return { resumed: true };\n },\n });\n\n return [startTool, cancelTool, resumeTool];\n};\n\ntype CallTool = (opts: {\n toolCallId: string;\n toolCallInput: any;\n}) => Promise<any>;\n\nexport type MCPServer<TEnv = any, TSchema extends z.ZodTypeAny = never> = {\n fetch: Fetch<TEnv & DefaultEnv<TSchema>>;\n callTool: CallTool;\n};\n\nexport const isWorkflow = (value: any): value is Workflow => {\n return value && !(value instanceof Promise);\n};\n\nexport const createMCPServer = <\n TEnv = any,\n TSchema extends z.ZodTypeAny = never,\n>(\n options: CreateMCPServerOptions<TEnv, TSchema>,\n): MCPServer<TEnv, TSchema> => {\n const createServer = async (bindings: TEnv & DefaultEnv<TSchema>) => {\n await options.before?.(bindings);\n\n const server = new McpServer(\n { name: \"@deco/mcp-api\", version: \"1.0.0\" },\n { capabilities: { tools: {} } },\n );\n\n // Resolve resources first; build resource tools; append later\n const resolvedResources = await Promise.all(\n options.resources?.map((r) => r(bindings)) ?? [],\n );\n const readHandlers = new Map<\n string,\n (a: { uri: string }) => Promise<any>\n >();\n const searchHandlers = new Map<\n string,\n (a: { term: string; cursor?: string; limit?: number }) => Promise<any>\n >();\n const createHandlers = new Map<string, (a: any) => Promise<any>>();\n const updateHandlers = new Map<string, (a: any) => Promise<any>>();\n const deleteHandlers = new Map<string, (a: any) => Promise<any>>();\n for (const r of resolvedResources) {\n if (r?.tools?.read) readHandlers.set(r.name, r.tools.read);\n if (r?.tools?.search) searchHandlers.set(r.name, r.tools.search);\n if (r?.tools?.create) createHandlers.set(r.name, r.tools.create);\n if (r?.tools?.update) updateHandlers.set(r.name, r.tools.update);\n if (r?.tools?.delete) deleteHandlers.set(r.name, r.tools.delete);\n }\n const resourceTools: ReturnType<typeof createTool>[] = [];\n if (resolvedResources.length > 0) {\n resourceTools.push(\n createTool({\n id: \"DECO_CHAT_RESOURCES_READ\",\n description: \"Read a resource by uri (name + uri)\",\n inputSchema: ResourcesReadInputSchema,\n outputSchema: ResourcesReadOutputSchema,\n execute: (input) => {\n // @ts-expect-error - input.name is not a string\n const fn = readHandlers.get(input.name);\n if (!fn) {\n // @ts-expect-error - input.name is not a string\n throw new Error(`READ not implemented for ${input.name}`);\n }\n // @ts-expect-error - input.name is not a string\n return fn({ uri: input.uri });\n },\n }),\n );\n resourceTools.push(\n createTool({\n id: \"DECO_CHAT_RESOURCES_SEARCH\",\n description: \"Search resources (name + term)\",\n inputSchema: ResourceSearchInputSchema,\n outputSchema: ResourceSearchOutputSchema,\n execute: (input) => {\n // @ts-expect-error - input.name is not a string\n const fn = searchHandlers.get(input.name);\n if (!fn) {\n // @ts-expect-error - input.name is not a string\n throw new Error(`SEARCH not implemented for ${input.name}`);\n }\n // @ts-expect-error - input.name is not a string\n const { term, cursor, limit } = input;\n return fn({ term, cursor, limit });\n },\n }),\n );\n resourceTools.push(\n createTool({\n id: \"DECO_CHAT_RESOURCES_CREATE\",\n description: \"Create a resource (name + content)\",\n inputSchema: ResourceCreateInputSchema,\n outputSchema: ResourceCreateOutputSchema,\n execute: (input) => {\n // @ts-expect-error - input.name is not a string\n const fn = createHandlers.get(input.name);\n if (!fn) {\n // @ts-expect-error - input.name is not a string\n throw new Error(`CREATE not implemented for ${input.name}`);\n }\n return fn(input);\n },\n }),\n );\n resourceTools.push(\n createTool({\n id: \"DECO_CHAT_RESOURCES_UPDATE\",\n description: \"Update a resource (name + uri)\",\n inputSchema: ResourceUpdateInputSchema,\n outputSchema: ResourceUpdateOutputSchema,\n execute: (input) => {\n // @ts-expect-error - input.name is not a string\n const fn = updateHandlers.get(input.name);\n if (!fn) {\n // @ts-expect-error - input.name is not a string\n throw new Error(`UPDATE not implemented for ${input.name}`);\n }\n return fn(input);\n },\n }),\n );\n resourceTools.push(\n createTool({\n id: \"DECO_CHAT_RESOURCES_DELETE\",\n description: \"Delete a resource (name + uri)\",\n inputSchema: ResourceDeleteInputSchema,\n outputSchema: ResourceDeleteOutputSchema,\n execute: (input) => {\n // @ts-expect-error - input.name is not a string\n const fn = deleteHandlers.get(input.name);\n if (!fn) {\n // @ts-expect-error - input.name is not a string\n throw new Error(`DELETE not implemented for ${input.name}`);\n }\n return fn(input);\n },\n }),\n );\n resourceTools.push(\n createTool({\n id: \"DECO_CHAT_RESOURCES_LIST\",\n description: \"List resource types\",\n inputSchema: z.object({}),\n outputSchema: ResourcesListOutputSchema,\n execute: () =>\n Promise.resolve({\n resources: resolvedResources.map((r) => ({\n name: r.name,\n icon: r.icon,\n title: r.title,\n description: r.description ?? \"\",\n hasCreate: Boolean(createHandlers.get(r.name)),\n hasUpdate: Boolean(updateHandlers.get(r.name)),\n hasDelete: Boolean(deleteHandlers.get(r.name)),\n })),\n }),\n }),\n );\n }\n\n const toolsFn =\n typeof options.tools === \"function\"\n ? options.tools\n : async (bindings: TEnv & DefaultEnv<TSchema>) => {\n if (typeof options.tools === \"function\") {\n return await options.tools(bindings);\n }\n return await Promise.all(\n options.tools?.flatMap(async (tool) => {\n const toolResult = tool(bindings);\n const awaited = await toolResult;\n if (Array.isArray(awaited)) {\n return awaited;\n }\n return [awaited];\n }) ?? [],\n ).then((t) => t.flat());\n };\n const tools = await toolsFn(bindings);\n\n // since mastra workflows are thenables, we need to await and add as a prop\n const workflows = await Promise.all(\n options.workflows?.map(async (workflow) => {\n const workflowResult = workflow(bindings);\n if (isWorkflow(workflowResult)) {\n return { workflow: workflowResult };\n }\n\n return await workflowResult;\n }) ?? [],\n ).then((w) => w.map((w) => w.workflow));\n\n const workflowTools =\n workflows?.flatMap((workflow) =>\n createWorkflowTools(workflow, bindings),\n ) ?? [];\n\n tools.push(...workflowTools);\n tools.push(...decoChatOAuthToolsFor<TSchema>(options.oauth));\n tools.push(createStateValidationTool(options.oauth?.state));\n\n tools.push(\n createTool({\n id: `DECO_CHAT_VIEWS_LIST`,\n description: \"List views exposed by this MCP\",\n inputSchema: z.any(),\n outputSchema: ViewsListOutputSchema,\n execute: async () => {\n const base = ((await options.views?.(bindings)) ?? []).map((v) => ({\n id: undefined,\n // Stable machine name for routing: UPPERCASE + underscores\n name: v.title.toUpperCase().replace(/[^A-Z0-9]/g, \"_\"),\n title: v.title,\n description: undefined,\n icon: v.icon,\n url: v.url,\n tools: v.tools ?? [],\n rules: v.rules ?? [],\n installBehavior: v.installBehavior ?? \"none\",\n }));\n const resourceViews = resolvedResources\n .map((r) => {\n const listUrl =\n r.views?.list?.url ??\n `internal://resource/list?name=${encodeURIComponent(r.name)}`;\n\n // Default CRUD tool ids for resources\n const defaultListTools: string[] = (() => {\n const base = [\n \"DECO_CHAT_RESOURCES_LIST\",\n \"DECO_CHAT_RESOURCES_READ\",\n \"DECO_CHAT_RESOURCES_SEARCH\",\n ];\n const canCreate = Boolean(createHandlers.get(r.name));\n const canUpdate = Boolean(updateHandlers.get(r.name));\n const canDelete = Boolean(deleteHandlers.get(r.name));\n if (canCreate) base.push(\"DECO_CHAT_RESOURCES_CREATE\");\n if (canUpdate) base.push(\"DECO_CHAT_RESOURCES_UPDATE\");\n if (canDelete) base.push(\"DECO_CHAT_RESOURCES_DELETE\");\n return base;\n })();\n\n const defaultListRules: string[] = [\n `You are viewing the ${\n r.title ?? r.name\n } resources list. Resources are changeable via Resource tools (DECO_CHAT_RESOURCES_*). Use the appropriate tools to read, search, create, update, or delete items; do not fabricate data.`,\n ];\n\n const list = [\n {\n name: `${r.name.toUpperCase()}_LIST`,\n title: `${r.name} List`,\n description: r.description,\n icon: r.icon,\n url: listUrl,\n tools: r.views?.list?.tools ?? defaultListTools,\n rules: r.views?.list?.rules ?? defaultListRules,\n },\n ];\n const detailUrl =\n r.views?.detail?.url ??\n `internal://resource/detail?name=${encodeURIComponent(r.name)}`;\n const detail = [\n {\n name: `${r.name.toUpperCase()}_DETAIL`,\n title: `${r.name} Detail`,\n description: r.description,\n icon: r.icon,\n url: detailUrl,\n mimeTypePattern: r.views?.detail?.mimeTypePattern,\n resourceName: r.views?.detail?.resourceName ?? r.name,\n tools: r.views?.detail?.tools ?? [],\n rules: r.views?.detail?.rules ?? [],\n },\n ];\n return [...list, ...detail];\n })\n .flat();\n\n return { views: [...base, ...resourceViews] };\n },\n }),\n );\n\n for (const tool of tools) {\n server.registerTool(\n tool.id,\n {\n _meta: {\n streamable: isStreamableTool(tool),\n },\n description: tool.description,\n inputSchema:\n tool.inputSchema && \"shape\" in tool.inputSchema\n ? (tool.inputSchema.shape as z.ZodRawShape)\n : z.object({}).shape,\n outputSchema: isStreamableTool(tool)\n ? z.object({ bytes: z.record(z.string(), z.number()) }).shape\n : tool.outputSchema &&\n typeof tool.outputSchema === \"object\" &&\n \"shape\" in tool.outputSchema\n ? (tool.outputSchema.shape as z.ZodRawShape)\n : z.object({}).shape,\n },\n async (args) => {\n let result = await tool.execute!({\n context: args,\n runId: crypto.randomUUID(),\n runtimeContext: createRuntimeContext(),\n });\n\n if (isStreamableTool(tool) && result instanceof Response) {\n result = { bytes: await result.bytes() };\n }\n return {\n structuredContent: result,\n content: [\n {\n type: \"text\",\n text: JSON.stringify(result),\n },\n ],\n };\n },\n );\n }\n\n return { server, tools };\n };\n\n const fetch = async (\n req: Request,\n env: TEnv & DefaultEnv<TSchema>,\n _ctx: ExecutionContext,\n ) => {\n const { server } = await createServer(env);\n const transport = new HttpServerTransport();\n\n await server.connect(transport);\n\n return await transport.handleMessage(req);\n };\n\n const callTool: CallTool = async ({ toolCallId, toolCallInput }) => {\n const currentState = State.getStore();\n if (!currentState) {\n throw new Error(\"Missing state, did you forget to call State.bind?\");\n }\n const env = currentState?.env;\n const { tools } = await createServer(env);\n const tool = tools.find((t) => t.id === toolCallId);\n const execute = tool?.execute;\n if (!execute) {\n throw new Error(\n `Tool ${toolCallId} not found or does not have an execute function`,\n );\n }\n\n return execute({\n context: toolCallInput,\n runId: crypto.randomUUID(),\n runtimeContext: createRuntimeContext(),\n });\n };\n\n return {\n fetch,\n callTool,\n };\n};\n"]}
|
|
@@ -123,6 +123,6 @@ var mimeType = (filePathOrExtension) => {
|
|
|
123
123
|
return EXTENSION_TO_MIME.get(ext) ?? "text/plain";
|
|
124
124
|
};
|
|
125
125
|
|
|
126
|
-
export { ResourceCreateInputSchema, ResourceCreateOutputSchema, ResourceDeleteInputSchema, ResourceDeleteOutputSchema,
|
|
127
|
-
//# sourceMappingURL=chunk-
|
|
128
|
-
//# sourceMappingURL=chunk-
|
|
126
|
+
export { ResourceCreateInputSchema, ResourceCreateOutputSchema, ResourceDeleteInputSchema, ResourceDeleteOutputSchema, ResourceSearchInputSchema, ResourceSearchOutputSchema, ResourceUpdateInputSchema, ResourceUpdateOutputSchema, ResourcesListInputSchema, ResourcesListOutputSchema, ResourcesReadInputSchema, ResourcesReadOutputSchema, mimeType };
|
|
127
|
+
//# sourceMappingURL=chunk-NKUMVYKI.js.map
|
|
128
|
+
//# sourceMappingURL=chunk-NKUMVYKI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/resources.ts"],"names":[],"mappings":"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","file":"chunk-NKUMVYKI.js","sourcesContent":["import { z } from \"zod\";\nimport mimeDb from \"mime-db\";\n\ntype MimeDb = Record<string, { extensions?: string[] }>;\n\nconst EXTENSION_TO_MIME = (() => {\n const map = new Map<string, string>();\n Object.entries(mimeDb as MimeDb).forEach(([type, meta]) => {\n meta.extensions?.forEach((ext) => {\n if (!map.has(ext)) {\n map.set(ext, type);\n }\n });\n });\n return map;\n})();\n\nfunction extractExtension(value: string): string | undefined {\n if (!value) return undefined;\n const trimmed = value.trim();\n if (!trimmed) return undefined;\n\n const sanitized = trimmed.replace(/^[^?#]*/g, (match) => match);\n const withoutQuery = sanitized.split(/[?#]/)[0];\n\n if (withoutQuery.startsWith(\".\")) {\n return withoutQuery.slice(1).toLowerCase();\n }\n\n if (!withoutQuery.includes(\".\")) {\n if (!withoutQuery.includes(\"/\") && !withoutQuery.includes(\"\\\\\")) {\n return withoutQuery.toLowerCase();\n }\n return undefined;\n }\n\n const lastDot = withoutQuery.lastIndexOf(\".\");\n if (lastDot === -1 || lastDot === withoutQuery.length - 1) return undefined;\n return withoutQuery.slice(lastDot + 1).toLowerCase();\n}\n\n// Base Resource Schema (enhanced)\nconst ResourceSchema = z.object({\n name: z.string(),\n title: z.string().optional(),\n description: z.string().optional(),\n uri: z.string().url(),\n mimeType: z.string().optional(),\n thumbnail: z.string().url().optional(),\n timestamp: z.string().datetime().optional(),\n size: z.number().positive().optional(),\n annotations: z.record(z.string(), z.string()).optional(),\n});\n\n// Tool Input/Output Schemas (unified)\nexport const ResourcesReadInputSchema = z.object({\n name: z.string().describe(\"Resource type name (e.g., 'Page', 'GoogleDrive')\"),\n uri: z\n .string()\n .url()\n .describe(\n \"The URI of the resource to read. It's important to add the url scheme. Use file:// for files. Use https:// or http:// for remote files\",\n ),\n});\n\nexport const ResourcesReadOutputSchema = ResourceSchema.extend({\n data: z.string().describe(\"The resource content as a string\"),\n type: z\n .enum([\"text\", \"blob\"])\n .describe(\n \"Type of data: 'text' for plain text, 'blob' for base64-encoded binary\",\n ),\n});\n\nexport const ResourceSearchInputSchema = z.object({\n name: z.string().describe(\"Resource type name (e.g., 'Page', 'GoogleDrive')\"),\n term: z.string().describe(\"The term to search for\"),\n cursor: z.string().optional(),\n limit: z.number().positive().optional(),\n});\n\nexport const ResourceSearchOutputSchema = z.object({\n items: z.array(ResourceSchema),\n hasMore: z.boolean(),\n nextCursor: z.string().optional(),\n});\n\nexport const ResourceCreateInputSchema = z.object({\n name: z.string().describe(\"Resource type name (e.g., 'Page', 'GoogleDrive')\"),\n resourceName: z\n .string()\n .describe(\n \"Name of the specific resource instance. DO NOT ADD EXTENSIONS TO THE NAME\",\n ),\n title: z.string().optional(),\n description: z.string().optional(),\n content: z\n .object({\n data: z.string(),\n type: z.enum([\"text\", \"blob\"]),\n mimeType: z.string().optional(),\n })\n .describe(\"Content to create the resource with\"),\n metadata: z.record(z.string(), z.any()).optional(),\n});\nexport const ResourceCreateOutputSchema = ResourceSchema;\n\nexport const ResourceUpdateInputSchema = z.object({\n name: z.string().describe(\"Resource type name (e.g., 'Page', 'GoogleDrive')\"),\n uri: z.string().url().describe(\"URI of the resource to update\"),\n resourceName: z.string().optional(),\n title: z.string().optional(),\n description: z.string().optional(),\n content: z\n .object({\n data: z.string(),\n type: z.enum([\"text\", \"blob\"]),\n mimeType: z.string().optional(),\n })\n .optional(),\n metadata: z.record(z.string(), z.any()).optional(),\n});\nexport const ResourceUpdateOutputSchema = ResourceSchema;\n\nexport const ResourceDeleteInputSchema = z.object({\n name: z.string().describe(\"Resource type name (e.g., 'Page', 'GoogleDrive')\"),\n uri: z.string().url().describe(\"URI of the resource to delete\"),\n force: z.boolean().optional(),\n});\nexport const ResourceDeleteOutputSchema = z.object({\n deletedUri: z.string().url(),\n});\n\nexport const ResourcesListInputSchema = z.object({});\nexport const ResourcesListOutputSchema = z.object({\n resources: z.array(\n z.object({\n name: z.string(),\n icon: z.string(),\n title: z.string(),\n description: z.string(),\n hasCreate: z.boolean().optional(),\n hasUpdate: z.boolean().optional(),\n hasDelete: z.boolean().optional(),\n }),\n ),\n});\n\n// Export Types\nexport type Resource = z.infer<typeof ResourceCreateOutputSchema>;\nexport type ResourcesReadInput = z.infer<typeof ResourcesReadInputSchema>;\nexport type ResourcesReadOutput = z.infer<typeof ResourcesReadOutputSchema>;\nexport type ResourcesSearchInput = z.infer<typeof ResourceSearchInputSchema>;\nexport type ResourcesSearchOutput = z.infer<typeof ResourceSearchOutputSchema>;\nexport type ResourceCreateInput = z.infer<typeof ResourceCreateInputSchema>;\nexport type ResourceCreateOutput = z.infer<typeof ResourceCreateOutputSchema>;\nexport type ResourceUpdateInput = z.infer<typeof ResourceUpdateInputSchema>;\nexport type ResourceUpdateOutput = z.infer<typeof ResourceUpdateOutputSchema>;\nexport type ResourceDeleteInput = z.infer<typeof ResourceDeleteInputSchema>;\nexport type ResourceDeleteOutput = z.infer<typeof ResourceDeleteOutputSchema>;\nexport type ResourcesListInput = z.infer<typeof ResourcesListInputSchema>;\nexport type ResourcesListOutput = z.infer<typeof ResourcesListOutputSchema>;\n\nexport const mimeType = (filePathOrExtension: string) => {\n const ext = extractExtension(filePathOrExtension);\n if (!ext) return \"text/plain\";\n return EXTENSION_TO_MIME.get(ext) ?? \"text/plain\";\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createMCPClientProxy, WELL_KNOWN_ORIGINS } from './chunk-
|
|
1
|
+
import { createMCPClientProxy, WELL_KNOWN_ORIGINS } from './chunk-QELHWEZH.js';
|
|
2
2
|
import { normalizeDirectory, getMetadataString, ResourceUri, ResourcePath, toAsyncIterator } from './chunk-UHR3BLMF.js';
|
|
3
|
-
import { createPrivateTool } from './chunk-
|
|
3
|
+
import { createPrivateTool } from './chunk-I2KGAHFY.js';
|
|
4
4
|
import { ViewsListOutputSchema } from './chunk-AOFOWQXY.js';
|
|
5
5
|
import { env } from 'cloudflare:workers';
|
|
6
6
|
import { z } from 'zod';
|
|
@@ -760,5 +760,5 @@ var DeconfigResource = {
|
|
|
760
760
|
};
|
|
761
761
|
|
|
762
762
|
export { CHANNEL_BINDING_SCHEMA, ChannelBinding, DeconfigResource, DeleteInputSchema, DeleteOutputSchema, DescribeInputSchema, DescribeOutputSchema, MCPClient, NotFoundError, RESOURCE_WATCH_BASE_PATHNAME, ReadInputSchema, ResourceUriSchema, SearchInputSchema, UserInputError, VIEW_BINDING_SCHEMA, ViewBinding, bindingClient, createCreateInputSchema, createCreateOutputSchema, createDeconfigResource, createItemSchema, createMCPFetchStub, createReadOutputSchema, createResourceBindings, createSearchOutputSchema, createUpdateInputSchema, createUpdateOutputSchema, impl, listViewsSchema };
|
|
763
|
-
//# sourceMappingURL=chunk-
|
|
764
|
-
//# sourceMappingURL=chunk-
|
|
763
|
+
//# sourceMappingURL=chunk-O6IURJAY.js.map
|
|
764
|
+
//# sourceMappingURL=chunk-O6IURJAY.js.map
|