@decocms/runtime 0.28.0-beta.1 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/bindings/deconfig/index.d.ts +5 -4
  2. package/dist/bindings/deconfig/index.js +4 -4
  3. package/dist/bindings/index.d.ts +28 -28
  4. package/dist/bindings/index.js +6 -6
  5. package/dist/bindings/index.js.map +1 -1
  6. package/dist/{chunk-NKUMVYKI.js → chunk-7ITSLORK.js} +3 -3
  7. package/dist/chunk-7ITSLORK.js.map +1 -0
  8. package/dist/{chunk-AOFOWQXY.js → chunk-L4OT2YDO.js} +3 -3
  9. package/dist/chunk-L4OT2YDO.js.map +1 -0
  10. package/dist/{chunk-GPIGZ6DL.js → chunk-SHQSNOFL.js} +5 -5
  11. package/dist/chunk-SHQSNOFL.js.map +1 -0
  12. package/dist/{chunk-LCU3FBI3.js → chunk-UIJGM3NV.js} +5 -5
  13. package/dist/chunk-UIJGM3NV.js.map +1 -0
  14. package/dist/drizzle.d.ts +3 -3
  15. package/dist/{index-DqyElLzZ.d.ts → index-B7U9jXW4.d.ts} +3 -3
  16. package/dist/{index-COMJ3oN7.d.ts → index-uCMd27hU.d.ts} +2 -2
  17. package/dist/index.d.ts +3 -3
  18. package/dist/index.js +5 -5
  19. package/dist/index.js.map +1 -1
  20. package/dist/mastra.d.ts +3 -3
  21. package/dist/mastra.js +3 -3
  22. package/dist/{mcp-Dbqp-p04.d.ts → mcp-DYmQ2RQf.d.ts} +1 -1
  23. package/dist/proxy.d.ts +2 -2
  24. package/dist/resources.d.ts +23 -23
  25. package/dist/resources.js +1 -1
  26. package/dist/views.d.ts +9 -9
  27. package/dist/views.js +1 -1
  28. package/package.json +3 -3
  29. package/src/bindings/README.md +1 -1
  30. package/src/bindings/binder.ts +1 -1
  31. package/src/bindings/channels.ts +1 -1
  32. package/src/bindings/deconfig/types.ts +1 -1
  33. package/src/bindings/language-model/ai-sdk.ts +1 -1
  34. package/src/bindings/resources/bindings.ts +1 -1
  35. package/src/bindings/resources/schemas.ts +1 -1
  36. package/src/bindings/views.ts +1 -1
  37. package/src/deprecated.ts +1 -1
  38. package/src/index.ts +1 -1
  39. package/src/mastra.ts +1 -1
  40. package/src/mcp.ts +1 -1
  41. package/src/resources.ts +1 -1
  42. package/src/state.ts +1 -1
  43. package/src/views.ts +1 -1
  44. package/dist/chunk-AOFOWQXY.js.map +0 -1
  45. package/dist/chunk-GPIGZ6DL.js.map +0 -1
  46. package/dist/chunk-LCU3FBI3.js.map +0 -1
  47. package/dist/chunk-NKUMVYKI.js.map +0 -1
@@ -1,11 +1,12 @@
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-DqyElLzZ.js';
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-B7U9jXW4.js';
2
2
  import '@mastra/core';
3
- import '../../index-COMJ3oN7.js';
3
+ import '../../index-uCMd27hU.js';
4
4
  import '@cloudflare/workers-types';
5
- import 'zod';
5
+ import 'zod/v3';
6
6
  import '@mastra/core/di';
7
7
  import '@mastra/core/workflows';
8
8
  import '../../resources.js';
9
- import '../../mcp-Dbqp-p04.js';
9
+ import '../../mcp-DYmQ2RQf.js';
10
10
  import '@decocms/bindings/connection';
11
11
  import '@decocms/bindings';
12
+ import 'zod';
@@ -1,10 +1,10 @@
1
- export { DeconfigResource, NotFoundError, RESOURCE_WATCH_BASE_PATHNAME, UserInputError, createDeconfigResource } from '../../chunk-GPIGZ6DL.js';
1
+ export { DeconfigResource, NotFoundError, RESOURCE_WATCH_BASE_PATHNAME, UserInputError, createDeconfigResource } from '../../chunk-SHQSNOFL.js';
2
2
  import '../../chunk-5EYZ2LVM.js';
3
3
  import '../../chunk-3AWMDSOH.js';
4
4
  import '../../chunk-UHR3BLMF.js';
5
- import '../../chunk-LCU3FBI3.js';
6
- import '../../chunk-AOFOWQXY.js';
7
- import '../../chunk-NKUMVYKI.js';
5
+ import '../../chunk-UIJGM3NV.js';
6
+ import '../../chunk-L4OT2YDO.js';
7
+ import '../../chunk-7ITSLORK.js';
8
8
  import '../../chunk-I7BWSAN6.js';
9
9
  //# sourceMappingURL=index.js.map
10
10
  //# sourceMappingURL=index.js.map
@@ -1,10 +1,10 @@
1
1
  import * as zod from 'zod';
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-DqyElLzZ.js';
2
+ 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-B7U9jXW4.js';
4
3
  import * as _mastra_core from '@mastra/core';
5
- import { c as createPrivateTool, a as createStreamableTool, S as StreamableTool } from '../index-COMJ3oN7.js';
4
+ import { c as createPrivateTool, a as createStreamableTool, S as StreamableTool } from '../index-uCMd27hU.js';
5
+ import { z } from 'zod/v3';
6
6
  import { MCPConnection } from '@decocms/bindings/connection';
7
- import { M as MCPClientFetchStub } from '../mcp-Dbqp-p04.js';
7
+ import { M as MCPClientFetchStub } from '../mcp-DYmQ2RQf.js';
8
8
  import { ToolBinder } from '@decocms/bindings';
9
9
  import '@cloudflare/workers-types';
10
10
  import '@mastra/core/di';
