@contentful/mcp-tools 0.12.3-next.2 → 0.12.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/index.d.ts +146 -86
  2. package/dist/index.js +834 -687
  3. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -2310,16 +2310,16 @@ var contextStore = new ContextStore();
2310
2310
  // src/tools/context/instructions.ts
2311
2311
  var CORE_INVARIANTS = `# Core operating rules
2312
2312
 
2313
- - **Content-type first.** Before finding or editing content, call \`list_content_types\` to see what content types exist, and \`get_content_type\` to inspect a type's fields. This prevents failed queries and reveals the right type (e.g. a \`pricingPage\` type when asked about pricing).
2314
- - **Edit safely.** To modify an entry, call \`get_entry\` first, then pass the returned \`sys.version\` to \`update_entry\`. The version is required and prevents overwriting concurrent changes.
2315
- - **Bulk cap.** The bulk operations \`publish_entry\`, \`unpublish_entry\`, \`archive_entry\`, and \`unarchive_entry\` accept at most 10 IDs per call by default. This cap does not apply to creating or updating entries.
2313
+ - **Schema first.** Before creating or finding content, inspect the environment's schema: list available types and inspect their fields. This prevents failed operations and ensures you use the right type and field names.
2314
+ - **Edit safely.** Before updating any item, fetch it first to get the current \`sys.version\`, then pass that version to the update call. The version is required and prevents overwriting concurrent changes.
2315
+ - **Bulk cap.** Bulk publish/unpublish/archive/unarchive operations accept at most 10 IDs per call by default. This cap does not apply to creating or updating items.
2316
2316
  - **Ask when ambiguous.** If multiple spaces or environments are available, ask the user which to use. Do not guess.`;
2317
2317
  var SEARCHING_GUIDANCE = `# Searching for content
2318
2318
 
2319
- - **Content-type first.** When users ask about specific content ("pricing page", "blog posts"), call \`list_content_types\` / \`get_content_type\` to discover the correct type before searching. This prevents wasted queries on wrong field names.
2320
- - **Then search.** Use \`search_entries\` with the correct content type and field names. Use \`semantic_search\` when the user's request is conceptual rather than an exact field match.
2319
+ - **Schema first.** When users ask about specific content, discover the relevant schema before searching: list the environment's available types and inspect a type's fields so you query on real field names. This prevents wasted queries. Use whichever primitives the environment exposes \u2014 classic content types and entries, or Experience Orchestration component types and experiences.
2320
+ - **Then search.** Query using the correct type and field names. Prefer semantic search when the request is conceptual rather than an exact field match.
2321
2321
  - **Retry thoughtfully.** If a query returns no results, retry 2-3 times: relax filters, use more general terms, or check for typos in field names.
2322
- - **Multi-step reference queries.** For requests like "blog posts by Magnus", first inspect the content type to confirm the reference field, then query for the referenced entry (the author) to get its ID, then query the primary content filtering on that ID. If several entities match, show them all and ask.`;
2322
+ - **Multi-step reference queries.** For requests that span references (e.g. "posts by Magnus"), first inspect the schema to confirm the reference field, then query for the referenced item to get its ID, then filter the primary query on that ID. If several items match, show them all and ask.`;
2323
2323
  var CONVENTIONS_GUIDANCE = `# Response and workflow conventions
2324
2324
 
2325
2325
  - **Plan, then act.** Before a tool call, think about what you need, pick the right tool, and briefly tell the user what you are about to do.
@@ -2327,9 +2327,9 @@ var CONVENTIONS_GUIDANCE = `# Response and workflow conventions
2327
2327
  - **Clarify resources.** If multiple spaces or environments exist, always ask which to use before acting.
2328
2328
  - **Format for readability.** Use markdown for complex data; show the most important fields of an entry first; keep responses concise but complete.
2329
2329
  - **Prefer bulk.** If you would call the same tool many times, check whether it supports multiple IDs and condense into one call (respecting the 10-ID cap on publish-family operations).`;
2330
- var EXO_DISPOSITION = `# Tool disposition: prefer Experience Orchestration
2330
+ var EXO_DISPOSITION = `# Tool disposition: Experience Orchestration by default
2331
2331
 
2332
- Experience Orchestration (ExO) tools are enabled. Prefer ExO primitives \u2014 Component Types, Experiences, Templates \u2014 over classic content types and entries, unless the user explicitly asks for classic content types or entries instead.`;
2332
+ Experience Orchestration (ExO) tools are enabled. Use ExO primitives \u2014 Component Types, Experiences, Templates, Fragments, and Data Assemblies \u2014 for all content modeling and authoring. Do not create classic content types or entries unless the user explicitly instructs you to. If you are unsure how to model something with ExO, inspect the tool schemas and proceed with ExO.`;
2333
2333
 
2334
2334
  // src/tools/context/getInitialContextTool.ts
2335
2335
  var GetInitialContextToolParams = z35.object({});
