@contentful/mcp-tools 0.12.5 → 0.12.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -5231,55 +5231,169 @@ function createTaxonomyTools(config) {
5231
5231
  };
5232
5232
  }
5233
5233
 
5234
+ // src/tools/usage/getUsages.ts
5235
+ import { z as z78 } from "zod";
5236
+ import { createClient as createClient16 } from "contentful-management";
5237
+ var AGGREGATED_USAGE_METRIC_KEYS = [
5238
+ "api_call_cma",
5239
+ "api_call_cpa",
5240
+ "api_call_cda",
5241
+ "api_call_graphql",
5242
+ "asset_bandwidth",
5243
+ "functions_invocations",
5244
+ "ai_action_invocation",
5245
+ "ai_action_word_count",
5246
+ "ai_consumption_unit"
5247
+ ];
5248
+ var FilterValueSchema = z78.union([
5249
+ z78.string().min(1),
5250
+ z78.array(z78.string().min(1)).min(1).max(10)
5251
+ ]);
5252
+ var GetUsagesToolParams = z78.object({
5253
+ organizationId: z78.string().optional().describe(
5254
+ "Organization ID. If omitted, falls back to the ORGANIZATION_ID configured on the server."
5255
+ ),
5256
+ metricKey: z78.enum(AGGREGATED_USAGE_METRIC_KEYS).describe(
5257
+ 'Metric to aggregate. Availability depends on the products enabled for the organization. Allowed dimensions per metric (used by "group", "filter", and "order", all in the form sys.dimensions.<name>.sys.<suffix>): api_call_cma / api_call_cpa / api_call_cda / api_call_graphql \u2192 sys.dimensions.space.sys.id. asset_bandwidth \u2192 sys.dimensions.space.sys.id, sys.dimensions.asset.sys.id. functions_invocations \u2192 sys.dimensions.space.sys.id, sys.dimensions.app.sys.id, sys.dimensions.function.sys.id. ai_action_invocation / ai_action_word_count / ai_consumption_unit \u2192 sys.dimensions.space.sys.id, sys.dimensions.ai_action.sys.id, sys.dimensions.model.sys.provider, sys.dimensions.model.sys.id.'
5258
+ ),
5259
+ dateGte: z78.string().describe(
5260
+ "Start date (inclusive) in ISO-8601 format (YYYY-MM-DD or full date-time). Sent as query param date[gte]. Max lookback: 12 months from now."
5261
+ ),
5262
+ dateLte: z78.string().describe(
5263
+ "End date (inclusive) in ISO-8601 format (YYYY-MM-DD or full date-time). Sent as query param date[lte]."
5264
+ ),
5265
+ granularity: z78.enum(["P1D", "P1M"]).optional().describe(
5266
+ 'Bucket size as an ISO-8601 duration: "P1D" (daily, max 31-day range) or "P1M" (monthly, max 12 calendar months including current). Default P1D.'
5267
+ ),
5268
+ group: z78.string().optional().describe(
5269
+ 'Comma-separated dimension keys (in the form sys.dimensions.<name>.sys.<suffix>) to group results by. Values must come from the allowed dimensions for the chosen metricKey (see metricKey description), e.g. "sys.dimensions.space.sys.id" or "sys.dimensions.space.sys.id,sys.dimensions.function.sys.id".'
5270
+ ),
5271
+ filter: z78.record(z78.string(), FilterValueSchema).optional().describe(
5272
+ 'Filter by dimension values. Keys use the shape "sys.dimensions.<dimension>.sys.<attribute>", for example "sys.dimensions.space.sys.id" for the space_id dimension. Pass a string for a single-value filter or an array of up to 10 strings to filter by multiple values (uses the [in] operator). Available dimensions per metric are listed in the metricKey description.'
5273
+ ),
5274
+ limit: z78.number().int().positive().max(1e3).optional().describe("Maximum number of items to return (1\u20131000, default 1000)."),
5275
+ skip: z78.number().int().min(0).max(1e4).optional().describe("Number of items to skip for pagination (0\u201310000, default 0)."),
5276
+ order: z78.string().optional().describe(
5277
+ 'Column to sort by, in the form sys.dimensions.<name>.sys.<suffix>; prefix with "-" for descending (e.g. "-sys.dimensions.space.sys.id"). Allowed dimension columns match the metricKey (see metricKey description). The synthetic column "total_usage" is a bare token (e.g. "total_usage" or "-total_usage") and sums usage per group across the requested date range. When "group" is set, non-synthetic order columns must be a subset of grouped columns. Legacy underscore-form tokens (e.g. "space_id") return a 422.'
5278
+ )
5279
+ });
5280
+ function buildQuery(args) {
5281
+ const query = {};
5282
+ if (args.dateGte) query["date[gte]"] = args.dateGte;
5283
+ if (args.dateLte) query["date[lte]"] = args.dateLte;
5284
+ if (args.granularity) query["granularity"] = args.granularity;
5285
+ if (args.group) query["group"] = args.group;
5286
+ if (args.order) query["order"] = args.order;
5287
+ if (typeof args.limit === "number") query["limit"] = args.limit;
5288
+ if (typeof args.skip === "number") query["skip"] = args.skip;
5289
+ if (args.filter) {
5290
+ for (const [key, value] of Object.entries(args.filter)) {
5291
+ if (Array.isArray(value)) {
5292
+ query[`filter[${key}][in]`] = value.join(",");
5293
+ } else {
5294
+ query[`filter[${key}]`] = value;
5295
+ }
5296
+ }
5297
+ }
5298
+ return query;
5299
+ }
5300
+ function getUsagesTool(config) {
5301
+ async function tool2(args) {
5302
+ const organizationId = args.organizationId ?? config.organizationId;
5303
+ if (!organizationId) {
5304
+ throw new Error(
5305
+ "organizationId is required (either as a tool argument or via the ORGANIZATION_ID env var)."
5306
+ );
5307
+ }
5308
+ const client = createClient16(createClientConfig(config), { type: "plain" });
5309
+ const metricKey = args.metricKey;
5310
+ const collection = await client.raw.get(
5311
+ `/organizations/${organizationId}/usages/${metricKey}`,
5312
+ { params: buildQuery(args) }
5313
+ );
5314
+ const summarized = summarizeData(collection, {
5315
+ maxItems: 10,
5316
+ remainingMessage: "To see more usage buckets, please ask me to retrieve the next page using the skip parameter."
5317
+ });
5318
+ return createSuccessResponse("Usage retrieved successfully", {
5319
+ usage: summarized,
5320
+ total: collection.total,
5321
+ limit: collection.limit,
5322
+ skip: collection.skip,
5323
+ metricKey,
5324
+ organizationId
5325
+ });
5326
+ }
5327
+ return withErrorHandling(tool2, "Error retrieving usage");
5328
+ }
5329
+
5330
+ // src/tools/usage/register.ts
5331
+ function createUsageTools(config) {
5332
+ const getUsages = getUsagesTool(config);
5333
+ return {
5334
+ getUsages: {
5335
+ title: "get_usages",
5336
+ description: 'Get aggregated usage metrics for a Contentful organization, optionally scoped to one or more spaces (or other dimensions) via filter/group. Supports date-range windowing, ISO-8601 granularity (e.g. "P1D"), grouping by dimensions (e.g. group="sys.dimensions.space.sys.id"), and single-value / [in] filtering by dimensions (e.g. filter={"sys.dimensions.space.sys.id": "<space-id>"} or an array of up to 10 IDs). Use for questions like: "how much CMA traffic did this org make last month?", "which spaces used the most asset bandwidth this week?", "were there any AI action invocations for space X?".',
5337
+ inputParams: GetUsagesToolParams.shape,
5338
+ annotations: {
5339
+ readOnlyHint: true,
5340
+ destructiveHint: false,
5341
+ openWorldHint: false
5342
+ },
5343
+ tool: getUsages
5344
+ }
5345
+ };
5346
+ }
5347
+
5234
5348
  // src/tools/jobs/space-to-space-migration/exportSpace.ts
5235
- import { z as z79 } from "zod";
5349
+ import { z as z80 } from "zod";
5236
5350
 
5237
5351
  // src/types/querySchema.ts