@@ -312,13 +312,13 @@ declare const ViewBinding: {
312
312
  prompt: z.ZodOptional<z.ZodString>;
313
313
  installBehavior: z.ZodOptional<z.ZodEnum<["none", "open", "autoPin"]>>;
314
314
  }, "strip", z.ZodTypeAny, {
315
- title: string;
316
315
  tools: string[];
316
+ title: string;
317
317
  icon: string;
318
+ id?: string | undefined;
318
319
  url?: string | undefined;
319
320
  name?: string | undefined;
320
321
  description?: string | undefined;
321
- id?: string | undefined;
322
322
  resourceName?: string | undefined;
323
323
  mimeTypePattern?: string | undefined;
324
324
  prompt?: string | undefined;
@@ -326,11 +326,11 @@ declare const ViewBinding: {
326
326
  }, {
327
327
  title: string;
328
328
  icon: string;
329
+ id?: string | undefined;
329
330
  url?: string | undefined;
330
331
  name?: string | undefined;
331
- description?: string | undefined;
332
332
  tools?: string[] | undefined;
333
- id?: string | undefined;
333
+ description?: string | undefined;
334
334
  resourceName?: string | undefined;
335
335
  mimeTypePattern?: string | undefined;
336
336
  prompt?: string | undefined;
@@ -338,13 +338,13 @@ declare const ViewBinding: {
338
338
  }>, "many">;
339
339
  }, "strip", z.ZodTypeAny, {
340
340
  views: {
341
- title: string;
342
341
  tools: string[];
342
+ title: string;
343
343
  icon: string;
344
+ id?: string | undefined;
344
345
  url?: string | undefined;
345
346
  name?: string | undefined;
346
347
  description?: string | undefined;
347
- id?: string | undefined;
348
348
  resourceName?: string | undefined;
349
349
  mimeTypePattern?: string | undefined;
350
350
  prompt?: string | undefined;
@@ -354,11 +354,11 @@ declare const ViewBinding: {
354
354
  views: {
355
355
  title: string;
356
356
  icon: string;
357
+ id?: string | undefined;
357
358
  url?: string | undefined;
358
359
  name?: string | undefined;
359
- description?: string | undefined;
360
360
  tools?: string[] | undefined;
361
- id?: string | undefined;
361
+ description?: string | undefined;
362
362
  resourceName?: string | undefined;
363
363
  mimeTypePattern?: string | undefined;
364
364
  prompt?: string | undefined;
@@ -391,13 +391,13 @@ declare const VIEW_BINDING: readonly [{
391
391
  prompt: z.ZodOptional<z.ZodString>;
392
392
  installBehavior: z.ZodOptional<z.ZodEnum<["none", "open", "autoPin"]>>;
393
393
  }, "strip", z.ZodTypeAny, {
394
- title: string;
395
394
  tools: string[];
395
+ title: string;
396
396
  icon: string;
397
+ id?: string | undefined;
397
398
  url?: string | undefined;
398
399
  name?: string | undefined;
399
400
  description?: string | undefined;
400
- id?: string | undefined;
401
401
  resourceName?: string | undefined;
402
402
  mimeTypePattern?: string | undefined;
403
403
  prompt?: string | undefined;
@@ -405,11 +405,11 @@ declare const VIEW_BINDING: readonly [{
405
405
  }, {
406
406
  title: string;
407
407
  icon: string;
408
+ id?: string | undefined;
408
409
  url?: string | undefined;
409
410
  name?: string | undefined;
410
- description?: string | undefined;
411
411
  tools?: string[] | undefined;
412
- id?: string | undefined;
412
+ description?: string | undefined;
413
413
  resourceName?: string | undefined;
414
414
  mimeTypePattern?: string | undefined;
415
415
  prompt?: string | undefined;
@@ -417,13 +417,13 @@ declare const VIEW_BINDING: readonly [{
417
417
  }>, "many">;
418
418
  }, "strip", z.ZodTypeAny, {
419
419
  views: {
420
- title: string;
421
420
  tools: string[];
421
+ title: string;
422
422
  icon: string;
423
+ id?: string | undefined;
423
424
  url?: string | undefined;
424
425
  name?: string | undefined;
425
426
  description?: string | undefined;
426
- id?: string | undefined;
427
427
  resourceName?: string | undefined;
428
428
  mimeTypePattern?: string | undefined;
429
429
  prompt?: string | undefined;
@@ -433,11 +433,11 @@ declare const VIEW_BINDING: readonly [{
433
433
  views: {
434
434
  title: string;
435
435
  icon: string;
436
+ id?: string | undefined;
436
437
  url?: string | undefined;
437
438
  name?: string | undefined;
438
- description?: string | undefined;
439
439
  tools?: string[] | undefined;
440
- id?: string | undefined;
440
+ description?: string | undefined;
441
441
  resourceName?: string | undefined;
442
442
  mimeTypePattern?: string | undefined;
443
443
  prompt?: string | undefined;
@@ -459,13 +459,13 @@ declare const listViewsSchema: z.ZodObject<{
459
459
  prompt: z.ZodOptional<z.ZodString>;
460
460
  installBehavior: z.ZodOptional<z.ZodEnum<["none", "open", "autoPin"]>>;
461
461
  }, "strip", z.ZodTypeAny, {
462
- title: string;
463
462
  tools: string[];
463
+ title: string;
464
464
  icon: string;
465
+ id?: string | undefined;
465
466
  url?: string | undefined;
466
467
  name?: string | undefined;
467
468
  description?: string | undefined;
468
- id?: string | undefined;
469
469
  resourceName?: string | undefined;
470
470
  mimeTypePattern?: string | undefined;
471
471
  prompt?: string | undefined;
@@ -473,11 +473,11 @@ declare const listViewsSchema: z.ZodObject<{
473
473
  }, {
474
474
  title: string;
475
475
  icon: string;
476
+ id?: string | undefined;
476
477
  url?: string | undefined;
477
478
  name?: string | undefined;
478
- description?: string | undefined;
479
479
  tools?: string[] | undefined;
480
- id?: string | undefined;
480
+ description?: string | undefined;
481
481
  resourceName?: string | undefined;
482
482
  mimeTypePattern?: string | undefined;
483
483
  prompt?: string | undefined;
@@ -485,13 +485,13 @@ declare const listViewsSchema: z.ZodObject<{
485
485
  }>, "many">;
486
486
  }, "strip", z.ZodTypeAny, {
487
487
  views: {
488
- title: string;
489
488
  tools: string[];
489
+ title: string;
490
490
  icon: string;
491
+ id?: string | undefined;
491
492
  url?: string | undefined;
492
493
  name?: string | undefined;
493
494
  description?: string | undefined;
494
- id?: string | undefined;
495
495
  resourceName?: string | undefined;
496
496
  mimeTypePattern?: string | undefined;
497
497
  prompt?: string | undefined;
@@ -501,11 +501,11 @@ declare const listViewsSchema: z.ZodObject<{
501
501
  views: {
502
502
  title: string;
503
503
  icon: string;
504
+ id?: string | undefined;
504
505
  url?: string | undefined;
505
506
  name?: string | undefined;
506
- description?: string | undefined;
507
507
  tools?: string[] | undefined;
508
- id?: string | undefined;
508
+ description?: string | undefined;
509
509
  resourceName?: string | undefined;
510
510
  mimeTypePattern?: string | undefined;
511
511
  prompt?: string | undefined;
@@ -1,14 +1,14 @@
1
- import { VIEW_BINDING, CHANNEL_BINDING, ResourceUriSchema } from '../chunk-GPIGZ6DL.js';
2
- export { CHANNEL_BINDING, ChannelBinding, DeleteInputSchema, DeleteOutputSchema, DescribeInputSchema, DescribeOutputSchema, ReadInputSchema, ResourceUriSchema, SearchInputSchema, VIEW_BINDING, ViewBinding, bindingClient, createCreateInputSchema, createCreateOutputSchema, createDeconfigResource, createItemSchema, createReadOutputSchema, createResourceBindings, createSearchOutputSchema, createUpdateInputSchema, createUpdateOutputSchema, impl, listViewsSchema } from '../chunk-GPIGZ6DL.js';
1
+ import { VIEW_BINDING, CHANNEL_BINDING, ResourceUriSchema } from '../chunk-SHQSNOFL.js';
2
+ export { CHANNEL_BINDING, ChannelBinding, DeleteInputSchema, DeleteOutputSchema, DescribeInputSchema, DescribeOutputSchema, ReadInputSchema, ResourceUriSchema, SearchInputSchema, VIEW_BINDING, ViewBinding, bindingClient, createCreateInputSchema, createCreateOutputSchema, createDeconfigResource, createItemSchema, createReadOutputSchema, createResourceBindings, createSearchOutputSchema, createUpdateInputSchema, createUpdateOutputSchema, impl, listViewsSchema } from '../chunk-SHQSNOFL.js';
3
3
  import '../chunk-5EYZ2LVM.js';
4
4
  import '../chunk-3AWMDSOH.js';
5
5
  export { ResourcePath, ResourceUri, getMetadataString as deconfigGetMetadataString, getMetadataValue as deconfigGetMetadataValue, normalizeDirectory as deconfigNormalizeDirectory } from '../chunk-UHR3BLMF.js';
6
- import '../chunk-LCU3FBI3.js';
7
- import '../chunk-AOFOWQXY.js';
8
- import '../chunk-NKUMVYKI.js';
6
+ import '../chunk-UIJGM3NV.js';
7
+ import '../chunk-L4OT2YDO.js';
8
+ import '../chunk-7ITSLORK.js';
9
9
  import '../chunk-I7BWSAN6.js';
10
10
  import { LANGUAGE_MODEL_BINDING } from '@decocms/bindings/llm';
11
- import { z } from 'zod';
11
+ import { z } from 'zod/v3';
12
12
 
13
13
  // src/bindings/utils.ts
14
14
  var Binding = (binderTools) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bindings/utils.ts","../../src/bindings/resources/helpers.ts","../../src/bindings/deconfig/types.ts","../../src/bindings/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAEO,IAAM,OAAA,GAAU,CACrB,WAAA,KACG;AACH,EAAA,OAAO;AAAA,IACL,eAAA,EAAiB,CAAC,KAAA,KAAsC;AACtD,MAAA,MAAM,aAAA,GAAgB,YACnB,MAAA,CAAO,CAAC,SAAS,CAAC,IAAA,CAAK,GAAG,CAAA,CAC1B,GAAA;AAAA,QACC,CAAC,IAAA,KACC,OAAO,IAAA,CAAK,IAAA,KAAS,QAAA,GACjB,IAAI,MAAA,CAAO,CAAA,CAAA,EAAI,IAAA,CAAK,IAAI,CAAA,CAAA,CAAG,IAC1B,IAAA,CAAK;AAAA;AAAA,OACd;AAEF,MAAA,OAAO,aAAA,CAAc,KAAA;AAAA,QAAM,CAAC,MAAA,KAC1B,KAAA,CAAM,IAAA,CAAK,CAAC,MAAM,MAAA,CAAO,IAAA,CAAK,CAAA,CAAE,IAAI,CAAC;AAAA,OACvC;AAAA,IACF;AAAA,GACF;AACF;;;ACSO,SAAS,oBAAoB,GAAA,EAAsB;AACxD,EAAA,IAAI;AACF,IAAA,iBAAA,CAAkB,MAAM,GAAG,CAAA;AAC3B,IAAA,OAAO,IAAA;AAAA,EACT,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AAQO,SAAS,iBAAiB,GAAA,EAIxB;AACP,EAAA,IAAI;AACF,IAAA,MAAM,SAAA,GAAY,iBAAA,CAAkB,KAAA,CAAM,GAAG,CAAA;AAC7C,IAAA,MAAM,KAAA,GAAQ,SAAA,CAAU,KAAA,CAAM,kCAAkC,CAAA;AAEhE,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,OAAO;AAAA,MACL,SAAA,EAAW,MAAM,CAAC,CAAA;AAAA,MAClB,OAAA,EAAS,MAAM,CAAC,CAAA;AAAA,MAChB,UAAA,EAAY,MAAM,CAAC;AAAA,KACrB;AAAA,EACF,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAUO,SAAS,oBAAA,CACd,SAAA,EACA,OAAA,EACA,UAAA,EACQ;AACR,EAAA,OAAO,CAAA,MAAA,EAAS,SAAS,CAAA,CAAA,EAAI,OAAO,IAAI,UAAU,CAAA,CAAA;AACpD;ACzDO,IAAM,aAAA,GAAgB;AAAA,EAC3B;AAAA,IACE,IAAA,EAAM,YAAA;AAAA,IACN,WAAA,EAAa,EAAE,MAAA,CAAO;AAAA,MACpB,MAAA,EAAQ,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC5B,MAAA,EAAQ,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC5B,QAAQ,CAAA,CAAE,KAAA,CAAM,EAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,MACrC,cAAA,EAAgB,CAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AAAS,KACtC,CAAA;AAAA,IACD,YAAA,EAAc,EAAE,MAAA,CAAO;AAAA,MACrB,OAAO,CAAA,CAAE,MAAA;AAAA,QACP,EAAE,MAAA,EAAO;AAAA,QACT,EAAE,MAAA,CAAO;AAAA,UACP,OAAA,EAAS,EAAE,MAAA,EAAO;AAAA,UAClB,QAAA,EAAU,EAAE,MAAA,CAAO,CAAA,CAAE,QAAO,EAAG,CAAA,CAAE,KAAK,CAAA;AAAA,UACtC,WAAA,EAAa,EAAE,MAAA,EAAO;AAAA,UACtB,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,UAChB,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,UAChB,OAAA,EAAS,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,SAC9B;AAAA,OACH;AAAA,MACA,KAAA,EAAO,EAAE,MAAA;AAAO,KACjB;AAAA,GACH;AAAA,EACA;AAAA,IACE,IAAA,EAAM,WAAA;AAAA,IACN,WAAA,EAAa,EAAE,MAAA,CAAO;AAAA,MACpB,MAAA,EAAQ,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC5B,IAAA,EAAM,EAAE,MAAA,EAAO;AAAA,MACf,MAAA,EAAQ,CAAA,CAAE,IAAA,CAAK,CAAC,QAAA,EAAU,aAAa,aAAA,EAAe,MAAM,CAAC,CAAA,CAAE,QAAA;AAAS,KACzE,CAAA;AAAA,IACD,YAAA,EAAc,EAAE,MAAA,CAAO;AAAA,MACrB,OAAA,EAAS,EAAE,GAAA,EAAI;AAAA,MACf,OAAA,EAAS,EAAE,MAAA,EAAO;AAAA,MAClB,QAAA,EAAU,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,KAAK,CAAA;AAAA,MAC1B,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,MAChB,KAAA,EAAO,EAAE,MAAA;AAAO,KACjB;AAAA,GACH;AAAA,EACA;AAAA,IACE,IAAA,EAAM,UAAA;AAAA,IACN,WAAA,EAAa,EAAE,MAAA,CAAO;AAAA,MACpB,MAAA,EAAQ,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC5B,IAAA,EAAM,EAAE,MAAA,EAAO;AAAA,MACf,OAAA,EAAS,EAAE,KAAA,CAAM;AAAA,QACf,EAAE,MAAA,EAAO;AAAA,QACT,EAAE,MAAA,CAAO,EAAE,QAAQ,CAAA,CAAE,MAAA,IAAU,CAAA;AAAA,QAC/B,CAAA,CAAE,KAAA,CAAM,CAAA,CAAE,MAAA,EAAQ;AAAA,OACnB,CAAA;AAAA,MACD,UAAU,CAAA,CAAE,MAAA,CAAO,EAAE,GAAA,EAAK,EAAE,QAAA,EAAS;AAAA,MACrC,aAAA,EAAe,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,KACpC,CAAA;AAAA,IACD,YAAA,EAAc,EAAE,MAAA,CAAO;AAAA,MACrB,QAAA,EAAU,CAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AAAS,KAChC;AAAA,GACH;AAAA,EACA;AAAA,IACE,IAAA,EAAM,aAAA;AAAA,IACN,WAAA,EAAa,EAAE,MAAA,CAAO;AAAA,MACpB,MAAA,EAAQ,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC5B,IAAA,EAAM,EAAE,MAAA;AAAO,KAChB,CAAA;AAAA,IACD,YAAA,EAAc,EAAE,MAAA,CAAO;AAAA,MACrB,OAAA,EAAS,EAAE,OAAA;AAAQ,KACpB;AAAA;AAEL;;;ACrCO,IAAM,iBAAA,GAAoB;AAAA,EAC/B,OAAA,EAAS,eAAA;AAAA,EACT,IAAA,EAAM,YAAA;AAAA,EACN,aAAA,EAAe;AAAA;AAAA;AAGjB","file":"index.js","sourcesContent":["import type { ToolBinder } from \"../mcp.ts\";\n\nexport const Binding = <TDefinition extends readonly ToolBinder[]>(\n binderTools: TDefinition,\n) => {\n return {\n isImplementedBy: (tools: Pick<ToolBinder, \"name\">[]) => {\n const requiredTools = binderTools\n .filter((tool) => !tool.opt)\n .map(\n (tool) =>\n typeof tool.name === \"string\"\n ? new RegExp(`^${tool.name}$`) // exact match\n : (tool.name as RegExp), // regex match\n );\n\n return requiredTools.every((regexp) =>\n tools.some((t) => regexp.test(t.name)),\n );\n },\n };\n};\n","import {\n ResourceUriSchema,\n type CreateInput,\n type CreateOutput,\n type DeleteInput,\n type DeleteOutput,\n type ReadInput,\n type ReadOutput,\n type SearchInput,\n type SearchOutput,\n} from \"./schemas.ts\";\n\n/**\n * Resources 2.0 Helper Functions\n *\n * This module provides helper functions for working with Resources 2.0\n * URI format and validation.\n *\n * Key Features:\n * - URI validation and parsing utilities\n * - URI construction helpers\n * - Type-safe resource URI handling\n */\n\n/**\n * Utility function to validate a resource URI format\n *\n * @param uri - The URI to validate\n * @returns True if the URI is valid, false otherwise\n */\nexport function validateResourceUri(uri: string): boolean {\n try {\n ResourceUriSchema.parse(uri);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Utility function to parse a resource URI into its components\n *\n * @param uri - The URI to parse\n * @returns Object containing the parsed components or null if invalid\n */\nexport function parseResourceUri(uri: string): {\n workspace: string;\n project: string;\n resourceId: string;\n} | null {\n try {\n const validated = ResourceUriSchema.parse(uri);\n const match = validated.match(/^rsc:\\/\\/([^/]+)\\/([^/]+)\\/(.+)$/);\n\n if (!match) {\n return null;\n }\n\n return {\n workspace: match[1],\n project: match[2],\n resourceId: match[3],\n };\n } catch {\n return null;\n }\n}\n\n/**\n * Utility function to construct a resource URI from components\n *\n * @param workspace - The workspace identifier\n * @param project - The project identifier\n * @param resourceId - The resource identifier\n * @returns The constructed resource URI\n */\nexport function constructResourceUri(\n workspace: string,\n project: string,\n resourceId: string,\n): string {\n return `rsc://${workspace}/${project}/${resourceId}`;\n}\n\n// Re-export types for convenience\nexport type {\n CreateInput,\n CreateOutput,\n DeleteInput,\n DeleteOutput,\n ReadInput,\n ReadOutput,\n SearchInput,\n SearchOutput,\n};\n","// Types for DeconfigResource\nimport { z } from \"zod\";\nimport type { DefaultEnv } from \"../../index.ts\";\nimport type { MCPClientFetchStub, ToolBinder } from \"../../mcp.ts\";\nimport type { BaseResourceDataSchema } from \"../resources/bindings.ts\";\n\nexport type ResourcesBinding<TDataSchema extends BaseResourceDataSchema> =\n ReturnType<\n typeof import(\"../resources/bindings.ts\").createResourceBindings<TDataSchema>\n >;\n\nexport type ResourcesTools<TDataSchema extends BaseResourceDataSchema> =\n ResourcesBinding<TDataSchema>[number][\"name\"];\n\nexport type EnhancedResourcesTools<TDataSchema extends BaseResourceDataSchema> =\n Partial<\n Record<\n ResourcesTools<TDataSchema>,\n {\n description: string;\n }\n >\n >;\n\n// Define deconfig tools as ToolBinder array (same pattern as workspaceTools in mcp.ts)\nexport const deconfigTools = [\n {\n name: \"LIST_FILES\" as const,\n inputSchema: z.object({\n branch: z.string().optional(),\n prefix: z.string().optional(),\n select: z.array(z.string()).optional(),\n includeContent: z.boolean().optional(),\n }),\n outputSchema: z.object({\n files: z.record(\n z.string(),\n z.object({\n address: z.string(),\n metadata: z.record(z.string(), z.any()),\n sizeInBytes: z.number(),\n mtime: z.number(),\n ctime: z.number(),\n content: z.string().optional(),\n }),\n ),\n count: z.number(),\n }),\n },\n {\n name: \"READ_FILE\" as const,\n inputSchema: z.object({\n branch: z.string().optional(),\n path: z.string(),\n format: z.enum([\"base64\", \"byteArray\", \"plainString\", \"json\"]).optional(),\n }),\n outputSchema: z.object({\n content: z.any(),\n address: z.string(),\n metadata: z.record(z.any()),\n mtime: z.number(),\n ctime: z.number(),\n }),\n },\n {\n name: \"PUT_FILE\" as const,\n inputSchema: z.object({\n branch: z.string().optional(),\n path: z.string(),\n content: z.union([\n z.string(),\n z.object({ base64: z.string() }),\n z.array(z.number()),\n ]),\n metadata: z.record(z.any()).optional(),\n expectedCtime: z.number().optional(),\n }),\n outputSchema: z.object({\n conflict: z.boolean().optional(),\n }),\n },\n {\n name: \"DELETE_FILE\" as const,\n inputSchema: z.object({\n branch: z.string().optional(),\n path: z.string(),\n }),\n outputSchema: z.object({\n deleted: z.boolean(),\n }),\n },\n] as const satisfies readonly ToolBinder[];\n\n// DeconfigClient is now a typed MCP client stub (same pattern as workspaceTools)\nexport type DeconfigClient = MCPClientFetchStub<typeof deconfigTools>;\n\nexport interface DeconfigResourceOptions<\n TDataSchema extends BaseResourceDataSchema,\n> {\n directory?: string; // defaults to /resources/$resourceName\n resourceName: string;\n env: DefaultEnv & { DECONFIG: DeconfigClient };\n dataSchema: TDataSchema;\n enhancements?: EnhancedResourcesTools<TDataSchema>;\n validate?: (data: z.infer<TDataSchema>) => Promise<void>;\n}\n","import { CHANNEL_BINDING } from \"./channels.ts\";\nimport { VIEW_BINDING as VIEWS_BINDING } from \"./views.ts\";\n\n// Import new Resources 2.0 bindings function\nimport { LANGUAGE_MODEL_BINDING } from \"@decocms/bindings/llm\";\nimport { createResourceBindings } from \"./resources/bindings.ts\";\n\n// Export types and utilities from binder\nexport {\n bindingClient,\n ChannelBinding,\n impl,\n ViewBinding,\n type Binder,\n type BinderImplementation,\n type MCPBindingClient,\n type ToolLike,\n} from \"./binder.ts\";\n\n// Export all channel types and schemas\nexport * from \"./channels.ts\";\n\n// Export binding utilities\nexport * from \"./utils.ts\";\n\n// Export views schemas\nexport * from \"./views.ts\";\n\n// Re-export Resources bindings function for convenience\nexport { createResourceBindings };\n\n// Export resources types and schemas\nexport * from \"./resources/bindings.ts\";\nexport * from \"./resources/helpers.ts\";\nexport * from \"./resources/schemas.ts\";\n\n// Export deconfig helpers and types\nexport {\n getMetadataString as deconfigGetMetadataString,\n getMetadataValue as deconfigGetMetadataValue,\n normalizeDirectory as deconfigNormalizeDirectory,\n ResourcePath,\n ResourceUri,\n} from \"./deconfig/helpers.ts\";\nexport { createDeconfigResource } from \"./deconfig/index.ts\";\nexport type {\n DeconfigClient,\n DeconfigResourceOptions,\n EnhancedResourcesTools,\n ResourcesBinding,\n ResourcesTools,\n} from \"./deconfig/index.ts\";\nexport { deconfigTools } from \"./deconfig/types.ts\";\n\nexport const WellKnownBindings = {\n Channel: CHANNEL_BINDING,\n View: VIEWS_BINDING,\n LanguageModel: LANGUAGE_MODEL_BINDING,\n // Note: Resources is not included here since it's a generic function\n // Use createResourceBindings(dataSchema) directly for Resources 2.0\n} as const;\n\nexport type WellKnownBindingsName = keyof typeof WellKnownBindings;\n"]}
1
+ {"version":3,"sources":["../../src/bindings/utils.ts","../../src/bindings/resources/helpers.ts","../../src/bindings/deconfig/types.ts","../../src/bindings/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { ToolBinder } from \"../mcp.ts\";\n\nexport const Binding = <TDefinition extends readonly ToolBinder[]>(\n binderTools: TDefinition,\n) => {\n return {\n isImplementedBy: (tools: Pick<ToolBinder, \"name\">[]) => {\n const requiredTools = binderTools\n .filter((tool) => !tool.opt)\n .map(\n (tool) =>\n typeof tool.name === \"string\"\n ? new RegExp(`^${tool.name}$`) // exact match\n : (tool.name as RegExp), // regex match\n );\n\n return requiredTools.every((regexp) =>\n tools.some((t) => regexp.test(t.name)),\n );\n },\n };\n};\n","import {\n ResourceUriSchema,\n type CreateInput,\n type CreateOutput,\n type DeleteInput,\n type DeleteOutput,\n type ReadInput,\n type ReadOutput,\n type SearchInput,\n type SearchOutput,\n} from \"./schemas.ts\";\n\n/**\n * Resources 2.0 Helper Functions\n *\n * This module provides helper functions for working with Resources 2.0\n * URI format and validation.\n *\n * Key Features:\n * - URI validation and parsing utilities\n * - URI construction helpers\n * - Type-safe resource URI handling\n */\n\n/**\n * Utility function to validate a resource URI format\n *\n * @param uri - The URI to validate\n * @returns True if the URI is valid, false otherwise\n */\nexport function validateResourceUri(uri: string): boolean {\n try {\n ResourceUriSchema.parse(uri);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Utility function to parse a resource URI into its components\n *\n * @param uri - The URI to parse\n * @returns Object containing the parsed components or null if invalid\n */\nexport function parseResourceUri(uri: string): {\n workspace: string;\n project: string;\n resourceId: string;\n} | null {\n try {\n const validated = ResourceUriSchema.parse(uri);\n const match = validated.match(/^rsc:\\/\\/([^/]+)\\/([^/]+)\\/(.+)$/);\n\n if (!match) {\n return null;\n }\n\n return {\n workspace: match[1],\n project: match[2],\n resourceId: match[3],\n };\n } catch {\n return null;\n }\n}\n\n/**\n * Utility function to construct a resource URI from components\n *\n * @param workspace - The workspace identifier\n * @param project - The project identifier\n * @param resourceId - The resource identifier\n * @returns The constructed resource URI\n */\nexport function constructResourceUri(\n workspace: string,\n project: string,\n resourceId: string,\n): string {\n return `rsc://${workspace}/${project}/${resourceId}`;\n}\n\n// Re-export types for convenience\nexport type {\n CreateInput,\n CreateOutput,\n DeleteInput,\n DeleteOutput,\n ReadInput,\n ReadOutput,\n SearchInput,\n SearchOutput,\n};\n","// Types for DeconfigResource\nimport { z } from \"zod/v3\";\nimport type { DefaultEnv } from \"../../index.ts\";\nimport type { MCPClientFetchStub, ToolBinder } from \"../../mcp.ts\";\nimport type { BaseResourceDataSchema } from \"../resources/bindings.ts\";\n\nexport type ResourcesBinding<TDataSchema extends BaseResourceDataSchema> =\n ReturnType<\n typeof import(\"../resources/bindings.ts\").createResourceBindings<TDataSchema>\n >;\n\nexport type ResourcesTools<TDataSchema extends BaseResourceDataSchema> =\n ResourcesBinding<TDataSchema>[number][\"name\"];\n\nexport type EnhancedResourcesTools<TDataSchema extends BaseResourceDataSchema> =\n Partial<\n Record<\n ResourcesTools<TDataSchema>,\n {\n description: string;\n }\n >\n >;\n\n// Define deconfig tools as ToolBinder array (same pattern as workspaceTools in mcp.ts)\nexport const deconfigTools = [\n {\n name: \"LIST_FILES\" as const,\n inputSchema: z.object({\n branch: z.string().optional(),\n prefix: z.string().optional(),\n select: z.array(z.string()).optional(),\n includeContent: z.boolean().optional(),\n }),\n outputSchema: z.object({\n files: z.record(\n z.string(),\n z.object({\n address: z.string(),\n metadata: z.record(z.string(), z.any()),\n sizeInBytes: z.number(),\n mtime: z.number(),\n ctime: z.number(),\n content: z.string().optional(),\n }),\n ),\n count: z.number(),\n }),\n },\n {\n name: \"READ_FILE\" as const,\n inputSchema: z.object({\n branch: z.string().optional(),\n path: z.string(),\n format: z.enum([\"base64\", \"byteArray\", \"plainString\", \"json\"]).optional(),\n }),\n outputSchema: z.object({\n content: z.any(),\n address: z.string(),\n metadata: z.record(z.any()),\n mtime: z.number(),\n ctime: z.number(),\n }),\n },\n {\n name: \"PUT_FILE\" as const,\n inputSchema: z.object({\n branch: z.string().optional(),\n path: z.string(),\n content: z.union([\n z.string(),\n z.object({ base64: z.string() }),\n z.array(z.number()),\n ]),\n metadata: z.record(z.any()).optional(),\n expectedCtime: z.number().optional(),\n }),\n outputSchema: z.object({\n conflict: z.boolean().optional(),\n }),\n },\n {\n name: \"DELETE_FILE\" as const,\n inputSchema: z.object({\n branch: z.string().optional(),\n path: z.string(),\n }),\n outputSchema: z.object({\n deleted: z.boolean(),\n }),\n },\n] as const satisfies readonly ToolBinder[];\n\n// DeconfigClient is now a typed MCP client stub (same pattern as workspaceTools)\nexport type DeconfigClient = MCPClientFetchStub<typeof deconfigTools>;\n\nexport interface DeconfigResourceOptions<\n TDataSchema extends BaseResourceDataSchema,\n> {\n directory?: string; // defaults to /resources/$resourceName\n resourceName: string;\n env: DefaultEnv & { DECONFIG: DeconfigClient };\n dataSchema: TDataSchema;\n enhancements?: EnhancedResourcesTools<TDataSchema>;\n validate?: (data: z.infer<TDataSchema>) => Promise<void>;\n}\n","import { CHANNEL_BINDING } from \"./channels.ts\";\nimport { VIEW_BINDING as VIEWS_BINDING } from \"./views.ts\";\n\n// Import new Resources 2.0 bindings function\nimport { LANGUAGE_MODEL_BINDING } from \"@decocms/bindings/llm\";\nimport { createResourceBindings } from \"./resources/bindings.ts\";\n\n// Export types and utilities from binder\nexport {\n bindingClient,\n ChannelBinding,\n impl,\n ViewBinding,\n type Binder,\n type BinderImplementation,\n type MCPBindingClient,\n type ToolLike,\n} from \"./binder.ts\";\n\n// Export all channel types and schemas\nexport * from \"./channels.ts\";\n\n// Export binding utilities\nexport * from \"./utils.ts\";\n\n// Export views schemas\nexport * from \"./views.ts\";\n\n// Re-export Resources bindings function for convenience\nexport { createResourceBindings };\n\n// Export resources types and schemas\nexport * from \"./resources/bindings.ts\";\nexport * from \"./resources/helpers.ts\";\nexport * from \"./resources/schemas.ts\";\n\n// Export deconfig helpers and types\nexport {\n getMetadataString as deconfigGetMetadataString,\n getMetadataValue as deconfigGetMetadataValue,\n normalizeDirectory as deconfigNormalizeDirectory,\n ResourcePath,\n ResourceUri,\n} from \"./deconfig/helpers.ts\";\nexport { createDeconfigResource } from \"./deconfig/index.ts\";\nexport type {\n DeconfigClient,\n DeconfigResourceOptions,\n EnhancedResourcesTools,\n ResourcesBinding,\n ResourcesTools,\n} from \"./deconfig/index.ts\";\nexport { deconfigTools } from \"./deconfig/types.ts\";\n\nexport const WellKnownBindings = {\n Channel: CHANNEL_BINDING,\n View: VIEWS_BINDING,\n LanguageModel: LANGUAGE_MODEL_BINDING,\n // Note: Resources is not included here since it's a generic function\n // Use createResourceBindings(dataSchema) directly for Resources 2.0\n} as const;\n\nexport type WellKnownBindingsName = keyof typeof WellKnownBindings;\n"]}
@@ -1,4 +1,4 @@
1
- import { z } from 'zod';
1
+ import { z } from 'zod/v3';
2
2
  import mimeDb from 'mime-db';
3
3
 
4
4
  // src/resources.ts
@@ -124,5 +124,5 @@ var mimeType = (filePathOrExtension) => {
124
124
  };
125
125
 
126
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
127
+ //# sourceMappingURL=chunk-7ITSLORK.js.map
128
+ //# sourceMappingURL=chunk-7ITSLORK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resources.ts"],"names":[],"mappings":"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","file":"chunk-7ITSLORK.js","sourcesContent":["import { z } from \"zod/v3\";\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,4 +1,4 @@
1
- import { z } from 'zod';
1
+ import { z } from 'zod/v3';
2
2
 
3
3
  // src/views.ts
4
4
  var installBehavior = z.enum(["none", "open", "autoPin"]);
@@ -23,5 +23,5 @@ var ViewsListOutputSchema = z.object({
23
23
  });
24
24
 
25
25
  export { ViewsListOutputSchema };
26
- //# sourceMappingURL=chunk-AOFOWQXY.js.map
27
- //# sourceMappingURL=chunk-AOFOWQXY.js.map
26
+ //# sourceMappingURL=chunk-L4OT2YDO.js.map
27
+ //# sourceMappingURL=chunk-L4OT2YDO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/views.ts"],"names":[],"mappings":";;;AAEA,IAAM,kBAAkB,CAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,MAAA,EAAQ,SAAS,CAAC,CAAA;AAGnD,IAAM,qBAAA,GAAwB,EAAE,MAAA,CAAO;AAAA,EAC5C,OAAO,CAAA,CAAE,KAAA;AAAA,IACP,EAAE,MAAA,CAAO;AAAA,MACP,EAAA,EAAI,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MACxB,IAAA,EAAM,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC1B,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,MAChB,WAAA,EAAa,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MACjC,IAAA,EAAM,EAAE,MAAA,EAAO;AAAA,MACf,GAAA,EAAK,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,MAEzB,eAAA,EAAiB,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MACrC,YAAA,EAAc,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,MAElC,KAAA,EAAO,CAAA,CAAE,KAAA,CAAM,CAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,MAChD,MAAA,EAAQ,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC5B,eAAA,EAAiB,gBAAgB,QAAA;AAAS,KAC3C;AAAA;AAEL,CAAC","file":"chunk-L4OT2YDO.js","sourcesContent":["import { z } from \"zod/v3\";\n\nconst installBehavior = z.enum([\"none\", \"open\", \"autoPin\"]);\n\n// New, richer schema with backward-compat fields kept optional\nexport const ViewsListOutputSchema = z.object({\n views: z.array(\n z.object({\n id: z.string().optional(),\n name: z.string().optional(),\n title: z.string(),\n description: z.string().optional(),\n icon: z.string(),\n url: z.string().optional(),\n // New acceptance rules\n mimeTypePattern: z.string().optional(),\n resourceName: z.string().optional(),\n // Legacy/compat fields\n tools: z.array(z.string()).optional().default([]),\n prompt: z.string().optional(),\n installBehavior: installBehavior.optional(),\n }),\n ),\n});\n\nexport type ViewsListOutput = z.infer<typeof ViewsListOutputSchema>;\n"]}
@@ -1,9 +1,9 @@
1
1
  import { createMCPClientProxy, WELL_KNOWN_ORIGINS } from './chunk-5EYZ2LVM.js';
2
2
  import { normalizeDirectory, getMetadataString, ResourceUri, ResourcePath, toAsyncIterator } from './chunk-UHR3BLMF.js';
3
- import { createPrivateTool, createStreamableTool } from './chunk-LCU3FBI3.js';
4
- import { ViewsListOutputSchema } from './chunk-AOFOWQXY.js';
3
+ import { createPrivateTool, createStreamableTool } from './chunk-UIJGM3NV.js';
4
+ import { ViewsListOutputSchema } from './chunk-L4OT2YDO.js';
5
5
  import { env } from 'cloudflare:workers';
6
- import { z } from 'zod';
6
+ import { z } from 'zod/v3';
7
7
 
8
8
  var Timings = z.object({
9
9
  sql_duration_ms: z.number().optional()
@@ -765,5 +765,5 @@ var DeconfigResource = {
765
765
  };
766
766
 
767
767
  export { CHANNEL_BINDING, ChannelBinding, DeconfigResource, DeleteInputSchema, DeleteOutputSchema, DescribeInputSchema, DescribeOutputSchema, MCPClient, NotFoundError, RESOURCE_WATCH_BASE_PATHNAME, ReadInputSchema, ResourceUriSchema, SearchInputSchema, UserInputError, VIEW_BINDING, ViewBinding, bindingClient, createCreateInputSchema, createCreateOutputSchema, createDeconfigResource, createItemSchema, createMCPFetchStub, createReadOutputSchema, createResourceBindings, createSearchOutputSchema, createUpdateInputSchema, createUpdateOutputSchema, impl, listViewsSchema };
768
- //# sourceMappingURL=chunk-GPIGZ6DL.js.map
769
- //# sourceMappingURL=chunk-GPIGZ6DL.js.map
768
+ //# sourceMappingURL=chunk-SHQSNOFL.js.map
769
+ //# sourceMappingURL=chunk-SHQSNOFL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/mcp.ts","../src/bindings/channels.ts","../src/bindings/views.ts","../src/bindings/binder.ts","../src/bindings/resources/schemas.ts","../src/bindings/resources/bindings.ts","../src/bindings/deconfig/resources.ts"],"names":["z","impl","env"],"mappings":"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","file":"chunk-SHQSNOFL.js","sourcesContent":["/* oxlint-disable no-explicit-any */\nimport { env } from \"cloudflare:workers\";\nimport { z } from \"zod/v3\";\nimport type { MCPConnection } from \"./connection.ts\";\nimport type { DefaultEnv } from \"./index.ts\";\nimport { createMCPClientProxy } from \"./proxy.ts\";\nimport type { ToolBinder } from \"@decocms/bindings\";\n\nexport interface FetchOptions extends RequestInit {\n path?: string;\n segments?: string[];\n}\n\nconst Timings = z.object({\n sql_duration_ms: z.number().optional(),\n});\n\nconst Meta = z.object({\n changed_db: z.boolean().optional(),\n changes: z.number().optional(),\n duration: z.number().optional(),\n last_row_id: z.number().optional(),\n rows_read: z.number().optional(),\n rows_written: z.number().optional(),\n served_by_primary: z.boolean().optional(),\n served_by_region: z\n .enum([\"WNAM\", \"ENAM\", \"WEUR\", \"EEUR\", \"APAC\", \"OC\"])\n .optional(),\n size_after: z.number().optional(),\n timings: Timings.optional(),\n});\n\nconst QueryResult = z.object({\n meta: Meta.optional(),\n results: z.array(z.unknown()).optional(),\n success: z.boolean().optional(),\n});\n\nexport type QueryResult = z.infer<typeof QueryResult>;\n\nconst workspaceTools = [\n {\n name: \"INTEGRATIONS_GET\" as const,\n inputSchema: z.object({\n id: z.string(),\n }),\n outputSchema: z.object({\n connection: z.object({}),\n }),\n },\n {\n name: \"DATABASES_RUN_SQL\" as const,\n inputSchema: z.object({\n sql: z.string().describe(\"The SQL query to run\"),\n params: z\n .array(z.string())\n .describe(\"The parameters to pass to the SQL query\"),\n }),\n outputSchema: z.object({\n result: z.array(QueryResult),\n }),\n },\n] satisfies ToolBinder<string, unknown, object>[];\n\n// Default fetcher instance with API_SERVER_URL and API_HEADERS\nconst global = createMCPFetchStub<[]>({});\nexport const MCPClient = new Proxy(\n {} as typeof global & {\n forWorkspace: (\n workspace: string,\n token?: string,\n ) => MCPClientFetchStub<typeof workspaceTools>;\n forConnection: <TDefinition extends readonly ToolBinder[]>(\n connection: MCPConnectionProvider,\n ) => MCPClientFetchStub<TDefinition>;\n },\n {\n get(_, name) {\n if (name === \"toJSON\") {\n return null;\n }\n\n if (name === \"forWorkspace\") {\n return (workspace: string, token?: string) =>\n createMCPFetchStub<[]>({\n workspace,\n token,\n decoCmsApiUrl: (env as DefaultEnv).DECO_API_URL,\n });\n }\n if (name === \"forConnection\") {\n return <TDefinition extends readonly ToolBinder[]>(\n connection: MCPConnectionProvider,\n ) =>\n createMCPFetchStub<TDefinition>({\n connection,\n decoCmsApiUrl: (env as DefaultEnv).DECO_API_URL,\n });\n }\n return global[name as keyof typeof global];\n },\n },\n);\n\nexport type { ToolBinder };\n\nexport const isStreamableToolBinder = (\n toolBinder: ToolBinder,\n): toolBinder is ToolBinder<string, any, any, true> => {\n return toolBinder.streamable === true;\n};\nexport type MCPClientStub<TDefinition extends readonly ToolBinder[]> = {\n [K in TDefinition[number] as K[\"name\"]]: K extends ToolBinder<\n string,\n infer TInput,\n infer TReturn\n >\n ? (params: TInput, init?: RequestInit) => Promise<TReturn>\n : never;\n};\n\nexport type MCPClientFetchStub<TDefinition extends readonly ToolBinder[]> = {\n [K in TDefinition[number] as K[\"name\"]]: K[\"streamable\"] extends true\n ? K extends ToolBinder<string, infer TInput, any, true>\n ? (params: TInput, init?: RequestInit) => Promise<Response>\n : never\n : K extends ToolBinder<string, infer TInput, infer TReturn, any>\n ? (params: TInput, init?: RequestInit) => Promise<Awaited<TReturn>>\n : never;\n};\n\nexport type MCPConnectionProvider = MCPConnection;\n\nexport interface MCPClientRaw {\n callTool: (tool: string, args: unknown) => Promise<unknown>;\n listTools: () => Promise<\n {\n name: string;\n inputSchema: any;\n outputSchema?: any;\n description: string;\n }[]\n >;\n}\nexport type JSONSchemaToZodConverter = (jsonSchema: any) => z.ZodTypeAny;\nexport interface CreateStubAPIOptions {\n mcpPath?: string;\n decoCmsApiUrl?: string;\n workspace?: string;\n token?: string;\n connection?: MCPConnectionProvider;\n streamable?: Record<string, boolean>;\n debugId?: () => string;\n getErrorByStatusCode?: (\n statusCode: number,\n message?: string,\n traceId?: string,\n errorObject?: unknown,\n ) => Error;\n supportsToolName?: boolean;\n}\n\nexport function createMCPFetchStub<TDefinition extends readonly ToolBinder[]>(\n options?: CreateStubAPIOptions,\n): MCPClientFetchStub<TDefinition> {\n return createMCPClientProxy<MCPClientFetchStub<TDefinition>>({\n ...(options ?? {}),\n });\n}\n","import { z } from \"zod/v3\";\nimport type { ToolBinder } from \"../mcp.ts\";\n\nconst callbacksSchema = z.object({\n stream: z.string(),\n generate: z.string(),\n generateObject: z.string(),\n});\n\nconst channelIdSchema = z.object({\n workspace: z.string(),\n discriminator: z.string(),\n});\n\nconst channelBindingSchema = channelIdSchema.extend({\n agentId: z.string(),\n agentName: z.string(),\n agentLink: z.string(),\n});\n\nconst joinChannelSchema = channelBindingSchema.extend({\n callbacks: callbacksSchema,\n});\n\nconst listChannelsSchema = z.object({\n channels: z.array(\n z.object({\n label: z.string(),\n value: z.string(),\n }),\n ),\n});\n\nexport type Callbacks = z.infer<typeof callbacksSchema>;\nexport type JoinedChannelPayload = z.infer<typeof joinChannelSchema>;\nexport type ListChannelsSchema = z.infer<typeof listChannelsSchema>;\nexport const CHANNEL_BINDING = [\n {\n name: \"DECO_CHAT_CHANNELS_JOIN\" as const,\n inputSchema: joinChannelSchema,\n outputSchema: z.any(),\n },\n {\n name: \"DECO_CHAT_CHANNELS_LEAVE\" as const,\n inputSchema: channelIdSchema,\n outputSchema: z.any(),\n },\n {\n name: \"DECO_CHAT_CHANNELS_LIST\" as const,\n inputSchema: z.any(),\n outputSchema: listChannelsSchema,\n opt: true,\n },\n] as const satisfies readonly ToolBinder[];\n","import { ViewsListOutputSchema } from \"../views.ts\";\nimport { z } from \"zod/v3\";\nimport type { ToolBinder } from \"../mcp.ts\";\n\nexport const VIEW_BINDING = [\n {\n name: \"DECO_CHAT_VIEWS_LIST\" as const,\n inputSchema: z.any(),\n outputSchema: ViewsListOutputSchema,\n },\n] as const satisfies readonly ToolBinder[];\n\n// Re-export for existing imports expecting listViewsSchema\nexport const listViewsSchema = ViewsListOutputSchema;\n","/* oxlint-disable no-explicit-any */\nimport { z } from \"zod/v3\";\nimport type { MCPConnection } from \"../connection.ts\";\nimport { createPrivateTool, createStreamableTool } from \"../mastra.ts\";\nimport {\n createMCPFetchStub,\n type MCPClientFetchStub,\n type ToolBinder,\n} from \"../mcp.ts\";\nimport { CHANNEL_BINDING } from \"./channels.ts\";\nimport { VIEW_BINDING } from \"./views.ts\";\n\n// ToolLike is a simplified version of the Tool interface that matches what we need for bindings\nexport interface ToolLike<\n TName extends string = string,\n TInput = any,\n TReturn extends object | null | boolean = object,\n> {\n name: TName;\n description: string;\n inputSchema: z.ZodType<TInput>;\n outputSchema?: z.ZodType<TReturn>;\n handler: (props: TInput) => Promise<TReturn> | TReturn;\n}\n\nexport type Binder<\n TDefinition extends readonly ToolBinder[] = readonly ToolBinder[],\n> = TDefinition;\n\nexport type BinderImplementation<\n TBinder extends Binder<any>,\n TContext = any,\n> = TBinder extends Binder<infer TDefinition>\n ? {\n [K in keyof TDefinition]: Omit<\n ToolLike<\n TDefinition[K][\"name\"],\n z.infer<TDefinition[K][\"inputSchema\"]>,\n TDefinition[K] extends { outputSchema: infer Schema }\n ? Schema extends z.ZodType\n ? z.infer<Schema>\n : never\n : never\n >,\n \"name\" | \"inputSchema\" | \"outputSchema\" | \"handler\"\n > & {\n handler: (\n props: z.infer<TDefinition[K][\"inputSchema\"]>,\n c?: TContext,\n ) => ReturnType<\n ToolLike<\n TDefinition[K][\"name\"],\n z.infer<TDefinition[K][\"inputSchema\"]>,\n TDefinition[K] extends { outputSchema: infer Schema }\n ? Schema extends z.ZodType\n ? z.infer<Schema>\n : never\n : never\n >[\"handler\"]\n >;\n };\n }\n : never;\n\nexport const bindingClient = <TDefinition extends readonly ToolBinder[]>(\n binder: TDefinition,\n) => {\n return {\n implements: (tools: ToolBinder[]) => {\n return binder.every(\n (tool) =>\n tool.opt === true || (tools ?? []).some((t) => t.name === tool.name),\n );\n },\n forConnection: (\n mcpConnection: MCPConnection,\n ): MCPClientFetchStub<TDefinition> => {\n return createMCPFetchStub<TDefinition>({\n connection: mcpConnection,\n streamable: binder.reduce(\n (acc, tool) => {\n acc[tool.name] = tool.streamable === true;\n return acc;\n },\n {} as Record<string, boolean>,\n ),\n });\n },\n };\n};\n\nexport type MCPBindingClient<T extends ReturnType<typeof bindingClient>> =\n ReturnType<T[\"forConnection\"]>;\n\nexport const ChannelBinding = bindingClient(CHANNEL_BINDING);\nexport const ViewBinding = bindingClient(VIEW_BINDING);\n\nexport type { Callbacks } from \"./channels.ts\";\n\nexport const impl = <TBinder extends Binder>(\n schema: TBinder,\n implementation: BinderImplementation<TBinder>,\n createToolFn = createPrivateTool,\n createStreamableToolFn = createStreamableTool,\n) => {\n const impl: (\n | ReturnType<typeof createToolFn>\n | ReturnType<typeof createStreamableToolFn>\n )[] = [];\n for (const key in schema) {\n const toolSchema = schema[key];\n const toolImplementation = implementation[key];\n\n if (toolSchema.opt && !toolImplementation) {\n continue;\n }\n\n if (!toolImplementation) {\n throw new Error(`Implementation for ${key} is required`);\n }\n\n const { name, handler, streamable, ...toolLike } = {\n ...toolSchema,\n ...toolImplementation,\n };\n if (streamable) {\n impl.push(\n createStreamableToolFn({\n ...toolLike,\n streamable,\n id: name,\n execute: ({ context }) => Promise.resolve(handler(context)),\n }),\n );\n } else {\n impl.push(\n createToolFn({\n ...toolLike,\n id: name,\n execute: ({ context }) => Promise.resolve(handler(context)),\n }),\n );\n }\n }\n return impl;\n};\n","import { z } from \"zod/v3\";\n\n/**\n * Resources 2.0 Schemas\n *\n * This module provides standardized schemas for Resources 2.0, a major version upgrade\n * that introduces standardized resource management with `rsc://` URI format and\n * consistent CRUD operations across all resource types.\n *\n * Key Features:\n * - Standardized `rsc://` URI format for all resources\n * - Generic CRUD operation schemas that work with any resource type\n * - Type-safe factory functions for creating resource-specific schemas\n * - Comprehensive validation and error handling\n * - Full TypeScript support with Zod validation\n */\n\n// Common URI format validation for Resources 2.0\nexport const ResourceUriSchema = z\n .string()\n .regex(\n /^rsc:\\/\\/[^/]+\\/[^/]+\\/.+$/,\n \"Invalid resource URI format. Expected format: rsc://workspace/project/resource-id\",\n );\n\nexport const DescribeInputSchema = z.object({});\nexport const DescribeOutputSchema = z.object({\n uriTemplate: ResourceUriSchema.describe(\"URI template for the resource\"),\n features: z.object({\n watch: z.object({\n pathname: z.string().describe(\"Pathname to watch\"),\n }),\n }),\n});\n\n/**\n * Search input schema for resource queries\n * Supports pagination, filtering, sorting, and search terms\n */\nexport const SearchInputSchema = z.object({\n term: z.string().optional().describe(\"Search term to filter resources\"),\n page: z.number().int().min(1).default(1).describe(\"Page number (1-based)\"),\n pageSize: z\n .number()\n .int()\n .min(1)\n .max(100)\n .default(20)\n .describe(\"Number of items per page\"),\n filters: z.record(z.any()).optional().describe(\"Additional filters to apply\"),\n sortBy: z.string().optional().describe(\"Field to sort by\"),\n sortOrder: z\n .enum([\"asc\", \"desc\"])\n .optional()\n .default(\"asc\")\n .describe(\"Sort order\"),\n});\n\n/**\n * Factory function to create search output schema for a specific resource type\n * @param itemSchema - The schema for individual resource items\n * @returns Zod schema for search results with pagination metadata\n */\nexport function createSearchOutputSchema<T extends z.ZodTypeAny>(\n itemSchema: T,\n) {\n return z.object({\n items: z.array(itemSchema).describe(\"Array of matching resources\"),\n totalCount: z\n .number()\n .int()\n .min(0)\n .describe(\"Total number of matching resources\"),\n page: z.number().int().min(1).describe(\"Current page number\"),\n pageSize: z.number().int().min(1).describe(\"Number of items per page\"),\n totalPages: z.number().int().min(0).describe(\"Total number of pages\"),\n hasNextPage: z.boolean().describe(\"Whether there are more pages available\"),\n hasPreviousPage: z\n .boolean()\n .describe(\"Whether there are previous pages available\"),\n });\n}\n\n/**\n * Read input schema for retrieving a single resource\n */\nexport const ReadInputSchema = z.object({\n uri: ResourceUriSchema.describe(\"URI of the resource to read\"),\n});\n\n/**\n * Factory function to create read output schema for a specific resource type\n * @param dataSchema - The schema for the resource data\n * @returns Zod schema for read operation results\n */\nexport function createReadOutputSchema<T extends z.ZodTypeAny>(dataSchema: T) {\n return z.object({\n uri: ResourceUriSchema.describe(\"URI of the resource\"),\n data: dataSchema.describe(\"Resource data\"),\n created_at: z.string().datetime().optional().describe(\"Creation timestamp\"),\n updated_at: z\n .string()\n .datetime()\n .optional()\n .describe(\"Last update timestamp\"),\n created_by: z.string().optional().describe(\"User who created the resource\"),\n updated_by: z\n .string()\n .optional()\n .describe(\"User who last updated the resource\"),\n });\n}\n\n/**\n * Factory function to create create input schema for a specific resource type\n * @param dataSchema - The schema for the resource data to create\n * @returns Zod schema for create operation input\n */\nexport function createCreateInputSchema<T extends z.ZodTypeAny>(dataSchema: T) {\n return z.object({\n data: dataSchema.describe(\"Resource data to create\"),\n });\n}\n\n/**\n * Factory function to create create output schema for a specific resource type\n * @param dataSchema - The schema for the created resource data\n * @returns Zod schema for create operation results\n */\nexport function createCreateOutputSchema<T extends z.ZodTypeAny>(\n dataSchema: T,\n) {\n return z.object({\n uri: ResourceUriSchema.describe(\"URI of the created resource\"),\n data: dataSchema.describe(\"Created resource data\"),\n created_at: z.string().datetime().optional().describe(\"Creation timestamp\"),\n updated_at: z\n .string()\n .datetime()\n .optional()\n .describe(\"Last update timestamp\"),\n created_by: z.string().optional().describe(\"User who created the resource\"),\n });\n}\n\n/**\n * Factory function to create update input schema for a specific resource type\n * @param dataSchema - The schema for the resource data to update\n * @returns Zod schema for update operation input\n */\nexport function createUpdateInputSchema<T extends z.ZodTypeAny>(dataSchema: T) {\n return z.object({\n uri: ResourceUriSchema.describe(\"URI of the resource to update\"),\n data: dataSchema.describe(\"Updated resource data\"),\n });\n}\n\n/**\n * Factory function to create update output schema for a specific resource type\n * @param dataSchema - The schema for the updated resource data\n * @returns Zod schema for update operation results\n */\nexport function createUpdateOutputSchema<T extends z.ZodTypeAny>(\n dataSchema: T,\n) {\n return z.object({\n uri: ResourceUriSchema.describe(\"URI of the updated resource\"),\n data: dataSchema.describe(\"Updated resource data\"),\n created_at: z\n .string()\n .datetime()\n .optional()\n .describe(\"Original creation timestamp\"),\n updated_at: z\n .string()\n .datetime()\n .optional()\n .describe(\"Last update timestamp\"),\n created_by: z\n .string()\n .optional()\n .describe(\"User who originally created the resource\"),\n updated_by: z\n .string()\n .optional()\n .describe(\"User who last updated the resource\"),\n });\n}\n\n/**\n * Delete input schema for removing a resource\n */\nexport const DeleteInputSchema = z.object({\n uri: ResourceUriSchema.describe(\"URI of the resource to delete\"),\n});\n\n/**\n * Delete output schema for delete operation results\n */\nexport const DeleteOutputSchema = z.object({\n success: z.boolean().describe(\"Whether the deletion was successful\"),\n uri: ResourceUriSchema.describe(\"URI of the deleted resource\"),\n});\n\n/**\n * Factory function to create item schema for a specific resource type\n * This schema is used in search results and lists\n * @param dataSchema - The schema for the resource data\n * @returns Zod schema for resource items with metadata\n */\nexport function createItemSchema<T extends z.ZodTypeAny>(dataSchema: T) {\n return z.object({\n uri: ResourceUriSchema.describe(\"URI of the resource\"),\n data: z\n .object({\n name: z.string().min(1, \"Name is required\"),\n description: z\n .string()\n .optional()\n .describe(\"Description of the resource\"),\n icon: z.string().url().optional().describe(\"URL to the resource icon\"),\n })\n .and(dataSchema)\n .describe(\"Resource data with required name\"),\n created_at: z.string().datetime().optional().describe(\"Creation timestamp\"),\n updated_at: z\n .string()\n .datetime()\n .optional()\n .describe(\"Last update timestamp\"),\n created_by: z.string().optional().describe(\"User who created the resource\"),\n updated_by: z\n .string()\n .optional()\n .describe(\"User who last updated the resource\"),\n });\n}\n\n// Export types for TypeScript usage\nexport type ResourceUri = z.infer<typeof ResourceUriSchema>;\nexport type SearchInput = z.infer<typeof SearchInputSchema>;\nexport type SearchOutput<T extends z.ZodTypeAny> = z.infer<\n ReturnType<typeof createSearchOutputSchema<T>>\n>;\nexport type ReadInput = z.infer<typeof ReadInputSchema>;\nexport type ReadOutput<T extends z.ZodTypeAny> = z.infer<\n ReturnType<typeof createReadOutputSchema<T>>\n>;\nexport type CreateInput<T extends z.ZodTypeAny> = z.infer<\n ReturnType<typeof createCreateInputSchema<T>>\n>;\nexport type CreateOutput<T extends z.ZodTypeAny> = z.infer<\n ReturnType<typeof createCreateOutputSchema<T>>\n>;\nexport type UpdateInput<T extends z.ZodTypeAny> = z.infer<\n ReturnType<typeof createUpdateInputSchema<T>>\n>;\nexport type UpdateOutput<T extends z.ZodTypeAny> = z.infer<\n ReturnType<typeof createUpdateOutputSchema<T>>\n>;\nexport type DeleteInput = z.infer<typeof DeleteInputSchema>;\nexport type DeleteOutput = z.infer<typeof DeleteOutputSchema>;\nexport type ResourceItem<T extends z.ZodTypeAny> = z.infer<\n ReturnType<typeof createItemSchema<T>>\n>;\n","import { z } from \"zod/v3\";\nimport type { ToolBinder } from \"../../mcp.ts\";\nimport {\n createCreateInputSchema,\n createCreateOutputSchema,\n createItemSchema,\n createReadOutputSchema,\n createSearchOutputSchema,\n createUpdateInputSchema,\n createUpdateOutputSchema,\n DeleteInputSchema,\n DeleteOutputSchema,\n DescribeInputSchema,\n DescribeOutputSchema,\n ReadInputSchema,\n SearchInputSchema,\n} from \"./schemas.ts\";\nexport type BaseResourceDataSchema = z.ZodObject<{\n name: z.ZodString;\n description: z.ZodString;\n}>;\n\n/**\n * Resources 2.0 Bindings\n *\n * This module provides standardized tool bindings for Resources 2.0, a major version upgrade\n * that introduces standardized resource management with `rsc://` URI format and\n * consistent CRUD operations across all resource types.\n *\n * Key Features:\n * - Generic resource bindings that work with any resource type\n * - Standardized tool naming: `deco_resource_*`\n * - Full TypeScript support with proper type constraints\n * - Integration with existing binding system\n */\n\n/**\n * Creates generic resource bindings for Resources 2.0\n *\n * This function generates standardized tool bindings that work with any resource type\n * by accepting a custom data schema and resource name. The bindings provide the standard CRUD operations:\n * - DECO_RESOURCE_{RESOURCE}_SEARCH - Search resources with pagination and filtering\n * - DECO_RESOURCE_{RESOURCE}_READ - Read a single resource by URI\n * - DECO_RESOURCE_{RESOURCE}_CREATE - Create new resources (optional)\n * - DECO_RESOURCE_{RESOURCE}_UPDATE - Update existing resources (optional)\n * - DECO_RESOURCE_{RESOURCE}_DELETE - Delete resources (optional)\n *\n * @param resourceName - The name of the resource type (e.g., \"workflow\", \"document\", \"user\")\n * @param dataSchema - The Zod schema for the resource data type\n * @returns Array of tool bindings for Resources 2.0 CRUD operations\n */\nexport function createResourceBindings<\n TDataSchema extends BaseResourceDataSchema,\n>(resourceName: string, dataSchema: TDataSchema) {\n const readOutputSchema = createReadOutputSchema(dataSchema);\n return [\n {\n name: `DECO_RESOURCE_${resourceName.toUpperCase()}_SEARCH` as const,\n inputSchema: SearchInputSchema,\n outputSchema: createSearchOutputSchema(\n createItemSchema(dataSchema.pick({ name: true, description: true })),\n ),\n },\n {\n name: `DECO_RESOURCE_${resourceName.toUpperCase()}_READ` as const,\n inputSchema: ReadInputSchema,\n outputSchema: readOutputSchema,\n },\n {\n name: `DECO_RESOURCE_${resourceName.toUpperCase()}_CREATE` as const,\n inputSchema: createCreateInputSchema(dataSchema),\n outputSchema: createCreateOutputSchema(dataSchema),\n opt: true,\n },\n {\n name: `DECO_RESOURCE_${resourceName.toUpperCase()}_UPDATE` as const,\n inputSchema: createUpdateInputSchema(dataSchema),\n outputSchema: createUpdateOutputSchema(dataSchema),\n opt: true,\n },\n {\n name: `DECO_RESOURCE_${resourceName.toUpperCase()}_DELETE` as const,\n inputSchema: DeleteInputSchema,\n outputSchema: DeleteOutputSchema,\n opt: true,\n },\n {\n name: `DECO_RESOURCE_${resourceName.toUpperCase()}_DESCRIBE` as const,\n inputSchema: DescribeInputSchema,\n outputSchema: DescribeOutputSchema,\n opt: true,\n },\n ] as const satisfies readonly ToolBinder[];\n}\n\n// Export types for TypeScript usage\nexport type ResourceBinding<TDataSchema extends BaseResourceDataSchema> =\n ReturnType<typeof createResourceBindings<TDataSchema>>;\nexport type ResourceBindingsFunction = typeof createResourceBindings;\n","/**\n * DeconfigResources 2.0\n *\n * This module provides file-based resource management using the Resources 2.0 system\n * with standardized `rsc://` URI format and consistent CRUD operations.\n *\n * Key Features:\n * - File-based resource storage in DECONFIG directories\n * - Resources 2.0 standardized schemas and URI format\n * - Type-safe resource definitions with Zod validation\n * - Full CRUD operations with proper error handling\n * - Integration with existing deconfig file system\n * - Support for custom resource schemas and enhancements\n */\n\nimport { DefaultEnv } from \"../../index.ts\";\nimport { impl } from \"../binder.ts\";\nimport type { BaseResourceDataSchema } from \"../resources/bindings.ts\";\nimport { createResourceBindings } from \"../resources/bindings.ts\";\nimport { ResourceUriSchema } from \"../resources/schemas.ts\";\nimport {\n ResourcePath,\n ResourceUri,\n getMetadataString,\n normalizeDirectory,\n toAsyncIterator,\n} from \"./helpers.ts\";\nimport type { DeconfigClient, DeconfigResourceOptions } from \"./types.ts\";\nimport { WELL_KNOWN_ORIGINS } from \"../../well-known.ts\";\n\nexport type {\n EnhancedResourcesTools,\n ResourcesBinding,\n ResourcesTools,\n} from \"./types.ts\";\nexport type { DeconfigClient, DeconfigResourceOptions };\n\n// Error classes - these will be imported from SDK when used there\nexport class NotFoundError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"NotFoundError\";\n }\n}\n\nexport class UserInputError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"UserInputError\";\n }\n}\n\nconst dirOf = (\n options: Pick<\n DeconfigResourceOptions<BaseResourceDataSchema>,\n \"directory\" | \"resourceName\"\n >,\n) => {\n return options.directory\n ? options.directory\n : `/resources/${options.resourceName}`;\n};\nexport const createDeconfigResource = <\n TDataSchema extends BaseResourceDataSchema,\n>(\n options: DeconfigResourceOptions<TDataSchema>,\n) => {\n const {\n resourceName,\n dataSchema,\n enhancements,\n env,\n validate: semanticValidate,\n } = options;\n const deconfig = env.DECONFIG;\n const directory = dirOf(options);\n\n // Create resource-specific bindings using the provided data schema\n const resourceBindings = createResourceBindings(resourceName, dataSchema);\n\n const tools = impl(resourceBindings, [\n // deco_resource_search\n {\n description:\n enhancements?.[\n `DECO_RESOURCE_${resourceName.toUpperCase()}_SEARCH` as keyof typeof enhancements\n ]?.description ||\n `Search ${resourceName} resources in the DECONFIG directory ${directory}`,\n handler: async ({\n term,\n page = 1,\n pageSize = 10,\n filters,\n sortBy,\n sortOrder,\n }) => {\n const normalizedDir = normalizeDirectory(directory);\n const offset = pageSize !== Infinity ? (page - 1) * pageSize : 0;\n\n // List all files in the directory\n const filesList = await deconfig.LIST_FILES({\n prefix: normalizedDir,\n });\n\n // Filter files that end with .json\n const allFiles = Object.entries(filesList.files)\n .filter(([path]) => path.endsWith(\".json\"))\n .map(([path, metadata]) => ({\n path,\n resourceId: path\n .replace(`${normalizedDir}/`, \"\")\n .replace(\".json\", \"\"),\n metadata,\n }));\n\n // Simple search - filter by resource ID, path, title, description, created_by, or updated_by\n let filteredFiles = allFiles;\n if (term) {\n filteredFiles = allFiles.filter(({ resourceId, path, metadata }) => {\n const searchTerm = term.toLowerCase();\n return (\n resourceId.toLowerCase().includes(searchTerm) ||\n path.toLowerCase().includes(searchTerm) ||\n (\n getMetadataString(metadata, \"name\")?.toLowerCase() ?? \"\"\n ).includes(searchTerm) ||\n (\n getMetadataString(metadata, \"description\")?.toLowerCase() ?? \"\"\n ).includes(searchTerm) ||\n (\n getMetadataString(metadata, \"createdBy\")?.toLowerCase() ?? \"\"\n ).includes(searchTerm) ||\n (\n getMetadataString(metadata, \"updatedBy\")?.toLowerCase() ?? \"\"\n ).includes(searchTerm)\n );\n });\n }\n\n // Apply additional filters if provided\n if (filters) {\n const createdByFilter = filters.created_by as\n | string\n | string[]\n | undefined;\n const updatedByFilter = filters.updated_by as\n | string\n | string[]\n | undefined;\n\n if (createdByFilter) {\n const createdBySet = new Set(\n Array.isArray(createdByFilter)\n ? createdByFilter.map((v: unknown) => String(v))\n : [String(createdByFilter)],\n );\n filteredFiles = filteredFiles.filter(({ metadata }) => {\n const value = getMetadataString(metadata, \"createdBy\");\n return value ? createdBySet.has(value) : false;\n });\n }\n\n if (updatedByFilter) {\n const updatedBySet = new Set(\n Array.isArray(updatedByFilter)\n ? updatedByFilter.map((v: unknown) => String(v))\n : [String(updatedByFilter)],\n );\n filteredFiles = filteredFiles.filter(({ metadata }) => {\n const value = getMetadataString(metadata, \"updatedBy\");\n return value ? updatedBySet.has(value) : false;\n });\n }\n }\n\n // Sort if specified\n if (sortBy) {\n filteredFiles.sort((a, b) => {\n let aValue: string | number;\n let bValue: string | number;\n\n if (sortBy === \"resourceId\") {\n aValue = a.resourceId;\n bValue = b.resourceId;\n } else if (sortBy === \"name\") {\n aValue = getMetadataString(a.metadata, \"name\") || a.resourceId;\n bValue = getMetadataString(b.metadata, \"name\") || b.resourceId;\n } else if (sortBy === \"description\") {\n aValue = getMetadataString(a.metadata, \"description\") || \"\";\n bValue = getMetadataString(b.metadata, \"description\") || \"\";\n } else {\n aValue = a.metadata.mtime;\n bValue = b.metadata.mtime;\n }\n\n if (sortOrder === \"desc\") {\n return aValue < bValue ? 1 : aValue > bValue ? -1 : 0;\n } else {\n return aValue > bValue ? 1 : aValue < bValue ? -1 : 0;\n }\n });\n }\n\n // Apply pagination\n const totalCount = filteredFiles.length;\n const totalPages = Math.ceil(totalCount / pageSize);\n const hasNextPage = offset + pageSize < totalCount;\n const hasPreviousPage = page > 1;\n const items = filteredFiles.slice(offset, offset + pageSize);\n\n return {\n items: items.map(({ resourceId, metadata }) => {\n // Construct Resources 2.0 URI\n const uri = ResourceUri.build(\n env.DECO_REQUEST_CONTEXT.integrationId as string,\n resourceName,\n resourceId,\n );\n\n // Extract title and description from metadata, with fallbacks\n const name = getMetadataString(metadata, \"name\") || resourceId;\n const description =\n getMetadataString(metadata, \"description\") || \"\";\n\n return {\n uri,\n data: { name, description },\n created_at:\n \"ctime\" in metadata && typeof metadata.ctime === \"number\"\n ? new Date(metadata.ctime).toISOString()\n : undefined,\n updated_at:\n \"mtime\" in metadata && typeof metadata.mtime === \"number\"\n ? new Date(metadata.mtime).toISOString()\n : undefined,\n created_by: getMetadataString(metadata, \"createdBy\"),\n updated_by:\n getMetadataString(metadata, \"updatedBy\") ||\n getMetadataString(metadata, \"createdBy\"),\n };\n }),\n totalCount,\n page,\n pageSize,\n totalPages,\n hasNextPage,\n hasPreviousPage,\n };\n },\n },\n\n // deco_resource_read\n {\n description:\n enhancements?.[\n `DECO_RESOURCE_${resourceName.toUpperCase()}_READ` as keyof typeof enhancements\n ]?.description ||\n `Read a ${resourceName} resource from the DECONFIG directory ${directory}`,\n handler: async ({ uri }) => {\n // Validate URI format\n ResourceUriSchema.parse(uri);\n\n const resourceId = ResourceUri.unwind(uri).resourceId;\n const filePath = ResourcePath.build(directory, resourceId);\n\n try {\n const fileData = await deconfig.READ_FILE({\n path: filePath,\n format: \"plainString\",\n });\n\n const content = fileData.content as string;\n\n // Parse the JSON content\n let parsedData: Record<string, unknown> = {};\n try {\n parsedData = JSON.parse(content);\n } catch {\n throw new UserInputError(\"Invalid JSON content in resource file\");\n }\n\n // Validate against schema\n const validatedData = dataSchema.parse(parsedData);\n\n return {\n uri,\n data: validatedData,\n created_at: new Date(fileData.ctime).toISOString(),\n updated_at: new Date(fileData.mtime).toISOString(),\n created_by:\n parsedData &&\n \"created_by\" in parsedData &&\n typeof parsedData.created_by === \"string\"\n ? parsedData.created_by\n : undefined,\n updated_by:\n parsedData &&\n \"updated_by\" in parsedData &&\n typeof parsedData.updated_by === \"string\"\n ? parsedData.updated_by\n : undefined,\n };\n } catch (error) {\n if (error instanceof Error && error.message.includes(\"not found\")) {\n throw new NotFoundError(`Resource not found: ${uri}`);\n }\n throw error;\n }\n },\n },\n\n // deco_resource_create (optional)\n {\n description:\n enhancements?.[\n `DECO_RESOURCE_${resourceName.toUpperCase()}_CREATE` as keyof typeof enhancements\n ]?.description ||\n `Create a new ${resourceName} resource in the DECONFIG directory ${directory}`,\n handler: async ({ data }) => {\n // Validate data against schema\n const validatedData = dataSchema.parse(data);\n\n // Run semantic validation if provided\n if (semanticValidate) {\n await semanticValidate(validatedData);\n }\n\n // Extract resource ID from name or generate one\n const resourceId =\n (validatedData.name as string)?.replace(/[^a-zA-Z0-9-_]/g, \"-\") ||\n crypto.randomUUID();\n const uri = ResourceUri.build(\n env.DECO_REQUEST_CONTEXT.integrationId as string,\n resourceName,\n resourceId,\n );\n const filePath = ResourcePath.build(directory, resourceId);\n const user = env.DECO_REQUEST_CONTEXT.ensureAuthenticated();\n // Prepare resource data with metadata\n const resourceData = {\n ...validatedData,\n id: resourceId,\n created_at: new Date().toISOString(),\n updated_at: new Date().toISOString(),\n created_by: user?.id ? String(user.id) : undefined,\n updated_by: user?.id ? String(user.id) : undefined,\n };\n\n const fileContent = JSON.stringify(resourceData, null, 2);\n const putResult = await deconfig.PUT_FILE({\n path: filePath,\n content: fileContent,\n metadata: {\n resourceType: resourceName,\n resourceId,\n createdBy: user?.id,\n name: validatedData.name || resourceId,\n description: validatedData.description || \"\",\n },\n });\n\n if (putResult.conflict) {\n throw new UserInputError(\n \"Resource write conflicted. Please refresh and retry.\",\n );\n }\n\n return {\n uri,\n data: validatedData,\n created_at: resourceData.created_at,\n updated_at: resourceData.updated_at,\n created_by: user?.id ? String(user.id) : undefined,\n updated_by: user?.id ? String(user.id) : undefined,\n };\n },\n },\n\n // deco_resource_update (optional)\n {\n description:\n enhancements?.[\n `DECO_RESOURCE_${resourceName.toUpperCase()}_UPDATE` as keyof typeof enhancements\n ]?.description ||\n `Update a ${resourceName} resource in the DECONFIG directory ${directory}`,\n handler: async ({ uri, data }) => {\n // Validate URI format\n ResourceUriSchema.parse(uri);\n\n const resourceId = ResourceUri.unwind(uri).resourceId;\n const filePath = ResourcePath.build(directory, resourceId);\n\n // Read existing file to get current data\n let existingData: Record<string, unknown> = {};\n try {\n const fileData = await deconfig.READ_FILE({\n path: filePath,\n format: \"plainString\",\n });\n existingData = JSON.parse(fileData.content as string);\n } catch {\n throw new NotFoundError(`Resource not found: ${uri}`);\n }\n\n // Validate new data against schema\n const validatedData = dataSchema.parse(data);\n\n // Run semantic validation if provided\n if (semanticValidate) {\n await semanticValidate(validatedData);\n }\n\n const user = env.DECO_REQUEST_CONTEXT.ensureAuthenticated();\n\n const previousCreatedBy =\n typeof existingData[\"created_by\"] === \"string\"\n ? (existingData[\"created_by\"] as string)\n : undefined;\n\n // Merge existing data with updates\n const updatedData = {\n ...existingData,\n ...validatedData,\n id: resourceId,\n createdBy: previousCreatedBy,\n updated_at: new Date().toISOString(),\n updated_by: user?.id ? String(user.id) : undefined,\n };\n\n const fileContent = JSON.stringify(updatedData, null, 2);\n\n const putResult = await deconfig.PUT_FILE({\n path: filePath,\n content: fileContent,\n metadata: {\n resourceType: resourceName,\n resourceId,\n updatedBy: user?.id,\n name: validatedData.name || resourceId,\n description: validatedData.description || \"\",\n },\n });\n\n if (putResult.conflict) {\n throw new UserInputError(\n \"Resource write conflicted. Please refresh and retry.\",\n );\n }\n\n return {\n uri,\n data: validatedData,\n created_at: existingData.created_at as string,\n updated_at: updatedData.updated_at,\n created_by: existingData.created_by as string,\n updated_by: user?.id ? String(user.id) : undefined,\n };\n },\n },\n // deco_resource_delete (optional)\n {\n description:\n enhancements?.[\n `DECO_RESOURCE_${resourceName.toUpperCase()}_DELETE` as keyof typeof enhancements\n ]?.description ||\n `Delete a ${resourceName} resource from the DECONFIG directory ${directory}`,\n handler: async ({ uri }) => {\n // Validate URI format\n ResourceUriSchema.parse(uri);\n\n const resourceId = ResourceUri.unwind(uri).resourceId;\n const filePath = ResourcePath.build(directory, resourceId);\n\n try {\n await deconfig.DELETE_FILE({\n path: filePath,\n });\n\n return {\n success: true,\n uri,\n };\n } catch (error) {\n if (error instanceof Error && error.message.includes(\"not found\")) {\n throw new NotFoundError(`Resource not found: ${uri}`);\n }\n throw error;\n }\n },\n },\n {\n description:\n enhancements?.[\n `DECO_RESOURCE_${resourceName.toUpperCase()}_DESCRIBE` as keyof typeof enhancements\n ]?.description ||\n `Describe the ${resourceName} resource in the DECONFIG directory ${directory}`,\n handler: () => {\n return {\n uriTemplate: ResourceUri.build(\n env.DECO_REQUEST_CONTEXT.integrationId as string,\n resourceName,\n \"*\",\n ),\n features: {\n watch: {\n pathname: `${RESOURCE_WATCH_BASE_PATHNAME}${directory}`,\n },\n },\n };\n },\n },\n ]);\n\n return tools;\n};\n\nconst removeLeadingSlash = (url: string) => {\n return url.startsWith(\"/\") ? url.slice(1) : url;\n};\n\nexport interface WatchOptions {\n watcherId?: string;\n pathFilter: string;\n resourceName: string;\n env: DefaultEnv & { DECONFIG: DeconfigClient };\n}\nconst watcher = ({\n env,\n pathFilter,\n resourceName,\n ...options\n}: WatchOptions): AsyncIterableIterator<{ uri: string }> => {\n const url = new URL(\n `/${removeLeadingSlash(env.DECO_REQUEST_CONTEXT.workspace)}/deconfig/watch`,\n `${env.DECO_API_URL ?? \"https://api.decocms.com\"}`,\n );\n if (options.watcherId) {\n url.searchParams.set(\"watcher-id\", options.watcherId);\n }\n url.searchParams.set(\"path-filter\", pathFilter);\n url.searchParams.set(\"branch\", env.DECO_REQUEST_CONTEXT.branch ?? \"main\");\n url.searchParams.set(\"auth-token\", env.DECO_REQUEST_CONTEXT.token);\n url.searchParams.set(\"from-ctime\", \"1\");\n\n const eventSource = new EventSource(url);\n const it = toAsyncIterator<{\n path: string;\n metadata: { address: string };\n }>(eventSource, \"change\");\n const iterator = async function* () {\n for await (const event of it) {\n const { path } = event;\n try {\n const { resourceId } = ResourcePath.extract(path);\n const uri = ResourceUri.build(\n env.DECO_REQUEST_CONTEXT.integrationId as string,\n resourceName,\n resourceId,\n );\n yield { uri };\n } catch {\n // ignore\n }\n }\n };\n const mIterator = iterator();\n const retn = mIterator.return;\n mIterator.return = function (val) {\n eventSource.close();\n return retn?.call(mIterator, val) ?? val;\n };\n return mIterator;\n};\n\nconst hasDeconfigBinding = (\n env: unknown,\n): env is DefaultEnv & { DECONFIG: DeconfigClient } => {\n return (\n env !== undefined &&\n typeof env === \"object\" &&\n env !== null &&\n \"DECONFIG\" in env\n );\n};\nexport const RESOURCE_WATCH_BASE_PATHNAME = \"/resources/watch\";\nexport const DeconfigResource = {\n WatchPathNameBase: RESOURCE_WATCH_BASE_PATHNAME,\n watchAPI: (req: Request, env: DefaultEnv) => {\n if (!hasDeconfigBinding(env)) {\n return new Response(\"DECONFIG:@deco/deconfig binding is required\", {\n status: 400,\n });\n }\n\n const url = new URL(req.url);\n const uri = url.searchParams.get(\"uri\");\n if (!uri) {\n return new Response(\"URI is required\", { status: 400 });\n }\n const pathname = url.pathname;\n let pathFilter = pathname.slice(RESOURCE_WATCH_BASE_PATHNAME.length); // removes `${RESOURCE_WATCH_BASE_PATHNAME}`\n const { resourceName, resourceId } = ResourceUri.unwind(uri);\n pathFilter =\n resourceId === \"*\"\n ? pathFilter\n : ResourcePath.build(pathFilter, resourceId);\n const watch = watcher({\n env,\n resourceName,\n pathFilter,\n });\n\n // Create SSE-compatible ReadableStream\n const sseStream = new ReadableStream({\n async start(controller) {\n const encoder = new TextEncoder();\n\n try {\n for await (const event of watch) {\n // Format as SSE: data: {json}\\n\\n\n const sseData = `data: ${JSON.stringify(event)}\\n\\n`;\n controller.enqueue(encoder.encode(sseData));\n }\n controller.close();\n } catch (error) {\n controller.error(error);\n }\n },\n cancel() {\n watch.return?.();\n // Clean up the async iterator if needed\n },\n });\n\n return new Response(sseStream, {\n status: 200,\n headers: {\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache\",\n Connection: \"keep-alive\",\n \"Access-Control-Allow-Origin\": WELL_KNOWN_ORIGINS.join(\",\"),\n \"Access-Control-Allow-Headers\": \"Cache-Control\",\n },\n });\n },\n define: <TDataSchema extends BaseResourceDataSchema>(\n options: Omit<DeconfigResourceOptions<TDataSchema>, \"env\">,\n ) => {\n return {\n watcher,\n create: (env: DefaultEnv & { DECONFIG: DeconfigClient }) => {\n return createDeconfigResource({\n env,\n ...options,\n });\n },\n };\n },\n};\n"]}
@@ -1,5 +1,5 @@
1
- import { ViewsListOutputSchema } from './chunk-AOFOWQXY.js';
2
- import { ResourcesReadOutputSchema, ResourcesReadInputSchema, ResourceSearchOutputSchema, ResourceSearchInputSchema, ResourceCreateOutputSchema, ResourceCreateInputSchema, ResourceUpdateOutputSchema, ResourceUpdateInputSchema, ResourceDeleteOutputSchema, ResourceDeleteInputSchema, ResourcesListOutputSchema } from './chunk-NKUMVYKI.js';
1
+ import { ViewsListOutputSchema } from './chunk-L4OT2YDO.js';
2
+ import { ResourcesReadOutputSchema, ResourcesReadInputSchema, ResourceSearchOutputSchema, ResourceSearchInputSchema, ResourceCreateOutputSchema, ResourceCreateInputSchema, ResourceUpdateOutputSchema, ResourceUpdateInputSchema, ResourceDeleteOutputSchema, ResourceDeleteInputSchema, ResourcesListOutputSchema } from './chunk-7ITSLORK.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';
@@ -7,7 +7,7 @@ import { RuntimeContext } from '@mastra/core/di';
7
7
  import { createStep as createStep$1 } from '@mastra/core/workflows';
8
8
  export { cloneStep, cloneWorkflow, createWorkflow } from '@mastra/core/workflows';
9
9
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
10
- import { z } from 'zod';
10
+ import { z } from 'zod/v3';
11
11
  import { zodToJsonSchema } from 'zod-to-json-schema';
12
12
  import { AsyncLocalStorage } from 'async_hooks';
13
13
 
@@ -514,5 +514,5 @@ var createMCPServer = (options) => {
514
514
  };
515
515
 
516
516
  export { State, createMCPServer, createPrivateTool, createRuntimeContext, createStep, createStepFromTool, createStreamableTool, createTool, isStreamableTool, isWorkflow };
517
- //# sourceMappingURL=chunk-LCU3FBI3.js.map
518
- //# sourceMappingURL=chunk-LCU3FBI3.js.map
517
+ //# sourceMappingURL=chunk-UIJGM3NV.js.map
518
+ //# sourceMappingURL=chunk-UIJGM3NV.js.map