@@ -2354,13 +2354,15 @@ ${EXO_DISPOSITION}` : "";
2354
2354
  You are an assistant integrated with Contentful through the Model Context Protocol (MCP). Always call this tool first.
2355
2355
 
2356
2356
  ${sessionFacts}
2357
+ ` + exoBlock + `
2357
2358
 
2359
+ ` + outdent`
2358
2360
  ${CORE_INVARIANTS}
2359
2361
 
2360
2362
  ${SEARCHING_GUIDANCE}
2361
2363
 
2362
2364
  ${CONVENTIONS_GUIDANCE}
2363
- ` + exoBlock;
2365
+ `;
2364
2366
  contextStore.setInitialContextLoaded();
2365
2367
  return {
2366
2368
  content: [
@@ -3442,6 +3444,100 @@ function unarchiveEntryTool(config) {
3442
3444
  return withErrorHandling(tool2, "Error unarchiving entry");
3443
3445
  }
3444
3446
 
3447
+ // src/tools/entries/appendEntryField.ts
3448
+ import { z as z52 } from "zod";
3449
+ var AppendEntryFieldToolParams = BaseToolSchema.extend({
3450
+ entryId: z52.string().describe("The ID of the entry to modify"),
3451
+ fieldId: z52.string().describe("The ID of the array field to append to"),
3452
+ locale: z52.string().describe(
3453
+ 'The locale key to target (e.g. "en-US"). Fields are locale-keyed; you must supply the exact locale string.'
3454
+ ),
3455
+ values: z52.array(z52.unknown()).min(1).describe(
3456
+ 'One or more items to append. Each item must match the element shape of the target array field: a plain string for Array of Symbols, { sys: { type: "Link", linkType: "Entry"|"Asset", id: "..." } } for Array of Links, or { sys: { type: "ResourceLink", linkType: "...", urn: "..." } } for Array of ResourceLinks.'
3457
+ ),
3458
+ version: z52.number().optional().describe(
3459
+ "Optional. The entry's sys.version as returned by get_entry. If provided, the append is rejected when the entry has changed since you read it (same conflict check as update_entry). If omitted, the append targets the current server state without a version check \u2014 safe for additive operations."
3460
+ )
3461
+ });
3462
+ function itemKey(item) {
3463
+ if (item !== null && typeof item === "object") {
3464
+ const sys = item["sys"];
3465
+ if (sys !== null && typeof sys === "object") {
3466
+ const sysObj = sys;
3467
+ if (typeof sysObj["id"] === "string") return `id:${sysObj["id"]}`;
3468
+ if (typeof sysObj["urn"] === "string") return `urn:${sysObj["urn"]}`;
3469
+ }
3470
+ }
3471
+ if (typeof item === "string") return `str:${item}`;
3472
+ return void 0;
3473
+ }
3474
+ function appendEntryFieldTool(config) {
3475
+ async function tool2(args) {
3476
+ assertEnvironmentNotProtected(
3477
+ args.environmentId,
3478
+ config.protectedEnvironments
3479
+ );
3480
+ const params = {
3481
+ spaceId: args.spaceId,
3482
+ environmentId: args.environmentId,
3483
+ entryId: args.entryId
3484
+ };
3485
+ const contentfulClient = createToolClient(config, args);
3486
+ const existingEntry = await contentfulClient.entry.get(params);
3487
+ if (args.version !== void 0 && args.version !== existingEntry.sys.version) {
3488
+ throw new Error(
3489
+ `Version conflict: the entry has changed since you read it (your version: ${args.version}, current version: ${existingEntry.sys.version}). Re-fetch the entry with get_entry and retry with the latest version.`
3490
+ );
3491
+ }
3492
+ const fieldLocaleValue = existingEntry.fields?.[args.fieldId]?.[args.locale];
3493
+ let existingArray;
3494
+ if (fieldLocaleValue === void 0 || fieldLocaleValue === null) {
3495
+ existingArray = [];
3496
+ } else if (!Array.isArray(fieldLocaleValue)) {
3497
+ throw new Error(
3498
+ `Field "${args.fieldId}" locale "${args.locale}" is not an array (got ${typeof fieldLocaleValue}). append_entry_field only works on Array of Symbols, Array of Links, and Array of ResourceLinks fields.`
3499
+ );
3500
+ } else {
3501
+ existingArray = fieldLocaleValue;
3502
+ }
3503
+ const existingKeys = /* @__PURE__ */ new Set();
3504
+ for (const item of existingArray) {
3505
+ const k = itemKey(item);
3506
+ if (k !== void 0) existingKeys.add(k);
3507
+ }
3508
+ const appended = [];
3509
+ const skipped = [];
3510
+ for (const incoming of args.values) {
3511
+ const k = itemKey(incoming);
3512
+ if (k !== void 0 && existingKeys.has(k)) {
3513
+ skipped.push(incoming);
3514
+ } else {
3515
+ appended.push(incoming);
3516
+ if (k !== void 0) existingKeys.add(k);
3517
+ }
3518
+ }
3519
+ const newArray = [...existingArray, ...appended];
3520
+ const updatedFields = {
3521
+ ...existingEntry.fields,
3522
+ [args.fieldId]: {
3523
+ ...existingEntry.fields?.[args.fieldId] ?? {},
3524
+ [args.locale]: newArray
3525
+ }
3526
+ };
3527
+ const updatedEntry = await contentfulClient.entry.update(params, {
3528
+ ...existingEntry,
3529
+ fields: updatedFields
3530
+ });
3531
+ return createSuccessResponse("Entry field appended successfully", {
3532
+ updatedEntry,
3533
+ appended,
3534
+ skipped,
3535
+ newLength: newArray.length
3536
+ });
3537
+ }
3538
+ return withErrorHandling(tool2, "Error appending entry field");
3539
+ }
3540
+
3445
3541
  // src/tools/entries/register.ts
3446
3542
  function createEntryTools(config) {
3447
3543
  const searchEntries = searchEntriesTool(config);
@@ -3456,6 +3552,7 @@ function createEntryTools(config) {
3456
3552
  const unpublishEntry = unpublishEntryTool(config);
3457
3553
  const archiveEntry = archiveEntryTool(config);
3458
3554
  const unarchiveEntry = unarchiveEntryTool(config);
3555
+ const appendEntryField = appendEntryFieldTool(config);
3459
3556
  return {
3460
3557
  searchEntries: {
3461
3558
  title: "search_entries",
@@ -3526,7 +3623,7 @@ function createEntryTools(config) {
3526
3623
  },
3527
3624
  updateEntry: {
3528
3625
  title: "update_entry",
3529
- description: "Update an existing entry. You MUST call get_entry first to read the current state, then pass the sys.version you received as the version parameter. The handler merges your field updates with the existing entry fields, so you only need to provide the fields you want to change. However, for multiple-locale fields, all existing locales must be included in the update. If the version is stale (the entry changed since you read it), the update is rejected and you must re-fetch with get_entry.",
3626
+ description: "Update an existing entry. You MUST call get_entry first to read the current state, then pass the sys.version you received as the version parameter. The handler merges your field updates with the existing entry fields, so you only need to provide the fields you want to change. However, for multiple-locale fields, all existing locales must be included in the update. If the version is stale (the entry changed since you read it), the update is rejected and you must re-fetch with get_entry. NOTE: for appending items to large array fields (e.g. reference arrays with many items), prefer append_entry_field \u2014 it performs the read-modify-append server-side and deduplicates, so you never need to hold the full array.",
3530
3627
  inputParams: UpdateEntryToolParams.shape,
3531
3628
  annotations: {
3532
3629
  readOnlyHint: false,
@@ -3595,16 +3692,28 @@ function createEntryTools(config) {
3595
3692
  openWorldHint: false
3596
3693
  },
3597
3694
  tool: unarchiveEntry
3695
+ },
3696
+ appendEntryField: {
3697
+ title: "append_entry_field",
3698
+ description: "Append one or more items to an array-typed entry field (Array of Symbols, Array of Links, or Array of ResourceLinks) entirely server-side. The agent never holds or resends the full array \u2014 the tool reads the current array on the server, deduplicates (Links by sys.id, ResourceLinks by sys.urn, Symbols by exact value), appends survivors, and writes back only the target field/locale. PREFER this over update_entry when adding items to large reference arrays (e.g. a page with dozens of references) \u2014 update_entry replaces the full array and will silently lose items if the agent held a truncated read. Optionally pass version (from get_entry) to enforce a conflict check; omit it to append without a version guard (safe for additive operations). Returns the updated entry plus appended/skipped item lists and the new array length.",
3699
+ inputParams: AppendEntryFieldToolParams.shape,
3700
+ annotations: {
3701
+ readOnlyHint: false,
3702
+ destructiveHint: false,
3703
+ idempotentHint: true,
3704
+ openWorldHint: false
3705
+ },
3706
+ tool: appendEntryField
3598
3707
  }
3599
3708
  };
3600
3709
  }
3601
3710
 
3602
3711
  // src/tools/environments/createEnvironment.ts
3603
- import { z as z52 } from "zod";
3712
+ import { z as z53 } from "zod";
3604
3713
  var CreateEnvironmentToolParams = BaseToolSchema.extend({
3605
- environmentId: z52.string().describe("The ID of the environment to create"),
3606
- name: z52.string().describe("The name of the environment to create"),
3607
- sourceEnvironmentId: z52.string().describe(
3714
+ environmentId: z53.string().describe("The ID of the environment to create"),
3715
+ name: z53.string().describe("The name of the environment to create"),
3716
+ sourceEnvironmentId: z53.string().describe(
3608
3717
  "The ID of the source environment to clone from (defaults to master)"
3609
3718
  ).optional()
3610
3719
  });
@@ -3635,15 +3744,15 @@ function createEnvironmentTool(config) {
3635
3744
  }
3636
3745
 
3637
3746
  // src/tools/environments/listEnvironments.ts
3638
- import { z as z53 } from "zod";
3747
+ import { z as z54 } from "zod";
3639
3748
  var ListEnvironmentsToolParams = BaseToolSchema.extend({
3640
- environmentId: z53.string().optional().describe(
3749
+ environmentId: z54.string().optional().describe(
3641
3750
  "The ID of the Contentful environment (not required for listing)"
3642
3751
  ),
3643
- limit: z53.number().optional().describe("Maximum number of environments to return (max 10)"),
3644
- skip: z53.number().optional().describe("Skip this many environments for pagination"),
3645
- select: z53.string().optional().describe("Comma-separated list of fields to return"),
3646
- order: z53.string().optional().describe("Order environments by this field")
3752
+ limit: z54.number().optional().describe("Maximum number of environments to return (max 10)"),
3753
+ skip: z54.number().optional().describe("Skip this many environments for pagination"),
3754
+ select: z54.string().optional().describe("Comma-separated list of fields to return"),
3755
+ order: z54.string().optional().describe("Order environments by this field")
3647
3756
  });
3648
3757
  function listEnvironmentsTool(config) {
3649
3758
  async function tool2(args) {
@@ -3689,13 +3798,13 @@ function listEnvironmentsTool(config) {
3689
3798
  }
3690
3799
 
3691
3800
  // src/tools/environments/deleteEnvironment.ts
3692
- import { z as z54 } from "zod";
3801
+ import { z as z55 } from "zod";
3693
3802
  var DeleteEnvironmentToolParams = BaseToolSchema.extend({
3694
- environmentId: z54.string().describe("The ID of the environment to delete"),
3695
- confirm: z54.boolean().optional().describe(
3803
+ environmentId: z55.string().describe("The ID of the environment to delete"),
3804
+ confirm: z55.boolean().optional().describe(
3696
3805
  "Set to true on the second call to actually perform the deletion. Required together with confirmToken."
3697
3806
  ),
3698
- confirmToken: z54.string().optional().describe(
3807
+ confirmToken: z55.string().optional().describe(
3699
3808
  "Token returned by the preview call; must be supplied with confirm: true."
3700
3809
  )
3701
3810
  });
@@ -3780,9 +3889,9 @@ function createEnvironmentTools(config) {
3780
3889
  }
3781
3890
 
3782
3891
  // src/tools/locales/getLocale.ts
3783
- import { z as z55 } from "zod";
3892
+ import { z as z56 } from "zod";
3784
3893
  var GetLocaleToolParams = BaseToolSchema.extend({
3785
- localeId: z55.string().describe("The ID of the locale to retrieve")
3894
+ localeId: z56.string().describe("The ID of the locale to retrieve")
3786
3895
  });
3787
3896
  function getLocaleTool(config) {
3788
3897
  async function tool2(args) {
@@ -3799,21 +3908,21 @@ function getLocaleTool(config) {
3799
3908
  }
3800
3909
 
3801
3910
  // src/tools/locales/createLocale.ts
3802
- import { z as z56 } from "zod";
3911
+ import { z as z57 } from "zod";
3803
3912
  var CreateLocaleToolParams = BaseToolSchema.extend({
3804
- name: z56.string().describe("The name of the locale"),
3805
- code: z56.string().describe('The locale code (e.g., "en-US")'),
3806
- fallbackCode: z56.string().nullable().describe(
3913
+ name: z57.string().describe("The name of the locale"),
3914
+ code: z57.string().describe('The locale code (e.g., "en-US")'),
3915
+ fallbackCode: z57.string().nullable().describe(
3807
3916
  "The locale code to fallback to when there is no content for the current locale"
3808
3917
  ),
3809
- contentDeliveryApi: z56.boolean().optional().default(true).describe(
3918
+ contentDeliveryApi: z57.boolean().optional().default(true).describe(
3810
3919
  "If the content under this locale should be available on the CDA (for public reading)"
3811
3920
  ),
3812
- contentManagementApi: z56.boolean().optional().default(true).describe(
3921
+ contentManagementApi: z57.boolean().optional().default(true).describe(
3813
3922
  "If the content under this locale should be available on the CMA (for editing)"
3814
3923
  ),
3815
- default: z56.boolean().optional().default(false).describe("If this is the default locale"),
3816
- optional: z56.boolean().optional().default(false).describe("If the locale needs to be filled in on entries or not")
3924
+ default: z57.boolean().optional().default(false).describe("If this is the default locale"),
3925
+ optional: z57.boolean().optional().default(false).describe("If the locale needs to be filled in on entries or not")
3817
3926
  });
3818
3927
  function createLocaleTool(config) {
3819
3928
  async function tool2(args) {
@@ -3840,13 +3949,13 @@ function createLocaleTool(config) {
3840
3949
  }
3841
3950
 
3842
3951
  // src/tools/locales/listLocales.ts
3843
- import { z as z57 } from "zod";
3952
+ import { z as z58 } from "zod";
3844
3953
  var ListLocaleToolParams = BaseToolSchema.extend({
3845
- limit: z57.number().optional().describe("Maximum number of locales to return"),
3846
- skip: z57.number().optional().describe("Skip this many locales for pagination"),
3847
- select: z57.string().optional().describe("Comma-separated list of fields to return"),
3848
- include: z57.number().optional().describe("Include this many levels of linked entries"),
3849
- order: z57.string().optional().describe("Order locales by this field")
3954
+ limit: z58.number().optional().describe("Maximum number of locales to return"),
3955
+ skip: z58.number().optional().describe("Skip this many locales for pagination"),
3956
+ select: z58.string().optional().describe("Comma-separated list of fields to return"),
3957
+ include: z58.number().optional().describe("Include this many levels of linked entries"),
3958
+ order: z58.string().optional().describe("Order locales by this field")
3850
3959
  });
3851
3960
  function listLocaleTool(config) {
3852
3961
  async function tool2(args) {
@@ -3899,23 +4008,23 @@ function listLocaleTool(config) {
3899
4008
  }
3900
4009
 
3901
4010
  // src/tools/locales/updateLocale.ts
3902
- import { z as z58 } from "zod";
4011
+ import { z as z59 } from "zod";
3903
4012
  var UpdateLocaleToolParams = BaseToolSchema.extend({
3904
- localeId: z58.string().describe("The ID of the locale to update"),
3905
- fields: z58.object({
3906
- name: z58.string().optional().describe("The name of the locale"),
4013
+ localeId: z59.string().describe("The ID of the locale to update"),
4014
+ fields: z59.object({
4015
+ name: z59.string().optional().describe("The name of the locale"),
3907
4016
  // NOTE: internal_code changes are not allowed
3908
- code: z58.string().optional().describe("The code of the locale"),
3909
- fallbackCode: z58.string().optional().describe(
4017
+ code: z59.string().optional().describe("The code of the locale"),
4018
+ fallbackCode: z59.string().optional().describe(
3910
4019
  "The locale code to fallback to when there is no content for the current locale"
3911
4020
  ),
3912
- contentDeliveryApi: z58.boolean().optional().describe(
4021
+ contentDeliveryApi: z59.boolean().optional().describe(
3913
4022
  "If the content under this locale should be available on the CDA (for public reading)"
3914
4023
  ),
3915
- contentManagementApi: z58.boolean().optional().describe(
4024
+ contentManagementApi: z59.boolean().optional().describe(
3916
4025
  "If the content under this locale should be available on the CMA (for editing)"
3917
4026
  ),
3918
- optional: z58.boolean().optional().describe("If the locale needs to be filled in on entries or not")
4027
+ optional: z59.boolean().optional().describe("If the locale needs to be filled in on entries or not")
3919
4028
  })
3920
4029
  });
3921
4030
  function updateLocaleTool(config) {
@@ -3945,13 +4054,13 @@ function updateLocaleTool(config) {
3945
4054
  }
3946
4055
 
3947
4056
  // src/tools/locales/deleteLocale.ts
3948
- import { z as z59 } from "zod";
4057
+ import { z as z60 } from "zod";
3949
4058
  var DeleteLocaleToolParams = BaseToolSchema.extend({
3950
- localeId: z59.string().describe("The ID of the locale to delete"),
3951
- confirm: z59.boolean().optional().describe(
4059
+ localeId: z60.string().describe("The ID of the locale to delete"),
4060
+ confirm: z60.boolean().optional().describe(
3952
4061
  "Set to true on the second call to actually perform the deletion. Required together with confirmToken."
3953
4062
  ),
3954
- confirmToken: z59.string().optional().describe(
4063
+ confirmToken: z60.string().optional().describe(
3955
4064
  "Token returned by the preview call; must be supplied with confirm: true."
3956
4065
  )
3957
4066
  });
@@ -4060,13 +4169,13 @@ function createLocaleTools(config) {
4060
4169
  }
4061
4170
 
4062
4171
  // src/tools/orgs/listOrgs.ts
4063
- import { z as z60 } from "zod";
4172
+ import { z as z61 } from "zod";
4064
4173
  import { createClient as createClient2 } from "contentful-management";
4065
- var ListOrgsToolParams = z60.object({
4066
- limit: z60.number().optional().describe("Maximum number of organizations to return (max 10)"),
4067
- skip: z60.number().optional().describe("Skip this many organizations for pagination"),
4068
- select: z60.string().optional().describe("Comma-separated list of fields to return"),
4069
- order: z60.string().optional().describe("Order organizations by this field")
4174
+ var ListOrgsToolParams = z61.object({
4175
+ limit: z61.number().optional().describe("Maximum number of organizations to return (max 10)"),
4176
+ skip: z61.number().optional().describe("Skip this many organizations for pagination"),
4177
+ select: z61.string().optional().describe("Comma-separated list of fields to return"),
4178
+ order: z61.string().optional().describe("Order organizations by this field")
4070
4179
  });
4071
4180
  function listOrgsTool(config) {
4072
4181
  async function tool2(args) {
@@ -4108,10 +4217,10 @@ function listOrgsTool(config) {
4108
4217
  }
4109
4218
 
4110
4219
  // src/tools/orgs/getOrg.ts
4111
- import { z as z61 } from "zod";
4220
+ import { z as z62 } from "zod";
4112
4221
  import { createClient as createClient3 } from "contentful-management";
4113
- var GetOrgToolParams = z61.object({
4114
- organizationId: z61.string().describe("The ID of the organization to retrieve")
4222
+ var GetOrgToolParams = z62.object({
4223
+ organizationId: z62.string().describe("The ID of the organization to retrieve")
4115
4224
  });
4116
4225
  function getOrgTool(config) {
4117
4226
  async function tool2(args) {
@@ -4159,13 +4268,13 @@ function createOrgTools(config) {
4159
4268
  }
4160
4269
 
4161
4270
  // src/tools/spaces/listSpaces.ts
4162
- import { z as z62 } from "zod";
4271
+ import { z as z63 } from "zod";
4163
4272
  import { createClient as createClient4 } from "contentful-management";
4164
- var ListSpacesToolParams = z62.object({
4165
- limit: z62.number().optional().describe("Maximum number of spaces to return (max 10)"),
4166
- skip: z62.number().optional().describe("Skip this many spaces for pagination"),
4167
- select: z62.string().optional().describe("Comma-separated list of fields to return"),
4168
- order: z62.string().optional().describe("Order spaces by this field")
4273
+ var ListSpacesToolParams = z63.object({
4274
+ limit: z63.number().optional().describe("Maximum number of spaces to return (max 10)"),
4275
+ skip: z63.number().optional().describe("Skip this many spaces for pagination"),
4276
+ select: z63.string().optional().describe("Comma-separated list of fields to return"),
4277
+ order: z63.string().optional().describe("Order spaces by this field")
4169
4278
  });
4170
4279
  function listSpacesTool(config) {
4171
4280
  async function tool2(args) {
@@ -4207,10 +4316,10 @@ function listSpacesTool(config) {
4207
4316
  }
4208
4317
 
4209
4318
  // src/tools/spaces/getSpace.ts
4210
- import { z as z63 } from "zod";
4319
+ import { z as z64 } from "zod";
4211
4320
  import { createClient as createClient5 } from "contentful-management";
4212
- var GetSpaceToolParams = z63.object({
4213
- spaceId: z63.string().describe("The ID of the space to retrieve")
4321
+ var GetSpaceToolParams = z64.object({
4322
+ spaceId: z64.string().describe("The ID of the space to retrieve")
4214
4323
  });
4215
4324
  function getSpaceTool(config) {
4216
4325
  async function tool2(args) {
@@ -4256,12 +4365,12 @@ function createSpaceTools(config) {
4256
4365
  }
4257
4366
 
4258
4367
  // src/tools/tags/listTags.ts
4259
- import { z as z64 } from "zod";
4368
+ import { z as z65 } from "zod";
4260
4369
  var ListTagsToolParams = BaseToolSchema.extend({
4261
- limit: z64.number().optional().describe("Maximum number of tags to return"),
4262
- skip: z64.number().optional().describe("Skip this many tags for pagination"),
4263
- select: z64.string().optional().describe("Comma-separated list of fields to return"),
4264
- order: z64.string().optional().describe("Order tags by this field")
4370
+ limit: z65.number().optional().describe("Maximum number of tags to return"),
4371
+ skip: z65.number().optional().describe("Skip this many tags for pagination"),
4372
+ select: z65.string().optional().describe("Comma-separated list of fields to return"),
4373
+ order: z65.string().optional().describe("Order tags by this field")
4265
4374
  });
4266
4375
  function listTagsTool(config) {
4267
4376
  async function tool2(args) {
@@ -4307,11 +4416,11 @@ function listTagsTool(config) {
4307
4416
  }
4308
4417
 
4309
4418
  // src/tools/tags/createTag.ts
4310
- import { z as z65 } from "zod";
4419
+ import { z as z66 } from "zod";
4311
4420
  var CreateTagToolParams = BaseToolSchema.extend({
4312
- name: z65.string().describe("The name of the tag"),
4313
- id: z65.string().describe("The ID of the tag"),
4314
- visibility: z65.enum(["public", "private"]).describe("The visibility of the tag. Default to private if not specified")
4421
+ name: z66.string().describe("The name of the tag"),
4422
+ id: z66.string().describe("The ID of the tag"),
4423
+ visibility: z66.enum(["public", "private"]).describe("The visibility of the tag. Default to private if not specified")
4315
4424
  });
4316
4425
  function createTagTool(config) {
4317
4426
  async function tool2(args) {
@@ -4366,34 +4475,34 @@ function createTagTools(config) {
4366
4475
  }
4367
4476
 
4368
4477
  // src/tools/taxonomies/concept-schemes/createConceptScheme.ts
4369
- import { z as z67 } from "zod";
4478
+ import { z as z68 } from "zod";
4370
4479
  import { createClient as createClient6 } from "contentful-management";
4371
4480
 
4372
4481
  // src/types/conceptPayloadTypes.ts
4373
- import { z as z66 } from "zod";
4374
- var TaxonomyConceptLinkSchema = z66.object({
4375
- sys: z66.object({
4376
- type: z66.literal("Link"),
4377
- linkType: z66.literal("TaxonomyConcept"),
4378
- id: z66.string()
4482
+ import { z as z67 } from "zod";
4483
+ var TaxonomyConceptLinkSchema = z67.object({
4484
+ sys: z67.object({
4485
+ type: z67.literal("Link"),
4486
+ linkType: z67.literal("TaxonomyConcept"),
4487
+ id: z67.string()
4379
4488
  })
4380
4489
  });
4381
4490
 
4382
4491
  // src/tools/taxonomies/concept-schemes/createConceptScheme.ts
4383
- var CreateConceptSchemeToolParams = z67.object({
4384
- organizationId: z67.string().describe("The ID of the Contentful organization"),
4385
- conceptSchemeId: z67.string().optional().describe(
4492
+ var CreateConceptSchemeToolParams = z68.object({
4493
+ organizationId: z68.string().describe("The ID of the Contentful organization"),
4494
+ conceptSchemeId: z68.string().optional().describe(
4386
4495
  "Optional user-defined ID for the concept scheme. If not provided, Contentful will generate one automatically."
4387
4496
  ),
4388
- prefLabel: z67.record(z67.string()).describe("The preferred label for the concept scheme (localized)"),
4389
- uri: z67.string().nullable().optional().describe("The URI for the concept scheme"),
4390
- definition: z67.record(z67.string().nullable()).optional().describe("Definition of the concept scheme (localized)"),
4391
- editorialNote: z67.record(z67.string().nullable()).optional().describe("Editorial note for the concept scheme (localized)"),
4392
- historyNote: z67.record(z67.string().nullable()).optional().describe("History note for the concept scheme (localized)"),
4393
- example: z67.record(z67.string().nullable()).optional().describe("Example for the concept scheme (localized)"),
4394
- note: z67.record(z67.string().nullable()).optional().describe("General note for the concept scheme (localized)"),
4395
- scopeNote: z67.record(z67.string().nullable()).optional().describe("Scope note for the concept scheme (localized)"),
4396
- topConcepts: z67.array(TaxonomyConceptLinkSchema).optional().describe("Links to top-level concepts in this scheme")
4497
+ prefLabel: z68.record(z68.string()).describe("The preferred label for the concept scheme (localized)"),
4498
+ uri: z68.string().nullable().optional().describe("The URI for the concept scheme"),
4499
+ definition: z68.record(z68.string().nullable()).optional().describe("Definition of the concept scheme (localized)"),
4500
+ editorialNote: z68.record(z68.string().nullable()).optional().describe("Editorial note for the concept scheme (localized)"),
4501
+ historyNote: z68.record(z68.string().nullable()).optional().describe("History note for the concept scheme (localized)"),
4502
+ example: z68.record(z68.string().nullable()).optional().describe("Example for the concept scheme (localized)"),
4503
+ note: z68.record(z68.string().nullable()).optional().describe("General note for the concept scheme (localized)"),
4504
+ scopeNote: z68.record(z68.string().nullable()).optional().describe("Scope note for the concept scheme (localized)"),
4505
+ topConcepts: z68.array(TaxonomyConceptLinkSchema).optional().describe("Links to top-level concepts in this scheme")
4397
4506
  });
4398
4507
  function createConceptSchemeTool(config) {
4399
4508
  async function tool2(args) {
@@ -4433,11 +4542,11 @@ function createConceptSchemeTool(config) {
4433
4542
  }
4434
4543
 
4435
4544
  // src/tools/taxonomies/concept-schemes/getConceptScheme.ts
4436
- import { z as z68 } from "zod";
4545
+ import { z as z69 } from "zod";
4437
4546
  import { createClient as createClient7 } from "contentful-management";
4438
- var GetConceptSchemeToolParams = z68.object({
4439
- organizationId: z68.string().describe("The ID of the Contentful organization"),
4440
- conceptSchemeId: z68.string().describe("The ID of the concept scheme to retrieve")
4547
+ var GetConceptSchemeToolParams = z69.object({
4548
+ organizationId: z69.string().describe("The ID of the Contentful organization"),
4549
+ conceptSchemeId: z69.string().describe("The ID of the concept scheme to retrieve")
4441
4550
  });
4442
4551
  function getConceptSchemeTool(config) {
4443
4552
  async function tool2(args) {
@@ -4457,25 +4566,25 @@ function getConceptSchemeTool(config) {
4457
4566
  }
4458
4567
 
4459
4568
  // src/tools/taxonomies/concept-schemes/listConceptSchemes.ts
4460
- import { z as z69 } from "zod";
4569
+ import { z as z70 } from "zod";
4461
4570
  import { createClient as createClient8 } from "contentful-management";
4462
4571
  import { cloneDeep } from "lodash-es";
4463
- var ListConceptSchemesToolParams = z69.object({
4464
- organizationId: z69.string(),
4465
- query: z69.union([
4466
- z69.object({
4467
- query: z69.string().optional(),
4468
- pageNext: z69.string().optional().describe("Cursor token for the next page of concept schemes"),
4469
- pagePrev: z69.string().optional().describe(
4572
+ var ListConceptSchemesToolParams = z70.object({
4573
+ organizationId: z70.string(),
4574
+ query: z70.union([
4575
+ z70.object({
4576
+ query: z70.string().optional(),
4577
+ pageNext: z70.string().optional().describe("Cursor token for the next page of concept schemes"),
4578
+ pagePrev: z70.string().optional().describe(
4470
4579
  "Cursor token for the previous page of concept schemes"
4471
4580
  ),
4472
- limit: z69.number().optional().describe("Maximum number of concept schemes to return"),
4473
- order: z69.string().optional().describe("Order concept schemes by this field"),
4474
- skip: z69.never().optional()
4581
+ limit: z70.number().optional().describe("Maximum number of concept schemes to return"),
4582
+ order: z70.string().optional().describe("Order concept schemes by this field"),
4583
+ skip: z70.never().optional()
4475
4584
  }).passthrough(),
4476
4585
  // handles [key: string]: any from BasicQueryOptions
4477
- z69.object({
4478
- pageUrl: z69.string().optional()
4586
+ z70.object({
4587
+ pageUrl: z70.string().optional()
4479
4588
  })
4480
4589
  ]).optional().describe(
4481
4590
  'Query parameters for listing concept schemes, supports either pageUrl for cursor-based pagination. Offset "skip" pagination is not supported.'
@@ -4545,22 +4654,22 @@ function listConceptSchemesTool(config) {
4545
4654
  }
4546
4655
 
4547
4656
  // src/tools/taxonomies/concept-schemes/updateConceptScheme.ts
4548
- import { z as z70 } from "zod";
4657
+ import { z as z71 } from "zod";
4549
4658
  import { createClient as createClient9 } from "contentful-management";
4550
- var UpdateConceptSchemeToolParams = z70.object({
4551
- organizationId: z70.string().describe("The ID of the Contentful organization"),
4552
- conceptSchemeId: z70.string().describe("The ID of the concept scheme to update"),
4553
- version: z70.number().describe("The current version of the concept scheme"),
4554
- prefLabel: z70.record(z70.string()).optional().describe("The preferred label for the concept scheme (localized)"),
4555
- uri: z70.string().nullable().optional().describe("The URI for the concept scheme"),
4556
- definition: z70.record(z70.string().nullable()).optional().describe("Definition of the concept scheme (localized)"),
4557
- editorialNote: z70.record(z70.string().nullable()).optional().describe("Editorial note for the concept scheme (localized)"),
4558
- historyNote: z70.record(z70.string().nullable()).optional().describe("History note for the concept scheme (localized)"),
4559
- example: z70.record(z70.string().nullable()).optional().describe("Example for the concept scheme (localized)"),
4560
- note: z70.record(z70.string().nullable()).optional().describe("General note for the concept scheme (localized)"),
4561
- scopeNote: z70.record(z70.string().nullable()).optional().describe("Scope note for the concept scheme (localized)"),
4562
- topConcepts: z70.array(TaxonomyConceptLinkSchema).optional().describe("Links to top-level concepts in this scheme"),
4563
- addConcept: z70.string().optional().describe(
4659
+ var UpdateConceptSchemeToolParams = z71.object({
4660
+ organizationId: z71.string().describe("The ID of the Contentful organization"),
4661
+ conceptSchemeId: z71.string().describe("The ID of the concept scheme to update"),
4662
+ version: z71.number().describe("The current version of the concept scheme"),
4663
+ prefLabel: z71.record(z71.string()).optional().describe("The preferred label for the concept scheme (localized)"),
4664
+ uri: z71.string().nullable().optional().describe("The URI for the concept scheme"),
4665
+ definition: z71.record(z71.string().nullable()).optional().describe("Definition of the concept scheme (localized)"),
4666
+ editorialNote: z71.record(z71.string().nullable()).optional().describe("Editorial note for the concept scheme (localized)"),
4667
+ historyNote: z71.record(z71.string().nullable()).optional().describe("History note for the concept scheme (localized)"),
4668
+ example: z71.record(z71.string().nullable()).optional().describe("Example for the concept scheme (localized)"),
4669
+ note: z71.record(z71.string().nullable()).optional().describe("General note for the concept scheme (localized)"),
4670
+ scopeNote: z71.record(z71.string().nullable()).optional().describe("Scope note for the concept scheme (localized)"),
4671
+ topConcepts: z71.array(TaxonomyConceptLinkSchema).optional().describe("Links to top-level concepts in this scheme"),
4672
+ addConcept: z71.string().optional().describe(
4564
4673
  "ID of a concept to add to this scheme (adds to both concepts and topConcepts)"
4565
4674
  )
4566
4675
  });
@@ -4635,15 +4744,15 @@ function updateConceptSchemeTool(config) {
4635
4744
  }
4636
4745
 
4637
4746
  // src/tools/taxonomies/concept-schemes/deleteConceptScheme.ts
4638
- import { z as z71 } from "zod";
4747
+ import { z as z72 } from "zod";
4639
4748
  import { createClient as createClient10 } from "contentful-management";
4640
- var DeleteConceptSchemeToolParams = z71.object({
4641
- organizationId: z71.string().describe("The ID of the Contentful organization"),
4642
- conceptSchemeId: z71.string().describe("The ID of the concept scheme to delete"),
4643
- confirm: z71.boolean().optional().describe(
4749
+ var DeleteConceptSchemeToolParams = z72.object({
4750
+ organizationId: z72.string().describe("The ID of the Contentful organization"),
4751
+ conceptSchemeId: z72.string().describe("The ID of the concept scheme to delete"),
4752
+ confirm: z72.boolean().optional().describe(
4644
4753
  "Set to true on the second call to actually perform the deletion. Required together with confirmToken."
4645
4754
  ),
4646
- confirmToken: z71.string().optional().describe(
4755
+ confirmToken: z72.string().optional().describe(
4647
4756
  "Token returned by the preview call; must be supplied with confirm: true."
4648
4757
  )
4649
4758
  });
@@ -4754,26 +4863,26 @@ function createConceptSchemeTools(config) {
4754
4863
  }
4755
4864
 
4756
4865
  // src/tools/taxonomies/concepts/createConcept.ts
4757
- import { z as z72 } from "zod";
4866
+ import { z as z73 } from "zod";
4758
4867
  import { createClient as createClient11 } from "contentful-management";
4759
- var CreateConceptToolParams = z72.object({
4760
- organizationId: z72.string().describe("The ID of the Contentful organization"),
4761
- conceptId: z72.string().optional().describe(
4868
+ var CreateConceptToolParams = z73.object({
4869
+ organizationId: z73.string().describe("The ID of the Contentful organization"),
4870
+ conceptId: z73.string().optional().describe(
4762
4871
  "Optional user-defined ID for the concept. If not provided, Contentful will generate one automatically."
4763
4872
  ),
4764
- prefLabel: z72.record(z72.string()).describe("The preferred label for the concept (localized)"),
4765
- uri: z72.string().nullable().optional().describe("The URI for the concept"),
4766
- altLabels: z72.record(z72.array(z72.string())).optional().describe("Alternative labels for the concept (localized)"),
4767
- hiddenLabels: z72.record(z72.array(z72.string())).optional().describe("Hidden labels for the concept (localized)"),
4768
- definition: z72.record(z72.string().nullable()).optional().describe("Definition of the concept (localized)"),
4769
- editorialNote: z72.record(z72.string().nullable()).optional().describe("Editorial note for the concept (localized)"),
4770
- historyNote: z72.record(z72.string().nullable()).optional().describe("History note for the concept (localized)"),
4771
- example: z72.record(z72.string().nullable()).optional().describe("Example for the concept (localized)"),
4772
- note: z72.record(z72.string().nullable()).optional().describe("General note for the concept (localized)"),
4773
- scopeNote: z72.record(z72.string().nullable()).optional().describe("Scope note for the concept (localized)"),
4774
- notations: z72.array(z72.string()).optional().describe("Notations for the concept"),
4775
- broader: z72.array(TaxonomyConceptLinkSchema).optional().describe("Links to broader concepts"),
4776
- related: z72.array(TaxonomyConceptLinkSchema).optional().describe("Links to related concepts")
4873
+ prefLabel: z73.record(z73.string()).describe("The preferred label for the concept (localized)"),
4874
+ uri: z73.string().nullable().optional().describe("The URI for the concept"),
4875
+ altLabels: z73.record(z73.array(z73.string())).optional().describe("Alternative labels for the concept (localized)"),
4876
+ hiddenLabels: z73.record(z73.array(z73.string())).optional().describe("Hidden labels for the concept (localized)"),
4877
+ definition: z73.record(z73.string().nullable()).optional().describe("Definition of the concept (localized)"),
4878
+ editorialNote: z73.record(z73.string().nullable()).optional().describe("Editorial note for the concept (localized)"),
4879
+ historyNote: z73.record(z73.string().nullable()).optional().describe("History note for the concept (localized)"),
4880
+ example: z73.record(z73.string().nullable()).optional().describe("Example for the concept (localized)"),
4881
+ note: z73.record(z73.string().nullable()).optional().describe("General note for the concept (localized)"),
4882
+ scopeNote: z73.record(z73.string().nullable()).optional().describe("Scope note for the concept (localized)"),
4883
+ notations: z73.array(z73.string()).optional().describe("Notations for the concept"),
4884
+ broader: z73.array(TaxonomyConceptLinkSchema).optional().describe("Links to broader concepts"),
4885
+ related: z73.array(TaxonomyConceptLinkSchema).optional().describe("Links to related concepts")
4777
4886
  });
4778
4887
  function createConceptTool(config) {
4779
4888
  async function tool2(args) {
@@ -4808,15 +4917,15 @@ function createConceptTool(config) {
4808
4917
  }
4809
4918
 
4810
4919
  // src/tools/taxonomies/concepts/deleteConcept.ts
4811
- import { z as z73 } from "zod";
4920
+ import { z as z74 } from "zod";
4812
4921
  import { createClient as createClient12 } from "contentful-management";
4813
- var DeleteConceptToolParams = z73.object({
4814
- organizationId: z73.string().describe("The ID of the Contentful organization"),
4815
- conceptId: z73.string().describe("The ID of the concept to delete"),
4816
- confirm: z73.boolean().optional().describe(
4922
+ var DeleteConceptToolParams = z74.object({
4923
+ organizationId: z74.string().describe("The ID of the Contentful organization"),
4924
+ conceptId: z74.string().describe("The ID of the concept to delete"),
4925
+ confirm: z74.boolean().optional().describe(
4817
4926
  "Set to true on the second call to actually perform the deletion. Required together with confirmToken."
4818
4927
  ),
4819
- confirmToken: z73.string().optional().describe(
4928
+ confirmToken: z74.string().optional().describe(
4820
4929
  "Token returned by the preview call; must be supplied with confirm: true."
4821
4930
  )
4822
4931
  });
@@ -4853,25 +4962,25 @@ function deleteConceptTool(config) {
4853
4962
  }
4854
4963
 
4855
4964
  // src/tools/taxonomies/concepts/updateConcept.ts
4856
- import { z as z74 } from "zod";
4965
+ import { z as z75 } from "zod";
4857
4966
  import { createClient as createClient13 } from "contentful-management";
4858
- var UpdateConceptToolParams = z74.object({
4859
- organizationId: z74.string().describe("The ID of the Contentful organization"),
4860
- conceptId: z74.string().describe("The ID of the concept to update"),
4861
- version: z74.number().describe("The current version of the concept"),
4862
- prefLabel: z74.record(z74.string()).optional().describe("The preferred label for the concept (localized)"),
4863
- uri: z74.string().nullable().optional().describe("The URI for the concept"),
4864
- altLabels: z74.record(z74.array(z74.string())).optional().describe("Alternative labels for the concept (localized)"),
4865
- hiddenLabels: z74.record(z74.array(z74.string())).optional().describe("Hidden labels for the concept (localized)"),
4866
- definition: z74.record(z74.string().nullable()).optional().describe("Definition of the concept (localized)"),
4867
- editorialNote: z74.record(z74.string().nullable()).optional().describe("Editorial note for the concept (localized)"),
4868
- historyNote: z74.record(z74.string().nullable()).optional().describe("History note for the concept (localized)"),
4869
- example: z74.record(z74.string().nullable()).optional().describe("Example for the concept (localized)"),
4870
- note: z74.record(z74.string().nullable()).optional().describe("General note for the concept (localized)"),
4871
- scopeNote: z74.record(z74.string().nullable()).optional().describe("Scope note for the concept (localized)"),
4872
- notations: z74.array(z74.string()).optional().describe("Notations for the concept"),
4873
- broader: z74.array(TaxonomyConceptLinkSchema).optional().describe("Links to broader concepts"),
4874
- related: z74.array(TaxonomyConceptLinkSchema).optional().describe("Links to related concepts")
4967
+ var UpdateConceptToolParams = z75.object({
4968
+ organizationId: z75.string().describe("The ID of the Contentful organization"),
4969
+ conceptId: z75.string().describe("The ID of the concept to update"),
4970
+ version: z75.number().describe("The current version of the concept"),
4971
+ prefLabel: z75.record(z75.string()).optional().describe("The preferred label for the concept (localized)"),
4972
+ uri: z75.string().nullable().optional().describe("The URI for the concept"),
4973
+ altLabels: z75.record(z75.array(z75.string())).optional().describe("Alternative labels for the concept (localized)"),
4974
+ hiddenLabels: z75.record(z75.array(z75.string())).optional().describe("Hidden labels for the concept (localized)"),
4975
+ definition: z75.record(z75.string().nullable()).optional().describe("Definition of the concept (localized)"),
4976
+ editorialNote: z75.record(z75.string().nullable()).optional().describe("Editorial note for the concept (localized)"),
4977
+ historyNote: z75.record(z75.string().nullable()).optional().describe("History note for the concept (localized)"),
4978
+ example: z75.record(z75.string().nullable()).optional().describe("Example for the concept (localized)"),
4979
+ note: z75.record(z75.string().nullable()).optional().describe("General note for the concept (localized)"),
4980
+ scopeNote: z75.record(z75.string().nullable()).optional().describe("Scope note for the concept (localized)"),
4981
+ notations: z75.array(z75.string()).optional().describe("Notations for the concept"),
4982
+ broader: z75.array(TaxonomyConceptLinkSchema).optional().describe("Links to broader concepts"),
4983
+ related: z75.array(TaxonomyConceptLinkSchema).optional().describe("Links to related concepts")
4875
4984
  });
4876
4985
  function updateConceptTool(config) {
4877
4986
  async function tool2(args) {
@@ -4913,11 +5022,11 @@ function updateConceptTool(config) {
4913
5022
  }
4914
5023
 
4915
5024
  // src/tools/taxonomies/concepts/getConcept.ts
4916
- import { z as z75 } from "zod";
5025
+ import { z as z76 } from "zod";
4917
5026
  import { createClient as createClient14 } from "contentful-management";
4918
- var GetConceptToolParams = z75.object({
4919
- organizationId: z75.string().describe("The ID of the Contentful organization"),
4920
- conceptId: z75.string().describe("The ID of the concept to retrieve")
5027
+ var GetConceptToolParams = z76.object({
5028
+ organizationId: z76.string().describe("The ID of the Contentful organization"),
5029
+ conceptId: z76.string().describe("The ID of the concept to retrieve")
4921
5030
  });
4922
5031
  function getConceptTool(config) {
4923
5032
  async function tool2(args) {
@@ -4934,18 +5043,18 @@ function getConceptTool(config) {
4934
5043
  }
4935
5044
 
4936
5045
  // src/tools/taxonomies/concepts/listConcepts.ts
4937
- import { z as z76 } from "zod";
5046
+ import { z as z77 } from "zod";
4938
5047
  import { createClient as createClient15 } from "contentful-management";
4939
- var ListConceptsToolParams = z76.object({
4940
- organizationId: z76.string().describe("The ID of the Contentful organization"),
4941
- conceptId: z76.string().optional().describe("The ID of the concept (required for descendants/ancestors)"),
4942
- limit: z76.number().optional().describe("Maximum number of concepts to return"),
4943
- select: z76.string().optional().describe("Comma-separated list of fields to return"),
4944
- include: z76.number().optional().describe("Include this many levels of linked entries"),
4945
- order: z76.string().optional().describe("Order concepts by this field"),
4946
- getDescendants: z76.boolean().optional().describe("Get descendants of the specified concept (requires conceptId)"),
4947
- getAncestors: z76.boolean().optional().describe("Get ancestors of the specified concept (requires conceptId)"),
4948
- getTotalOnly: z76.boolean().optional().describe("Get only the total number of concepts without full data")
5048
+ var ListConceptsToolParams = z77.object({
5049
+ organizationId: z77.string().describe("The ID of the Contentful organization"),
5050
+ conceptId: z77.string().optional().describe("The ID of the concept (required for descendants/ancestors)"),
5051
+ limit: z77.number().optional().describe("Maximum number of concepts to return"),
5052
+ select: z77.string().optional().describe("Comma-separated list of fields to return"),
5053
+ include: z77.number().optional().describe("Include this many levels of linked entries"),
5054
+ order: z77.string().optional().describe("Order concepts by this field"),
5055
+ getDescendants: z77.boolean().optional().describe("Get descendants of the specified concept (requires conceptId)"),
5056
+ getAncestors: z77.boolean().optional().describe("Get ancestors of the specified concept (requires conceptId)"),
5057
+ getTotalOnly: z77.boolean().optional().describe("Get only the total number of concepts without full data")
4949
5058
  });
4950
5059
  function listConceptsTool(config) {
4951
5060
  async function tool2(args) {
@@ -5123,54 +5232,54 @@ function createTaxonomyTools(config) {
5123
5232
  }
5124
5233
 
5125
5234
  // src/tools/jobs/space-to-space-migration/exportSpace.ts
5126
- import { z as z78 } from "zod";
5235
+ import { z as z79 } from "zod";
5127
5236
 
5128
5237
  // src/types/querySchema.ts
5129
- import { z as z77 } from "zod";
5130
- var EntryQuerySchema = z77.object({
5131
- content_type: z77.string().optional().describe("Filter by content type"),
5132
- include: z77.number().optional().describe("Include this many levels of linked entries"),
5133
- select: z77.string().optional().describe("Comma-separated list of fields to return"),
5134
- links_to_entry: z77.string().optional().describe("Find entries that link to the specified entry ID"),
5135
- limit: z77.number().optional().describe("Maximum number of entries to return"),
5136
- skip: z77.number().optional().describe("Skip this many entries"),
5137
- order: z77.string().optional().describe("Order entries by this field")
5138
- });
5139
- var AssetQuerySchema = z77.object({
5140
- mimetype_group: z77.string().optional().describe("Filter by MIME type group"),
5141
- select: z77.string().optional().describe("Comma-separated list of fields to return"),
5142
- limit: z77.number().optional().describe("Maximum number of assets to return"),
5143
- skip: z77.number().optional().describe("Skip this many assets"),
5144
- order: z77.string().optional().describe("Order assets by this field")
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")
5145
5254
  });
5146
5255
 
5147
5256
  // src/tools/jobs/space-to-space-migration/exportSpace.ts
5148
5257
  var ExportSpaceToolParams = BaseToolSchema.extend({
5149
- exportDir: z78.string().optional().describe(
5258
+ exportDir: z79.string().optional().describe(
5150
5259
  "Directory to save the exported space data (optional, defaults to current directory)"
5151
5260
  ),
5152
- saveFile: z78.boolean().optional().default(true).describe("Save the exported space data to a file"),
5153
- contentFile: z78.string().optional().describe("Custom filename for the exported space data (optional)"),
5154
- includeDrafts: z78.boolean().optional().default(false).describe("Include draft entries in the export"),
5155
- includeArchived: z78.boolean().optional().default(false).describe("Include archived entries in the export"),
5156
- skipContentModel: z78.boolean().optional().default(false).describe("Skip exporting content types"),
5157
- skipEditorInterfaces: z78.boolean().optional().default(false).describe("Skip exporting editor interfaces"),
5158
- skipContent: z78.boolean().optional().default(false).describe("Skip exporting entries and assets"),
5159
- skipRoles: z78.boolean().optional().default(false).describe("Skip exporting roles and permissions"),
5160
- skipTags: z78.boolean().optional().default(false).describe("Skip exporting tags"),
5161
- skipWebhooks: z78.boolean().optional().default(false).describe("Skip exporting webhooks"),
5162
- stripTags: z78.boolean().optional().default(false).describe("Untag assets and entries"),
5163
- contentOnly: z78.boolean().optional().default(false).describe("Only export assets and entries"),
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"),
5164
5273
  queryEntries: EntryQuerySchema.optional().describe(
5165
5274
  "Export only entries that match query parameters"
5166
5275
  ),
5167
5276
  queryAssets: AssetQuerySchema.optional().describe(
5168
5277
  "Export only assets that match query parameters"
5169
5278
  ),
5170
- downloadAssets: z78.boolean().optional().default(false).describe("Download actual asset files"),
5171
- maxAllowedLimit: z78.number().optional().default(1e3).describe("Maximum number of items per request"),
5172
- errorLogFile: z78.string().optional().describe("Path to error log output file"),
5173
- useVerboseRenderer: z78.boolean().optional().describe("Line-by-line logging, useful for CI")
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")
5174
5283
  });
5175
5284
  function createExportSpaceTool(config) {
5176
5285
  async function tool2(args) {
@@ -5220,70 +5329,70 @@ function createExportSpaceTool(config) {
5220
5329
  }
5221
5330
 
5222
5331
  // src/tools/jobs/space-to-space-migration/paramCollection.ts
5223
- import { z as z79 } from "zod";
5332
+ import { z as z80 } from "zod";
5224
5333
  var ParamCollectionToolParams = BaseToolSchema.extend({
5225
- confirmation: z79.boolean().optional().describe(
5334
+ confirmation: z80.boolean().optional().describe(
5226
5335
  "User confirmation that they are ready to proceed with the workflow"
5227
5336
  ),
5228
- export: z79.object({
5229
- spaceId: z79.string().optional().describe("ID of the space with source data"),
5230
- environmentId: z79.string().optional().describe("ID of the environment in the source space"),
5231
- deliveryToken: z79.string().optional().describe("CDA token to export only published content (excludes tags)"),
5232
- exportDir: z79.string().optional().describe("Path to export JSON output"),
5233
- saveFile: z79.boolean().optional().describe("Save the export as a JSON file"),
5234
- contentFile: z79.string().optional().describe("Filename for exported data"),
5235
- includeDrafts: z79.boolean().optional().describe("Include drafts in exported entries"),
5236
- includeArchived: z79.boolean().optional().describe("Include archived entries"),
5237
- skipContentModel: z79.boolean().optional().describe("Skip exporting content models"),
5238
- skipEditorInterfaces: z79.boolean().optional().describe("Skip exporting editor interfaces"),
5239
- skipContent: z79.boolean().optional().describe("Skip exporting entries and assets"),
5240
- skipRoles: z79.boolean().optional().describe("Skip exporting roles and permissions"),
5241
- skipTags: z79.boolean().optional().describe("Skip exporting tags"),
5242
- skipWebhooks: z79.boolean().optional().describe("Skip exporting webhooks"),
5243
- stripTags: z79.boolean().optional().describe("Remove tags from entries and assets"),
5244
- contentOnly: z79.boolean().optional().describe("Export only entries and assets"),
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"),
5245
5354
  queryEntries: EntryQuerySchema.optional().describe(
5246
5355
  "Export only entries that match query parameters"
5247
5356
  ),
5248
5357
  queryAssets: AssetQuerySchema.optional().describe(
5249
5358
  "Export only assets that match query parameters"
5250
5359
  ),
5251
- downloadAssets: z79.boolean().optional().describe("Download asset files to disk"),
5252
- host: z79.string().optional().describe("Management API host"),
5253
- hostDelivery: z79.string().optional().describe("Delivery API host"),
5254
- proxy: z79.string().optional().describe("HTTP/HTTPS proxy config"),
5255
- rawProxy: z79.boolean().optional().describe("Pass raw proxy config directly to Axios"),
5256
- maxAllowedLimit: z79.number().optional().describe("Page size for requests"),
5257
- headers: z79.record(z79.any()).optional().describe("Additional headers to include in requests"),
5258
- errorLogFile: z79.string().optional().describe("Path to error log output file"),
5259
- useVerboseRenderer: z79.boolean().optional().describe("Line-by-line logging, useful for CI"),
5260
- config: z79.string().optional().describe("Path to a JSON config file with all options")
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")
5261
5370
  }).optional(),
5262
- import: z79.object({
5263
- spaceId: z79.string().optional().describe("ID of the space to import into"),
5264
- environmentId: z79.string().optional().describe("Target environment in destination space"),
5265
- contentFile: z79.string().optional().describe("Path to JSON file containing the content to import"),
5266
- content: z79.record(z79.any()).optional().describe(
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(
5267
5376
  "JS object containing import content (must match expected structure)"
5268
5377
  ),
5269
- contentModelOnly: z79.boolean().optional().describe("Import only content types"),
5270
- skipContentModel: z79.boolean().optional().describe("Skip importing content types and locales"),
5271
- skipLocales: z79.boolean().optional().describe("Skip importing locales"),
5272
- skipContentUpdates: z79.boolean().optional().describe("Do not update existing content"),
5273
- skipContentPublishing: z79.boolean().optional().describe("Create but do not publish content"),
5274
- uploadAssets: z79.boolean().optional().describe("Upload asset files (requires assetsDirectory)"),
5275
- skipAssetUpdates: z79.boolean().optional().describe("Do not update existing assets"),
5276
- assetsDirectory: z79.string().optional().describe("Path to directory containing exported asset files"),
5277
- timeout: z79.number().optional().describe("Time between retries during asset processing (ms)"),
5278
- retryLimit: z79.number().optional().describe("Max retries for asset processing"),
5279
- host: z79.string().optional().describe("Management API host"),
5280
- proxy: z79.string().optional().describe("HTTP/HTTPS proxy string (host:port or user:pass@host:port)"),
5281
- rawProxy: z79.boolean().optional().describe("Pass proxy config directly to Axios"),
5282
- rateLimit: z79.number().optional().describe("Max requests per second to the API"),
5283
- headers: z79.record(z79.any()).optional().describe("Additional headers to attach to requests"),
5284
- errorLogFile: z79.string().optional().describe("Path to error log file"),
5285
- useVerboseRenderer: z79.boolean().optional().describe("Line-by-line progress output (good for CI)"),
5286
- config: z79.string().optional().describe("Path to config JSON file (merged with CLI args)")
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)")
5287
5396
  }).optional()
5288
5397
  });
5289
5398
  var paramCollectionConfig = {
@@ -5399,25 +5508,25 @@ var createParamCollectionTool = withErrorHandling(
5399
5508
  );
5400
5509
 
5401
5510
  // src/tools/jobs/space-to-space-migration/importSpace.ts
5402
- import { z as z80 } from "zod";
5511
+ import { z as z81 } from "zod";
5403
5512
  var ImportSpaceToolParams = BaseToolSchema.extend({
5404
- contentFile: z80.string().optional().describe("Path to JSON file containing the content to import"),
5405
- content: z80.record(z80.any()).optional().describe(
5513
+ contentFile: z81.string().optional().describe("Path to JSON file containing the content to import"),
5514
+ content: z81.record(z81.any()).optional().describe(
5406
5515
  "JS object containing import content (must match expected structure)"
5407
5516
  ),
5408
- contentModelOnly: z80.boolean().optional().default(false).describe("Import only content types"),
5409
- skipContentModel: z80.boolean().optional().default(false).describe("Skip importing content types and locales"),
5410
- skipLocales: z80.boolean().optional().default(false).describe("Skip importing locales"),
5411
- skipContentUpdates: z80.boolean().optional().default(false).describe("Do not update existing content"),
5412
- skipContentPublishing: z80.boolean().optional().default(false).describe("Create but do not publish content"),
5413
- uploadAssets: z80.boolean().optional().default(false).describe("Upload asset files (requires assetsDirectory)"),
5414
- skipAssetUpdates: z80.boolean().optional().default(false).describe("Do not update existing assets"),
5415
- assetsDirectory: z80.string().optional().describe("Path to directory containing exported asset files"),
5416
- timeout: z80.number().optional().default(3e3).describe("Time between retries during asset processing (ms)"),
5417
- retryLimit: z80.number().optional().default(10).describe("Max retries for asset processing"),
5418
- rateLimit: z80.number().optional().default(7).describe("Max requests per second to the API"),
5419
- errorLogFile: z80.string().optional().describe("Path to error log file"),
5420
- useVerboseRenderer: z80.boolean().optional().describe("Line-by-line progress output (good for CI)")
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)")
5421
5530
  });
5422
5531
  function createImportSpaceTool(config) {
5423
5532
  async function tool2(args) {
@@ -5462,7 +5571,7 @@ function createImportSpaceTool(config) {
5462
5571
  }
5463
5572
 
5464
5573
  // src/tools/jobs/space-to-space-migration/migrationHandler.ts
5465
- import { z as z81 } from "zod";
5574
+ import { z as z82 } from "zod";
5466
5575
 
5467
5576
  // src/tools/jobs/space-to-space-migration/instructions.ts
5468
5577
  var S2S_MIGRATION_INSTRUCTIONS = `