5238
- import { z as z78 } from "zod";
5239
- var EntryQuerySchema = z78.object({
5240
- content_type: z78.string().optional().describe("Filter by content type"),
5241
- include: z78.number().optional().describe("Include this many levels of linked entries"),
5242
- select: z78.string().optional().describe("Comma-separated list of fields to return"),
5243
- links_to_entry: z78.string().optional().describe("Find entries that link to the specified entry ID"),
5244
- limit: z78.number().optional().describe("Maximum number of entries to return"),
5245
- skip: z78.number().optional().describe("Skip this many entries"),
5246
- order: z78.string().optional().describe("Order entries by this field")
5247
- });
5248
- var AssetQuerySchema = z78.object({
5249
- mimetype_group: z78.string().optional().describe("Filter by MIME type group"),
5250
- select: z78.string().optional().describe("Comma-separated list of fields to return"),
5251
- limit: z78.number().optional().describe("Maximum number of assets to return"),
5252
- skip: z78.number().optional().describe("Skip this many assets"),
5253
- order: z78.string().optional().describe("Order assets by this field")
5352
+ import { z as z79 } from "zod";
5353
+ var EntryQuerySchema = z79.object({
5354
+ content_type: z79.string().optional().describe("Filter by content type"),
5355
+ include: z79.number().optional().describe("Include this many levels of linked entries"),
5356
+ select: z79.string().optional().describe("Comma-separated list of fields to return"),
5357
+ links_to_entry: z79.string().optional().describe("Find entries that link to the specified entry ID"),
5358
+ limit: z79.number().optional().describe("Maximum number of entries to return"),
5359
+ skip: z79.number().optional().describe("Skip this many entries"),
5360
+ order: z79.string().optional().describe("Order entries by this field")
5361
+ });
5362
+ var AssetQuerySchema = z79.object({
5363
+ mimetype_group: z79.string().optional().describe("Filter by MIME type group"),
5364
+ select: z79.string().optional().describe("Comma-separated list of fields to return"),
5365
+ limit: z79.number().optional().describe("Maximum number of assets to return"),
5366
+ skip: z79.number().optional().describe("Skip this many assets"),
5367
+ order: z79.string().optional().describe("Order assets by this field")
5254
5368
  });
5255
5369
 
5256
5370
  // src/tools/jobs/space-to-space-migration/exportSpace.ts
5257
5371
  var ExportSpaceToolParams = BaseToolSchema.extend({
5258
- exportDir: z79.string().optional().describe(
5372
+ exportDir: z80.string().optional().describe(
5259
5373
  "Directory to save the exported space data (optional, defaults to current directory)"
5260
5374
  ),
5261
- saveFile: z79.boolean().optional().default(true).describe("Save the exported space data to a file"),
5262
- contentFile: z79.string().optional().describe("Custom filename for the exported space data (optional)"),
5263
- includeDrafts: z79.boolean().optional().default(false).describe("Include draft entries in the export"),
5264
- includeArchived: z79.boolean().optional().default(false).describe("Include archived entries in the export"),
5265
- skipContentModel: z79.boolean().optional().default(false).describe("Skip exporting content types"),
5266
- skipEditorInterfaces: z79.boolean().optional().default(false).describe("Skip exporting editor interfaces"),
5267
- skipContent: z79.boolean().optional().default(false).describe("Skip exporting entries and assets"),
5268
- skipRoles: z79.boolean().optional().default(false).describe("Skip exporting roles and permissions"),
5269
- skipTags: z79.boolean().optional().default(false).describe("Skip exporting tags"),
5270
- skipWebhooks: z79.boolean().optional().default(false).describe("Skip exporting webhooks"),
5271
- stripTags: z79.boolean().optional().default(false).describe("Untag assets and entries"),
5272
- contentOnly: z79.boolean().optional().default(false).describe("Only export assets and entries"),
5375
+ saveFile: z80.boolean().optional().default(true).describe("Save the exported space data to a file"),
5376
+ contentFile: z80.string().optional().describe("Custom filename for the exported space data (optional)"),
5377
+ includeDrafts: z80.boolean().optional().default(false).describe("Include draft entries in the export"),
5378
+ includeArchived: z80.boolean().optional().default(false).describe("Include archived entries in the export"),
5379
+ skipContentModel: z80.boolean().optional().default(false).describe("Skip exporting content types"),
5380
+ skipEditorInterfaces: z80.boolean().optional().default(false).describe("Skip exporting editor interfaces"),
5381
+ skipContent: z80.boolean().optional().default(false).describe("Skip exporting entries and assets"),
5382
+ skipRoles: z80.boolean().optional().default(false).describe("Skip exporting roles and permissions"),
5383
+ skipTags: z80.boolean().optional().default(false).describe("Skip exporting tags"),
5384
+ skipWebhooks: z80.boolean().optional().default(false).describe("Skip exporting webhooks"),
5385
+ stripTags: z80.boolean().optional().default(false).describe("Untag assets and entries"),
5386
+ contentOnly: z80.boolean().optional().default(false).describe("Only export assets and entries"),
5273
5387
  queryEntries: EntryQuerySchema.optional().describe(
5274
5388
  "Export only entries that match query parameters"
5275
5389
  ),
5276
5390
  queryAssets: AssetQuerySchema.optional().describe(
5277
5391
  "Export only assets that match query parameters"
5278
5392
  ),
5279
- downloadAssets: z79.boolean().optional().default(false).describe("Download actual asset files"),
5280
- maxAllowedLimit: z79.number().optional().default(1e3).describe("Maximum number of items per request"),
5281
- errorLogFile: z79.string().optional().describe("Path to error log output file"),
5282
- useVerboseRenderer: z79.boolean().optional().describe("Line-by-line logging, useful for CI")
5393
+ downloadAssets: z80.boolean().optional().default(false).describe("Download actual asset files"),
5394
+ maxAllowedLimit: z80.number().optional().default(1e3).describe("Maximum number of items per request"),
5395
+ errorLogFile: z80.string().optional().describe("Path to error log output file"),
5396
+ useVerboseRenderer: z80.boolean().optional().describe("Line-by-line logging, useful for CI")
5283
5397
  });
5284
5398
  function createExportSpaceTool(config) {
5285
5399
  async function tool2(args) {
@@ -5329,70 +5443,70 @@ function createExportSpaceTool(config) {
5329
5443
  }
5330
5444
 
5331
5445
  // src/tools/jobs/space-to-space-migration/paramCollection.ts
5332
- import { z as z80 } from "zod";
5446
+ import { z as z81 } from "zod";
5333
5447
  var ParamCollectionToolParams = BaseToolSchema.extend({
5334
- confirmation: z80.boolean().optional().describe(
5448
+ confirmation: z81.boolean().optional().describe(
5335
5449
  "User confirmation that they are ready to proceed with the workflow"
5336
5450
  ),
5337
- export: z80.object({
5338
- spaceId: z80.string().optional().describe("ID of the space with source data"),
5339
- environmentId: z80.string().optional().describe("ID of the environment in the source space"),
5340
- deliveryToken: z80.string().optional().describe("CDA token to export only published content (excludes tags)"),
5341
- exportDir: z80.string().optional().describe("Path to export JSON output"),
5342
- saveFile: z80.boolean().optional().describe("Save the export as a JSON file"),
5343
- contentFile: z80.string().optional().describe("Filename for exported data"),
5344
- includeDrafts: z80.boolean().optional().describe("Include drafts in exported entries"),
5345
- includeArchived: z80.boolean().optional().describe("Include archived entries"),
5346
- skipContentModel: z80.boolean().optional().describe("Skip exporting content models"),
5347
- skipEditorInterfaces: z80.boolean().optional().describe("Skip exporting editor interfaces"),
5348
- skipContent: z80.boolean().optional().describe("Skip exporting entries and assets"),
5349
- skipRoles: z80.boolean().optional().describe("Skip exporting roles and permissions"),
5350
- skipTags: z80.boolean().optional().describe("Skip exporting tags"),
5351
- skipWebhooks: z80.boolean().optional().describe("Skip exporting webhooks"),
5352
- stripTags: z80.boolean().optional().describe("Remove tags from entries and assets"),
5353
- contentOnly: z80.boolean().optional().describe("Export only entries and assets"),
5451
+ export: z81.object({
5452
+ spaceId: z81.string().optional().describe("ID of the space with source data"),
5453
+ environmentId: z81.string().optional().describe("ID of the environment in the source space"),
5454
+ deliveryToken: z81.string().optional().describe("CDA token to export only published content (excludes tags)"),
5455
+ exportDir: z81.string().optional().describe("Path to export JSON output"),
5456
+ saveFile: z81.boolean().optional().describe("Save the export as a JSON file"),
5457
+ contentFile: z81.string().optional().describe("Filename for exported data"),
5458
+ includeDrafts: z81.boolean().optional().describe("Include drafts in exported entries"),
5459
+ includeArchived: z81.boolean().optional().describe("Include archived entries"),
5460
+ skipContentModel: z81.boolean().optional().describe("Skip exporting content models"),
5461
+ skipEditorInterfaces: z81.boolean().optional().describe("Skip exporting editor interfaces"),
5462
+ skipContent: z81.boolean().optional().describe("Skip exporting entries and assets"),
5463
+ skipRoles: z81.boolean().optional().describe("Skip exporting roles and permissions"),
5464
+ skipTags: z81.boolean().optional().describe("Skip exporting tags"),
5465
+ skipWebhooks: z81.boolean().optional().describe("Skip exporting webhooks"),
5466
+ stripTags: z81.boolean().optional().describe("Remove tags from entries and assets"),
5467
+ contentOnly: z81.boolean().optional().describe("Export only entries and assets"),
5354
5468
  queryEntries: EntryQuerySchema.optional().describe(
5355
5469
  "Export only entries that match query parameters"
5356
5470
  ),
5357
5471
  queryAssets: AssetQuerySchema.optional().describe(
5358
5472
  "Export only assets that match query parameters"
5359
5473
  ),
5360
- downloadAssets: z80.boolean().optional().describe("Download asset files to disk"),
5361
- host: z80.string().optional().describe("Management API host"),
5362
- hostDelivery: z80.string().optional().describe("Delivery API host"),
5363
- proxy: z80.string().optional().describe("HTTP/HTTPS proxy config"),
5364
- rawProxy: z80.boolean().optional().describe("Pass raw proxy config directly to Axios"),
5365
- maxAllowedLimit: z80.number().optional().describe("Page size for requests"),
5366
- headers: z80.record(z80.any()).optional().describe("Additional headers to include in requests"),
5367
- errorLogFile: z80.string().optional().describe("Path to error log output file"),
5368
- useVerboseRenderer: z80.boolean().optional().describe("Line-by-line logging, useful for CI"),
5369
- config: z80.string().optional().describe("Path to a JSON config file with all options")
5474
+ downloadAssets: z81.boolean().optional().describe("Download asset files to disk"),
5475
+ host: z81.string().optional().describe("Management API host"),
5476
+ hostDelivery: z81.string().optional().describe("Delivery API host"),
5477
+ proxy: z81.string().optional().describe("HTTP/HTTPS proxy config"),
5478
+ rawProxy: z81.boolean().optional().describe("Pass raw proxy config directly to Axios"),
5479
+ maxAllowedLimit: z81.number().optional().describe("Page size for requests"),
5480
+ headers: z81.record(z81.any()).optional().describe("Additional headers to include in requests"),
5481
+ errorLogFile: z81.string().optional().describe("Path to error log output file"),
5482
+ useVerboseRenderer: z81.boolean().optional().describe("Line-by-line logging, useful for CI"),
5483
+ config: z81.string().optional().describe("Path to a JSON config file with all options")
5370
5484
  }).optional(),
5371
- import: z80.object({
5372
- spaceId: z80.string().optional().describe("ID of the space to import into"),
5373
- environmentId: z80.string().optional().describe("Target environment in destination space"),
5374
- contentFile: z80.string().optional().describe("Path to JSON file containing the content to import"),
5375
- content: z80.record(z80.any()).optional().describe(
5485
+ import: z81.object({
5486
+ spaceId: z81.string().optional().describe("ID of the space to import into"),
5487
+ environmentId: z81.string().optional().describe("Target environment in destination space"),
5488
+ contentFile: z81.string().optional().describe("Path to JSON file containing the content to import"),
5489
+ content: z81.record(z81.any()).optional().describe(
5376
5490
  "JS object containing import content (must match expected structure)"
5377
5491
  ),
5378
- contentModelOnly: z80.boolean().optional().describe("Import only content types"),
5379
- skipContentModel: z80.boolean().optional().describe("Skip importing content types and locales"),
5380
- skipLocales: z80.boolean().optional().describe("Skip importing locales"),
5381
- skipContentUpdates: z80.boolean().optional().describe("Do not update existing content"),
5382
- skipContentPublishing: z80.boolean().optional().describe("Create but do not publish content"),
5383
- uploadAssets: z80.boolean().optional().describe("Upload asset files (requires assetsDirectory)"),
5384
- skipAssetUpdates: z80.boolean().optional().describe("Do not update existing assets"),
5385
- assetsDirectory: z80.string().optional().describe("Path to directory containing exported asset files"),
5386
- timeout: z80.number().optional().describe("Time between retries during asset processing (ms)"),
5387
- retryLimit: z80.number().optional().describe("Max retries for asset processing"),
5388
- host: z80.string().optional().describe("Management API host"),
5389
- proxy: z80.string().optional().describe("HTTP/HTTPS proxy string (host:port or user:pass@host:port)"),
5390
- rawProxy: z80.boolean().optional().describe("Pass proxy config directly to Axios"),
5391
- rateLimit: z80.number().optional().describe("Max requests per second to the API"),
5392
- headers: z80.record(z80.any()).optional().describe("Additional headers to attach to requests"),
5393
- errorLogFile: z80.string().optional().describe("Path to error log file"),
5394
- useVerboseRenderer: z80.boolean().optional().describe("Line-by-line progress output (good for CI)"),
5395
- config: z80.string().optional().describe("Path to config JSON file (merged with CLI args)")
5492
+ contentModelOnly: z81.boolean().optional().describe("Import only content types"),
5493
+ skipContentModel: z81.boolean().optional().describe("Skip importing content types and locales"),
5494
+ skipLocales: z81.boolean().optional().describe("Skip importing locales"),
5495
+ skipContentUpdates: z81.boolean().optional().describe("Do not update existing content"),
5496
+ skipContentPublishing: z81.boolean().optional().describe("Create but do not publish content"),
5497
+ uploadAssets: z81.boolean().optional().describe("Upload asset files (requires assetsDirectory)"),
5498
+ skipAssetUpdates: z81.boolean().optional().describe("Do not update existing assets"),
5499
+ assetsDirectory: z81.string().optional().describe("Path to directory containing exported asset files"),
5500
+ timeout: z81.number().optional().describe("Time between retries during asset processing (ms)"),
5501
+ retryLimit: z81.number().optional().describe("Max retries for asset processing"),
5502
+ host: z81.string().optional().describe("Management API host"),
5503
+ proxy: z81.string().optional().describe("HTTP/HTTPS proxy string (host:port or user:pass@host:port)"),
5504
+ rawProxy: z81.boolean().optional().describe("Pass proxy config directly to Axios"),
5505
+ rateLimit: z81.number().optional().describe("Max requests per second to the API"),
5506
+ headers: z81.record(z81.any()).optional().describe("Additional headers to attach to requests"),
5507
+ errorLogFile: z81.string().optional().describe("Path to error log file"),
5508
+ useVerboseRenderer: z81.boolean().optional().describe("Line-by-line progress output (good for CI)"),
5509
+ config: z81.string().optional().describe("Path to config JSON file (merged with CLI args)")
5396
5510
  }).optional()
5397
5511
  });
5398
5512
  var paramCollectionConfig = {
@@ -5508,25 +5622,25 @@ var createParamCollectionTool = withErrorHandling(
5508
5622
  );
5509
5623
 
5510
5624
  // src/tools/jobs/space-to-space-migration/importSpace.ts
5511
- import { z as z81 } from "zod";
5625
+ import { z as z82 } from "zod";
5512
5626
  var ImportSpaceToolParams = BaseToolSchema.extend({
5513
- contentFile: z81.string().optional().describe("Path to JSON file containing the content to import"),
5514
- content: z81.record(z81.any()).optional().describe(
5627
+ contentFile: z82.string().optional().describe("Path to JSON file containing the content to import"),
5628
+ content: z82.record(z82.any()).optional().describe(
5515
5629
  "JS object containing import content (must match expected structure)"
5516
5630
  ),
5517
- contentModelOnly: z81.boolean().optional().default(false).describe("Import only content types"),
5518
- skipContentModel: z81.boolean().optional().default(false).describe("Skip importing content types and locales"),
5519
- skipLocales: z81.boolean().optional().default(false).describe("Skip importing locales"),
5520
- skipContentUpdates: z81.boolean().optional().default(false).describe("Do not update existing content"),
5521
- skipContentPublishing: z81.boolean().optional().default(false).describe("Create but do not publish content"),
5522
- uploadAssets: z81.boolean().optional().default(false).describe("Upload asset files (requires assetsDirectory)"),
5523
- skipAssetUpdates: z81.boolean().optional().default(false).describe("Do not update existing assets"),
5524
- assetsDirectory: z81.string().optional().describe("Path to directory containing exported asset files"),
5525
- timeout: z81.number().optional().default(3e3).describe("Time between retries during asset processing (ms)"),
5526
- retryLimit: z81.number().optional().default(10).describe("Max retries for asset processing"),
5527
- rateLimit: z81.number().optional().default(7).describe("Max requests per second to the API"),
5528
- errorLogFile: z81.string().optional().describe("Path to error log file"),
5529
- useVerboseRenderer: z81.boolean().optional().describe("Line-by-line progress output (good for CI)")
5631
+ contentModelOnly: z82.boolean().optional().default(false).describe("Import only content types"),
5632
+ skipContentModel: z82.boolean().optional().default(false).describe("Skip importing content types and locales"),
5633
+ skipLocales: z82.boolean().optional().default(false).describe("Skip importing locales"),
5634
+ skipContentUpdates: z82.boolean().optional().default(false).describe("Do not update existing content"),
5635
+ skipContentPublishing: z82.boolean().optional().default(false).describe("Create but do not publish content"),
5636
+ uploadAssets: z82.boolean().optional().default(false).describe("Upload asset files (requires assetsDirectory)"),
5637
+ skipAssetUpdates: z82.boolean().optional().default(false).describe("Do not update existing assets"),
5638
+ assetsDirectory: z82.string().optional().describe("Path to directory containing exported asset files"),
5639
+ timeout: z82.number().optional().default(3e3).describe("Time between retries during asset processing (ms)"),
5640
+ retryLimit: z82.number().optional().default(10).describe("Max retries for asset processing"),
5641
+ rateLimit: z82.number().optional().default(7).describe("Max requests per second to the API"),
5642
+ errorLogFile: z82.string().optional().describe("Path to error log file"),
5643
+ useVerboseRenderer: z82.boolean().optional().describe("Line-by-line progress output (good for CI)")
5530
5644
  });
5531
5645
  function createImportSpaceTool(config) {
5532
5646
  async function tool2(args) {
@@ -5571,7 +5685,7 @@ function createImportSpaceTool(config) {
5571
5685
  }
5572
5686
 
5573
5687
  // src/tools/jobs/space-to-space-migration/migrationHandler.ts
5574
- import { z as z82 } from "zod";
5688
+ import { z as z83 } from "zod";
5575
5689
 
5576
5690
  // src/tools/jobs/space-to-space-migration/instructions.ts
5577
5691
  var S2S_MIGRATION_INSTRUCTIONS = `
@@ -5614,7 +5728,7 @@ The space to space migration workflow has been concluded and all related tools h
5614
5728
  The workflow is now complete. You can start a new migration workflow by calling space_to_space_migration_handler with enableWorkflow=true if needed.
5615
5729
  `;
5616
5730
  var SpaceToSpaceMigrationHandlerToolParams = BaseToolSchema.extend({
5617
- enableWorkflow: z82.boolean().describe(
5731
+ enableWorkflow: z83.boolean().describe(
5618
5732
  "Set to true to enable the workflow tools, false to disable them and conclude the workflow"
5619
5733
  )
5620
5734
  });
@@ -5712,9 +5826,9 @@ function createJobTools(config) {
5712
5826
  }
5713
5827
 
5714
5828
  // src/tools/exo/components/getComponent.ts
5715
- import { z as z83 } from "zod";
5829
+ import { z as z84 } from "zod";
5716
5830
  var GetComponentToolParams = BaseToolSchema.extend({
5717
- componentId: z83.string().describe("The ID of the component to retrieve details for")
5831
+ componentId: z84.string().describe("The ID of the component to retrieve details for")
5718
5832
  });
5719
5833
  function getComponentTool(config) {
5720
5834
  async function tool2(args) {
@@ -5732,12 +5846,12 @@ function getComponentTool(config) {
5732
5846
  }
5733
5847
 
5734
5848
  // src/tools/exo/components/listComponents.ts
5735
- import { z as z84 } from "zod";
5849
+ import { z as z85 } from "zod";
5736
5850
  var ListComponentsToolParams = BaseToolSchema.extend({
5737
- limit: z84.number().optional().describe("Maximum number of components to return (max 10)"),
5738
- pageNext: z84.string().optional().describe("Cursor token to fetch the next page of results"),
5739
- pagePrev: z84.string().optional().describe("Cursor token to fetch the previous page of results"),
5740
- order: z84.string().optional().describe("Order components by this field (e.g. sys.createdAt)")
5851
+ limit: z85.number().optional().describe("Maximum number of components to return (max 10)"),
5852
+ pageNext: z85.string().optional().describe("Cursor token to fetch the next page of results"),
5853
+ pagePrev: z85.string().optional().describe("Cursor token to fetch the previous page of results"),
5854
+ order: z85.string().optional().describe("Order components by this field (e.g. sys.createdAt)")
5741
5855
  });
5742
5856
  function listComponentsTool(config) {
5743
5857
  async function tool2(args) {
@@ -5767,10 +5881,10 @@ function listComponentsTool(config) {
5767
5881
  }
5768
5882
 
5769
5883
  // src/tools/exo/components/createComponent.ts
5770
- import { z as z86 } from "zod";
5884
+ import { z as z87 } from "zod";
5771
5885
 
5772
5886
  // src/types/exoSchemas.ts
5773
- import { z as z85 } from "zod";
5887
+ import { z as z86 } from "zod";
5774
5888
  var URN_EXAMPLES = {
5775
5889
  "Contentful:Component": "crn:contentful:::experience:spaces/{spaceId}/environments/{envId}/components/{id}",
5776
5890
  "Contentful:ExperienceFragment": "crn:contentful:::experience:spaces/{spaceId}/environments/{envId}/experienceFragments/{id}",
@@ -5780,19 +5894,19 @@ var URN_EXAMPLES = {
5780
5894
  var resourceLinkSchema2 = (linkType) => {
5781
5895
  const example = URN_EXAMPLES[linkType];
5782
5896
  const urnDesc = example ? `URN of the linked resource (e.g. "${example}")` : "URN of the linked resource";
5783
- return z85.object({
5784
- sys: z85.object({
5785
- type: z85.literal("ResourceLink"),
5786
- linkType: z85.literal(linkType),
5787
- urn: z85.string().describe(urnDesc)
5897
+ return z86.object({
5898
+ sys: z86.object({
5899
+ type: z86.literal("ResourceLink"),
5900
+ linkType: z86.literal(linkType),
5901
+ urn: z86.string().describe(urnDesc)
5788
5902
  })
5789
5903
  });
5790
5904
  };
5791
- var linkSchema2 = (linkType) => z85.object({
5792
- sys: z85.object({
5793
- type: z85.literal("Link"),
5794
- linkType: z85.literal(linkType),
5795
- id: z85.string()
5905
+ var linkSchema2 = (linkType) => z86.object({
5906
+ sys: z86.object({
5907
+ type: z86.literal("Link"),
5908
+ linkType: z86.literal(linkType),
5909
+ id: z86.string()
5796
5910
  })
5797
5911
  });
5798
5912
  var ComponentResourceLinkSchema = resourceLinkSchema2(
@@ -5804,71 +5918,71 @@ var ExperienceFragmentResourceLinkSchema = resourceLinkSchema2(
5804
5918
  var ExperienceTemplateResourceLinkSchema = resourceLinkSchema2(
5805
5919
  "Contentful:ExperienceTemplate"
5806
5920
  );
5807
- var ViewportSchema = z85.object({
5808
- id: z85.string().describe("Viewport identifier"),
5809
- query: z85.string().describe("CSS media query string"),
5810
- displayName: z85.string().describe("Human-readable viewport name"),
5811
- previewSize: z85.string().describe('Preview size (e.g. "1024px")')
5812
- });
5813
- var DataTypeDefinitionSchema = z85.lazy(
5814
- () => z85.discriminatedUnion("type", [
5815
- z85.object({
5816
- type: z85.enum(["String", "Number", "Integer", "Boolean"]),
5817
- name: z85.string().optional(),
5818
- required: z85.boolean().optional()
5921
+ var ViewportSchema = z86.object({
5922
+ id: z86.string().describe("Viewport identifier"),
5923
+ query: z86.string().describe("CSS media query string"),
5924
+ displayName: z86.string().describe("Human-readable viewport name"),
5925
+ previewSize: z86.string().describe('Preview size (e.g. "1024px")')
5926
+ });
5927
+ var DataTypeDefinitionSchema = z86.lazy(
5928
+ () => z86.discriminatedUnion("type", [
5929
+ z86.object({
5930
+ type: z86.enum(["String", "Number", "Integer", "Boolean"]),
5931
+ name: z86.string().optional(),
5932
+ required: z86.boolean().optional()
5819
5933
  }),
5820
- z85.object({
5821
- type: z85.literal("RichText"),
5822
- name: z85.string().optional(),
5823
- required: z85.boolean().optional()
5934
+ z86.object({
5935
+ type: z86.literal("RichText"),
5936
+ name: z86.string().optional(),
5937
+ required: z86.boolean().optional()
5824
5938
  }),
5825
- z85.object({
5826
- type: z85.literal("Array"),
5827
- name: z85.string().optional(),
5828
- required: z85.boolean().optional(),
5939
+ z86.object({
5940
+ type: z86.literal("Array"),
5941
+ name: z86.string().optional(),
5942
+ required: z86.boolean().optional(),
5829
5943
  items: DataTypeDefinitionSchema
5830
5944
  }),
5831
- z85.object({
5832
- type: z85.literal("Record"),
5833
- name: z85.string().optional(),
5834
- required: z85.boolean().optional(),
5835
- fields: z85.record(z85.string(), DataTypeDefinitionSchema)
5945
+ z86.object({
5946
+ type: z86.literal("Record"),
5947
+ name: z86.string().optional(),
5948
+ required: z86.boolean().optional(),
5949
+ fields: z86.record(z86.string(), DataTypeDefinitionSchema)
5836
5950
  }),
5837
- z85.object({
5838
- type: z85.literal("TypeRef"),
5839
- name: z85.string().optional(),
5840
- required: z85.boolean().optional(),
5841
- ref: z85.object({
5842
- sys: z85.object({
5843
- type: z85.literal("ResourceLink"),
5844
- linkType: z85.string(),
5845
- urn: z85.string()
5951
+ z86.object({
5952
+ type: z86.literal("TypeRef"),
5953
+ name: z86.string().optional(),
5954
+ required: z86.boolean().optional(),
5955
+ ref: z86.object({
5956
+ sys: z86.object({
5957
+ type: z86.literal("ResourceLink"),
5958
+ linkType: z86.string(),
5959
+ urn: z86.string()
5846
5960
  })
5847
5961
  })
5848
5962
  }),
5849
- z85.object({
5850
- type: z85.literal("Literal"),
5851
- name: z85.string().optional(),
5852
- required: z85.boolean().optional(),
5853
- value: z85.custom().describe("JSON literal value"),
5963
+ z86.object({
5964
+ type: z86.literal("Literal"),
5965
+ name: z86.string().optional(),
5966
+ required: z86.boolean().optional(),
5967
+ value: z86.custom().describe("JSON literal value"),
5854
5968
  valueType: DataTypeDefinitionSchema
5855
5969
  }),
5856
- z85.object({
5857
- type: z85.literal("DiscriminatedUnion"),
5858
- name: z85.string().optional(),
5859
- required: z85.boolean().optional(),
5860
- discriminator: z85.string(),
5861
- members: z85.array(DataTypeDefinitionSchema)
5970
+ z86.object({
5971
+ type: z86.literal("DiscriminatedUnion"),
5972
+ name: z86.string().optional(),
5973
+ required: z86.boolean().optional(),
5974
+ discriminator: z86.string(),
5975
+ members: z86.array(DataTypeDefinitionSchema)
5862
5976
  })
5863
5977
  ])
5864
5978
  );
5865
- var ContentPropertySchema = z85.intersection(
5979
+ var ContentPropertySchema = z86.intersection(
5866
5980
  DataTypeDefinitionSchema,
5867
- z85.object({
5868
- id: z85.string().describe("Content property identifier"),
5869
- name: z85.string().describe("Human-readable name"),
5870
- required: z85.boolean().describe("Whether the property is required"),
5871
- defaultValue: z85.unknown().optional().describe("Default value")
5981
+ z86.object({
5982
+ id: z86.string().describe("Content property identifier"),
5983
+ name: z86.string().describe("Human-readable name"),
5984
+ required: z86.boolean().describe("Whether the property is required"),
5985
+ defaultValue: z86.unknown().optional().describe("Default value")
5872
5986
  })
5873
5987
  );
5874
5988
  var DTCG_DESIGN_PROPERTY_TYPES = [
@@ -5886,186 +6000,186 @@ var DTCG_DESIGN_PROPERTY_TYPES = [
5886
6000
  "DTCG.Gradient",
5887
6001
  "DTCG.Typography"
5888
6002
  ];
5889
- var DesignPropertyCommonFieldsSchema = z85.object({
5890
- id: z85.string().describe("Design property identifier"),
5891
- name: z85.string().describe("Human-readable name"),
5892
- description: z85.string().optional().describe("Optional description")
6003
+ var DesignPropertyCommonFieldsSchema = z86.object({
6004
+ id: z86.string().describe("Design property identifier"),
6005
+ name: z86.string().describe("Human-readable name"),
6006
+ description: z86.string().optional().describe("Optional description")
5893
6007
  });
5894
6008
  var StringDesignPropertySchema = DesignPropertyCommonFieldsSchema.extend({
5895
- type: z85.literal("String"),
5896
- fallbackValue: z85.object({
5897
- type: z85.literal("ManualDesignValue"),
5898
- value: z85.string()
6009
+ type: z86.literal("String"),
6010
+ fallbackValue: z86.object({
6011
+ type: z86.literal("ManualDesignValue"),
6012
+ value: z86.string()
5899
6013
  }).optional().describe("Manual fallback value for this design property"),
5900
- validations: z85.array(
5901
- z85.object({
5902
- regexp: z85.object({
5903
- pattern: z85.string().describe("Regular expression pattern")
6014
+ validations: z86.array(
6015
+ z86.object({
6016
+ regexp: z86.object({
6017
+ pattern: z86.string().describe("Regular expression pattern")
5904
6018
  })
5905
6019
  })
5906
6020
  ).optional().describe("Regexp validations constraining allowed string values")
5907
6021
  });
5908
6022
  var BooleanDesignPropertySchema = DesignPropertyCommonFieldsSchema.extend({
5909
- type: z85.literal("Boolean"),
5910
- fallbackValue: z85.object({
5911
- type: z85.literal("ManualDesignValue"),
5912
- value: z85.boolean()
6023
+ type: z86.literal("Boolean"),
6024
+ fallbackValue: z86.object({
6025
+ type: z86.literal("ManualDesignValue"),
6026
+ value: z86.boolean()
5913
6027
  }).optional().describe("Manual fallback value for this design property")
5914
6028
  });
5915
- var DesignTokenValueSchema = z85.object({
5916
- type: z85.literal("DesignToken"),
5917
- value: z85.string().min(1).describe("Design token reference (non-empty)")
6029
+ var DesignTokenValueSchema = z86.object({
6030
+ type: z86.literal("DesignToken"),
6031
+ value: z86.string().min(1).describe("Design token reference (non-empty)")
5918
6032
  });
5919
6033
  var TokenBackedDesignPropertySchema = DesignPropertyCommonFieldsSchema.extend(
5920
6034
  {
5921
- type: z85.enum(DTCG_DESIGN_PROPERTY_TYPES),
6035
+ type: z86.enum(DTCG_DESIGN_PROPERTY_TYPES),
5922
6036
  fallbackValue: DesignTokenValueSchema.optional().describe(
5923
6037
  "Design-token-backed fallback value for this design property"
5924
6038
  ),
5925
- allowedResources: z85.array(
5926
- z85.object({
5927
- type: z85.literal("DesignToken"),
5928
- value: z85.string(),
5929
- name: z85.string().optional()
6039
+ allowedResources: z86.array(
6040
+ z86.object({
6041
+ type: z86.literal("DesignToken"),
6042
+ value: z86.string(),
6043
+ name: z86.string().optional()
5930
6044
  })
5931
6045
  ).optional().describe("Allowed design token resources")
5932
6046
  }
5933
6047
  );
5934
- var DesignPropertySchema = z85.union([
6048
+ var DesignPropertySchema = z86.union([
5935
6049
  StringDesignPropertySchema,
5936
6050
  BooleanDesignPropertySchema,
5937
6051
  TokenBackedDesignPropertySchema
5938
6052
  ]);
5939
- var ManualDesignValueSchema = z85.object({
5940
- type: z85.literal("ManualDesignValue"),
5941
- value: z85.union([z85.string(), z85.number(), z85.boolean()])
6053
+ var ManualDesignValueSchema = z86.object({
6054
+ type: z86.literal("ManualDesignValue"),
6055
+ value: z86.union([z86.string(), z86.number(), z86.boolean()])
5942
6056
  });
5943
- var DesignPropertyValueSchema = z85.union([
6057
+ var DesignPropertyValueSchema = z86.union([
5944
6058
  ManualDesignValueSchema,
5945
6059
  DesignTokenValueSchema
5946
6060
  ]);
5947
- var DesignPropertyPointerValueSchema = z85.custom(
6061
+ var DesignPropertyPointerValueSchema = z86.custom(
5948
6062
  (val) => typeof val === "string" && /^\$designProperties\//.test(val),
5949
6063
  { message: 'Must be a "$designProperties/..." pointer' }
5950
6064
  );
5951
- var DimensionedDesignPropertyValueSchema = z85.record(
5952
- z85.string(),
6065
+ var DimensionedDesignPropertyValueSchema = z86.record(
6066
+ z86.string(),
5953
6067
  DesignPropertyValueSchema
5954
6068
  );
5955
- var ComponentTreeDesignPropertyValueSchema = z85.union([
6069
+ var ComponentTreeDesignPropertyValueSchema = z86.union([
5956
6070
  DesignPropertyValueSchema,
5957
6071
  DesignPropertyPointerValueSchema,
5958
6072
  DimensionedDesignPropertyValueSchema
5959
6073
  ]);
5960
6074
  var COMPONENT_TYPE_ALLOWED_RESOURCE_SOURCE = "crn:contentful:::experience:spaces/$self/environments/$self";
5961
- var SlotDefinitionSchema = z85.object({
5962
- id: z85.string().describe("Slot identifier"),
5963
- name: z85.string().describe("Human-readable name"),
5964
- required: z85.boolean().describe("Whether the slot must be filled"),
5965
- validations: z85.array(
5966
- z85.object({
5967
- size: z85.object({
5968
- min: z85.number().optional(),
5969
- max: z85.number().optional()
6075
+ var SlotDefinitionSchema = z86.object({
6076
+ id: z86.string().describe("Slot identifier"),
6077
+ name: z86.string().describe("Human-readable name"),
6078
+ required: z86.boolean().describe("Whether the slot must be filled"),
6079
+ validations: z86.array(
6080
+ z86.object({
6081
+ size: z86.object({
6082
+ min: z86.number().optional(),
6083
+ max: z86.number().optional()
5970
6084
  }).optional()
5971
6085
  })
5972
6086
  ).describe("Slot cardinality validations"),
5973
- allowedResources: z85.array(
5974
- z85.object({
5975
- type: z85.literal("Contentful:Component"),
5976
- source: z85.literal(COMPONENT_TYPE_ALLOWED_RESOURCE_SOURCE),
5977
- allowedTypes: z85.array(z85.string()).describe("IDs of components allowed in this slot")
6087
+ allowedResources: z86.array(
6088
+ z86.object({
6089
+ type: z86.literal("Contentful:Component"),
6090
+ source: z86.literal(COMPONENT_TYPE_ALLOWED_RESOURCE_SOURCE),
6091
+ allowedTypes: z86.array(z86.string()).describe("IDs of components allowed in this slot")
5978
6092
  })
5979
6093
  ).optional().describe("Constrains which components may be placed in this slot")
5980
6094
  });
5981
- var ExperienceFragmentNodeSchema = z85.object({
5982
- id: z85.string().describe("Node identifier"),
5983
- name: z85.string().optional().describe("Optional display name"),
5984
- nodeType: z85.literal("ExperienceFragment").describe('Must be "ExperienceFragment"'),
6095
+ var ExperienceFragmentNodeSchema = z86.object({
6096
+ id: z86.string().describe("Node identifier"),
6097
+ name: z86.string().optional().describe("Optional display name"),
6098
+ nodeType: z86.literal("ExperienceFragment").describe('Must be "ExperienceFragment"'),
5985
6099
  experienceFragment: ExperienceFragmentResourceLinkSchema.describe(
5986
6100
  "Resource link to the referenced experience fragment"
5987
6101
  )
5988
6102
  });
5989
- var SlotNodeSchema = z85.object({
5990
- id: z85.string().describe("Node identifier"),
5991
- nodeType: z85.literal("Slot").describe('Must be "Slot"'),
5992
- slotId: z85.string().describe("ID of the slot definition to render")
6103
+ var SlotNodeSchema = z86.object({
6104
+ id: z86.string().describe("Node identifier"),
6105
+ nodeType: z86.literal("Slot").describe('Must be "Slot"'),
6106
+ slotId: z86.string().describe("ID of the slot definition to render")
5993
6107
  });
5994
- var TreeNodeSchema = z85.lazy(
5995
- () => z85.union([ComponentNodeSchema, ExperienceFragmentNodeSchema, SlotNodeSchema])
6108
+ var TreeNodeSchema = z86.lazy(
6109
+ () => z86.union([ComponentNodeSchema, ExperienceFragmentNodeSchema, SlotNodeSchema])
5996
6110
  );
5997
- var ComponentNodeSchema = z85.lazy(
5998
- () => z85.object({
5999
- id: z85.string().describe("Node identifier"),
6000
- name: z85.string().optional().describe("Optional display name"),
6001
- nodeType: z85.literal("Component").describe('Must be "Component"'),
6111
+ var ComponentNodeSchema = z86.lazy(
6112
+ () => z86.object({
6113
+ id: z86.string().describe("Node identifier"),
6114
+ name: z86.string().optional().describe("Optional display name"),
6115
+ nodeType: z86.literal("Component").describe('Must be "Component"'),
6002
6116
  component: ComponentResourceLinkSchema.describe(
6003
6117
  "Resource link to the component to render"
6004
6118
  ),
6005
- contentProperties: z85.union([
6006
- z85.record(z85.string(), z85.unknown()),
6007
- z85.string().describe('"$contentProperties/..." pointer')
6119
+ contentProperties: z86.union([
6120
+ z86.record(z86.string(), z86.unknown()),
6121
+ z86.string().describe('"$contentProperties/..." pointer')
6008
6122
  ]).describe(
6009
6123
  'Content property bindings \u2014 values or "$contentProperties/..." pointers'
6010
6124
  ),
6011
- designProperties: z85.record(z85.string(), ComponentTreeDesignPropertyValueSchema).describe(
6125
+ designProperties: z86.record(z86.string(), ComponentTreeDesignPropertyValueSchema).describe(
6012
6126
  'Design property values \u2014 ManualDesignValue, DesignTokenValue, or "$designProperties/..." pointers'
6013
6127
  ),
6014
- slots: z85.record(z85.string(), z85.array(TreeNodeSchema)).describe("Child tree nodes keyed by slot ID")
6128
+ slots: z86.record(z86.string(), z86.array(TreeNodeSchema)).describe("Child tree nodes keyed by slot ID")
6015
6129
  })
6016
6130
  );
6017
6131
  var TagLinkSchema = linkSchema2("Tag");
6018
6132
  var ConceptLinkSchema = linkSchema2("TaxonomyConcept");
6019
- var ExoMetadataSchema = z85.object({
6020
- tags: z85.array(TagLinkSchema).optional().describe("Tags attached to this entity"),
6021
- concepts: z85.array(ConceptLinkSchema).optional().describe("Taxonomy concepts attached to this entity")
6133
+ var ExoMetadataSchema = z86.object({
6134
+ tags: z86.array(TagLinkSchema).optional().describe("Tags attached to this entity"),
6135
+ concepts: z86.array(ConceptLinkSchema).optional().describe("Taxonomy concepts attached to this entity")
6022
6136
  });
6023
6137
  var ExperienceMetadataSchema = ExoMetadataSchema.extend({
6024
- name: z85.string().optional().describe("Variant label for this metadata entry")
6138
+ name: z86.string().optional().describe("Variant label for this metadata entry")
6025
6139
  });
6026
6140
  var DataAssemblyResourceLinkSchema = resourceLinkSchema2(
6027
6141
  "Contentful:DataAssembly"
6028
6142
  );
6029
- var ExperienceContentBindingsSchema = z85.object({
6143
+ var ExperienceContentBindingsSchema = z86.object({
6030
6144
  sys: DataAssemblyResourceLinkSchema.shape.sys,
6031
- parameters: z85.record(
6032
- z85.string(),
6033
- z85.object({
6034
- sys: z85.object({
6035
- type: z85.literal("ResourceLink"),
6036
- linkType: z85.string(),
6037
- urn: z85.string()
6145
+ parameters: z86.record(
6146
+ z86.string(),
6147
+ z86.object({
6148
+ sys: z86.object({
6149
+ type: z86.literal("ResourceLink"),
6150
+ linkType: z86.string(),
6151
+ urn: z86.string()
6038
6152
  })
6039
6153
  })
6040
6154
  ).describe("Parameter bindings keyed by parameter ID")
6041
6155
  });
6042
- var InlineExperienceFragmentNodeSchema = z85.lazy(
6043
- () => z85.object({
6044
- id: z85.string().describe("Node identifier"),
6045
- nodeType: z85.literal("InlineExperienceFragment").describe('Must be "InlineExperienceFragment"'),
6156
+ var InlineExperienceFragmentNodeSchema = z86.lazy(
6157
+ () => z86.object({
6158
+ id: z86.string().describe("Node identifier"),
6159
+ nodeType: z86.literal("InlineExperienceFragment").describe('Must be "InlineExperienceFragment"'),
6046
6160
  component: ComponentResourceLinkSchema.describe(
6047
6161
  "Resource link to the component this inline experience fragment renders"
6048
6162
  ),
6049
- designProperties: z85.record(z85.string(), DimensionedDesignPropertyValueSchema).describe("Design property values for this inline experience fragment"),
6163
+ designProperties: z86.record(z86.string(), DimensionedDesignPropertyValueSchema).describe("Design property values for this inline experience fragment"),
6050
6164
  contentBindings: ExperienceContentBindingsSchema.optional().describe(
6051
6165
  "Optional content bindings linking this inline experience fragment to a data assembly"
6052
6166
  ),
6053
- slots: z85.record(z85.string(), z85.array(ExperienceSlotNodeSchema)).optional().describe("Child slot contents keyed by slot ID")
6167
+ slots: z86.record(z86.string(), z86.array(ExperienceSlotNodeSchema)).optional().describe("Child slot contents keyed by slot ID")
6054
6168
  })
6055
6169
  );
6056
- var ExperienceSlotNodeSchema = z85.lazy(
6057
- () => z85.union([ExperienceFragmentNodeSchema, InlineExperienceFragmentNodeSchema])
6170
+ var ExperienceSlotNodeSchema = z86.lazy(
6171
+ () => z86.union([ExperienceFragmentNodeSchema, InlineExperienceFragmentNodeSchema])
6058
6172
  );
6059
6173
 
6060
6174
  // src/tools/exo/components/createComponent.ts
6061
6175
  var CreateComponentToolParams = BaseToolSchema.extend({
6062
- name: z86.string().describe("The name of the component"),
6063
- description: z86.string().describe("Description of the component"),
6064
- viewports: z86.array(ViewportSchema).describe("Viewport definitions for the component (may be empty)"),
6065
- contentProperties: z86.array(ContentPropertySchema).describe("Content property definitions (may be empty)"),
6066
- designProperties: z86.array(DesignPropertySchema).describe("Design property definitions (may be empty)"),
6067
- componentTree: z86.array(TreeNodeSchema).optional().describe("Optional component tree node definitions"),
6068
- slots: z86.array(SlotDefinitionSchema).optional().describe("Optional slot definitions"),
6176
+ name: z87.string().describe("The name of the component"),
6177
+ description: z87.string().describe("Description of the component"),
6178
+ viewports: z87.array(ViewportSchema).describe("Viewport definitions for the component (may be empty)"),
6179
+ contentProperties: z87.array(ContentPropertySchema).describe("Content property definitions (may be empty)"),
6180
+ designProperties: z87.array(DesignPropertySchema).describe("Design property definitions (may be empty)"),
6181
+ componentTree: z87.array(TreeNodeSchema).optional().describe("Optional component tree node definitions"),
6182
+ slots: z87.array(SlotDefinitionSchema).optional().describe("Optional slot definitions"),
6069
6183
  metadata: ExoMetadataSchema.optional().describe(
6070
6184
  "Optional ExO metadata (tags, concepts)"
6071
6185
  )
@@ -6098,19 +6212,19 @@ function createComponentTool(config) {
6098
6212
  }
6099
6213
 
6100
6214
  // src/tools/exo/components/upsertComponent.ts
6101
- import { z as z87 } from "zod";
6215
+ import { z as z88 } from "zod";
6102
6216
  var UpsertComponentToolParams = BaseToolSchema.extend({
6103
- componentId: z87.string().describe("The ID of the component to update"),
6104
- version: z87.number().describe(
6217
+ componentId: z88.string().describe("The ID of the component to update"),
6218
+ version: z88.number().describe(
6105
6219
  "REQUIRED. The component's sys.version as returned by get_component. You must call get_component first to read the current state and version. The update is rejected if this does not match the current version, which means the component changed since you read it."
6106
6220
  ),
6107
- name: z87.string().optional().describe("The name of the component"),
6108
- description: z87.string().optional().describe("Description of the component"),
6109
- viewports: z87.array(ViewportSchema).optional().describe("Viewport definitions; replaces existing viewports if provided"),
6110
- contentProperties: z87.array(ContentPropertySchema).optional().describe("Content property definitions; replaces existing if provided"),
6111
- designProperties: z87.array(DesignPropertySchema).optional().describe("Design property definitions; replaces existing if provided"),
6112
- componentTree: z87.array(TreeNodeSchema).optional().describe("Component tree node definitions; replaces existing if provided"),
6113
- slots: z87.array(SlotDefinitionSchema).optional().describe("Slot definitions; replaces existing if provided"),
6221
+ name: z88.string().optional().describe("The name of the component"),
6222
+ description: z88.string().optional().describe("Description of the component"),
6223
+ viewports: z88.array(ViewportSchema).optional().describe("Viewport definitions; replaces existing viewports if provided"),
6224
+ contentProperties: z88.array(ContentPropertySchema).optional().describe("Content property definitions; replaces existing if provided"),
6225
+ designProperties: z88.array(DesignPropertySchema).optional().describe("Design property definitions; replaces existing if provided"),
6226
+ componentTree: z88.array(TreeNodeSchema).optional().describe("Component tree node definitions; replaces existing if provided"),
6227
+ slots: z88.array(SlotDefinitionSchema).optional().describe("Slot definitions; replaces existing if provided"),
6114
6228
  metadata: ExoMetadataSchema.optional().describe(
6115
6229
  "ExO metadata (tags, concepts); replaces existing if provided"
6116
6230
  )
@@ -6157,13 +6271,13 @@ function upsertComponentTool(config) {
6157
6271
  }
6158
6272
 
6159
6273
  // src/tools/exo/components/deleteComponent.ts
6160
- import { z as z88 } from "zod";
6274
+ import { z as z89 } from "zod";
6161
6275
  var DeleteComponentToolParams = BaseToolSchema.extend({
6162
- componentId: z88.string().describe("The ID of the component to delete"),
6163
- confirm: z88.boolean().optional().describe(
6276
+ componentId: z89.string().describe("The ID of the component to delete"),
6277
+ confirm: z89.boolean().optional().describe(
6164
6278
  "Set to true on the second call to actually perform the deletion. Required together with confirmToken."
6165
6279
  ),
6166
- confirmToken: z88.string().optional().describe(
6280
+ confirmToken: z89.string().optional().describe(
6167
6281
  "Token returned by the preview call; must be supplied with confirm: true."
6168
6282
  )
6169
6283
  });
@@ -6205,10 +6319,10 @@ function deleteComponentTool(config) {
6205
6319
  }
6206
6320
 
6207
6321
  // src/tools/exo/components/publishComponent.ts
6208
- import { z as z89 } from "zod";
6322
+ import { z as z90 } from "zod";
6209
6323
  var PublishComponentToolParams = BaseToolSchema.extend({
6210
- componentId: z89.string().describe("The ID of the component to publish"),
6211
- version: z89.number().describe(
6324
+ componentId: z90.string().describe("The ID of the component to publish"),
6325
+ version: z90.number().describe(
6212
6326
  "REQUIRED. The component's sys.version as returned by get_component. You must call get_component first to read the current state and version. The publish is rejected if this does not match the current version, which means the component changed since you read it."
6213
6327
  )
6214
6328
  });
@@ -6242,10 +6356,10 @@ function publishComponentTool(config) {
6242
6356
  }
6243
6357
 
6244
6358
  // src/tools/exo/components/unpublishComponent.ts
6245
- import { z as z90 } from "zod";
6359
+ import { z as z91 } from "zod";
6246
6360
  var UnpublishComponentToolParams = BaseToolSchema.extend({
6247
- componentId: z90.string().describe("The ID of the component to unpublish"),
6248
- version: z90.number().describe(
6361
+ componentId: z91.string().describe("The ID of the component to unpublish"),
6362
+ version: z91.number().describe(
6249
6363
  "REQUIRED. The component's sys.version as returned by get_component. You must call get_component first to read the current state and version. The unpublish is rejected if this does not match the current version, which means the component changed since you read it."
6250
6364
  )
6251
6365
  });
@@ -6374,9 +6488,9 @@ function createComponentTools(config) {
6374
6488
  }
6375
6489
 
6376
6490
  // src/tools/exo/experience-fragments/getExperienceFragment.ts
6377
- import { z as z91 } from "zod";
6491
+ import { z as z92 } from "zod";
6378
6492
  var GetExperienceFragmentToolParams = BaseToolSchema.extend({
6379
- experienceFragmentId: z91.string().describe("The ID of the experience fragment to retrieve details for")
6493
+ experienceFragmentId: z92.string().describe("The ID of the experience fragment to retrieve details for")
6380
6494
  });
6381
6495
  function getExperienceFragmentTool(config) {
6382
6496
  async function tool2(args) {
@@ -6394,12 +6508,12 @@ function getExperienceFragmentTool(config) {
6394
6508
  }
6395
6509
 
6396
6510
  // src/tools/exo/experience-fragments/listExperienceFragments.ts
6397
- import { z as z92 } from "zod";
6511
+ import { z as z93 } from "zod";
6398
6512
  var ListExperienceFragmentsToolParams = BaseToolSchema.extend({
6399
- limit: z92.number().optional().describe("Maximum number of experience fragments to return (max 10)"),
6400
- pageNext: z92.string().optional().describe("Cursor token to fetch the next page of results"),
6401
- pagePrev: z92.string().optional().describe("Cursor token to fetch the previous page of results"),
6402
- order: z92.string().optional().describe("Order experience fragments by this field (e.g. sys.createdAt)")
6513
+ limit: z93.number().optional().describe("Maximum number of experience fragments to return (max 10)"),
6514
+ pageNext: z93.string().optional().describe("Cursor token to fetch the next page of results"),
6515
+ pagePrev: z93.string().optional().describe("Cursor token to fetch the previous page of results"),
6516
+ order: z93.string().optional().describe("Order experience fragments by this field (e.g. sys.createdAt)")
6403
6517
  });
6404
6518
  function listExperienceFragmentsTool(config) {
6405
6519
  async function tool2(args) {
@@ -6429,21 +6543,21 @@ function listExperienceFragmentsTool(config) {
6429
6543
  }
6430
6544
 
6431
6545
  // src/tools/exo/experience-fragments/createExperienceFragment.ts
6432
- import { z as z93 } from "zod";
6546
+ import { z as z94 } from "zod";
6433
6547
  var CreateExperienceFragmentToolParams = BaseToolSchema.extend({
6434
- name: z93.string().describe("The name of the experience fragment"),
6435
- description: z93.string().describe("Description of the experience fragment"),
6548
+ name: z94.string().describe("The name of the experience fragment"),
6549
+ description: z94.string().describe("Description of the experience fragment"),
6436
6550
  component: ComponentResourceLinkSchema.describe(
6437
6551
  "Resource link to the component this experience fragment is based on"
6438
6552
  ),
6439
- viewports: z93.array(ViewportSchema).describe("Viewport definitions (may be empty)"),
6440
- designProperties: z93.record(z93.string(), DimensionedDesignPropertyValueSchema).describe(
6553
+ viewports: z94.array(ViewportSchema).describe("Viewport definitions (may be empty)"),
6554
+ designProperties: z94.record(z94.string(), DimensionedDesignPropertyValueSchema).describe(
6441
6555
  "Design property values keyed by property ID (may be empty object)"
6442
6556
  ),
6443
6557
  contentBindings: ExperienceContentBindingsSchema.optional().describe(
6444
6558
  "Optional content bindings for the experience fragment"
6445
6559
  ),
6446
- slots: z93.record(z93.string(), z93.array(ExperienceSlotNodeSchema)).optional().describe("Optional slot node definitions keyed by slot ID"),
6560
+ slots: z94.record(z94.string(), z94.array(ExperienceSlotNodeSchema)).optional().describe("Optional slot node definitions keyed by slot ID"),
6447
6561
  metadata: ExperienceMetadataSchema.optional().describe(
6448
6562
  "Optional ExO metadata (tags, concepts)"
6449
6563
  )
@@ -6476,20 +6590,20 @@ function createExperienceFragmentTool(config) {
6476
6590
  }
6477
6591
 
6478
6592
  // src/tools/exo/experience-fragments/updateExperienceFragment.ts
6479
- import { z as z94 } from "zod";
6593
+ import { z as z95 } from "zod";
6480
6594
  var UpdateExperienceFragmentToolParams = BaseToolSchema.extend({
6481
- experienceFragmentId: z94.string().describe("The ID of the experience fragment to update"),
6482
- version: z94.number().describe(
6595
+ experienceFragmentId: z95.string().describe("The ID of the experience fragment to update"),
6596
+ version: z95.number().describe(
6483
6597
  "REQUIRED. The experience fragment's sys.version as returned by get_experience_fragment. You must call get_experience_fragment first to read the current state and version. The update is rejected if this does not match the current version, which means the experience fragment changed since you read it."
6484
6598
  ),
6485
- name: z94.string().optional().describe("The name of the experience fragment"),
6486
- description: z94.string().optional().describe("Description of the experience fragment"),
6487
- viewports: z94.array(ViewportSchema).optional().describe("Viewport definitions; replaces existing viewports if provided"),
6488
- designProperties: z94.record(z94.string(), DimensionedDesignPropertyValueSchema).optional().describe("Design property values; replaces existing if provided"),
6599
+ name: z95.string().optional().describe("The name of the experience fragment"),
6600
+ description: z95.string().optional().describe("Description of the experience fragment"),
6601
+ viewports: z95.array(ViewportSchema).optional().describe("Viewport definitions; replaces existing viewports if provided"),
6602
+ designProperties: z95.record(z95.string(), DimensionedDesignPropertyValueSchema).optional().describe("Design property values; replaces existing if provided"),
6489
6603
  contentBindings: ExperienceContentBindingsSchema.optional().describe(
6490
6604
  "Content bindings; replaces existing if provided"
6491
6605
  ),
6492
- slots: z94.record(z94.string(), z94.array(ExperienceSlotNodeSchema)).optional().describe("Slot node definitions; replaces existing if provided"),
6606
+ slots: z95.record(z95.string(), z95.array(ExperienceSlotNodeSchema)).optional().describe("Slot node definitions; replaces existing if provided"),
6493
6607
  metadata: ExperienceMetadataSchema.optional().describe(
6494
6608
  "ExO metadata (tags, concepts); replaces existing if provided"
6495
6609
  )
@@ -6537,13 +6651,13 @@ function updateExperienceFragmentTool(config) {
6537
6651
  }
6538
6652
 
6539
6653
  // src/tools/exo/experience-fragments/deleteExperienceFragment.ts
6540
- import { z as z95 } from "zod";
6654
+ import { z as z96 } from "zod";
6541
6655
  var DeleteExperienceFragmentToolParams = BaseToolSchema.extend({
6542
- experienceFragmentId: z95.string().describe("The ID of the experience fragment to delete"),
6543
- confirm: z95.boolean().optional().describe(
6656
+ experienceFragmentId: z96.string().describe("The ID of the experience fragment to delete"),
6657
+ confirm: z96.boolean().optional().describe(
6544
6658
  "Set to true on the second call to actually perform the deletion. Required together with confirmToken."
6545
6659
  ),
6546
- confirmToken: z95.string().optional().describe(
6660
+ confirmToken: z96.string().optional().describe(
6547
6661
  "Token returned by the preview call; must be supplied with confirm: true."
6548
6662
  )
6549
6663
  });
@@ -6585,10 +6699,10 @@ function deleteExperienceFragmentTool(config) {
6585
6699
  }
6586
6700
 
6587
6701
  // src/tools/exo/experience-fragments/publishExperienceFragment.ts
6588
- import { z as z96 } from "zod";
6702
+ import { z as z97 } from "zod";
6589
6703
  var PublishExperienceFragmentToolParams = BaseToolSchema.extend({
6590
- experienceFragmentId: z96.string().describe("The ID of the experience fragment to publish"),
6591
- version: z96.number().describe(
6704
+ experienceFragmentId: z97.string().describe("The ID of the experience fragment to publish"),
6705
+ version: z97.number().describe(
6592
6706
  "REQUIRED. The experience fragment's sys.version as returned by get_experience_fragment. You must call get_experience_fragment first to read the current state and version. The publish is rejected if this does not match the current version, which means the experience fragment changed since you read it."
6593
6707
  )
6594
6708
  });
@@ -6622,10 +6736,10 @@ function publishExperienceFragmentTool(config) {
6622
6736
  }
6623
6737
 
6624
6738
  // src/tools/exo/experience-fragments/unpublishExperienceFragment.ts
6625
- import { z as z97 } from "zod";
6739
+ import { z as z98 } from "zod";
6626
6740
  var UnpublishExperienceFragmentToolParams = BaseToolSchema.extend({
6627
- experienceFragmentId: z97.string().describe("The ID of the experience fragment to unpublish"),
6628
- version: z97.number().describe(
6741
+ experienceFragmentId: z98.string().describe("The ID of the experience fragment to unpublish"),
6742
+ version: z98.number().describe(
6629
6743
  "REQUIRED. The experience fragment's sys.version as returned by get_experience_fragment. You must call get_experience_fragment first to read the current state and version. The unpublish is rejected if this does not match the current version, which means the experience fragment changed since you read it."
6630
6744
  )
6631
6745
  });
@@ -6757,9 +6871,9 @@ function createExperienceFragmentTools(config) {
6757
6871
  }
6758
6872
 
6759
6873
  // src/tools/exo/experience-templates/getExperienceTemplate.ts
6760
- import { z as z98 } from "zod";
6874
+ import { z as z99 } from "zod";
6761
6875
  var GetExperienceTemplateToolParams = BaseToolSchema.extend({
6762
- experienceTemplateId: z98.string().describe("The ID of the experience template to retrieve details for")
6876
+ experienceTemplateId: z99.string().describe("The ID of the experience template to retrieve details for")
6763
6877
  });
6764
6878
  function getExperienceTemplateTool(config) {
6765
6879
  async function tool2(args) {
@@ -6777,12 +6891,12 @@ function getExperienceTemplateTool(config) {
6777
6891
  }
6778
6892
 
6779
6893
  // src/tools/exo/experience-templates/listExperienceTemplates.ts
6780
- import { z as z99 } from "zod";
6894
+ import { z as z100 } from "zod";
6781
6895
  var ListExperienceTemplatesToolParams = BaseToolSchema.extend({
6782
- limit: z99.number().optional().describe("Maximum number of experience templates to return (max 10)"),
6783
- pageNext: z99.string().optional().describe("Cursor token to fetch the next page of results"),
6784
- pagePrev: z99.string().optional().describe("Cursor token to fetch the previous page of results"),
6785
- order: z99.string().optional().describe("Order experience templates by this field (e.g. sys.createdAt)")
6896
+ limit: z100.number().optional().describe("Maximum number of experience templates to return (max 10)"),
6897
+ pageNext: z100.string().optional().describe("Cursor token to fetch the next page of results"),
6898
+ pagePrev: z100.string().optional().describe("Cursor token to fetch the previous page of results"),
6899
+ order: z100.string().optional().describe("Order experience templates by this field (e.g. sys.createdAt)")
6786
6900
  });
6787
6901
  function listExperienceTemplatesTool(config) {
6788
6902
  async function tool2(args) {
@@ -6812,17 +6926,17 @@ function listExperienceTemplatesTool(config) {
6812
6926
  }
6813
6927
 
6814
6928
  // src/tools/exo/experience-templates/createExperienceTemplate.ts
6815
- import { z as z100 } from "zod";
6929
+ import { z as z101 } from "zod";
6816
6930
  var CreateExperienceTemplateToolParams = BaseToolSchema.extend({
6817
- name: z100.string().describe("The name of the experience template"),
6818
- description: z100.string().describe("Description of the experience template"),
6819
- viewports: z100.array(ViewportSchema).describe(
6931
+ name: z101.string().describe("The name of the experience template"),
6932
+ description: z101.string().describe("Description of the experience template"),
6933
+ viewports: z101.array(ViewportSchema).describe(
6820
6934
  "Viewport definitions for the experience template (may be empty)"
6821
6935
  ),
6822
- contentProperties: z100.array(ContentPropertySchema).describe("Content property definitions (may be empty)"),
6823
- designProperties: z100.array(DesignPropertySchema).describe("Design property definitions (may be empty)"),
6824
- componentTree: z100.array(TreeNodeSchema).optional().describe("Optional component tree node definitions"),
6825
- slots: z100.array(SlotDefinitionSchema).optional().describe("Optional slot definitions"),
6936
+ contentProperties: z101.array(ContentPropertySchema).describe("Content property definitions (may be empty)"),
6937
+ designProperties: z101.array(DesignPropertySchema).describe("Design property definitions (may be empty)"),
6938
+ componentTree: z101.array(TreeNodeSchema).optional().describe("Optional component tree node definitions"),
6939
+ slots: z101.array(SlotDefinitionSchema).optional().describe("Optional slot definitions"),
6826
6940
  metadata: ExoMetadataSchema.optional().describe(
6827
6941
  "Optional ExO metadata (tags, concepts)"
6828
6942
  )
@@ -6855,19 +6969,19 @@ function createExperienceTemplateTool(config) {
6855
6969
  }
6856
6970
 
6857
6971
  // src/tools/exo/experience-templates/upsertExperienceTemplate.ts
6858
- import { z as z101 } from "zod";
6972
+ import { z as z102 } from "zod";
6859
6973
  var UpsertExperienceTemplateToolParams = BaseToolSchema.extend({
6860
- experienceTemplateId: z101.string().describe("The ID of the experience template to update"),
6861
- version: z101.number().describe(
6974
+ experienceTemplateId: z102.string().describe("The ID of the experience template to update"),
6975
+ version: z102.number().describe(
6862
6976
  "REQUIRED. The experience template's sys.version as returned by get_experience_template. You must call get_experience_template first to read the current state and version. The update is rejected if this does not match the current version, which means the experience template changed since you read it."
6863
6977
  ),
6864
- name: z101.string().optional().describe("The name of the experience template"),
6865
- description: z101.string().optional().describe("Description of the experience template"),
6866
- viewports: z101.array(ViewportSchema).optional().describe("Viewport definitions; replaces existing viewports if provided"),
6867
- contentProperties: z101.array(ContentPropertySchema).optional().describe("Content property definitions; replaces existing if provided"),
6868
- designProperties: z101.array(DesignPropertySchema).optional().describe("Design property definitions; replaces existing if provided"),
6869
- componentTree: z101.array(TreeNodeSchema).optional().describe("Component tree node definitions; replaces existing if provided"),
6870
- slots: z101.array(SlotDefinitionSchema).optional().describe("Slot definitions; replaces existing if provided"),
6978
+ name: z102.string().optional().describe("The name of the experience template"),
6979
+ description: z102.string().optional().describe("Description of the experience template"),
6980
+ viewports: z102.array(ViewportSchema).optional().describe("Viewport definitions; replaces existing viewports if provided"),
6981
+ contentProperties: z102.array(ContentPropertySchema).optional().describe("Content property definitions; replaces existing if provided"),
6982
+ designProperties: z102.array(DesignPropertySchema).optional().describe("Design property definitions; replaces existing if provided"),
6983
+ componentTree: z102.array(TreeNodeSchema).optional().describe("Component tree node definitions; replaces existing if provided"),
6984
+ slots: z102.array(SlotDefinitionSchema).optional().describe("Slot definitions; replaces existing if provided"),
6871
6985
  metadata: ExoMetadataSchema.optional().describe(
6872
6986
  "ExO metadata (tags, concepts); replaces existing if provided"
6873
6987
  )
@@ -6917,13 +7031,13 @@ function upsertExperienceTemplateTool(config) {
6917
7031
  }
6918
7032
 
6919
7033
  // src/tools/exo/experience-templates/deleteExperienceTemplate.ts
6920
- import { z as z102 } from "zod";
7034
+ import { z as z103 } from "zod";
6921
7035
  var DeleteExperienceTemplateToolParams = BaseToolSchema.extend({
6922
- experienceTemplateId: z102.string().describe("The ID of the experience template to delete"),
6923
- confirm: z102.boolean().optional().describe(
7036
+ experienceTemplateId: z103.string().describe("The ID of the experience template to delete"),
7037
+ confirm: z103.boolean().optional().describe(
6924
7038
  "Set to true on the second call to actually perform the deletion. Required together with confirmToken."
6925
7039
  ),
6926
- confirmToken: z102.string().optional().describe(
7040
+ confirmToken: z103.string().optional().describe(
6927
7041
  "Token returned by the preview call; must be supplied with confirm: true."
6928
7042
  )
6929
7043
  });
@@ -6965,10 +7079,10 @@ function deleteExperienceTemplateTool(config) {
6965
7079
  }
6966
7080
 
6967
7081
  // src/tools/exo/experience-templates/publishExperienceTemplate.ts
6968
- import { z as z103 } from "zod";
7082
+ import { z as z104 } from "zod";
6969
7083
  var PublishExperienceTemplateToolParams = BaseToolSchema.extend({
6970
- experienceTemplateId: z103.string().describe("The ID of the experience template to publish"),
6971
- version: z103.number().describe(
7084
+ experienceTemplateId: z104.string().describe("The ID of the experience template to publish"),
7085
+ version: z104.number().describe(
6972
7086
  "REQUIRED. The experience template's sys.version as returned by get_experience_template. You must call get_experience_template first to read the current state and version. The publish is rejected if this does not match the current version, which means the experience template changed since you read it."
6973
7087
  )
6974
7088
  });
@@ -7002,10 +7116,10 @@ function publishExperienceTemplateTool(config) {
7002
7116
  }
7003
7117
 
7004
7118
  // src/tools/exo/experience-templates/unpublishExperienceTemplate.ts
7005
- import { z as z104 } from "zod";
7119
+ import { z as z105 } from "zod";
7006
7120
  var UnpublishExperienceTemplateToolParams = BaseToolSchema.extend({
7007
- experienceTemplateId: z104.string().describe("The ID of the experience template to unpublish"),
7008
- version: z104.number().describe(
7121
+ experienceTemplateId: z105.string().describe("The ID of the experience template to unpublish"),
7122
+ version: z105.number().describe(
7009
7123
  "REQUIRED. The experience template's sys.version as returned by get_experience_template. You must call get_experience_template first to read the current state and version. The unpublish is rejected if this does not match the current version, which means the experience template changed since you read it."
7010
7124
  )
7011
7125
  });
@@ -7137,9 +7251,9 @@ function createExperienceTemplateTools(config) {
7137
7251
  }
7138
7252
 
7139
7253
  // src/tools/exo/experiences/getExperience.ts
7140
- import { z as z105 } from "zod";
7254
+ import { z as z106 } from "zod";
7141
7255
  var GetExperienceToolParams = BaseToolSchema.extend({
7142
- experienceId: z105.string().describe("The ID of the experience to retrieve")
7256
+ experienceId: z106.string().describe("The ID of the experience to retrieve")
7143
7257
  });
7144
7258
  function getExperienceTool(config) {
7145
7259
  async function tool2(args) {
@@ -7157,12 +7271,12 @@ function getExperienceTool(config) {
7157
7271
  }
7158
7272
 
7159
7273
  // src/tools/exo/experiences/listExperiences.ts
7160
- import { z as z106 } from "zod";
7274
+ import { z as z107 } from "zod";
7161
7275
  var ListExperiencesToolParams = BaseToolSchema.extend({
7162
- limit: z106.number().optional().describe("Maximum number of experiences to return (max 10)"),
7163
- pageNext: z106.string().optional().describe("Cursor token to fetch the next page of results"),
7164
- pagePrev: z106.string().optional().describe("Cursor token to fetch the previous page of results"),
7165
- order: z106.string().optional().describe("Order experiences by this field (e.g. sys.createdAt)")
7276
+ limit: z107.number().optional().describe("Maximum number of experiences to return (max 10)"),
7277
+ pageNext: z107.string().optional().describe("Cursor token to fetch the next page of results"),
7278
+ pagePrev: z107.string().optional().describe("Cursor token to fetch the previous page of results"),
7279
+ order: z107.string().optional().describe("Order experiences by this field (e.g. sys.createdAt)")
7166
7280
  });
7167
7281
  function listExperiencesTool(config) {
7168
7282
  async function tool2(args) {
@@ -7192,21 +7306,21 @@ function listExperiencesTool(config) {
7192
7306
  }
7193
7307
 
7194
7308
  // src/tools/exo/experiences/createExperience.ts
7195
- import { z as z107 } from "zod";
7309
+ import { z as z108 } from "zod";
7196
7310
  var CreateExperienceToolParams = BaseToolSchema.extend({
7197
- name: z107.string().describe("The name of the experience"),
7198
- description: z107.string().describe("Description of the experience"),
7311
+ name: z108.string().describe("The name of the experience"),
7312
+ description: z108.string().describe("Description of the experience"),
7199
7313
  experienceTemplate: ExperienceTemplateResourceLinkSchema.describe(
7200
7314
  "Resource link to the ExperienceTemplate this experience is backed by"
7201
7315
  ),
7202
- viewports: z107.array(ViewportSchema).describe("Viewport definitions for the experience (may be empty)"),
7203
- designProperties: z107.record(z107.string(), DimensionedDesignPropertyValueSchema).describe(
7316
+ viewports: z108.array(ViewportSchema).describe("Viewport definitions for the experience (may be empty)"),
7317
+ designProperties: z108.record(z108.string(), DimensionedDesignPropertyValueSchema).describe(
7204
7318
  "Design property values keyed by property ID. Each value is a dimensioned map (viewport ID \u2192 design value). May be an empty object."
7205
7319
  ),
7206
7320
  contentBindings: ExperienceContentBindingsSchema.optional().describe(
7207
7321
  "Optional content bindings linking this experience to a data assembly"
7208
7322
  ),
7209
- slots: z107.record(z107.string(), z107.array(ExperienceSlotNodeSchema)).optional().describe(
7323
+ slots: z108.record(z108.string(), z108.array(ExperienceSlotNodeSchema)).optional().describe(
7210
7324
  "Optional slot contents keyed by slot ID. Each value is an array of ExperienceFragmentNode or InlineExperienceFragmentNode."
7211
7325
  ),
7212
7326
  metadata: ExperienceMetadataSchema.optional().describe(
@@ -7241,22 +7355,22 @@ function createExperienceTool(config) {
7241
7355
  }
7242
7356
 
7243
7357
  // src/tools/exo/experiences/upsertExperience.ts
7244
- import { z as z108 } from "zod";
7358
+ import { z as z109 } from "zod";
7245
7359
  var UpsertExperienceToolParams = BaseToolSchema.extend({
7246
- experienceId: z108.string().describe("The ID of the experience to update"),
7247
- version: z108.number().describe(
7360
+ experienceId: z109.string().describe("The ID of the experience to update"),
7361
+ version: z109.number().describe(
7248
7362
  "REQUIRED. The experience's sys.version as returned by get_experience. You must call get_experience first to read the current state and version. The update is rejected if this does not match the current version, which means the experience changed since you read it."
7249
7363
  ),
7250
- name: z108.string().optional().describe("The name of the experience"),
7251
- description: z108.string().optional().describe("Description of the experience"),
7252
- viewports: z108.array(ViewportSchema).optional().describe("Viewport definitions; replaces existing viewports if provided"),
7253
- designProperties: z108.record(z108.string(), DimensionedDesignPropertyValueSchema).optional().describe(
7364
+ name: z109.string().optional().describe("The name of the experience"),
7365
+ description: z109.string().optional().describe("Description of the experience"),
7366
+ viewports: z109.array(ViewportSchema).optional().describe("Viewport definitions; replaces existing viewports if provided"),
7367
+ designProperties: z109.record(z109.string(), DimensionedDesignPropertyValueSchema).optional().describe(
7254
7368
  "Design property values keyed by property ID; replaces existing if provided"
7255
7369
  ),
7256
7370
  contentBindings: ExperienceContentBindingsSchema.optional().describe(
7257
7371
  "Content bindings linking this experience to a data assembly; replaces existing if provided"
7258
7372
  ),
7259
- slots: z108.record(z108.string(), z108.array(ExperienceSlotNodeSchema)).optional().describe("Slot contents keyed by slot ID; replaces existing if provided"),
7373
+ slots: z109.record(z109.string(), z109.array(ExperienceSlotNodeSchema)).optional().describe("Slot contents keyed by slot ID; replaces existing if provided"),
7260
7374
  metadata: ExperienceMetadataSchema.optional().describe(
7261
7375
  "ExO metadata (tags, concepts); replaces existing if provided"
7262
7376
  )
@@ -7301,13 +7415,13 @@ function upsertExperienceTool(config) {
7301
7415
  }
7302
7416
 
7303
7417
  // src/tools/exo/experiences/deleteExperience.ts
7304
- import { z as z109 } from "zod";
7418
+ import { z as z110 } from "zod";
7305
7419
  var DeleteExperienceToolParams = BaseToolSchema.extend({
7306
- experienceId: z109.string().describe("The ID of the experience to delete"),
7307
- confirm: z109.boolean().optional().describe(
7420
+ experienceId: z110.string().describe("The ID of the experience to delete"),
7421
+ confirm: z110.boolean().optional().describe(
7308
7422
  "Set to true on the second call to actually perform the deletion. Required together with confirmToken."
7309
7423
  ),
7310
- confirmToken: z109.string().optional().describe(
7424
+ confirmToken: z110.string().optional().describe(
7311
7425
  "Token returned by the preview call; must be supplied with confirm: true."
7312
7426
  )
7313
7427
  });
@@ -7349,10 +7463,10 @@ function deleteExperienceTool(config) {
7349
7463
  }
7350
7464
 
7351
7465
  // src/tools/exo/experiences/publishExperience.ts
7352
- import { z as z110 } from "zod";
7466
+ import { z as z111 } from "zod";
7353
7467
  var PublishExperienceToolParams = BaseToolSchema.extend({
7354
- experienceId: z110.string().describe("The ID of the experience to publish"),
7355
- version: z110.number().describe(
7468
+ experienceId: z111.string().describe("The ID of the experience to publish"),
7469
+ version: z111.number().describe(
7356
7470
  "REQUIRED. The experience's sys.version as returned by get_experience. You must call get_experience first to read the current state and version. The publish is rejected if this does not match the current version, which means the experience changed since you read it."
7357
7471
  )
7358
7472
  });
@@ -7386,10 +7500,10 @@ function publishExperienceTool(config) {
7386
7500
  }
7387
7501
 
7388
7502
  // src/tools/exo/experiences/unpublishExperience.ts
7389
- import { z as z111 } from "zod";
7503
+ import { z as z112 } from "zod";
7390
7504
  var UnpublishExperienceToolParams = BaseToolSchema.extend({
7391
- experienceId: z111.string().describe("The ID of the experience to unpublish"),
7392
- version: z111.number().describe(
7505
+ experienceId: z112.string().describe("The ID of the experience to unpublish"),
7506
+ version: z112.number().describe(
7393
7507
  "REQUIRED. The experience's sys.version as returned by get_experience. You must call get_experience first to read the current state and version. The unpublish is rejected if this does not match the current version, which means the experience changed since you read it."
7394
7508
  )
7395
7509
  });
@@ -7518,9 +7632,9 @@ function createExperienceTools(config) {
7518
7632
  }
7519
7633
 
7520
7634
  // src/tools/exo/data-assemblies/getDataAssembly.ts
7521
- import { z as z112 } from "zod";
7635
+ import { z as z113 } from "zod";
7522
7636
  var GetDataAssemblyToolParams = BaseToolSchema.extend({
7523
- dataAssemblyId: z112.string().describe("The ID of the data assembly to retrieve")
7637
+ dataAssemblyId: z113.string().describe("The ID of the data assembly to retrieve")
7524
7638
  });
7525
7639
  function getDataAssemblyTool(config) {
7526
7640
  async function tool2(args) {
@@ -7538,9 +7652,9 @@ function getDataAssemblyTool(config) {
7538
7652
  }
7539
7653
 
7540
7654
  // src/tools/exo/data-assemblies/getPublishedDataAssembly.ts
7541
- import { z as z113 } from "zod";
7655
+ import { z as z114 } from "zod";
7542
7656
  var GetPublishedDataAssemblyToolParams = BaseToolSchema.extend({
7543
- dataAssemblyId: z113.string().describe("The ID of the published data assembly to retrieve")
7657
+ dataAssemblyId: z114.string().describe("The ID of the published data assembly to retrieve")
7544
7658
  });
7545
7659
  function getPublishedDataAssemblyTool(config) {
7546
7660
  async function tool2(args) {
@@ -7558,12 +7672,12 @@ function getPublishedDataAssemblyTool(config) {
7558
7672
  }
7559
7673
 
7560
7674
  // src/tools/exo/data-assemblies/listDataAssemblies.ts
7561
- import { z as z114 } from "zod";
7675
+ import { z as z115 } from "zod";
7562
7676
  var ListDataAssembliesToolParams = BaseToolSchema.extend({
7563
- limit: z114.number().optional().describe("Maximum number of data assemblies to return (max 10)"),
7564
- pageNext: z114.string().optional().describe("Cursor token to fetch the next page of results"),
7565
- pagePrev: z114.string().optional().describe("Cursor token to fetch the previous page of results"),
7566
- sysIdIn: z114.string().optional().describe("Comma-separated list of data assembly IDs to filter by")
7677
+ limit: z115.number().optional().describe("Maximum number of data assemblies to return (max 10)"),
7678
+ pageNext: z115.string().optional().describe("Cursor token to fetch the next page of results"),
7679
+ pagePrev: z115.string().optional().describe("Cursor token to fetch the previous page of results"),
7680
+ sysIdIn: z115.string().optional().describe("Comma-separated list of data assembly IDs to filter by")
7567
7681
  });
7568
7682
  function listDataAssembliesTool(config) {
7569
7683
  async function tool2(args) {
@@ -7592,12 +7706,12 @@ function listDataAssembliesTool(config) {
7592
7706
  }
7593
7707
 
7594
7708
  // src/tools/exo/data-assemblies/listPublishedDataAssemblies.ts
7595
- import { z as z115 } from "zod";
7709
+ import { z as z116 } from "zod";
7596
7710
  var ListPublishedDataAssembliesToolParams = BaseToolSchema.extend({
7597
- limit: z115.number().optional().describe("Maximum number of published data assemblies to return (max 10)"),
7598
- pageNext: z115.string().optional().describe("Cursor token to fetch the next page of results"),
7599
- pagePrev: z115.string().optional().describe("Cursor token to fetch the previous page of results"),
7600
- sysIdIn: z115.string().optional().describe("Comma-separated list of data assembly IDs to filter by")
7711
+ limit: z116.number().optional().describe("Maximum number of published data assemblies to return (max 10)"),
7712
+ pageNext: z116.string().optional().describe("Cursor token to fetch the next page of results"),
7713
+ pagePrev: z116.string().optional().describe("Cursor token to fetch the previous page of results"),
7714
+ sysIdIn: z116.string().optional().describe("Comma-separated list of data assembly IDs to filter by")
7601
7715
  });
7602
7716
  function listPublishedDataAssembliesTool(config) {
7603
7717
  async function tool2(args) {
@@ -7626,35 +7740,35 @@ function listPublishedDataAssembliesTool(config) {
7626
7740
  }
7627
7741
 
7628
7742
  // src/tools/exo/data-assemblies/createDataAssembly.ts
7629
- import { z as z117 } from "zod";
7743
+ import { z as z118 } from "zod";
7630
7744
 
7631
7745
  // src/types/dataAssemblySchemas.ts
7632
- import { z as z116 } from "zod";
7633
- var PointerExpressionValueSchema = z116.lazy(
7634
- () => z116.union([
7635
- z116.string(),
7636
- z116.object({
7637
- $from: z116.union([
7638
- z116.string(),
7639
- z116.object({
7640
- source: z116.string(),
7746
+ import { z as z117 } from "zod";
7747
+ var PointerExpressionValueSchema = z117.lazy(
7748
+ () => z117.union([
7749
+ z117.string(),
7750
+ z117.object({
7751
+ $from: z117.union([
7752
+ z117.string(),
7753
+ z117.object({
7754
+ source: z117.string(),
7641
7755
  select: PointerExpressionValueSchema.optional()
7642
7756
  })
7643
7757
  ])
7644
7758
  }),
7645
- z116.object({ $literal: z116.custom() }),
7646
- z116.object({ $object: z116.record(z116.string(), PointerExpressionValueSchema) }),
7647
- z116.object({
7648
- $on: z116.object({
7649
- type: z116.record(z116.string(), PointerExpressionValueSchema),
7759
+ z117.object({ $literal: z117.custom() }),
7760
+ z117.object({ $object: z117.record(z117.string(), PointerExpressionValueSchema) }),
7761
+ z117.object({
7762
+ $on: z117.object({
7763
+ type: z117.record(z117.string(), PointerExpressionValueSchema),
7650
7764
  default: PointerExpressionValueSchema.optional()
7651
7765
  })
7652
7766
  }),
7653
- z116.record(z116.string(), PointerExpressionValueSchema)
7767
+ z117.record(z117.string(), PointerExpressionValueSchema)
7654
7768
  ])
7655
7769
  );
7656
- var CanonicalDataTypeArmSchema = z116.object({
7657
- type: z116.enum([
7770
+ var CanonicalDataTypeArmSchema = z117.object({
7771
+ type: z117.enum([
7658
7772
  "String",
7659
7773
  "Number",
7660
7774
  "Integer",
@@ -7666,72 +7780,72 @@ var CanonicalDataTypeArmSchema = z116.object({
7666
7780
  "Literal",
7667
7781
  "DiscriminatedUnion"
7668
7782
  ]),
7669
- id: z116.string().describe("Data type field identifier"),
7670
- name: z116.string().describe("Human-readable name"),
7671
- required: z116.boolean().optional()
7672
- }).catchall(z116.unknown());
7673
- var LegacyDataTypeArmSchema = z116.object({
7674
- id: z116.string().describe("Data type field identifier"),
7675
- name: z116.string().describe("Human-readable name"),
7676
- type: z116.string(),
7677
- required: z116.boolean().optional(),
7678
- source: z116.string().optional(),
7679
- ref: z116.unknown().optional()
7680
- });
7681
- var DataAssemblyDataTypeFieldSchema = z116.union([
7783
+ id: z117.string().describe("Data type field identifier"),
7784
+ name: z117.string().describe("Human-readable name"),
7785
+ required: z117.boolean().optional()
7786
+ }).catchall(z117.unknown());
7787
+ var LegacyDataTypeArmSchema = z117.object({
7788
+ id: z117.string().describe("Data type field identifier"),
7789
+ name: z117.string().describe("Human-readable name"),
7790
+ type: z117.string(),
7791
+ required: z117.boolean().optional(),
7792
+ source: z117.string().optional(),
7793
+ ref: z117.unknown().optional()
7794
+ });
7795
+ var DataAssemblyDataTypeFieldSchema = z117.union([
7682
7796
  CanonicalDataTypeArmSchema,
7683
7797
  LegacyDataTypeArmSchema
7684
7798
  ]);
7685
7799
  var SAME_SPACE_CONTENT_SOURCE = "crn:contentful:::content:spaces/$self/environments/$self";
7686
- var DataAssemblyResourceLinkParameterSchema = z116.object({
7687
- name: z116.string().optional(),
7688
- description: z116.string().optional(),
7689
- type: z116.literal("ResourceLink"),
7690
- linkType: z116.literal("Contentful:Entry"),
7691
- allowedResources: z116.array(
7692
- z116.object({
7693
- type: z116.literal("Contentful:Entry"),
7694
- source: z116.literal(SAME_SPACE_CONTENT_SOURCE),
7695
- allowedTypes: z116.array(z116.string())
7800
+ var DataAssemblyResourceLinkParameterSchema = z117.object({
7801
+ name: z117.string().optional(),
7802
+ description: z117.string().optional(),
7803
+ type: z117.literal("ResourceLink"),
7804
+ linkType: z117.literal("Contentful:Entry"),
7805
+ allowedResources: z117.array(
7806
+ z117.object({
7807
+ type: z117.literal("Contentful:Entry"),
7808
+ source: z117.literal(SAME_SPACE_CONTENT_SOURCE),
7809
+ allowedTypes: z117.array(z117.string())
7696
7810
  })
7697
7811
  )
7698
7812
  });
7699
- var DataAssemblyParameterConfigSchema = z116.record(
7700
- z116.string(),
7813
+ var DataAssemblyParameterConfigSchema = z117.record(
7814
+ z117.string(),
7701
7815
  DataAssemblyResourceLinkParameterSchema
7702
7816
  );
7703
- var DataAssemblyGraphQLResolverSchema = z116.object({
7704
- source: z116.literal("Contentful:GraphQL"),
7705
- query: z116.string().describe("GraphQL query string"),
7817
+ var DataAssemblyGraphQLResolverSchema = z117.object({
7818
+ source: z117.literal("Contentful:GraphQL"),
7819
+ query: z117.string().describe("GraphQL query string"),
7706
7820
  parameters: PointerExpressionValueSchema.optional()
7707
7821
  });
7708
- var DataAssemblyNestedResolverSchema = z116.object({
7709
- source: z116.literal("Contentful:DataAssembly"),
7710
- dataAssembly: z116.object({
7711
- sys: z116.object({
7712
- type: z116.literal("ResourceLink"),
7713
- linkType: z116.literal("Contentful:DataAssembly"),
7714
- urn: z116.string()
7822
+ var DataAssemblyNestedResolverSchema = z117.object({
7823
+ source: z117.literal("Contentful:DataAssembly"),
7824
+ dataAssembly: z117.object({
7825
+ sys: z117.object({
7826
+ type: z117.literal("ResourceLink"),
7827
+ linkType: z117.literal("Contentful:DataAssembly"),
7828
+ urn: z117.string()
7715
7829
  })
7716
7830
  }),
7717
7831
  parameters: PointerExpressionValueSchema.optional()
7718
7832
  });
7719
- var DataAssemblyResolverDefinitionSchema = z116.union([
7833
+ var DataAssemblyResolverDefinitionSchema = z117.union([
7720
7834
  DataAssemblyGraphQLResolverSchema,
7721
7835
  DataAssemblyNestedResolverSchema
7722
7836
  ]);
7723
- var DataAssemblyResolverConfigSchema = z116.record(
7724
- z116.string(),
7837
+ var DataAssemblyResolverConfigSchema = z117.record(
7838
+ z117.string(),
7725
7839
  DataAssemblyResolverDefinitionSchema
7726
7840
  );
7727
7841
  var DataAssemblyReturnMappingConfigSchema = PointerExpressionValueSchema;
7728
- var DataAssemblyMetadataSchema = z116.object({
7729
- tags: z116.array(
7730
- z116.object({
7731
- sys: z116.object({
7732
- type: z116.literal("Link"),
7733
- linkType: z116.literal("Tag"),
7734
- id: z116.string()
7842
+ var DataAssemblyMetadataSchema = z117.object({
7843
+ tags: z117.array(
7844
+ z117.object({
7845
+ sys: z117.object({
7846
+ type: z117.literal("Link"),
7847
+ linkType: z117.literal("Tag"),
7848
+ id: z117.string()
7735
7849
  })
7736
7850
  })
7737
7851
  )
@@ -7739,8 +7853,8 @@ var DataAssemblyMetadataSchema = z116.object({
7739
7853
 
7740
7854
  // src/tools/exo/data-assemblies/createDataAssembly.ts
7741
7855
  var CreateDataAssemblyToolParams = BaseToolSchema.extend({
7742
- name: z117.string().describe("The name of the data assembly"),
7743
- description: z117.string().describe("Description of the data assembly"),
7856
+ name: z118.string().describe("The name of the data assembly"),
7857
+ description: z118.string().describe("Description of the data assembly"),
7744
7858
  parameters: DataAssemblyParameterConfigSchema.describe(
7745
7859
  "Parameter definitions keyed by parameter name (may be empty object)"
7746
7860
  ),
@@ -7750,8 +7864,8 @@ var CreateDataAssemblyToolParams = BaseToolSchema.extend({
7750
7864
  return: DataAssemblyReturnMappingConfigSchema.describe(
7751
7865
  "Return mapping configuration specifying how to map resolved data"
7752
7866
  ),
7753
- dataType: z117.array(DataAssemblyDataTypeFieldSchema).describe("Data type field definitions for this data assembly (may be empty array)"),
7754
- variant: z117.string().optional().describe("Optional variant identifier for this data assembly"),
7867
+ dataType: z118.array(DataAssemblyDataTypeFieldSchema).describe("Data type field definitions for this data assembly (may be empty array)"),
7868
+ variant: z118.string().optional().describe("Optional variant identifier for this data assembly"),
7755
7869
  metadata: DataAssemblyMetadataSchema.optional().describe("Optional metadata (tags)")
7756
7870
  });
7757
7871
  function createDataAssemblyTool(config) {
@@ -7785,14 +7899,14 @@ function createDataAssemblyTool(config) {
7785
7899
  }
7786
7900
 
7787
7901
  // src/tools/exo/data-assemblies/updateDataAssembly.ts
7788
- import { z as z118 } from "zod";
7902
+ import { z as z119 } from "zod";
7789
7903
  var UpdateDataAssemblyToolParams = BaseToolSchema.extend({
7790
- dataAssemblyId: z118.string().describe("The ID of the data assembly to update"),
7791
- version: z118.number().describe(
7904
+ dataAssemblyId: z119.string().describe("The ID of the data assembly to update"),
7905
+ version: z119.number().describe(
7792
7906
  "REQUIRED. The data assembly's sys.version as returned by get_data_assembly. You must call get_data_assembly first to read the current state and version. The update is rejected if this does not match the current version, which means the data assembly changed since you read it."
7793
7907
  ),
7794
- name: z118.string().optional().describe("The name of the data assembly"),
7795
- description: z118.string().optional().describe("Description of the data assembly"),
7908
+ name: z119.string().optional().describe("The name of the data assembly"),
7909
+ description: z119.string().optional().describe("Description of the data assembly"),
7796
7910
  parameters: DataAssemblyParameterConfigSchema.optional().describe(
7797
7911
  "Parameter definitions; replaces existing if provided"
7798
7912
  ),
@@ -7802,8 +7916,8 @@ var UpdateDataAssemblyToolParams = BaseToolSchema.extend({
7802
7916
  return: DataAssemblyReturnMappingConfigSchema.optional().describe(
7803
7917
  "Return mapping configuration; replaces existing if provided"
7804
7918
  ),
7805
- dataType: z118.array(DataAssemblyDataTypeFieldSchema).optional().describe("Data type field definitions; replaces existing if provided"),
7806
- variant: z118.string().optional().describe("Optional variant identifier; replaces existing if provided"),
7919
+ dataType: z119.array(DataAssemblyDataTypeFieldSchema).optional().describe("Data type field definitions; replaces existing if provided"),
7920
+ variant: z119.string().optional().describe("Optional variant identifier; replaces existing if provided"),
7807
7921
  metadata: DataAssemblyMetadataSchema.optional().describe(
7808
7922
  "Metadata (tags); replaces existing if provided"
7809
7923
  )
@@ -7849,13 +7963,13 @@ function updateDataAssemblyTool(config) {
7849
7963
  }
7850
7964
 
7851
7965
  // src/tools/exo/data-assemblies/deleteDataAssembly.ts
7852
- import { z as z119 } from "zod";
7966
+ import { z as z120 } from "zod";
7853
7967
  var DeleteDataAssemblyToolParams = BaseToolSchema.extend({
7854
- dataAssemblyId: z119.string().describe("The ID of the data assembly to delete"),
7855
- confirm: z119.boolean().optional().describe(
7968
+ dataAssemblyId: z120.string().describe("The ID of the data assembly to delete"),
7969
+ confirm: z120.boolean().optional().describe(
7856
7970
  "Set to true on the second call to actually perform the deletion. Required together with confirmToken."
7857
7971
  ),
7858
- confirmToken: z119.string().optional().describe(
7972
+ confirmToken: z120.string().optional().describe(
7859
7973
  "Token returned by the preview call; must be supplied with confirm: true."
7860
7974
  )
7861
7975
  });
@@ -7897,10 +8011,10 @@ function deleteDataAssemblyTool(config) {
7897
8011
  }
7898
8012
 
7899
8013
  // src/tools/exo/data-assemblies/publishDataAssembly.ts
7900
- import { z as z120 } from "zod";
8014
+ import { z as z121 } from "zod";
7901
8015
  var PublishDataAssemblyToolParams = BaseToolSchema.extend({
7902
- dataAssemblyId: z120.string().describe("The ID of the data assembly to publish"),
7903
- version: z120.number().describe(
8016
+ dataAssemblyId: z121.string().describe("The ID of the data assembly to publish"),
8017
+ version: z121.number().describe(
7904
8018
  "REQUIRED. The data assembly's sys.version as returned by get_data_assembly. You must call get_data_assembly first to read the current state and version. The publish is rejected if this does not match the current version, which means the data assembly changed since you read it."
7905
8019
  )
7906
8020
  });
@@ -7934,10 +8048,10 @@ function publishDataAssemblyTool(config) {
7934
8048
  }
7935
8049
 
7936
8050
  // src/tools/exo/data-assemblies/unpublishDataAssembly.ts
7937
- import { z as z121 } from "zod";
8051
+ import { z as z122 } from "zod";
7938
8052
  var UnpublishDataAssemblyToolParams = BaseToolSchema.extend({
7939
- dataAssemblyId: z121.string().describe("The ID of the data assembly to unpublish"),
7940
- version: z121.number().describe(
8053
+ dataAssemblyId: z122.string().describe("The ID of the data assembly to unpublish"),
8054
+ version: z122.number().describe(
7941
8055
  "REQUIRED. The data assembly's sys.version as returned by get_data_assembly. You must call get_data_assembly first to read the current state and version. The unpublish is rejected if this does not match the current version, which means the data assembly changed since you read it."
7942
8056
  )
7943
8057
  });
@@ -8197,6 +8311,12 @@ var ContentfulMcpTools = class {
8197
8311
  getTaxonomyTools() {
8198
8312
  return createTaxonomyTools(this.config);
8199
8313
  }
8314
+ /**
8315
+ * Get usage tools
8316
+ */
8317
+ getUsageTools() {
8318
+ return createUsageTools(this.config);
8319
+ }
8200
8320
  /**
8201
8321
  * Get ExO experience fragment tools
8202
8322
  */
@@ -8218,10 +8338,10 @@ var ContentfulMcpTools = class {
8218
8338
  };
8219
8339
 
8220
8340
  // src/utils/entitlements.ts
8221
- import { createClient as createClient16 } from "contentful-management";
8341
+ import { createClient as createClient17 } from "contentful-management";
8222
8342
  var EXO_M1_FEATURE = "exoM1";
8223
8343
  function createPlainClient(config) {
8224
- return createClient16(createClientConfig(config), { type: "plain" });
8344
+ return createClient17(createClientConfig(config), { type: "plain" });
8225
8345
  }
8226
8346
  async function orgHasExoM1(client, organizationId) {
8227
8347
  try {