@aotter/mantle-cloudflare 0.1.0-alpha.9 → 0.1.2-alpha.2

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 (85) hide show
  1. package/README.md +88 -13
  2. package/dist/auth/conventionalAuth.d.ts +1 -0
  3. package/dist/auth/conventionalAuth.d.ts.map +1 -1
  4. package/dist/auth/conventionalAuth.js +2 -0
  5. package/dist/auth/conventionalAuth.js.map +1 -1
  6. package/dist/auth/createAuth.d.ts +24 -11
  7. package/dist/auth/createAuth.d.ts.map +1 -1
  8. package/dist/auth/createAuth.js +274 -23
  9. package/dist/auth/createAuth.js.map +1 -1
  10. package/dist/auth/emailTemplates.d.ts +7 -0
  11. package/dist/auth/emailTemplates.d.ts.map +1 -0
  12. package/dist/auth/emailTemplates.js +27 -0
  13. package/dist/auth/emailTemplates.js.map +1 -0
  14. package/dist/bindings/KvSiteConfigRepository.d.ts +44 -0
  15. package/dist/bindings/KvSiteConfigRepository.d.ts.map +1 -0
  16. package/dist/bindings/KvSiteConfigRepository.js +286 -0
  17. package/dist/bindings/KvSiteConfigRepository.js.map +1 -0
  18. package/dist/bindings/R2MediaStorage.d.ts +2 -3
  19. package/dist/bindings/R2MediaStorage.d.ts.map +1 -1
  20. package/dist/bindings/R2MediaStorage.js +59 -42
  21. package/dist/bindings/R2MediaStorage.js.map +1 -1
  22. package/dist/bindings/WorkersQueueHookDispatcher.d.ts.map +1 -1
  23. package/dist/bindings/WorkersQueueHookDispatcher.js +10 -8
  24. package/dist/bindings/WorkersQueueHookDispatcher.js.map +1 -1
  25. package/dist/bindings/conventionalBindings.d.ts +3 -1
  26. package/dist/bindings/conventionalBindings.d.ts.map +1 -1
  27. package/dist/bindings/conventionalBindings.js +4 -1
  28. package/dist/bindings/conventionalBindings.js.map +1 -1
  29. package/dist/bindings/index.d.ts +1 -0
  30. package/dist/bindings/index.d.ts.map +1 -1
  31. package/dist/bindings/index.js +1 -0
  32. package/dist/bindings/index.js.map +1 -1
  33. package/dist/mount/bootRuntimeOnce.d.ts +4 -0
  34. package/dist/mount/bootRuntimeOnce.d.ts.map +1 -1
  35. package/dist/mount/bootRuntimeOnce.js +53 -27
  36. package/dist/mount/bootRuntimeOnce.js.map +1 -1
  37. package/dist/mount/cmsConfig.d.ts +12 -1
  38. package/dist/mount/cmsConfig.d.ts.map +1 -1
  39. package/dist/mount/mountMcp.d.ts.map +1 -1
  40. package/dist/mount/mountMcp.js +76 -92
  41. package/dist/mount/mountMcp.js.map +1 -1
  42. package/dist/mount/mountPublicRoutes.d.ts +1 -0
  43. package/dist/mount/mountPublicRoutes.d.ts.map +1 -1
  44. package/dist/mount/mountPublicRoutes.js +74 -59
  45. package/dist/mount/mountPublicRoutes.js.map +1 -1
  46. package/dist/mount/mountRuntimeEndpoints.d.ts.map +1 -1
  47. package/dist/mount/mountRuntimeEndpoints.js +20 -3
  48. package/dist/mount/mountRuntimeEndpoints.js.map +1 -1
  49. package/dist/mount/resolveCaller.d.ts +1 -1
  50. package/dist/mount/resolveCaller.d.ts.map +1 -1
  51. package/dist/mount/resolveCaller.js +5 -3
  52. package/dist/mount/resolveCaller.js.map +1 -1
  53. package/dist/oauth/cachePolicy.d.ts +3 -1
  54. package/dist/oauth/cachePolicy.d.ts.map +1 -1
  55. package/dist/oauth/cachePolicy.js +10 -2
  56. package/dist/oauth/cachePolicy.js.map +1 -1
  57. package/dist/oauth/index.d.ts +2 -2
  58. package/dist/oauth/index.d.ts.map +1 -1
  59. package/dist/oauth/index.js +2 -2
  60. package/dist/oauth/index.js.map +1 -1
  61. package/dist/requestDiagnostics.d.ts +53 -0
  62. package/dist/requestDiagnostics.d.ts.map +1 -0
  63. package/dist/requestDiagnostics.js +32 -0
  64. package/dist/requestDiagnostics.js.map +1 -0
  65. package/dist/testing.d.ts +19 -0
  66. package/dist/testing.d.ts.map +1 -0
  67. package/dist/testing.js +263 -0
  68. package/dist/testing.js.map +1 -0
  69. package/dist/worker/createMantleWorker.d.ts +5 -0
  70. package/dist/worker/createMantleWorker.d.ts.map +1 -1
  71. package/dist/worker/createMantleWorker.js +58 -19
  72. package/dist/worker/createMantleWorker.js.map +1 -1
  73. package/package.json +24 -17
  74. package/dist/auth/rejectCrossOriginMutation.d.ts +0 -2
  75. package/dist/auth/rejectCrossOriginMutation.d.ts.map +0 -1
  76. package/dist/auth/rejectCrossOriginMutation.js +0 -15
  77. package/dist/auth/rejectCrossOriginMutation.js.map +0 -1
  78. package/dist/oauth/consentHtml.d.ts +0 -15
  79. package/dist/oauth/consentHtml.d.ts.map +0 -1
  80. package/dist/oauth/consentHtml.js +0 -91
  81. package/dist/oauth/consentHtml.js.map +0 -1
  82. package/dist/oauth/mountOAuth.d.ts +0 -9
  83. package/dist/oauth/mountOAuth.d.ts.map +0 -1
  84. package/dist/oauth/mountOAuth.js +0 -37
  85. package/dist/oauth/mountOAuth.js.map +0 -1