@@ -5505,7 +5614,7 @@ The space to space migration workflow has been concluded and all related tools h
5505
5614
  The workflow is now complete. You can start a new migration workflow by calling space_to_space_migration_handler with enableWorkflow=true if needed.
5506
5615
  `;
5507
5616
  var SpaceToSpaceMigrationHandlerToolParams = BaseToolSchema.extend({
5508
- enableWorkflow: z81.boolean().describe(
5617
+ enableWorkflow: z82.boolean().describe(
5509
5618
  "Set to true to enable the workflow tools, false to disable them and conclude the workflow"
5510
5619
  )
5511
5620
  });
@@ -5603,9 +5712,9 @@ function createJobTools(config) {
5603
5712
  }
5604
5713
 
5605
5714
  // src/tools/exo/component-types/getComponentType.ts
5606
- import { z as z82 } from "zod";
5715
+ import { z as z83 } from "zod";
5607
5716
  var GetComponentTypeToolParams = BaseToolSchema.extend({
5608
- componentTypeId: z82.string().describe("The ID of the component type to retrieve details for")
5717
+ componentTypeId: z83.string().describe("The ID of the component type to retrieve details for")
5609
5718
  });
5610
5719
  function getComponentTypeTool(config) {
5611
5720
  async function tool2(args) {
@@ -5623,24 +5732,24 @@ function getComponentTypeTool(config) {
5623
5732
  }
5624
5733
 
5625
5734
  // src/tools/exo/component-types/listComponentTypes.ts
5626
- import { z as z83 } from "zod";
5735
+ import { z as z84 } from "zod";
5627
5736
  var ListComponentTypesToolParams = BaseToolSchema.extend({
5628
- limit: z83.number().optional().describe("Maximum number of component types to return (max 10)"),
5629
- pageNext: z83.string().optional().describe("Cursor token to fetch the next page of results"),
5630
- pagePrev: z83.string().optional().describe("Cursor token to fetch the previous page of results"),
5631
- order: z83.string().optional().describe("Order component types by this field (e.g. sys.createdAt)")
5737
+ limit: z84.number().optional().describe("Maximum number of component types 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 component types by this field (e.g. sys.createdAt)")
5632
5741
  });
5633
5742
  function listComponentTypesTool(config) {
5634
5743
  async function tool2(args) {
5635
5744
  const contentfulClient = createToolClient(config, args);
5745
+ const cursorParam = args.pageNext ? { pageNext: args.pageNext } : args.pagePrev ? { pagePrev: args.pagePrev } : {};
5636
5746
  const componentTypes = await contentfulClient.componentType.getMany({
5637
5747
  spaceId: args.spaceId,
5638
5748
  environmentId: args.environmentId,
5639
5749
  query: {
5640
5750
  limit: Math.min(args.limit || 10, 10),
5641
- ...args.pageNext && { pageNext: args.pageNext },
5642
- ...args.pagePrev && { pagePrev: args.pagePrev },
5643
- ...args.order && { order: args.order }
5751
+ ...args.order && { order: args.order },
5752
+ ...cursorParam
5644
5753
  }
5645
5754
  });
5646
5755
  const summarized = summarizeData(componentTypes, {
@@ -5658,10 +5767,10 @@ function listComponentTypesTool(config) {
5658
5767
  }
5659
5768
 
5660
5769
  // src/tools/exo/component-types/createComponentType.ts
5661
- import { z as z85 } from "zod";
5770
+ import { z as z86 } from "zod";
5662
5771
 
5663
5772
  // src/types/componentTypeSchemas.ts
5664
- import { z as z84 } from "zod";
5773
+ import { z as z85 } from "zod";
5665
5774
  var URN_EXAMPLES = {
5666
5775
  "Contentful:ComponentType": "crn:contentful:::experience:spaces/{spaceId}/environments/{envId}/componentTypes/{id}",
5667
5776
  "Contentful:Fragment": "crn:contentful:::experience:spaces/{spaceId}/environments/{envId}/fragments/{id}",
@@ -5671,88 +5780,88 @@ var URN_EXAMPLES = {
5671
5780
  var resourceLinkSchema2 = (linkType) => {
5672
5781
  const example = URN_EXAMPLES[linkType];
5673
5782
  const urnDesc = example ? `URN of the linked resource (e.g. "${example}")` : "URN of the linked resource";
5674
- return z84.object({
5675
- sys: z84.object({
5676
- type: z84.literal("ResourceLink"),
5677
- linkType: z84.literal(linkType),
5678
- urn: z84.string().describe(urnDesc)
5783
+ return z85.object({
5784
+ sys: z85.object({
5785
+ type: z85.literal("ResourceLink"),
5786
+ linkType: z85.literal(linkType),
5787
+ urn: z85.string().describe(urnDesc)
5679
5788
  })
5680
5789
  });
5681
5790
  };
5682
- var linkSchema2 = (linkType) => z84.object({
5683
- sys: z84.object({
5684
- type: z84.literal("Link"),
5685
- linkType: z84.literal(linkType),
5686
- id: z84.string()
5791
+ var linkSchema2 = (linkType) => z85.object({
5792
+ sys: z85.object({
5793
+ type: z85.literal("Link"),
5794
+ linkType: z85.literal(linkType),
5795
+ id: z85.string()
5687
5796
  })
5688
5797
  });
5689
5798
  var ComponentTypeResourceLinkSchema = resourceLinkSchema2("Contentful:ComponentType");
5690
5799
  var FragmentResourceLinkSchema = resourceLinkSchema2("Contentful:Fragment");
5691
- var ViewportSchema = z84.object({
5692
- id: z84.string().describe("Viewport identifier"),
5693
- query: z84.string().describe("CSS media query string"),
5694
- displayName: z84.string().describe("Human-readable viewport name"),
5695
- previewSize: z84.string().describe('Preview size (e.g. "1024px")')
5696
- });
5697
- var DataTypeDefinitionSchema = z84.lazy(
5698
- () => z84.discriminatedUnion("type", [
5699
- z84.object({
5700
- type: z84.enum(["String", "Number", "Integer", "Boolean"]),
5701
- name: z84.string().optional(),
5702
- required: z84.boolean().optional()
5800
+ var ViewportSchema = z85.object({
5801
+ id: z85.string().describe("Viewport identifier"),
5802
+ query: z85.string().describe("CSS media query string"),
5803
+ displayName: z85.string().describe("Human-readable viewport name"),
5804
+ previewSize: z85.string().describe('Preview size (e.g. "1024px")')
5805
+ });
5806
+ var DataTypeDefinitionSchema = z85.lazy(
5807
+ () => z85.discriminatedUnion("type", [
5808
+ z85.object({
5809
+ type: z85.enum(["String", "Number", "Integer", "Boolean"]),
5810
+ name: z85.string().optional(),
5811
+ required: z85.boolean().optional()
5703
5812
  }),
5704
- z84.object({
5705
- type: z84.literal("RichText"),
5706
- name: z84.string().optional(),
5707
- required: z84.boolean().optional()
5813
+ z85.object({
5814
+ type: z85.literal("RichText"),
5815
+ name: z85.string().optional(),
5816
+ required: z85.boolean().optional()
5708
5817
  }),
5709
- z84.object({
5710
- type: z84.literal("Array"),
5711
- name: z84.string().optional(),
5712
- required: z84.boolean().optional(),
5818
+ z85.object({
5819
+ type: z85.literal("Array"),
5820
+ name: z85.string().optional(),
5821
+ required: z85.boolean().optional(),
5713
5822
  items: DataTypeDefinitionSchema
5714
5823
  }),
5715
- z84.object({
5716
- type: z84.literal("Record"),
5717
- name: z84.string().optional(),
5718
- required: z84.boolean().optional(),
5719
- fields: z84.record(z84.string(), DataTypeDefinitionSchema)
5824
+ z85.object({
5825
+ type: z85.literal("Record"),
5826
+ name: z85.string().optional(),
5827
+ required: z85.boolean().optional(),
5828
+ fields: z85.record(z85.string(), DataTypeDefinitionSchema)
5720
5829
  }),
5721
- z84.object({
5722
- type: z84.literal("TypeRef"),
5723
- name: z84.string().optional(),
5724
- required: z84.boolean().optional(),
5725
- ref: z84.object({
5726
- sys: z84.object({
5727
- type: z84.literal("ResourceLink"),
5728
- linkType: z84.string(),
5729
- urn: z84.string()
5830
+ z85.object({
5831
+ type: z85.literal("TypeRef"),
5832
+ name: z85.string().optional(),
5833
+ required: z85.boolean().optional(),
5834
+ ref: z85.object({
5835
+ sys: z85.object({
5836
+ type: z85.literal("ResourceLink"),
5837
+ linkType: z85.string(),
5838
+ urn: z85.string()
5730
5839
  })
5731
5840
  })
5732
5841
  }),
5733
- z84.object({
5734
- type: z84.literal("Literal"),
5735
- name: z84.string().optional(),
5736
- required: z84.boolean().optional(),
5737
- value: z84.custom().describe("JSON literal value"),
5842
+ z85.object({
5843
+ type: z85.literal("Literal"),
5844
+ name: z85.string().optional(),
5845
+ required: z85.boolean().optional(),
5846
+ value: z85.custom().describe("JSON literal value"),
5738
5847
  valueType: DataTypeDefinitionSchema
5739
5848
  }),
5740
- z84.object({
5741
- type: z84.literal("DiscriminatedUnion"),
5742
- name: z84.string().optional(),
5743
- required: z84.boolean().optional(),
5744
- discriminator: z84.string(),
5745
- members: z84.array(DataTypeDefinitionSchema)
5849
+ z85.object({
5850
+ type: z85.literal("DiscriminatedUnion"),
5851
+ name: z85.string().optional(),
5852
+ required: z85.boolean().optional(),
5853
+ discriminator: z85.string(),
5854
+ members: z85.array(DataTypeDefinitionSchema)
5746
5855
  })
5747
5856
  ])
5748
5857
  );
5749
- var ContentPropertySchema = z84.intersection(
5858
+ var ContentPropertySchema = z85.intersection(
5750
5859
  DataTypeDefinitionSchema,
5751
- z84.object({
5752
- id: z84.string().describe("Content property identifier"),
5753
- name: z84.string().describe("Human-readable name"),
5754
- required: z84.boolean().describe("Whether the property is required"),
5755
- defaultValue: z84.unknown().optional().describe("Default value")
5860
+ z85.object({
5861
+ id: z85.string().describe("Content property identifier"),
5862
+ name: z85.string().describe("Human-readable name"),
5863
+ required: z85.boolean().describe("Whether the property is required"),
5864
+ defaultValue: z85.unknown().optional().describe("Default value")
5756
5865
  })
5757
5866
  );
5758
5867
  var DTCG_DESIGN_PROPERTY_TYPES = [
@@ -5770,180 +5879,180 @@ var DTCG_DESIGN_PROPERTY_TYPES = [
5770
5879
  "DTCG.Gradient",
5771
5880
  "DTCG.Typography"
5772
5881
  ];
5773
- var DesignPropertyCommonFieldsSchema = z84.object({
5774
- id: z84.string().describe("Design property identifier"),
5775
- name: z84.string().describe("Human-readable name"),
5776
- description: z84.string().optional().describe("Optional description")
5882
+ var DesignPropertyCommonFieldsSchema = z85.object({
5883
+ id: z85.string().describe("Design property identifier"),
5884
+ name: z85.string().describe("Human-readable name"),
5885
+ description: z85.string().optional().describe("Optional description")
5777
5886
  });
5778
5887
  var StringDesignPropertySchema = DesignPropertyCommonFieldsSchema.extend({
5779
- type: z84.literal("String"),
5780
- fallbackValue: z84.object({
5781
- type: z84.literal("ManualDesignValue"),
5782
- value: z84.string()
5888
+ type: z85.literal("String"),
5889
+ fallbackValue: z85.object({
5890
+ type: z85.literal("ManualDesignValue"),
5891
+ value: z85.string()
5783
5892
  }).optional().describe("Manual fallback value for this design property"),
5784
- validations: z84.array(
5785
- z84.object({
5786
- regexp: z84.object({
5787
- pattern: z84.string().describe("Regular expression pattern")
5893
+ validations: z85.array(
5894
+ z85.object({
5895
+ regexp: z85.object({
5896
+ pattern: z85.string().describe("Regular expression pattern")
5788
5897
  })
5789
5898
  })
5790
5899
  ).optional().describe("Regexp validations constraining allowed string values")
5791
5900
  });
5792
5901
  var BooleanDesignPropertySchema = DesignPropertyCommonFieldsSchema.extend({
5793
- type: z84.literal("Boolean"),
5794
- fallbackValue: z84.object({
5795
- type: z84.literal("ManualDesignValue"),
5796
- value: z84.boolean()
5902
+ type: z85.literal("Boolean"),
5903
+ fallbackValue: z85.object({
5904
+ type: z85.literal("ManualDesignValue"),
5905
+ value: z85.boolean()
5797
5906
  }).optional().describe("Manual fallback value for this design property")
5798
5907
  });
5799
- var DesignTokenValueSchema = z84.object({
5800
- type: z84.literal("DesignToken"),
5801
- value: z84.string().min(1).describe("Design token reference (non-empty)")
5908
+ var DesignTokenValueSchema = z85.object({
5909
+ type: z85.literal("DesignToken"),
5910
+ value: z85.string().min(1).describe("Design token reference (non-empty)")
5802
5911
  });
5803
5912
  var TokenBackedDesignPropertySchema = DesignPropertyCommonFieldsSchema.extend({
5804
- type: z84.enum(DTCG_DESIGN_PROPERTY_TYPES),
5913
+ type: z85.enum(DTCG_DESIGN_PROPERTY_TYPES),
5805
5914
  fallbackValue: DesignTokenValueSchema.optional().describe(
5806
5915
  "Design-token-backed fallback value for this design property"
5807
5916
  ),
5808
- allowedResources: z84.array(
5809
- z84.object({
5810
- type: z84.literal("DesignToken"),
5811
- value: z84.string(),
5812
- name: z84.string().optional()
5917
+ allowedResources: z85.array(
5918
+ z85.object({
5919
+ type: z85.literal("DesignToken"),
5920
+ value: z85.string(),
5921
+ name: z85.string().optional()
5813
5922
  })
5814
5923
  ).optional().describe("Allowed design token resources")
5815
5924
  });
5816
- var DesignPropertySchema = z84.union([
5925
+ var DesignPropertySchema = z85.union([
5817
5926
  StringDesignPropertySchema,
5818
5927
  BooleanDesignPropertySchema,
5819
5928
  TokenBackedDesignPropertySchema
5820
5929
  ]);
5821
- var ManualDesignValueSchema = z84.object({
5822
- type: z84.literal("ManualDesignValue"),
5823
- value: z84.union([z84.string(), z84.number(), z84.boolean()])
5930
+ var ManualDesignValueSchema = z85.object({
5931
+ type: z85.literal("ManualDesignValue"),
5932
+ value: z85.union([z85.string(), z85.number(), z85.boolean()])
5824
5933
  });
5825
- var DesignPropertyValueSchema = z84.union([
5934
+ var DesignPropertyValueSchema = z85.union([
5826
5935
  ManualDesignValueSchema,
5827
5936
  DesignTokenValueSchema
5828
5937
  ]);
5829
- var DesignPropertyPointerValueSchema = z84.custom(
5938
+ var DesignPropertyPointerValueSchema = z85.custom(
5830
5939
  (val) => typeof val === "string" && /^\$designProperties\//.test(val),
5831
5940
  { message: 'Must be a "$designProperties/..." pointer' }
5832
5941
  );
5833
- var DimensionedDesignPropertyValueSchema = z84.record(
5834
- z84.string(),
5942
+ var DimensionedDesignPropertyValueSchema = z85.record(
5943
+ z85.string(),
5835
5944
  DesignPropertyValueSchema
5836
5945
  );
5837
- var ComponentTreeDesignPropertyValueSchema = z84.union([
5946
+ var ComponentTreeDesignPropertyValueSchema = z85.union([
5838
5947
  DesignPropertyValueSchema,
5839
5948
  DesignPropertyPointerValueSchema,
5840
5949
  DimensionedDesignPropertyValueSchema
5841
5950
  ]);
5842
5951
  var COMPONENT_TYPE_ALLOWED_RESOURCE_SOURCE = "crn:contentful:::experience:spaces/$self/environments/$self";
5843
- var SlotDefinitionSchema = z84.object({
5844
- id: z84.string().describe("Slot identifier"),
5845
- name: z84.string().describe("Human-readable name"),
5846
- required: z84.boolean().describe("Whether the slot must be filled"),
5847
- validations: z84.array(
5848
- z84.object({
5849
- size: z84.object({
5850
- min: z84.number().optional(),
5851
- max: z84.number().optional()
5952
+ var SlotDefinitionSchema = z85.object({
5953
+ id: z85.string().describe("Slot identifier"),
5954
+ name: z85.string().describe("Human-readable name"),
5955
+ required: z85.boolean().describe("Whether the slot must be filled"),
5956
+ validations: z85.array(
5957
+ z85.object({
5958
+ size: z85.object({
5959
+ min: z85.number().optional(),
5960
+ max: z85.number().optional()
5852
5961
  }).optional()
5853
5962
  })
5854
5963
  ).describe("Slot cardinality validations"),
5855
- allowedResources: z84.array(
5856
- z84.object({
5857
- type: z84.literal("Contentful:ComponentType"),
5858
- source: z84.literal(COMPONENT_TYPE_ALLOWED_RESOURCE_SOURCE),
5859
- allowedTypes: z84.array(z84.string()).describe("IDs of component types allowed in this slot")
5964
+ allowedResources: z85.array(
5965
+ z85.object({
5966
+ type: z85.literal("Contentful:ComponentType"),
5967
+ source: z85.literal(COMPONENT_TYPE_ALLOWED_RESOURCE_SOURCE),
5968
+ allowedTypes: z85.array(z85.string()).describe("IDs of component types allowed in this slot")
5860
5969
  })
5861
5970
  ).optional().describe("Constrains which component types may be placed in this slot")
5862
5971
  });
5863
- var FragmentNodeSchema = z84.object({
5864
- id: z84.string().describe("Node identifier"),
5865
- name: z84.string().optional().describe("Optional display name"),
5866
- nodeType: z84.literal("Fragment").describe('Must be "Fragment"'),
5972
+ var FragmentNodeSchema = z85.object({
5973
+ id: z85.string().describe("Node identifier"),
5974
+ name: z85.string().optional().describe("Optional display name"),
5975
+ nodeType: z85.literal("Fragment").describe('Must be "Fragment"'),
5867
5976
  fragment: FragmentResourceLinkSchema.describe("Resource link to the referenced fragment")
5868
5977
  });
5869
- var SlotNodeSchema = z84.object({
5870
- id: z84.string().describe("Node identifier"),
5871
- nodeType: z84.literal("Slot").describe('Must be "Slot"'),
5872
- slotId: z84.string().describe("ID of the slot definition to render")
5978
+ var SlotNodeSchema = z85.object({
5979
+ id: z85.string().describe("Node identifier"),
5980
+ nodeType: z85.literal("Slot").describe('Must be "Slot"'),
5981
+ slotId: z85.string().describe("ID of the slot definition to render")
5873
5982
  });
5874
- var TreeNodeSchema = z84.lazy(
5875
- () => z84.union([ComponentNodeSchema, FragmentNodeSchema, SlotNodeSchema])
5983
+ var TreeNodeSchema = z85.lazy(
5984
+ () => z85.union([ComponentNodeSchema, FragmentNodeSchema, SlotNodeSchema])
5876
5985
  );
5877
- var ComponentNodeSchema = z84.lazy(
5878
- () => z84.object({
5879
- id: z84.string().describe("Node identifier"),
5880
- name: z84.string().optional().describe("Optional display name"),
5881
- nodeType: z84.literal("Component").describe('Must be "Component"'),
5986
+ var ComponentNodeSchema = z85.lazy(
5987
+ () => z85.object({
5988
+ id: z85.string().describe("Node identifier"),
5989
+ name: z85.string().optional().describe("Optional display name"),
5990
+ nodeType: z85.literal("Component").describe('Must be "Component"'),
5882
5991
  componentType: ComponentTypeResourceLinkSchema.describe(
5883
5992
  "Resource link to the component type to render"
5884
5993
  ),
5885
- contentProperties: z84.union([
5886
- z84.record(z84.string(), z84.unknown()),
5887
- z84.string().describe('"$contentProperties/..." pointer')
5994
+ contentProperties: z85.union([
5995
+ z85.record(z85.string(), z85.unknown()),
5996
+ z85.string().describe('"$contentProperties/..." pointer')
5888
5997
  ]).describe(
5889
5998
  'Content property bindings \u2014 values or "$contentProperties/..." pointers'
5890
5999
  ),
5891
- designProperties: z84.record(z84.string(), ComponentTreeDesignPropertyValueSchema).describe(
6000
+ designProperties: z85.record(z85.string(), ComponentTreeDesignPropertyValueSchema).describe(
5892
6001
  'Design property values \u2014 ManualDesignValue, DesignTokenValue, or "$designProperties/..." pointers'
5893
6002
  ),
5894
- slots: z84.record(z84.string(), z84.array(TreeNodeSchema)).describe("Child tree nodes keyed by slot ID")
6003
+ slots: z85.record(z85.string(), z85.array(TreeNodeSchema)).describe("Child tree nodes keyed by slot ID")
5895
6004
  })
5896
6005
  );
5897
6006
  var TagLinkSchema = linkSchema2("Tag");
5898
6007
  var ConceptLinkSchema = linkSchema2("TaxonomyConcept");
5899
- var ExoMetadataSchema = z84.object({
5900
- tags: z84.array(TagLinkSchema).optional().describe("Tags attached to this entity"),
5901
- concepts: z84.array(ConceptLinkSchema).optional().describe("Taxonomy concepts attached to this entity")
6008
+ var ExoMetadataSchema = z85.object({
6009
+ tags: z85.array(TagLinkSchema).optional().describe("Tags attached to this entity"),
6010
+ concepts: z85.array(ConceptLinkSchema).optional().describe("Taxonomy concepts attached to this entity")
5902
6011
  });
5903
6012
  var ExperienceMetadataSchema = ExoMetadataSchema.extend({
5904
- name: z84.string().optional().describe("Variant label for this metadata entry")
6013
+ name: z85.string().optional().describe("Variant label for this metadata entry")
5905
6014
  });
5906
6015
  var DataAssemblyResourceLinkSchema = resourceLinkSchema2("Contentful:DataAssembly");
5907
- var ExperienceContentBindingsSchema = z84.object({
6016
+ var ExperienceContentBindingsSchema = z85.object({
5908
6017
  sys: DataAssemblyResourceLinkSchema.shape.sys,
5909
- parameters: z84.record(
5910
- z84.string(),
5911
- z84.object({
5912
- sys: z84.object({
5913
- type: z84.literal("ResourceLink"),
5914
- linkType: z84.string(),
5915
- urn: z84.string()
6018
+ parameters: z85.record(
6019
+ z85.string(),
6020
+ z85.object({
6021
+ sys: z85.object({
6022
+ type: z85.literal("ResourceLink"),
6023
+ linkType: z85.string(),
6024
+ urn: z85.string()
5916
6025
  })
5917
6026
  })
5918
6027
  ).describe("Parameter bindings keyed by parameter ID")
5919
6028
  });
5920
- var InlineFragmentNodeSchema = z84.lazy(
5921
- () => z84.object({
5922
- id: z84.string().describe("Node identifier"),
5923
- nodeType: z84.literal("InlineFragment").describe('Must be "InlineFragment"'),
6029
+ var InlineFragmentNodeSchema = z85.lazy(
6030
+ () => z85.object({
6031
+ id: z85.string().describe("Node identifier"),
6032
+ nodeType: z85.literal("InlineFragment").describe('Must be "InlineFragment"'),
5924
6033
  componentType: ComponentTypeResourceLinkSchema.describe(
5925
6034
  "Resource link to the component type this inline fragment renders"
5926
6035
  ),
5927
- designProperties: z84.record(z84.string(), DimensionedDesignPropertyValueSchema).describe("Design property values for this inline fragment"),
6036
+ designProperties: z85.record(z85.string(), DimensionedDesignPropertyValueSchema).describe("Design property values for this inline fragment"),
5928
6037
  contentBindings: ExperienceContentBindingsSchema.optional().describe(
5929
6038
  "Optional content bindings linking this inline fragment to a data assembly"
5930
6039
  ),
5931
- slots: z84.record(z84.string(), z84.array(ExperienceSlotNodeSchema)).optional().describe("Child slot contents keyed by slot ID")
6040
+ slots: z85.record(z85.string(), z85.array(ExperienceSlotNodeSchema)).optional().describe("Child slot contents keyed by slot ID")
5932
6041
  })
5933
6042
  );
5934
- var ExperienceSlotNodeSchema = z84.lazy(
5935
- () => z84.union([FragmentNodeSchema, InlineFragmentNodeSchema])
6043
+ var ExperienceSlotNodeSchema = z85.lazy(
6044
+ () => z85.union([FragmentNodeSchema, InlineFragmentNodeSchema])
5936
6045
  );
5937
6046
 
5938
6047
  // src/tools/exo/component-types/createComponentType.ts
5939
6048
  var CreateComponentTypeToolParams = BaseToolSchema.extend({
5940
- name: z85.string().describe("The name of the component type"),
5941
- description: z85.string().describe("Description of the component type"),
5942
- viewports: z85.array(ViewportSchema).describe("Viewport definitions for the component type (may be empty)"),
5943
- contentProperties: z85.array(ContentPropertySchema).describe("Content property definitions (may be empty)"),
5944
- designProperties: z85.array(DesignPropertySchema).describe("Design property definitions (may be empty)"),
5945
- componentTree: z85.array(TreeNodeSchema).optional().describe("Optional component tree node definitions"),
5946
- slots: z85.array(SlotDefinitionSchema).optional().describe("Optional slot definitions"),
6049
+ name: z86.string().describe("The name of the component type"),
6050
+ description: z86.string().describe("Description of the component type"),
6051
+ viewports: z86.array(ViewportSchema).describe("Viewport definitions for the component type (may be empty)"),
6052
+ contentProperties: z86.array(ContentPropertySchema).describe("Content property definitions (may be empty)"),
6053
+ designProperties: z86.array(DesignPropertySchema).describe("Design property definitions (may be empty)"),
6054
+ componentTree: z86.array(TreeNodeSchema).optional().describe("Optional component tree node definitions"),
6055
+ slots: z86.array(SlotDefinitionSchema).optional().describe("Optional slot definitions"),
5947
6056
  metadata: ExoMetadataSchema.optional().describe(
5948
6057
  "Optional ExO metadata (tags, concepts)"
5949
6058
  )
@@ -5976,19 +6085,19 @@ function createComponentTypeTool(config) {
5976
6085
  }
5977
6086
 
5978
6087
  // src/tools/exo/component-types/upsertComponentType.ts
5979
- import { z as z86 } from "zod";
6088
+ import { z as z87 } from "zod";
5980
6089
  var UpsertComponentTypeToolParams = BaseToolSchema.extend({
5981
- componentTypeId: z86.string().describe("The ID of the component type to update"),
5982
- version: z86.number().describe(
6090
+ componentTypeId: z87.string().describe("The ID of the component type to update"),
6091
+ version: z87.number().describe(
5983
6092
  "REQUIRED. The component type's sys.version as returned by get_component_type. You must call get_component_type first to read the current state and version. The update is rejected if this does not match the current version, which means the component type changed since you read it."
5984
6093
  ),
5985
- name: z86.string().optional().describe("The name of the component type"),
5986
- description: z86.string().optional().describe("Description of the component type"),
5987
- viewports: z86.array(ViewportSchema).optional().describe("Viewport definitions; replaces existing viewports if provided"),
5988
- contentProperties: z86.array(ContentPropertySchema).optional().describe("Content property definitions; replaces existing if provided"),
5989
- designProperties: z86.array(DesignPropertySchema).optional().describe("Design property definitions; replaces existing if provided"),
5990
- componentTree: z86.array(TreeNodeSchema).optional().describe("Component tree node definitions; replaces existing if provided"),
5991
- slots: z86.array(SlotDefinitionSchema).optional().describe("Slot definitions; replaces existing if provided"),
6094
+ name: z87.string().optional().describe("The name of the component type"),
6095
+ description: z87.string().optional().describe("Description of the component type"),
6096
+ viewports: z87.array(ViewportSchema).optional().describe("Viewport definitions; replaces existing viewports if provided"),
6097
+ contentProperties: z87.array(ContentPropertySchema).optional().describe("Content property definitions; replaces existing if provided"),
6098
+ designProperties: z87.array(DesignPropertySchema).optional().describe("Design property definitions; replaces existing if provided"),
6099
+ componentTree: z87.array(TreeNodeSchema).optional().describe("Component tree node definitions; replaces existing if provided"),
6100
+ slots: z87.array(SlotDefinitionSchema).optional().describe("Slot definitions; replaces existing if provided"),
5992
6101
  metadata: ExoMetadataSchema.optional().describe(
5993
6102
  "ExO metadata (tags, concepts); replaces existing if provided"
5994
6103
  )
@@ -6035,13 +6144,13 @@ function upsertComponentTypeTool(config) {
6035
6144
  }
6036
6145
 
6037
6146
  // src/tools/exo/component-types/deleteComponentType.ts
6038
- import { z as z87 } from "zod";
6147
+ import { z as z88 } from "zod";
6039
6148
  var DeleteComponentTypeToolParams = BaseToolSchema.extend({
6040
- componentTypeId: z87.string().describe("The ID of the component type to delete"),
6041
- confirm: z87.boolean().optional().describe(
6149
+ componentTypeId: z88.string().describe("The ID of the component type to delete"),
6150
+ confirm: z88.boolean().optional().describe(
6042
6151
  "Set to true on the second call to actually perform the deletion. Required together with confirmToken."
6043
6152
  ),
6044
- confirmToken: z87.string().optional().describe(
6153
+ confirmToken: z88.string().optional().describe(
6045
6154
  "Token returned by the preview call; must be supplied with confirm: true."
6046
6155
  )
6047
6156
  });
@@ -6083,10 +6192,10 @@ function deleteComponentTypeTool(config) {
6083
6192
  }
6084
6193
 
6085
6194
  // src/tools/exo/component-types/publishComponentType.ts
6086
- import { z as z88 } from "zod";
6195
+ import { z as z89 } from "zod";
6087
6196
  var PublishComponentTypeToolParams = BaseToolSchema.extend({
6088
- componentTypeId: z88.string().describe("The ID of the component type to publish"),
6089
- version: z88.number().describe(
6197
+ componentTypeId: z89.string().describe("The ID of the component type to publish"),
6198
+ version: z89.number().describe(
6090
6199
  "REQUIRED. The component type's sys.version as returned by get_component_type. You must call get_component_type first to read the current state and version. The publish is rejected if this does not match the current version, which means the component type changed since you read it."
6091
6200
  )
6092
6201
  });
@@ -6120,10 +6229,10 @@ function publishComponentTypeTool(config) {
6120
6229
  }
6121
6230
 
6122
6231
  // src/tools/exo/component-types/unpublishComponentType.ts
6123
- import { z as z89 } from "zod";
6232
+ import { z as z90 } from "zod";
6124
6233
  var UnpublishComponentTypeToolParams = BaseToolSchema.extend({
6125
- componentTypeId: z89.string().describe("The ID of the component type to unpublish"),
6126
- version: z89.number().describe(
6234
+ componentTypeId: z90.string().describe("The ID of the component type to unpublish"),
6235
+ version: z90.number().describe(
6127
6236
  "REQUIRED. The component type's sys.version as returned by get_component_type. You must call get_component_type first to read the current state and version. The unpublish is rejected if this does not match the current version, which means the component type changed since you read it."
6128
6237
  )
6129
6238
  });
@@ -6252,9 +6361,9 @@ function createComponentTypeTools(config) {
6252
6361
  }
6253
6362
 
6254
6363
  // src/tools/exo/fragments/getFragment.ts
6255
- import { z as z90 } from "zod";
6364
+ import { z as z91 } from "zod";
6256
6365
  var GetFragmentToolParams = BaseToolSchema.extend({
6257
- fragmentId: z90.string().describe("The ID of the fragment to retrieve details for")
6366
+ fragmentId: z91.string().describe("The ID of the fragment to retrieve details for")
6258
6367
  });
6259
6368
  function getFragmentTool(config) {
6260
6369
  async function tool2(args) {
@@ -6272,12 +6381,12 @@ function getFragmentTool(config) {
6272
6381
  }
6273
6382
 
6274
6383
  // src/tools/exo/fragments/listFragments.ts
6275
- import { z as z91 } from "zod";
6384
+ import { z as z92 } from "zod";
6276
6385
  var ListFragmentsToolParams = BaseToolSchema.extend({
6277
- limit: z91.number().optional().describe("Maximum number of fragments to return (max 10)"),
6278
- pageNext: z91.string().optional().describe("Cursor token to fetch the next page of results"),
6279
- pagePrev: z91.string().optional().describe("Cursor token to fetch the previous page of results"),
6280
- order: z91.string().optional().describe("Order fragments by this field (e.g. sys.createdAt)")
6386
+ limit: z92.number().optional().describe("Maximum number of fragments to return (max 10)"),
6387
+ pageNext: z92.string().optional().describe("Cursor token to fetch the next page of results"),
6388
+ pagePrev: z92.string().optional().describe("Cursor token to fetch the previous page of results"),
6389
+ order: z92.string().optional().describe("Order fragments by this field (e.g. sys.createdAt)")
6281
6390
  });
6282
6391
  function listFragmentsTool(config) {
6283
6392
  async function tool2(args) {
@@ -6307,19 +6416,19 @@ function listFragmentsTool(config) {
6307
6416
  }
6308
6417
 
6309
6418
  // src/tools/exo/fragments/createFragment.ts
6310
- import { z as z92 } from "zod";
6419
+ import { z as z93 } from "zod";
6311
6420
  var CreateFragmentToolParams = BaseToolSchema.extend({
6312
- name: z92.string().describe("The name of the fragment"),
6313
- description: z92.string().describe("Description of the fragment"),
6421
+ name: z93.string().describe("The name of the fragment"),
6422
+ description: z93.string().describe("Description of the fragment"),
6314
6423
  componentType: ComponentTypeResourceLinkSchema.describe(
6315
6424
  "Resource link to the component type this fragment is based on"
6316
6425
  ),
6317
- viewports: z92.array(ViewportSchema).describe("Viewport definitions (may be empty)"),
6318
- designProperties: z92.record(z92.string(), DimensionedDesignPropertyValueSchema).describe("Design property values keyed by property ID (may be empty object)"),
6426
+ viewports: z93.array(ViewportSchema).describe("Viewport definitions (may be empty)"),
6427
+ designProperties: z93.record(z93.string(), DimensionedDesignPropertyValueSchema).describe("Design property values keyed by property ID (may be empty object)"),
6319
6428
  contentBindings: ExperienceContentBindingsSchema.optional().describe(
6320
6429
  "Optional content bindings for the fragment"
6321
6430
  ),
6322
- slots: z92.record(z92.string(), z92.array(ExperienceSlotNodeSchema)).optional().describe("Optional slot node definitions keyed by slot ID"),
6431
+ slots: z93.record(z93.string(), z93.array(ExperienceSlotNodeSchema)).optional().describe("Optional slot node definitions keyed by slot ID"),
6323
6432
  metadata: ExperienceMetadataSchema.optional().describe(
6324
6433
  "Optional ExO metadata (tags, concepts)"
6325
6434
  )
@@ -6352,20 +6461,20 @@ function createFragmentTool(config) {
6352
6461
  }
6353
6462
 
6354
6463
  // src/tools/exo/fragments/updateFragment.ts
6355
- import { z as z93 } from "zod";
6464
+ import { z as z94 } from "zod";
6356
6465
  var UpdateFragmentToolParams = BaseToolSchema.extend({
6357
- fragmentId: z93.string().describe("The ID of the fragment to update"),
6358
- version: z93.number().describe(
6466
+ fragmentId: z94.string().describe("The ID of the fragment to update"),
6467
+ version: z94.number().describe(
6359
6468
  "REQUIRED. The fragment's sys.version as returned by get_fragment. You must call get_fragment first to read the current state and version. The update is rejected if this does not match the current version, which means the fragment changed since you read it."
6360
6469
  ),
6361
- name: z93.string().optional().describe("The name of the fragment"),
6362
- description: z93.string().optional().describe("Description of the fragment"),
6363
- viewports: z93.array(ViewportSchema).optional().describe("Viewport definitions; replaces existing viewports if provided"),
6364
- designProperties: z93.record(z93.string(), DimensionedDesignPropertyValueSchema).optional().describe("Design property values; replaces existing if provided"),
6470
+ name: z94.string().optional().describe("The name of the fragment"),
6471
+ description: z94.string().optional().describe("Description of the fragment"),
6472
+ viewports: z94.array(ViewportSchema).optional().describe("Viewport definitions; replaces existing viewports if provided"),
6473
+ designProperties: z94.record(z94.string(), DimensionedDesignPropertyValueSchema).optional().describe("Design property values; replaces existing if provided"),
6365
6474
  contentBindings: ExperienceContentBindingsSchema.optional().describe(
6366
6475
  "Content bindings; replaces existing if provided"
6367
6476
  ),
6368
- slots: z93.record(z93.string(), z93.array(ExperienceSlotNodeSchema)).optional().describe("Slot node definitions; replaces existing if provided"),
6477
+ slots: z94.record(z94.string(), z94.array(ExperienceSlotNodeSchema)).optional().describe("Slot node definitions; replaces existing if provided"),
6369
6478
  metadata: ExperienceMetadataSchema.optional().describe(
6370
6479
  "ExO metadata (tags, concepts); replaces existing if provided"
6371
6480
  )
@@ -6410,13 +6519,13 @@ function updateFragmentTool(config) {
6410
6519
  }
6411
6520
 
6412
6521
  // src/tools/exo/fragments/deleteFragment.ts
6413
- import { z as z94 } from "zod";
6522
+ import { z as z95 } from "zod";
6414
6523
  var DeleteFragmentToolParams = BaseToolSchema.extend({
6415
- fragmentId: z94.string().describe("The ID of the fragment to delete"),
6416
- confirm: z94.boolean().optional().describe(
6524
+ fragmentId: z95.string().describe("The ID of the fragment to delete"),
6525
+ confirm: z95.boolean().optional().describe(
6417
6526
  "Set to true on the second call to actually perform the deletion. Required together with confirmToken."
6418
6527
  ),
6419
- confirmToken: z94.string().optional().describe(
6528
+ confirmToken: z95.string().optional().describe(
6420
6529
  "Token returned by the preview call; must be supplied with confirm: true."
6421
6530
  )
6422
6531
  });
@@ -6458,10 +6567,10 @@ function deleteFragmentTool(config) {
6458
6567
  }
6459
6568
 
6460
6569
  // src/tools/exo/fragments/publishFragment.ts
6461
- import { z as z95 } from "zod";
6570
+ import { z as z96 } from "zod";
6462
6571
  var PublishFragmentToolParams = BaseToolSchema.extend({
6463
- fragmentId: z95.string().describe("The ID of the fragment to publish"),
6464
- version: z95.number().describe(
6572
+ fragmentId: z96.string().describe("The ID of the fragment to publish"),
6573
+ version: z96.number().describe(
6465
6574
  "REQUIRED. The fragment's sys.version as returned by get_fragment. You must call get_fragment first to read the current state and version. The publish is rejected if this does not match the current version, which means the fragment changed since you read it."
6466
6575
  )
6467
6576
  });
@@ -6495,10 +6604,10 @@ function publishFragmentTool(config) {
6495
6604
  }
6496
6605
 
6497
6606
  // src/tools/exo/fragments/unpublishFragment.ts
6498
- import { z as z96 } from "zod";
6607
+ import { z as z97 } from "zod";
6499
6608
  var UnpublishFragmentToolParams = BaseToolSchema.extend({
6500
- fragmentId: z96.string().describe("The ID of the fragment to unpublish"),
6501
- version: z96.number().describe(
6609
+ fragmentId: z97.string().describe("The ID of the fragment to unpublish"),
6610
+ version: z97.number().describe(
6502
6611
  "REQUIRED. The fragment's sys.version as returned by get_fragment. You must call get_fragment first to read the current state and version. The unpublish is rejected if this does not match the current version, which means the fragment changed since you read it."
6503
6612
  )
6504
6613
  });
@@ -6627,9 +6736,9 @@ function createFragmentTools(config) {
6627
6736
  }
6628
6737
 
6629
6738
  // src/tools/exo/templates/getTemplate.ts
6630
- import { z as z97 } from "zod";
6739
+ import { z as z98 } from "zod";
6631
6740
  var GetTemplateToolParams = BaseToolSchema.extend({
6632
- templateId: z97.string().describe("The ID of the template to retrieve details for")
6741
+ templateId: z98.string().describe("The ID of the template to retrieve details for")
6633
6742
  });
6634
6743
  function getTemplateTool(config) {
6635
6744
  async function tool2(args) {
@@ -6647,12 +6756,12 @@ function getTemplateTool(config) {
6647
6756
  }
6648
6757
 
6649
6758
  // src/tools/exo/templates/listTemplates.ts
6650
- import { z as z98 } from "zod";
6759
+ import { z as z99 } from "zod";
6651
6760
  var ListTemplatesToolParams = BaseToolSchema.extend({
6652
- limit: z98.number().optional().describe("Maximum number of templates to return (max 10)"),
6653
- pageNext: z98.string().optional().describe("Cursor token to fetch the next page of results"),
6654
- pagePrev: z98.string().optional().describe("Cursor token to fetch the previous page of results"),
6655
- order: z98.string().optional().describe("Order templates by this field (e.g. sys.createdAt)")
6761
+ limit: z99.number().optional().describe("Maximum number of templates to return (max 10)"),
6762
+ pageNext: z99.string().optional().describe("Cursor token to fetch the next page of results"),
6763
+ pagePrev: z99.string().optional().describe("Cursor token to fetch the previous page of results"),
6764
+ order: z99.string().optional().describe("Order templates by this field (e.g. sys.createdAt)")
6656
6765
  });
6657
6766
  function listTemplatesTool(config) {
6658
6767
  async function tool2(args) {
@@ -6682,15 +6791,15 @@ function listTemplatesTool(config) {
6682
6791
  }
6683
6792
 
6684
6793
  // src/tools/exo/templates/createTemplate.ts
6685
- import { z as z99 } from "zod";
6794
+ import { z as z100 } from "zod";
6686
6795
  var CreateTemplateToolParams = BaseToolSchema.extend({
6687
- name: z99.string().describe("The name of the template"),
6688
- description: z99.string().describe("Description of the template"),
6689
- viewports: z99.array(ViewportSchema).describe("Viewport definitions for the template (may be empty)"),
6690
- contentProperties: z99.array(ContentPropertySchema).describe("Content property definitions (may be empty)"),
6691
- designProperties: z99.array(DesignPropertySchema).describe("Design property definitions (may be empty)"),
6692
- componentTree: z99.array(TreeNodeSchema).optional().describe("Optional component tree node definitions"),
6693
- slots: z99.array(SlotDefinitionSchema).optional().describe("Optional slot definitions"),
6796
+ name: z100.string().describe("The name of the template"),
6797
+ description: z100.string().describe("Description of the template"),
6798
+ viewports: z100.array(ViewportSchema).describe("Viewport definitions for the template (may be empty)"),
6799
+ contentProperties: z100.array(ContentPropertySchema).describe("Content property definitions (may be empty)"),
6800
+ designProperties: z100.array(DesignPropertySchema).describe("Design property definitions (may be empty)"),
6801
+ componentTree: z100.array(TreeNodeSchema).optional().describe("Optional component tree node definitions"),
6802
+ slots: z100.array(SlotDefinitionSchema).optional().describe("Optional slot definitions"),
6694
6803
  metadata: ExoMetadataSchema.optional().describe(
6695
6804
  "Optional ExO metadata (tags, concepts)"
6696
6805
  )
@@ -6723,19 +6832,19 @@ function createTemplateTool(config) {
6723
6832
  }
6724
6833
 
6725
6834
  // src/tools/exo/templates/upsertTemplate.ts
6726
- import { z as z100 } from "zod";
6835
+ import { z as z101 } from "zod";
6727
6836
  var UpsertTemplateToolParams = BaseToolSchema.extend({
6728
- templateId: z100.string().describe("The ID of the template to update"),
6729
- version: z100.number().describe(
6837
+ templateId: z101.string().describe("The ID of the template to update"),
6838
+ version: z101.number().describe(
6730
6839
  "REQUIRED. The template's sys.version as returned by get_template. You must call get_template first to read the current state and version. The update is rejected if this does not match the current version, which means the template changed since you read it."
6731
6840
  ),
6732
- name: z100.string().optional().describe("The name of the template"),
6733
- description: z100.string().optional().describe("Description of the template"),
6734
- viewports: z100.array(ViewportSchema).optional().describe("Viewport definitions; replaces existing viewports if provided"),
6735
- contentProperties: z100.array(ContentPropertySchema).optional().describe("Content property definitions; replaces existing if provided"),
6736
- designProperties: z100.array(DesignPropertySchema).optional().describe("Design property definitions; replaces existing if provided"),
6737
- componentTree: z100.array(TreeNodeSchema).optional().describe("Component tree node definitions; replaces existing if provided"),
6738
- slots: z100.array(SlotDefinitionSchema).optional().describe("Slot definitions; replaces existing if provided"),
6841
+ name: z101.string().optional().describe("The name of the template"),
6842
+ description: z101.string().optional().describe("Description of the template"),
6843
+ viewports: z101.array(ViewportSchema).optional().describe("Viewport definitions; replaces existing viewports if provided"),
6844
+ contentProperties: z101.array(ContentPropertySchema).optional().describe("Content property definitions; replaces existing if provided"),
6845
+ designProperties: z101.array(DesignPropertySchema).optional().describe("Design property definitions; replaces existing if provided"),
6846
+ componentTree: z101.array(TreeNodeSchema).optional().describe("Component tree node definitions; replaces existing if provided"),
6847
+ slots: z101.array(SlotDefinitionSchema).optional().describe("Slot definitions; replaces existing if provided"),
6739
6848
  metadata: ExoMetadataSchema.optional().describe(
6740
6849
  "ExO metadata (tags, concepts); replaces existing if provided"
6741
6850
  )
@@ -6782,13 +6891,13 @@ function upsertTemplateTool(config) {
6782
6891
  }
6783
6892
 
6784
6893
  // src/tools/exo/templates/deleteTemplate.ts
6785
- import { z as z101 } from "zod";
6894
+ import { z as z102 } from "zod";
6786
6895
  var DeleteTemplateToolParams = BaseToolSchema.extend({
6787
- templateId: z101.string().describe("The ID of the template to delete"),
6788
- confirm: z101.boolean().optional().describe(
6896
+ templateId: z102.string().describe("The ID of the template to delete"),
6897
+ confirm: z102.boolean().optional().describe(
6789
6898
  "Set to true on the second call to actually perform the deletion. Required together with confirmToken."
6790
6899
  ),
6791
- confirmToken: z101.string().optional().describe(
6900
+ confirmToken: z102.string().optional().describe(
6792
6901
  "Token returned by the preview call; must be supplied with confirm: true."
6793
6902
  )
6794
6903
  });
@@ -6830,10 +6939,10 @@ function deleteTemplateTool(config) {
6830
6939
  }
6831
6940
 
6832
6941
  // src/tools/exo/templates/publishTemplate.ts
6833
- import { z as z102 } from "zod";
6942
+ import { z as z103 } from "zod";
6834
6943
  var PublishTemplateToolParams = BaseToolSchema.extend({
6835
- templateId: z102.string().describe("The ID of the template to publish"),
6836
- version: z102.number().describe(
6944
+ templateId: z103.string().describe("The ID of the template to publish"),
6945
+ version: z103.number().describe(
6837
6946
  "REQUIRED. The template's sys.version as returned by get_template. You must call get_template first to read the current state and version. The publish is rejected if this does not match the current version, which means the template changed since you read it."
6838
6947
  )
6839
6948
  });
@@ -6867,10 +6976,10 @@ function publishTemplateTool(config) {
6867
6976
  }
6868
6977
 
6869
6978
  // src/tools/exo/templates/unpublishTemplate.ts
6870
- import { z as z103 } from "zod";
6979
+ import { z as z104 } from "zod";
6871
6980
  var UnpublishTemplateToolParams = BaseToolSchema.extend({
6872
- templateId: z103.string().describe("The ID of the template to unpublish"),
6873
- version: z103.number().describe(
6981
+ templateId: z104.string().describe("The ID of the template to unpublish"),
6982
+ version: z104.number().describe(
6874
6983
  "REQUIRED. The template's sys.version as returned by get_template. You must call get_template first to read the current state and version. The unpublish is rejected if this does not match the current version, which means the template changed since you read it."
6875
6984
  )
6876
6985
  });
@@ -6999,9 +7108,9 @@ function createTemplateTools(config) {
6999
7108
  }
7000
7109
 
7001
7110
  // src/tools/exo/experiences/getExperience.ts
7002
- import { z as z104 } from "zod";
7111
+ import { z as z105 } from "zod";
7003
7112
  var GetExperienceToolParams = BaseToolSchema.extend({
7004
- experienceId: z104.string().describe("The ID of the experience to retrieve")
7113
+ experienceId: z105.string().describe("The ID of the experience to retrieve")
7005
7114
  });
7006
7115
  function getExperienceTool(config) {
7007
7116
  async function tool2(args) {
@@ -7019,12 +7128,12 @@ function getExperienceTool(config) {
7019
7128
  }
7020
7129
 
7021
7130
  // src/tools/exo/experiences/listExperiences.ts
7022
- import { z as z105 } from "zod";
7131
+ import { z as z106 } from "zod";
7023
7132
  var ListExperiencesToolParams = BaseToolSchema.extend({
7024
- limit: z105.number().optional().describe("Maximum number of experiences to return (max 10)"),
7025
- pageNext: z105.string().optional().describe("Cursor token to fetch the next page of results"),
7026
- pagePrev: z105.string().optional().describe("Cursor token to fetch the previous page of results"),
7027
- order: z105.string().optional().describe("Order experiences by this field (e.g. sys.createdAt)")
7133
+ limit: z106.number().optional().describe("Maximum number of experiences to return (max 10)"),
7134
+ pageNext: z106.string().optional().describe("Cursor token to fetch the next page of results"),
7135
+ pagePrev: z106.string().optional().describe("Cursor token to fetch the previous page of results"),
7136
+ order: z106.string().optional().describe("Order experiences by this field (e.g. sys.createdAt)")
7028
7137
  });
7029
7138
  function listExperiencesTool(config) {
7030
7139
  async function tool2(args) {
@@ -7054,28 +7163,28 @@ function listExperiencesTool(config) {
7054
7163
  }
7055
7164
 
7056
7165
  // src/tools/exo/experiences/createExperience.ts
7057
- import { z as z106 } from "zod";
7058
- var TemplateResourceLinkSchema = z106.object({
7059
- sys: z106.object({
7060
- type: z106.literal("ResourceLink"),
7061
- linkType: z106.literal("Contentful:Template"),
7062
- urn: z106.string().describe("URN of the linked resource")
7166
+ import { z as z107 } from "zod";
7167
+ var TemplateResourceLinkSchema = z107.object({
7168
+ sys: z107.object({
7169
+ type: z107.literal("ResourceLink"),
7170
+ linkType: z107.literal("Contentful:Template"),
7171
+ urn: z107.string().describe("URN of the linked resource")
7063
7172
  })
7064
7173
  });
7065
7174
  var CreateExperienceToolParams = BaseToolSchema.extend({
7066
- name: z106.string().describe("The name of the experience"),
7067
- description: z106.string().describe("Description of the experience"),
7175
+ name: z107.string().describe("The name of the experience"),
7176
+ description: z107.string().describe("Description of the experience"),
7068
7177
  template: TemplateResourceLinkSchema.describe(
7069
7178
  "Resource link to the Template this experience is backed by"
7070
7179
  ),
7071
- viewports: z106.array(ViewportSchema).describe("Viewport definitions for the experience (may be empty)"),
7072
- designProperties: z106.record(z106.string(), DimensionedDesignPropertyValueSchema).describe(
7180
+ viewports: z107.array(ViewportSchema).describe("Viewport definitions for the experience (may be empty)"),
7181
+ designProperties: z107.record(z107.string(), DimensionedDesignPropertyValueSchema).describe(
7073
7182
  "Design property values keyed by property ID. Each value is a dimensioned map (viewport ID \u2192 design value). May be an empty object."
7074
7183
  ),
7075
7184
  contentBindings: ExperienceContentBindingsSchema.optional().describe(
7076
7185
  "Optional content bindings linking this experience to a data assembly"
7077
7186
  ),
7078
- slots: z106.record(z106.string(), z106.array(ExperienceSlotNodeSchema)).optional().describe(
7187
+ slots: z107.record(z107.string(), z107.array(ExperienceSlotNodeSchema)).optional().describe(
7079
7188
  "Optional slot contents keyed by slot ID. Each value is an array of FragmentNode or InlineFragmentNode."
7080
7189
  ),
7081
7190
  metadata: ExperienceMetadataSchema.optional().describe(
@@ -7110,22 +7219,22 @@ function createExperienceTool(config) {
7110
7219
  }
7111
7220
 
7112
7221
  // src/tools/exo/experiences/upsertExperience.ts
7113
- import { z as z107 } from "zod";
7222
+ import { z as z108 } from "zod";
7114
7223
  var UpsertExperienceToolParams = BaseToolSchema.extend({
7115
- experienceId: z107.string().describe("The ID of the experience to update"),
7116
- version: z107.number().describe(
7224
+ experienceId: z108.string().describe("The ID of the experience to update"),
7225
+ version: z108.number().describe(
7117
7226
  "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."
7118
7227
  ),
7119
- name: z107.string().optional().describe("The name of the experience"),
7120
- description: z107.string().optional().describe("Description of the experience"),
7121
- viewports: z107.array(ViewportSchema).optional().describe("Viewport definitions; replaces existing viewports if provided"),
7122
- designProperties: z107.record(z107.string(), DimensionedDesignPropertyValueSchema).optional().describe(
7228
+ name: z108.string().optional().describe("The name of the experience"),
7229
+ description: z108.string().optional().describe("Description of the experience"),
7230
+ viewports: z108.array(ViewportSchema).optional().describe("Viewport definitions; replaces existing viewports if provided"),
7231
+ designProperties: z108.record(z108.string(), DimensionedDesignPropertyValueSchema).optional().describe(
7123
7232
  "Design property values keyed by property ID; replaces existing if provided"
7124
7233
  ),
7125
7234
  contentBindings: ExperienceContentBindingsSchema.optional().describe(
7126
7235
  "Content bindings linking this experience to a data assembly; replaces existing if provided"
7127
7236
  ),
7128
- slots: z107.record(z107.string(), z107.array(ExperienceSlotNodeSchema)).optional().describe(
7237
+ slots: z108.record(z108.string(), z108.array(ExperienceSlotNodeSchema)).optional().describe(
7129
7238
  "Slot contents keyed by slot ID; replaces existing if provided"
7130
7239
  ),
7131
7240
  metadata: ExperienceMetadataSchema.optional().describe(
@@ -7172,13 +7281,13 @@ function upsertExperienceTool(config) {
7172
7281
  }
7173
7282
 
7174
7283
  // src/tools/exo/experiences/deleteExperience.ts
7175
- import { z as z108 } from "zod";
7284
+ import { z as z109 } from "zod";
7176
7285
  var DeleteExperienceToolParams = BaseToolSchema.extend({
7177
- experienceId: z108.string().describe("The ID of the experience to delete"),
7178
- confirm: z108.boolean().optional().describe(
7286
+ experienceId: z109.string().describe("The ID of the experience to delete"),
7287
+ confirm: z109.boolean().optional().describe(
7179
7288
  "Set to true on the second call to actually perform the deletion. Required together with confirmToken."
7180
7289
  ),
7181
- confirmToken: z108.string().optional().describe(
7290
+ confirmToken: z109.string().optional().describe(
7182
7291
  "Token returned by the preview call; must be supplied with confirm: true."
7183
7292
  )
7184
7293
  });
@@ -7220,10 +7329,10 @@ function deleteExperienceTool(config) {
7220
7329
  }
7221
7330
 
7222
7331
  // src/tools/exo/experiences/publishExperience.ts
7223
- import { z as z109 } from "zod";
7332
+ import { z as z110 } from "zod";
7224
7333
  var PublishExperienceToolParams = BaseToolSchema.extend({
7225
- experienceId: z109.string().describe("The ID of the experience to publish"),
7226
- version: z109.number().describe(
7334
+ experienceId: z110.string().describe("The ID of the experience to publish"),
7335
+ version: z110.number().describe(
7227
7336
  "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."
7228
7337
  )
7229
7338
  });
@@ -7257,10 +7366,10 @@ function publishExperienceTool(config) {
7257
7366
  }
7258
7367
 
7259
7368
  // src/tools/exo/experiences/unpublishExperience.ts
7260
- import { z as z110 } from "zod";
7369
+ import { z as z111 } from "zod";
7261
7370
  var UnpublishExperienceToolParams = BaseToolSchema.extend({
7262
- experienceId: z110.string().describe("The ID of the experience to unpublish"),
7263
- version: z110.number().describe(
7371
+ experienceId: z111.string().describe("The ID of the experience to unpublish"),
7372
+ version: z111.number().describe(
7264
7373
  "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."
7265
7374
  )
7266
7375
  });
@@ -7389,9 +7498,9 @@ function createExperienceTools(config) {
7389
7498
  }
7390
7499
 
7391
7500
  // src/tools/exo/data-assemblies/getDataAssembly.ts
7392
- import { z as z111 } from "zod";
7501
+ import { z as z112 } from "zod";
7393
7502
  var GetDataAssemblyToolParams = BaseToolSchema.extend({
7394
- dataAssemblyId: z111.string().describe("The ID of the data assembly to retrieve")
7503
+ dataAssemblyId: z112.string().describe("The ID of the data assembly to retrieve")
7395
7504
  });
7396
7505
  function getDataAssemblyTool(config) {
7397
7506
  async function tool2(args) {
@@ -7409,9 +7518,9 @@ function getDataAssemblyTool(config) {
7409
7518
  }
7410
7519
 
7411
7520
  // src/tools/exo/data-assemblies/getPublishedDataAssembly.ts
7412
- import { z as z112 } from "zod";
7521
+ import { z as z113 } from "zod";
7413
7522
  var GetPublishedDataAssemblyToolParams = BaseToolSchema.extend({
7414
- dataAssemblyId: z112.string().describe("The ID of the published data assembly to retrieve")
7523
+ dataAssemblyId: z113.string().describe("The ID of the published data assembly to retrieve")
7415
7524
  });
7416
7525
  function getPublishedDataAssemblyTool(config) {
7417
7526
  async function tool2(args) {
@@ -7429,12 +7538,12 @@ function getPublishedDataAssemblyTool(config) {
7429
7538
  }
7430
7539
 
7431
7540
  // src/tools/exo/data-assemblies/listDataAssemblies.ts
7432
- import { z as z113 } from "zod";
7541
+ import { z as z114 } from "zod";
7433
7542
  var ListDataAssembliesToolParams = BaseToolSchema.extend({
7434
- limit: z113.number().optional().describe("Maximum number of data assemblies to return (max 10)"),
7435
- pageNext: z113.string().optional().describe("Cursor token to fetch the next page of results"),
7436
- pagePrev: z113.string().optional().describe("Cursor token to fetch the previous page of results"),
7437
- sysIdIn: z113.string().optional().describe("Comma-separated list of data assembly IDs to filter by")
7543
+ limit: z114.number().optional().describe("Maximum number of data assemblies to return (max 10)"),
7544
+ pageNext: z114.string().optional().describe("Cursor token to fetch the next page of results"),
7545
+ pagePrev: z114.string().optional().describe("Cursor token to fetch the previous page of results"),
7546
+ sysIdIn: z114.string().optional().describe("Comma-separated list of data assembly IDs to filter by")
7438
7547
  });
7439
7548
  function listDataAssembliesTool(config) {
7440
7549
  async function tool2(args) {
@@ -7463,12 +7572,12 @@ function listDataAssembliesTool(config) {
7463
7572
  }
7464
7573
 
7465
7574
  // src/tools/exo/data-assemblies/listPublishedDataAssemblies.ts
7466
- import { z as z114 } from "zod";
7575
+ import { z as z115 } from "zod";
7467
7576
  var ListPublishedDataAssembliesToolParams = BaseToolSchema.extend({
7468
- limit: z114.number().optional().describe("Maximum number of published data assemblies to return (max 10)"),
7469
- pageNext: z114.string().optional().describe("Cursor token to fetch the next page of results"),
7470
- pagePrev: z114.string().optional().describe("Cursor token to fetch the previous page of results"),
7471
- sysIdIn: z114.string().optional().describe("Comma-separated list of data assembly IDs to filter by")
7577
+ limit: z115.number().optional().describe("Maximum number of published data assemblies to return (max 10)"),
7578
+ pageNext: z115.string().optional().describe("Cursor token to fetch the next page of results"),
7579
+ pagePrev: z115.string().optional().describe("Cursor token to fetch the previous page of results"),
7580
+ sysIdIn: z115.string().optional().describe("Comma-separated list of data assembly IDs to filter by")
7472
7581
  });
7473
7582
  function listPublishedDataAssembliesTool(config) {
7474
7583
  async function tool2(args) {
@@ -7497,35 +7606,35 @@ function listPublishedDataAssembliesTool(config) {
7497
7606
  }
7498
7607
 
7499
7608
  // src/tools/exo/data-assemblies/createDataAssembly.ts
7500
- import { z as z116 } from "zod";
7609
+ import { z as z117 } from "zod";
7501
7610
 
7502
7611
  // src/types/dataAssemblySchemas.ts
7503
- import { z as z115 } from "zod";
7504
- var PointerExpressionValueSchema = z115.lazy(
7505
- () => z115.union([
7506
- z115.string(),
7507
- z115.object({
7508
- $from: z115.union([
7509
- z115.string(),
7510
- z115.object({
7511
- source: z115.string(),
7612
+ import { z as z116 } from "zod";
7613
+ var PointerExpressionValueSchema = z116.lazy(
7614
+ () => z116.union([
7615
+ z116.string(),
7616
+ z116.object({
7617
+ $from: z116.union([
7618
+ z116.string(),
7619
+ z116.object({
7620
+ source: z116.string(),
7512
7621
  select: PointerExpressionValueSchema.optional()
7513
7622
  })
7514
7623
  ])
7515
7624
  }),
7516
- z115.object({ $literal: z115.custom() }),
7517
- z115.object({ $object: z115.record(z115.string(), PointerExpressionValueSchema) }),
7518
- z115.object({
7519
- $on: z115.object({
7520
- type: z115.record(z115.string(), PointerExpressionValueSchema),
7625
+ z116.object({ $literal: z116.custom() }),
7626
+ z116.object({ $object: z116.record(z116.string(), PointerExpressionValueSchema) }),
7627
+ z116.object({
7628
+ $on: z116.object({
7629
+ type: z116.record(z116.string(), PointerExpressionValueSchema),
7521
7630
  default: PointerExpressionValueSchema.optional()
7522
7631
  })
7523
7632
  }),
7524
- z115.record(z115.string(), PointerExpressionValueSchema)
7633
+ z116.record(z116.string(), PointerExpressionValueSchema)
7525
7634
  ])
7526
7635
  );
7527
- var CanonicalDataTypeArmSchema = z115.object({
7528
- type: z115.enum([
7636
+ var CanonicalDataTypeArmSchema = z116.object({
7637
+ type: z116.enum([
7529
7638
  "String",
7530
7639
  "Number",
7531
7640
  "Integer",
@@ -7537,72 +7646,72 @@ var CanonicalDataTypeArmSchema = z115.object({
7537
7646
  "Literal",
7538
7647
  "DiscriminatedUnion"
7539
7648
  ]),
7540
- id: z115.string().describe("Data type field identifier"),
7541
- name: z115.string().describe("Human-readable name"),
7542
- required: z115.boolean().optional()
7543
- }).catchall(z115.unknown());
7544
- var LegacyDataTypeArmSchema = z115.object({
7545
- id: z115.string().describe("Data type field identifier"),
7546
- name: z115.string().describe("Human-readable name"),
7547
- type: z115.string(),
7548
- required: z115.boolean().optional(),
7549
- source: z115.string().optional(),
7550
- ref: z115.unknown().optional()
7551
- });
7552
- var DataAssemblyDataTypeFieldSchema = z115.union([
7649
+ id: z116.string().describe("Data type field identifier"),
7650
+ name: z116.string().describe("Human-readable name"),
7651
+ required: z116.boolean().optional()
7652
+ }).catchall(z116.unknown());
7653
+ var LegacyDataTypeArmSchema = z116.object({
7654
+ id: z116.string().describe("Data type field identifier"),
7655
+ name: z116.string().describe("Human-readable name"),
7656
+ type: z116.string(),
7657
+ required: z116.boolean().optional(),
7658
+ source: z116.string().optional(),
7659
+ ref: z116.unknown().optional()
7660
+ });
7661
+ var DataAssemblyDataTypeFieldSchema = z116.union([
7553
7662
  CanonicalDataTypeArmSchema,
7554
7663
  LegacyDataTypeArmSchema
7555
7664
  ]);
7556
7665
  var SAME_SPACE_CONTENT_SOURCE = "crn:contentful:::content:spaces/$self/environments/$self";
7557
- var DataAssemblyResourceLinkParameterSchema = z115.object({
7558
- name: z115.string().optional(),
7559
- description: z115.string().optional(),
7560
- type: z115.literal("ResourceLink"),
7561
- linkType: z115.literal("Contentful:Entry"),
7562
- allowedResources: z115.array(
7563
- z115.object({
7564
- type: z115.literal("Contentful:Entry"),
7565
- source: z115.literal(SAME_SPACE_CONTENT_SOURCE),
7566
- allowedTypes: z115.array(z115.string())
7666
+ var DataAssemblyResourceLinkParameterSchema = z116.object({
7667
+ name: z116.string().optional(),
7668
+ description: z116.string().optional(),
7669
+ type: z116.literal("ResourceLink"),
7670
+ linkType: z116.literal("Contentful:Entry"),
7671
+ allowedResources: z116.array(
7672
+ z116.object({
7673
+ type: z116.literal("Contentful:Entry"),
7674
+ source: z116.literal(SAME_SPACE_CONTENT_SOURCE),
7675
+ allowedTypes: z116.array(z116.string())
7567
7676
  })
7568
7677
  )
7569
7678
  });
7570
- var DataAssemblyParameterConfigSchema = z115.record(
7571
- z115.string(),
7679
+ var DataAssemblyParameterConfigSchema = z116.record(
7680
+ z116.string(),
7572
7681
  DataAssemblyResourceLinkParameterSchema
7573
7682
  );
7574
- var DataAssemblyGraphQLResolverSchema = z115.object({
7575
- source: z115.literal("Contentful:GraphQL"),
7576
- query: z115.string().describe("GraphQL query string"),
7683
+ var DataAssemblyGraphQLResolverSchema = z116.object({
7684
+ source: z116.literal("Contentful:GraphQL"),
7685
+ query: z116.string().describe("GraphQL query string"),
7577
7686
  parameters: PointerExpressionValueSchema.optional()
7578
7687
  });
7579
- var DataAssemblyNestedResolverSchema = z115.object({
7580
- source: z115.literal("Contentful:DataAssembly"),
7581
- dataAssembly: z115.object({
7582
- sys: z115.object({
7583
- type: z115.literal("ResourceLink"),
7584
- linkType: z115.literal("Contentful:DataAssembly"),
7585
- urn: z115.string()
7688
+ var DataAssemblyNestedResolverSchema = z116.object({
7689
+ source: z116.literal("Contentful:DataAssembly"),
7690
+ dataAssembly: z116.object({
7691
+ sys: z116.object({
7692
+ type: z116.literal("ResourceLink"),
7693
+ linkType: z116.literal("Contentful:DataAssembly"),
7694
+ urn: z116.string()
7586
7695
  })
7587
7696
  }),
7588
7697
  parameters: PointerExpressionValueSchema.optional()
7589
7698
  });
7590
- var DataAssemblyResolverDefinitionSchema = z115.union([
7699
+ var DataAssemblyResolverDefinitionSchema = z116.union([
7591
7700
  DataAssemblyGraphQLResolverSchema,
7592
7701
  DataAssemblyNestedResolverSchema
7593
7702
  ]);
7594
- var DataAssemblyResolverConfigSchema = z115.record(
7595
- z115.string(),
7703
+ var DataAssemblyResolverConfigSchema = z116.record(
7704
+ z116.string(),
7596
7705
  DataAssemblyResolverDefinitionSchema
7597
7706
  );
7598
7707
  var DataAssemblyReturnMappingConfigSchema = PointerExpressionValueSchema;
7599
- var DataAssemblyMetadataSchema = z115.object({
7600
- tags: z115.array(
7601
- z115.object({
7602
- sys: z115.object({
7603
- type: z115.literal("Link"),
7604
- linkType: z115.literal("Tag"),
7605
- id: z115.string()
7708
+ var DataAssemblyMetadataSchema = z116.object({
7709
+ tags: z116.array(
7710
+ z116.object({
7711
+ sys: z116.object({
7712
+ type: z116.literal("Link"),
7713
+ linkType: z116.literal("Tag"),
7714
+ id: z116.string()
7606
7715
  })
7607
7716
  })
7608
7717
  )
@@ -7610,8 +7719,8 @@ var DataAssemblyMetadataSchema = z115.object({
7610
7719
 
7611
7720
  // src/tools/exo/data-assemblies/createDataAssembly.ts
7612
7721
  var CreateDataAssemblyToolParams = BaseToolSchema.extend({
7613
- name: z116.string().describe("The name of the data assembly"),
7614
- description: z116.string().describe("Description of the data assembly"),
7722
+ name: z117.string().describe("The name of the data assembly"),
7723
+ description: z117.string().describe("Description of the data assembly"),
7615
7724
  parameters: DataAssemblyParameterConfigSchema.describe(
7616
7725
  "Parameter definitions keyed by parameter name (may be empty object)"
7617
7726
  ),
@@ -7621,8 +7730,8 @@ var CreateDataAssemblyToolParams = BaseToolSchema.extend({
7621
7730
  return: DataAssemblyReturnMappingConfigSchema.describe(
7622
7731
  "Return mapping configuration specifying how to map resolved data"
7623
7732
  ),
7624
- dataType: z116.array(DataAssemblyDataTypeFieldSchema).describe("Data type field definitions for this data assembly (may be empty array)"),
7625
- variant: z116.string().optional().describe("Optional variant identifier for this data assembly"),
7733
+ dataType: z117.array(DataAssemblyDataTypeFieldSchema).describe("Data type field definitions for this data assembly (may be empty array)"),
7734
+ variant: z117.string().optional().describe("Optional variant identifier for this data assembly"),
7626
7735
  metadata: DataAssemblyMetadataSchema.optional().describe("Optional metadata (tags)")
7627
7736
  });
7628
7737
  function createDataAssemblyTool(config) {
@@ -7656,14 +7765,14 @@ function createDataAssemblyTool(config) {
7656
7765
  }
7657
7766
 
7658
7767
  // src/tools/exo/data-assemblies/updateDataAssembly.ts
7659
- import { z as z117 } from "zod";
7768
+ import { z as z118 } from "zod";
7660
7769
  var UpdateDataAssemblyToolParams = BaseToolSchema.extend({
7661
- dataAssemblyId: z117.string().describe("The ID of the data assembly to update"),
7662
- version: z117.number().describe(
7770
+ dataAssemblyId: z118.string().describe("The ID of the data assembly to update"),
7771
+ version: z118.number().describe(
7663
7772
  "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."
7664
7773
  ),
7665
- name: z117.string().optional().describe("The name of the data assembly"),
7666
- description: z117.string().optional().describe("Description of the data assembly"),
7774
+ name: z118.string().optional().describe("The name of the data assembly"),
7775
+ description: z118.string().optional().describe("Description of the data assembly"),
7667
7776
  parameters: DataAssemblyParameterConfigSchema.optional().describe(
7668
7777
  "Parameter definitions; replaces existing if provided"
7669
7778
  ),
@@ -7673,8 +7782,8 @@ var UpdateDataAssemblyToolParams = BaseToolSchema.extend({
7673
7782
  return: DataAssemblyReturnMappingConfigSchema.optional().describe(
7674
7783
  "Return mapping configuration; replaces existing if provided"
7675
7784
  ),
7676
- dataType: z117.array(DataAssemblyDataTypeFieldSchema).optional().describe("Data type field definitions; replaces existing if provided"),
7677
- variant: z117.string().optional().describe("Optional variant identifier; replaces existing if provided"),
7785
+ dataType: z118.array(DataAssemblyDataTypeFieldSchema).optional().describe("Data type field definitions; replaces existing if provided"),
7786
+ variant: z118.string().optional().describe("Optional variant identifier; replaces existing if provided"),
7678
7787
  metadata: DataAssemblyMetadataSchema.optional().describe(
7679
7788
  "Metadata (tags); replaces existing if provided"
7680
7789
  )
@@ -7720,13 +7829,13 @@ function updateDataAssemblyTool(config) {
7720
7829
  }
7721
7830
 
7722
7831
  // src/tools/exo/data-assemblies/deleteDataAssembly.ts
7723
- import { z as z118 } from "zod";
7832
+ import { z as z119 } from "zod";
7724
7833
  var DeleteDataAssemblyToolParams = BaseToolSchema.extend({
7725
- dataAssemblyId: z118.string().describe("The ID of the data assembly to delete"),
7726
- confirm: z118.boolean().optional().describe(
7834
+ dataAssemblyId: z119.string().describe("The ID of the data assembly to delete"),
7835
+ confirm: z119.boolean().optional().describe(
7727
7836
  "Set to true on the second call to actually perform the deletion. Required together with confirmToken."
7728
7837
  ),
7729
- confirmToken: z118.string().optional().describe(
7838
+ confirmToken: z119.string().optional().describe(
7730
7839
  "Token returned by the preview call; must be supplied with confirm: true."
7731
7840
  )
7732
7841
  });
@@ -7768,10 +7877,10 @@ function deleteDataAssemblyTool(config) {
7768
7877
  }
7769
7878
 
7770
7879
  // src/tools/exo/data-assemblies/publishDataAssembly.ts
7771
- import { z as z119 } from "zod";
7880
+ import { z as z120 } from "zod";
7772
7881
  var PublishDataAssemblyToolParams = BaseToolSchema.extend({
7773
- dataAssemblyId: z119.string().describe("The ID of the data assembly to publish"),
7774
- version: z119.number().describe(
7882
+ dataAssemblyId: z120.string().describe("The ID of the data assembly to publish"),
7883
+ version: z120.number().describe(
7775
7884
  "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."
7776
7885
  )
7777
7886
  });
@@ -7805,10 +7914,10 @@ function publishDataAssemblyTool(config) {
7805
7914
  }
7806
7915
 
7807
7916
  // src/tools/exo/data-assemblies/unpublishDataAssembly.ts
7808
- import { z as z120 } from "zod";
7917
+ import { z as z121 } from "zod";
7809
7918
  var UnpublishDataAssemblyToolParams = BaseToolSchema.extend({
7810
- dataAssemblyId: z120.string().describe("The ID of the data assembly to unpublish"),
7811
- version: z120.number().describe(
7919
+ dataAssemblyId: z121.string().describe("The ID of the data assembly to unpublish"),
7920
+ version: z121.number().describe(
7812
7921
  "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."
7813
7922
  )
7814
7923
  });
@@ -7972,7 +8081,7 @@ var ContentfulMcpTools = class {
7972
8081
  }
7973
8082
  /**
7974
8083
  * Update the configuration after initialization
7975
- *
8084
+ *
7976
8085
  * @param updates - Partial configuration to merge with existing config
7977
8086
  */
7978
8087
  updateConfig(updates) {
@@ -8087,6 +8196,44 @@ var ContentfulMcpTools = class {
8087
8196
  return createJobTools(this.config);
8088
8197
  }
8089
8198
  };
8199
+
8200
+ // src/utils/entitlements.ts
8201
+ import { createClient as createClient16 } from "contentful-management";
8202
+ var EXO_M1_FEATURE = "exoM1";
8203
+ function createPlainClient(config) {
8204
+ return createClient16(createClientConfig(config), { type: "plain" });
8205
+ }
8206
+ async function orgHasExoM1(client, organizationId) {
8207
+ try {
8208
+ const entitlements = await client.raw.get(
8209
+ `/organizations/${organizationId}/organization_entitlement_set`
8210
+ );
8211
+ return entitlements.features?.[EXO_M1_FEATURE]?.value === true;
8212
+ } catch {
8213
+ return false;
8214
+ }
8215
+ }
8216
+ async function hasExoM1Entitlement(config) {
8217
+ try {
8218
+ const client = createPlainClient(config);
8219
+ const orgs = await client.organization.getAll();
8220
+ if (!orgs.items.length) {
8221
+ return false;
8222
+ }
8223
+ const results = await Promise.all(
8224
+ orgs.items.map((org) => orgHasExoM1(client, org.sys.id))
8225
+ );
8226
+ return results.some(Boolean);
8227
+ } catch {
8228
+ return false;
8229
+ }
8230
+ }
8090
8231
  export {
8091
- ContentfulMcpTools
8232
+ CONVENTIONS_GUIDANCE,
8233
+ CORE_INVARIANTS,
8234
+ ContentfulMcpTools,
8235
+ EXO_DISPOSITION,
8236
+ EXO_M1_FEATURE,
8237
+ SEARCHING_GUIDANCE,
8238
+ hasExoM1Entitlement
8092
8239
  };