@@ -28,15 +28,14 @@ import { RandomUuidGenerator, extensionForMime, } from "@aotter/mantle-runtime";
28
28
  * # Multi-variant (#272)
29
29
  *
30
30
  * `createUpload` produces one presigned PUT URL per declared variant;
31
- * `commitUpload` HEAD-verifies every one. Storage keys are scoped
31
+ * `commitUpload` verifies and streams every object through a metadata rewrite. Storage keys are scoped
32
32
  * under a shared `<uploadGroupId>/` prefix so operators can eyeball
33
33
  * the variant set in R2 dashboards, and the orphan sweeper (#254)
34
34
  * can identify partially-committed groups by listing the prefix.
35
35
  *
36
36
  * Optimization runs agent-side in the MCP client's runtime. The
37
37
  * Worker never decodes / re-encodes bytes — it only verifies content-
38
- * type + size on the metadata returned by R2's HEAD-equivalent path
39
- * (`bucket.get` + `httpMetadata`).
38
+ * type + size from `bucket.get` before streaming the metadata-rewrite PUT.
40
39
  *
41
40
  * # Future: private bucket adapter
42
41
  *
@@ -123,16 +122,12 @@ export class R2MediaStorage {
123
122
  };
124
123
  }
125
124
  async commitUpload(args) {
126
- const variants = [];
127
- for (const spec of args.variants) {
128
- variants.push(await this.verifyAndCommitVariant(args, spec));
129
- }
130
125
  // Enforce the asset-shape invariant the renderer depends on. The
131
126
  // use case already validated this at create time; this is a
132
127
  // belt-and-suspenders check at the adapter-side commit path.
133
128
  // Exactly one primary, no duplicated (mime, role) pair (the latter
134
129
  // would have already collided on storage key in createUpload).
135
- const primaries = variants.filter((v) => v.role === "primary");
130
+ const primaries = args.variants.filter((v) => v.role === "primary");
136
131
  if (primaries.length !== 1) {
137
132
  throw new DiagnosticError(makeDiagnostic({
138
133
  code: "MEDIA_VARIANTS_INCOMPLETE",
@@ -140,11 +135,11 @@ export class R2MediaStorage {
140
135
  severity: "error",
141
136
  path: "adapter/R2MediaStorage/commitUpload",
142
137
  expected: "exactly one variant with role='primary'",
143
- value: variants.map((v) => v.role).join(","),
138
+ value: args.variants.map((v) => v.role).join(","),
144
139
  }));
145
140
  }
146
141
  const seenKey = new Set();
147
- for (const v of variants) {
142
+ for (const v of args.variants) {
148
143
  const key = `${v.mimeType}/${v.role}`;
149
144
  if (seenKey.has(key)) {
150
145
  throw new DiagnosticError(makeDiagnostic({
@@ -158,6 +153,18 @@ export class R2MediaStorage {
158
153
  }
159
154
  seenKey.add(key);
160
155
  }
156
+ const variants = [];
157
+ // At most three GET streams and three corresponding PUTs per invocation.
158
+ // Settle the whole batch before returning an error or starting another.
159
+ for (let offset = 0; offset < args.variants.length; offset += 3) {
160
+ const results = await Promise.allSettled(args.variants.slice(offset, offset + 3)
161
+ .map((spec) => this.verifyAndCommitVariant(args, spec)));
162
+ for (const result of results) {
163
+ if (result.status === "rejected")
164
+ throw result.reason;
165
+ variants.push(result.value);
166
+ }
167
+ }
161
168
  return {
162
169
  id: args.uploadGroupId,
163
170
  variants,
@@ -181,41 +188,51 @@ export class R2MediaStorage {
181
188
  const existing = await this.bucket.get(spec.storageKey);
182
189
  if (!existing)
183
190
  throw mediaDiagnostic("MEDIA_OBJECT_NOT_FOUND", { value: args.uploadGroupId });
184
- const actualMime = existing.httpMetadata?.contentType ?? "application/octet-stream";
185
- if (actualMime !== spec.mimeType) {
186
- throw mediaDiagnostic("MEDIA_MIME_REJECTED", {
187
- value: actualMime,
188
- expected: spec.mimeType,
191
+ try {
192
+ const actualMime = existing.httpMetadata?.contentType ?? "application/octet-stream";
193
+ if (actualMime !== spec.mimeType) {
194
+ throw mediaDiagnostic("MEDIA_MIME_REJECTED", {
195
+ value: actualMime,
196
+ expected: spec.mimeType,
197
+ });
198
+ }
199
+ if (existing.size > spec.maxBytes) {
200
+ throw mediaDiagnostic("MEDIA_VARIANT_SIZE_EXCEEDED", {
201
+ value: { mimeType: spec.mimeType, byteSize: existing.size },
202
+ expected: `${spec.mimeType} byteSize <= ${spec.maxBytes}`,
203
+ });
204
+ }
205
+ const customMetadata = {
206
+ ...existing.customMetadata,
207
+ committedAt: String(args.now),
208
+ role: spec.role,
209
+ uploadGroupId: args.uploadGroupId,
210
+ filename: args.filename,
211
+ };
212
+ if (args.alt)
213
+ customMetadata["alt"] = args.alt;
214
+ if (args.caption)
215
+ customMetadata["caption"] = args.caption;
216
+ const committed = await this.bucket.put(spec.storageKey, existing.body, {
217
+ httpMetadata: { contentType: actualMime },
218
+ customMetadata,
189
219
  });
220
+ if (!committed)
221
+ throw new Error("R2 metadata commit did not store the object.");
222
+ return {
223
+ mimeType: actualMime,
224
+ publicUrl: `${this.publicBase}/${spec.storageKey}`,
225
+ storageKey: spec.storageKey,
226
+ byteSize: existing.size,
227
+ role: spec.role,
228
+ };
190
229
  }
191
- if (existing.size > spec.maxBytes) {
192
- throw mediaDiagnostic("MEDIA_VARIANT_SIZE_EXCEEDED", {
193
- value: { mimeType: spec.mimeType, byteSize: existing.size },
194
- expected: `${spec.mimeType} byteSize <= ${spec.maxBytes}`,
195
- });
230
+ catch (error) {
231
+ // Validation may reject before PUT takes ownership of the GET stream.
232
+ // A failed PUT may already have consumed/errored it; preserve the cause.
233
+ await existing.body.cancel().catch(() => { });
234
+ throw error;
196
235
  }
197
- const customMetadata = {
198
- ...existing.customMetadata,
199
- committedAt: String(args.now),
200
- role: spec.role,
201
- uploadGroupId: args.uploadGroupId,
202
- filename: args.filename,
203
- };
204
- if (args.alt)
205
- customMetadata["alt"] = args.alt;
206
- if (args.caption)
207
- customMetadata["caption"] = args.caption;
208
- await this.bucket.put(spec.storageKey, existing.body, {
209
- httpMetadata: { contentType: actualMime },
210
- customMetadata,
211
- });
212
- return {
213
- mimeType: actualMime,
214
- publicUrl: `${this.publicBase}/${spec.storageKey}`,
215
- storageKey: spec.storageKey,
216
- byteSize: existing.size,
217
- role: spec.role,
218
- };
219
236
  }
220
237
  /** Object keys are server-generated. Layout:
221
238
  *
@@ -1 +1 @@
1
- {"version":3,"file":"R2MediaStorage.js","sourceRoot":"","sources":["../../src/bindings/R2MediaStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"R2MediaStorage.js","sourceRoot":"","sources":["../../src/bindings/R2MediaStorage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"WorkersQueueHookDispatcher.d.ts","sourceRoot":"","sources":["../../src/bindings/WorkersQueueHookDispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAUhC;;;;;;;;;GASG;AACH,qBAAa,0BAA2B,YAAW,sBAAsB;IAC3D,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK,CAAC,oBAAoB,CAAC;IAEzD,OAAO,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;CAiC7D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EACpC,MAAM,EAAE;IAAE,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC,CAAA;CAAE,GACxC,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAkC3D"}
1
+ {"version":3,"file":"WorkersQueueHookDispatcher.d.ts","sourceRoot":"","sources":["../../src/bindings/WorkersQueueHookDispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAQhC;;;;;;;;;GASG;AACH,qBAAa,0BAA2B,YAAW,sBAAsB;IAC3D,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK,CAAC,oBAAoB,CAAC;IAEzD,OAAO,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;CAqC7D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EACpC,MAAM,EAAE;IAAE,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC,CAAA;CAAE,GACxC,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAkC3D"}
@@ -1,10 +1,8 @@
1
- import { z } from "zod";
2
1
  // Cloudflare's 128 KB limit is decimal and includes roughly 100 bytes
3
2
  // of platform metadata. Reserve a full 1 KB so accepted envelopes stay
4
3
  // below the provider limit rather than failing only at queue.send.
5
4
  const MAX_ENVELOPE_BYTES = 127_000;
6
5
  const MAX_CONCURRENCY = 5;
7
- const jsonValue = z.json();
8
6
  /**
9
7
  * `DeferredHookDispatcher` impl backed by a Cloudflare Workers Queue
10
8
  * binding. Producer side: serialises each `DeferredHookEnvelope` and
@@ -32,16 +30,20 @@ export class WorkersQueueHookDispatcher {
32
30
  : envelope;
33
31
  let json;
34
32
  try {
35
- json = jsonValue.safeParse(wireEnvelope);
33
+ json = JSON.stringify(wireEnvelope, (_key, value) => {
34
+ if (value === undefined ||
35
+ typeof value === "function" ||
36
+ typeof value === "symbol" ||
37
+ typeof value === "bigint") {
38
+ throw new TypeError("value is not JSON-safe");
39
+ }
40
+ return value;
41
+ });
36
42
  }
37
43
  catch (cause) {
38
44
  throw new Error(`Deferred lifecycle envelope '${envelope.eventId}' is not JSON-safe.`, { cause });
39
45
  }
40
- if (!json.success) {
41
- const issue = json.error.issues[0];
42
- throw new Error(`Deferred lifecycle envelope '${envelope.eventId}' is not JSON-safe at '${issue?.path.join("/") ?? "unknown"}'.`);
43
- }
44
- const bytes = new TextEncoder().encode(JSON.stringify(json.data)).byteLength;
46
+ const bytes = new TextEncoder().encode(json).byteLength;
45
47
  if (bytes >= MAX_ENVELOPE_BYTES) {
46
48
  throw new Error(`Deferred lifecycle envelope '${envelope.eventId}' is ${bytes} bytes; this adapter requires less than ${MAX_ENVELOPE_BYTES} to leave room under Cloudflare's 128 KB message limit.`);
47
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WorkersQueueHookDispatcher.js","sourceRoot":"","sources":["../../src/bindings/WorkersQueueHookDispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkersQueueHookDispatcher.js","sourceRoot":"","sources":["../../src/bindings/WorkersQueueHookDispatcher.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,10 @@ import type { MantleCloudflareConfig } from "../mount/cmsConfig.js";
2
2
  export interface ConventionalBindingsEnv {
3
3
  readonly DB?: D1Database;
4
4
  readonly ASSETS?: Fetcher;
5
+ /** Optional app/environment-owned KV namespace for MCP catalog settings. */
6
+ readonly MANTLE_KV?: KVNamespace;
5
7
  }
6
8
  export type MantleWorkerBindings = MantleCloudflareConfig["bindings"];
7
9
  /** Bind the conventional Cloudflare names to Mantle's existing runtime adapters. */
8
- export declare function createConventionalBindings(env: ConventionalBindingsEnv): MantleWorkerBindings;
10
+ export declare function createConventionalBindings(env: ConventionalBindingsEnv, cacheScope?: string): MantleWorkerBindings;
9
11
  //# sourceMappingURL=conventionalBindings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conventionalBindings.d.ts","sourceRoot":"","sources":["../../src/bindings/conventionalBindings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAQpE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,oBAAoB,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;AAEtE,oFAAoF;AACpF,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,uBAAuB,GAC3B,oBAAoB,CAMtB"}
1
+ {"version":3,"file":"conventionalBindings.d.ts","sourceRoot":"","sources":["../../src/bindings/conventionalBindings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAQpE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC;CAClC;AAED,MAAM,MAAM,oBAAoB,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;AAEtE,oFAAoF;AACpF,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,uBAAuB,EAC5B,UAAU,CAAC,EAAE,MAAM,GAClB,oBAAoB,CAStB"}
@@ -4,12 +4,15 @@ import { D1DatabaseDriver } from "./D1DatabaseDriver.js";
4
4
  // their Admin route returns the explicit missing-assets response.
5
5
  const NO_ASSETS = { fetch: async () => null };
6
6
  /** Bind the conventional Cloudflare names to Mantle's existing runtime adapters. */
7
- export function createConventionalBindings(env) {
7
+ export function createConventionalBindings(env, cacheScope) {
8
8
  if (!env.DB)
9
9
  throw new Error("Mantle requires the conventional DB binding.");
10
10
  return {
11
11
  db: new D1DatabaseDriver(env.DB),
12
12
  adminAssets: env.ASSETS ? new AssetsAssetServer(env.ASSETS) : NO_ASSETS,
13
+ ...(env.MANTLE_KV && cacheScope
14
+ ? { mcpCatalogKv: { namespace: env.MANTLE_KV, scope: cacheScope } }
15
+ : {}),
13
16
  };
14
17
  }
15
18
  //# sourceMappingURL=conventionalBindings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conventionalBindings.js","sourceRoot":"","sources":["../../src/bindings/conventionalBindings.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,yEAAyE;AACzE,kEAAkE;AAClE,MAAM,SAAS,GAAqB,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;AAShE,oFAAoF;AACpF,MAAM,UAAU,0BAA0B,CACxC,GAA4B;IAE5B,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC7E,OAAO;QACL,EAAE,EAAE,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;KACxE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"conventionalBindings.js","sourceRoot":"","sources":["../../src/bindings/conventionalBindings.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,yEAAyE;AACzE,kEAAkE;AAClE,MAAM,SAAS,GAAqB,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;AAWhE,oFAAoF;AACpF,MAAM,UAAU,0BAA0B,CACxC,GAA4B,EAC5B,UAAmB;IAEnB,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC7E,OAAO;QACL,EAAE,EAAE,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QACvE,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,UAAU;YAC7B,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;YACnE,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC"}
@@ -2,5 +2,6 @@ export { D1DatabaseDriver, type D1QueryMetric, type D1QueryObserver, } from "./D
2
2
  export { AssetsAssetServer } from "./AssetsAssetServer.js";
3
3
  export { createConventionalBindings, type ConventionalBindingsEnv, type MantleWorkerBindings, } from "./conventionalBindings.js";
4
4
  export { R2MediaStorage } from "./R2MediaStorage.js";
5
+ export { KvSiteConfigRepository, type McpCatalogKvBinding, type McpCatalogSiteConfig, type McpCatalogSiteConfigReader, } from "./KvSiteConfigRepository.js";
5
6
  export { WorkersQueueHookDispatcher, createQueueHandler, } from "./WorkersQueueHookDispatcher.js";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bindings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,0BAA0B,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bindings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,0BAA0B,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,GAChC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,iCAAiC,CAAC"}
@@ -2,5 +2,6 @@ export { D1DatabaseDriver, } from "./D1DatabaseDriver.js";
2
2
  export { AssetsAssetServer } from "./AssetsAssetServer.js";
3
3
  export { createConventionalBindings, } from "./conventionalBindings.js";
4
4
  export { R2MediaStorage } from "./R2MediaStorage.js";
5
+ export { KvSiteConfigRepository, } from "./KvSiteConfigRepository.js";
5
6
  export { WorkersQueueHookDispatcher, createQueueHandler, } from "./WorkersQueueHookDispatcher.js";
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bindings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,GAGjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,0BAA0B,GAG3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bindings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,GAGjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,0BAA0B,GAG3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,sBAAsB,GAIvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,iCAAiC,CAAC"}
@@ -4,6 +4,7 @@ import type { AdminAssetServer } from "@aotter/mantle-admin";
4
4
  import type { Auth } from "../auth/createAuth.js";
5
5
  import type { MantleCloudflareConfig } from "./cmsConfig.js";
6
6
  import type { ConsumerCredentialResolver } from "./resolveCaller.js";
7
+ import { type McpCatalogSiteConfigReader } from "../bindings/KvSiteConfigRepository.js";
7
8
  /**
8
9
  * Per-isolate runtime singleton. The cached promise MUST reset on
9
10
  * rejection (PR #29 carry-forward) — otherwise a transient D1 error
@@ -18,6 +19,9 @@ export interface MantleRuntimeRef {
18
19
  readonly adminAssets?: AdminAssetServer;
19
20
  readonly credentialResolver?: ConsumerCredentialResolver;
20
21
  readonly jwtBearer?: MantleCloudflareConfig["jwtBearer"];
22
+ /** Caller-independent catalog reader. MCP invokes this only after auth. */
23
+ readonly mcpCatalogSiteConfig?: McpCatalogSiteConfigReader;
24
+ readonly publicCacheTag?: string;
21
25
  }
22
26
  export type CloudflareMantleRuntime = MantleRuntime & {
23
27
  readonly siteConfig: SiteConfigRepository;
@@ -1 +1 @@
1
- {"version":3,"file":"bootRuntimeOnce.d.ts","sourceRoot":"","sources":["../../src/mount/bootRuntimeOnce.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,oBAAoB,EAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAErE;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACxC,GAAG,CAAC,OAAO,EAAE,uBAAuB,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IACxC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAC;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC;CAC1D;AAED,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG;IACpD,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;CAC/E,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,GAAG,gBAAgB,CA+CvF"}
1
+ {"version":3,"file":"bootRuntimeOnce.d.ts","sourceRoot":"","sources":["../../src/mount/bootRuntimeOnce.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,oBAAoB,EAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,uCAAuC,CAAC;AAK/C;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACxC,GAAG,CAAC,OAAO,EAAE,uBAAuB,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IACxC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAC;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC;IACzD,2EAA2E;IAC3E,QAAQ,CAAC,oBAAoB,CAAC,EAAE,0BAA0B,CAAC;IAC3D,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG;IACpD,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;CAC/E,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,GAAG,gBAAgB,CAsEvF"}
@@ -1,15 +1,36 @@
1
1
  import { SqliteMantleStorageAdapter, bootMantleRuntime, } from "@aotter/mantle-runtime";
2
2
  import { createMantleWeb } from "@aotter/mantle-web";
3
+ import { KvSiteConfigRepository, } from "../bindings/KvSiteConfigRepository.js";
4
+ import { scopedPublicCacheTag } from "../oauth/cachePolicy.js";
5
+ import { diagnosticPhase } from "../requestDiagnostics.js";
3
6
  export function createMantleRuntimeRef(config) {
4
7
  let booted = null;
5
8
  let web = null;
6
- const storage = new SqliteMantleStorageAdapter(config.bindings.db, config.siteDefaults);
9
+ let mcpCatalogSiteConfig;
10
+ const mcpCatalogKv = config.bindings.mcpCatalogKv;
11
+ const publicCacheTag = scopedPublicCacheTag(config.cacheScope);
12
+ if (config.bindings.storage && mcpCatalogKv) {
13
+ throw new Error("Custom storage owns site configuration; omit mcpCatalogKv and decorate the selected storage explicitly.");
14
+ }
15
+ const storage = config.bindings.storage ?? new SqliteMantleStorageAdapter(config.bindings.db, config.siteDefaults, {
16
+ decorateSiteConfigRepository: mcpCatalogKv
17
+ ? (canonical) => {
18
+ const repository = new KvSiteConfigRepository(canonical, mcpCatalogKv);
19
+ mcpCatalogSiteConfig = repository;
20
+ return repository;
21
+ }
22
+ : undefined,
23
+ });
7
24
  return {
8
25
  plan: config.plan,
9
26
  auth: config.auth,
10
27
  adminAssets: config.bindings.adminAssets,
11
28
  credentialResolver: config.credentialResolver,
12
29
  jwtBearer: config.jwtBearer,
30
+ get mcpCatalogSiteConfig() {
31
+ return mcpCatalogSiteConfig;
32
+ },
33
+ ...(publicCacheTag ? { publicCacheTag } : {}),
13
34
  web(runtime) {
14
35
  return web ??= createMantleWeb(runtime, {
15
36
  templates: config.templates,
@@ -18,34 +39,39 @@ export function createMantleRuntimeRef(config) {
18
39
  });
19
40
  },
20
41
  get() {
21
- if (booted)
22
- return booted;
23
- booted = bootWithD1Retry(async () => {
24
- const runtime = await bootMantleRuntime({
25
- plan: config.plan,
26
- storage,
27
- handlers: config.handlers,
28
- deployment: {
29
- reservedHttpPathPrefixes: config.reservedHttpPathPrefixes,
30
- },
31
- ports: {
32
- deferredHookDispatcher: config.bindings.deferredHookDispatcher,
33
- mediaStorage: config.bindings.mediaStorage,
34
- mediaAllowSvg: config.mediaAllowSvg,
35
- onPublishingContentChange: config.onPublicChange,
36
- },
42
+ return diagnosticPhase("runtime", () => {
43
+ if (booted)
44
+ return booted;
45
+ booted = bootWithD1Retry(async () => {
46
+ const runtime = await bootMantleRuntime({
47
+ plan: config.plan,
48
+ storage,
49
+ handlers: config.handlers,
50
+ deployment: {
51
+ reservedHttpPathPrefixes: config.reservedHttpPathPrefixes,
52
+ },
53
+ ports: {
54
+ deferredHookDispatcher: config.bindings.deferredHookDispatcher,
55
+ mediaStorage: config.bindings.mediaStorage,
56
+ mediaAllowSvg: config.mediaAllowSvg,
57
+ onPublishingContentChange: config.onPublicChange,
58
+ },
59
+ });
60
+ if (!runtime.siteConfig || !runtime.updateSiteSettings) {
61
+ throw new Error("Cloudflare storage did not prepare site configuration.");
62
+ }
63
+ if (!mcpCatalogSiteConfig && "loadCatalogSite" in runtime.siteConfig) {
64
+ mcpCatalogSiteConfig = runtime.siteConfig;
65
+ }
66
+ return runtime;
67
+ })
68
+ .catch((err) => {
69
+ booted = null;
70
+ console.error("[mantle] runtime boot failed", errorDetails(err));
71
+ throw err;
37
72
  });
38
- if (!runtime.siteConfig || !runtime.updateSiteSettings) {
39
- throw new Error("Cloudflare SQLite storage did not prepare site configuration.");
40
- }
41
- return runtime;
42
- })
43
- .catch((err) => {
44
- booted = null;
45
- console.error("[mantle] runtime boot failed", errorDetails(err));
46
- throw err;
73
+ return booted;
47
74
  });
48
- return booted;
49
75
  },
50
76
  };
51
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bootRuntimeOnce.js","sourceRoot":"","sources":["../../src/mount/bootRuntimeOnce.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootRuntimeOnce.js","sourceRoot":"","sources":["../../src/mount/bootRuntimeOnce.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
- import type { AnyHandler, DatabaseDriver, DeferredHookDispatcher, MediaStorage, RuntimePlan } from "@aotter/mantle-runtime";
1
+ import type { AnyHandler, DatabaseDriver, DeferredHookDispatcher, MediaStorage, MantleStorageAdapter, RuntimePlan } from "@aotter/mantle-runtime";
2
2
  import type { AdminAssetServer } from "@aotter/mantle-admin";
3
3
  import type { PublicPathResolver, TemplateRegistry } from "@aotter/mantle-web";
4
4
  import type { SiteDefaults } from "@aotter/mantle-spec";
5
5
  import type { Auth } from "../auth/createAuth.js";
6
6
  import type { ConsumerCredentialResolver } from "./resolveCaller.js";
7
+ import type { McpCatalogKvBinding } from "../bindings/KvSiteConfigRepository.js";
7
8
  /**
8
9
  * Consumer-supplied config for the Cloudflare adapter mounts. `auth`
9
10
  * (Better Auth) gates `/admin/api/*` + MCP bearers. `bindings` carries
@@ -14,12 +15,18 @@ export interface MantleCloudflareConfig {
14
15
  readonly handlers?: Readonly<Record<string, AnyHandler>>;
15
16
  readonly templates?: TemplateRegistry;
16
17
  readonly siteDefaults?: SiteDefaults;
18
+ /** Stable deployment/site identifier for KV keys and public cache tags. */
19
+ readonly cacheScope?: string;
17
20
  readonly publicPathResolver?: PublicPathResolver;
18
21
  /** Routes owned by the capabilities this composition actually mounts. */
19
22
  readonly reservedHttpPathPrefixes?: readonly string[];
20
23
  readonly bindings: {
21
24
  readonly db: DatabaseDriver;
22
25
  } & {
26
+ /** Host-selected semantic storage. Defaults to SQLite over `db`. The host
27
+ * owns site defaults/preparation when supplied; cannot combine with the
28
+ * conventional `mcpCatalogKv` decorator. Auth still owns its database. */
29
+ readonly storage?: MantleStorageAdapter;
23
30
  /** Optional Admin SPA assets. Omitting this mounts no Admin surface. */
24
31
  readonly adminAssets?: AdminAssetServer;
25
32
  /** Optional media storage adapter. When set, media MCP tools and
@@ -33,6 +40,10 @@ export interface MantleCloudflareConfig {
33
40
  * `WorkersQueueHookDispatcher` bound to the `mantle-internal` queue
34
41
  * here. */
35
42
  readonly deferredHookDispatcher?: DeferredHookDispatcher;
43
+ /** Optional Cloudflare KV projection for MCP catalog site settings.
44
+ * Low-level compositions must provide a stable deployment-owned scope;
45
+ * conventional assembly derives it from `cacheScope`. */
46
+ readonly mcpCatalogKv?: McpCatalogKvBinding;
36
47
  };
37
48
  /** Pass-through to runtime: SVG opt-in flag (default false). */
38
49
  readonly mediaAllowSvg?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"cmsConfig.d.ts","sourceRoot":"","sources":["../../src/mount/cmsConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,YAAY,EACZ,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAErE;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACjD,yEAAyE;IACzE,QAAQ,CAAC,wBAAwB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtD,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAA;KAAE,GAAG;QACnD,wEAAwE;QACxE,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;QACxC;;yCAEiC;QACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;QACrC;;;;;oBAKY;QACZ,QAAQ,CAAC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;KAC1D,CAAC;IACF,gEAAgE;IAChE,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB;;yBAEqB;IACrB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAC;IACzD,sEAAsE;IACtE,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACrC,CAAC;IACF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C"}
1
+ {"version":3,"file":"cmsConfig.d.ts","sourceRoot":"","sources":["../../src/mount/cmsConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAEjF;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACjD,yEAAyE;IACzE,QAAQ,CAAC,wBAAwB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtD,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAA;KAAE,GAAG;QACnD;;mFAE2E;QAC3E,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC;QACxC,wEAAwE;QACxE,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;QACxC;;yCAEiC;QACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;QACrC;;;;;oBAKY;QACZ,QAAQ,CAAC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;QACzD;;kEAE0D;QAC1D,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;KAC7C,CAAC;IACF,gEAAgE;IAChE,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB;;yBAEqB;IACrB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAC;IACzD,sEAAsE;IACtE,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACrC,CAAC;IACF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"mountMcp.d.ts","sourceRoot":"","sources":["../../src/mount/mountMcp.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAI7D,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAC;IACrC,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;6DAEyD;IACzD,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,OAAO,EAAE,0BAA0B,GAClC,eAAe,CAAC,GAAG,CAAC,CAwHtB"}
1
+ {"version":3,"file":"mountMcp.d.ts","sourceRoot":"","sources":["../../src/mount/mountMcp.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAM7D,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAC;IACrC,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;6DAEyD;IACzD,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,OAAO,EAAE,0BAA0B,GAClC,eAAe,CAAC,GAAG,CAAC,CAuHtB"}