@se-studio/contentful-cms 3.3.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +4 -2
  3. package/dist/commands/add.d.ts.map +1 -1
  4. package/dist/commands/add.js +4 -1
  5. package/dist/commands/add.js.map +1 -1
  6. package/dist/commands/batch-assignments.d.ts +4 -4
  7. package/dist/commands/batch-assignments.d.ts.map +1 -1
  8. package/dist/commands/batch-assignments.js +42 -5
  9. package/dist/commands/batch-assignments.js.map +1 -1
  10. package/dist/commands/batch.d.ts.map +1 -1
  11. package/dist/commands/batch.js +36 -17
  12. package/dist/commands/batch.js.map +1 -1
  13. package/dist/commands/open.d.ts.map +1 -1
  14. package/dist/commands/open.js +40 -4
  15. package/dist/commands/open.js.map +1 -1
  16. package/dist/commands/set.d.ts.map +1 -1
  17. package/dist/commands/set.js +148 -27
  18. package/dist/commands/set.js.map +1 -1
  19. package/dist/contentful/set-field-schema.d.ts +5 -0
  20. package/dist/contentful/set-field-schema.d.ts.map +1 -1
  21. package/dist/contentful/set-field-schema.js +30 -1
  22. package/dist/contentful/set-field-schema.js.map +1 -1
  23. package/dist/generated/version.d.ts +1 -1
  24. package/dist/generated/version.js +1 -1
  25. package/dist/mcp/tools/cms-edit.d.ts +1 -1
  26. package/dist/mcp/tools/cms-edit.d.ts.map +1 -1
  27. package/dist/mcp/tools/cms-edit.js +14 -1
  28. package/dist/mcp/tools/cms-edit.js.map +1 -1
  29. package/dist/output/print.d.ts +2 -2
  30. package/dist/output/print.d.ts.map +1 -1
  31. package/dist/output/print.js +3 -3
  32. package/dist/output/print.js.map +1 -1
  33. package/dist/session/dirty.d.ts +20 -0
  34. package/dist/session/dirty.d.ts.map +1 -0
  35. package/dist/session/dirty.js +44 -0
  36. package/dist/session/dirty.js.map +1 -0
  37. package/docs/help/batch.md +29 -13
  38. package/docs/help/index.md +5 -1
  39. package/docs/help/workflow.md +47 -0
  40. package/package.json +1 -1
@@ -1,32 +1,34 @@
1
1
  import { readJsonInput, readTextInput } from '../cli/read-json-input.js';
2
2
  import { loadConfig, resolveSpaceConfig } from '../config/load.js';
3
3
  import { createSafeEnvironment } from '../contentful/client.js';
4
- import { normalizeSlug } from '../contentful/fetch.js';
4
+ import { normalizeSlug, serializeEntry } from '../contentful/fetch.js';
5
5
  import { resolveScalarValueForField } from '../contentful/scalar-value.js';
6
- import { getActiveFieldDef, getContentTypeCached, validateLinksSetAgainstFieldSchema, validateScalarSetAgainstFieldSchema, } from '../contentful/set-field-schema.js';
6
+ import { getActiveFieldDef, getContentTypeCached, validateLinkSetAgainstFieldSchema, validateLinksSetAgainstFieldSchema, validateScalarSetAgainstFieldSchema, } from '../contentful/set-field-schema.js';
7
7
  import { isSlugFieldId, validateSlugFieldValue } from '../contentful/slug-validation.js';
8
8
  import { errorMsg, infoMsg, successMsg, warnMsg } from '../output/print.js';
9
9
  import { stringToRtfDocument } from '../rtf/convertToRtf.js';
10
10
  import { isRtfDocument } from '../rtf/utils.js';
11
11
  import { makeAssetLink, makeEntryLink, resolveRef, resolveRefToId } from '../session/refs.js';
12
12
  import { requireSession, saveSession } from '../session/store.js';
13
- import { everyTokenLooksLikeBatchAssignment } from './batch-assignments.js';
13
+ import { everyTokenLooksLikeBatchAssignment, parseBatchSetAssignments, } from './batch-assignments.js';
14
14
  import { everyTokenLooksLikeMultiAssignment, parseMultiSetAssignments, } from './multiset-assignments.js';
15
15
  export function registerSetCommand(program) {
16
16
  program
17
17
  .command('set [assignments...]')
18
18
  .description('Set a field on one or more entries.\n' +
19
- 'Single: set <ref> <field> [value]\n' +
19
+ 'Single: set <ref|entryId> <field> [value]\n' +
20
+ ' <ref> is @cN / @root; bare Contentful entry IDs also work (fetched into the session if needed).\n' +
20
21
  'Multi: set @c1:field="value" @c2:field="value" …\n' +
21
22
  ' Multi-set applies scalar values to any number of entries in one command.\n' +
22
23
  ' Flags (--link, --asset, --links, --json) apply to single mode only.\n' +
24
+ 'Scalars by ID: set entryId:field=value … (same shape as batch set; stays on the page session).\n' +
23
25
  'Scalar (default): pass a string, boolean, or number as <value>.\n' +
24
26
  'Rich text: use --rtf-text | --rtf-markdown (default) | --rtf-html | --rtf-json with a string value, or --json/--json-base64 with a full document.\n' +
25
27
  'Object/JSON: use --json <json> or --json-base64 <encoded>.\n' +
26
28
  'Long plain text: use --content <string> or --content-base64 <encoded> (for rawHtml, customCss, etc.).\n' +
27
- 'Entry link: use --link (value = linked entry ID).\n' +
29
+ 'Entry link (single): use --link (value = linked entry ID).\n' +
28
30
  'Asset link: use --asset (value = asset ID).\n' +
29
- 'Entry link array: use --links (value = comma-separated refs or IDs); field must be an array of entry links; use --append to append.')
31
+ 'Entry link array: use --links (value = comma-separated refs or IDs); full replace, or --append; never use --link on arrays.')
30
32
  .option('--link', 'Value is an entry ID for a single-entry link field')
31
33
  .option('--asset', 'Value is an asset ID for a single-asset link field')
32
34
  .option('--links', 'Value is comma-separated refs or entry IDs; field must be an array of entry links')
@@ -42,10 +44,15 @@ export function registerSetCommand(program) {
42
44
  .action(async (assignments, opts, cmd) => {
43
45
  const parentOpts = cmd.parent?.opts() ?? {};
44
46
  try {
47
+ // entryId:field=value tokens — apply on the current (page) session when open
45
48
  if (everyTokenLooksLikeBatchAssignment(assignments)) {
46
- errorMsg('These look like batch assignments (entryId:field=value). ' +
47
- 'Use: cms-edit batch set <entryId>:field=value …');
48
- process.exit(1);
49
+ const session = await requireSession(parentOpts.session, parentOpts.config);
50
+ if (opts.link || opts.asset || opts.links || opts.json || opts.jsonBase64) {
51
+ errorMsg('entryId:field=value mode is scalar-only. For links use: set <ref|id> <field> <value> --link or --links.');
52
+ process.exit(1);
53
+ return;
54
+ }
55
+ await handleEntryIdScalarAssignments(assignments, session, parentOpts);
49
56
  return;
50
57
  }
51
58
  // Multi-set mode: all tokens match @ref:field=value
@@ -81,8 +88,9 @@ export function registerSetCommand(program) {
81
88
  const field = assignments[1];
82
89
  const rawValue = assignments[2];
83
90
  if (!ref || !field) {
84
- errorMsg('Usage: cms-edit set <ref> <field> [value]\n' +
85
- ' Or multi: cms-edit set @c1:field="value" @c2:field="value"');
91
+ errorMsg('Usage: cms-edit set <ref|entryId> <field> [value]\n' +
92
+ ' Or multi: cms-edit set @c1:field="value" @c2:field="value"\n' +
93
+ ' Or by ID: cms-edit set <entryId>:field=value …');
86
94
  process.exit(1);
87
95
  }
88
96
  const isObjectMode = !!(opts.json ?? opts.jsonBase64);
@@ -116,7 +124,7 @@ export function registerSetCommand(program) {
116
124
  process.exit(1);
117
125
  }
118
126
  const session = await requireSession(parentOpts.session, parentOpts.config);
119
- const entry = resolveRef(session, ref);
127
+ const { entry, displayRef } = await resolveRefOrEntryId(session, ref, parentOpts);
120
128
  const locale = session.defaultLocale;
121
129
  let rtfFormat = 'markdown';
122
130
  try {
@@ -167,8 +175,8 @@ export function registerSetCommand(program) {
167
175
  if (!session.modifiedEntryIds.includes(entry.sys.id)) {
168
176
  session.modifiedEntryIds.push(entry.sys.id);
169
177
  }
170
- await saveSession(session);
171
- successMsg(`Set ${field} on ${ref} from JSON.`);
178
+ await saveSession(session, parentOpts.session);
179
+ successMsg(`Set ${field} on ${displayRef} from JSON.`);
172
180
  return;
173
181
  }
174
182
  if (isTextContentMode) {
@@ -208,8 +216,8 @@ export function registerSetCommand(program) {
208
216
  if (!session.modifiedEntryIds.includes(entry.sys.id)) {
209
217
  session.modifiedEntryIds.push(entry.sys.id);
210
218
  }
211
- await saveSession(session);
212
- successMsg(`Set ${field} on ${ref} from --content.`);
219
+ await saveSession(session, parentOpts.session);
220
+ successMsg(`Set ${field} on ${displayRef} from --content.`);
213
221
  return;
214
222
  }
215
223
  if (!rawValue && !opts.links) {
@@ -220,7 +228,7 @@ export function registerSetCommand(program) {
220
228
  try {
221
229
  const conflict = validateScalarSetAgainstFieldSchema(fieldDef);
222
230
  if (conflict) {
223
- errorMsg(formatSetSchemaConflict(ref, field, conflict));
231
+ errorMsg(formatSetSchemaConflict(displayRef, field, conflict));
224
232
  process.exit(1);
225
233
  return;
226
234
  }
@@ -238,8 +246,8 @@ export function registerSetCommand(program) {
238
246
  const { space } = resolveSpaceConfig(config, session.spaceKey);
239
247
  const env = await createSafeEnvironment(space);
240
248
  const ct = await getContentTypeCached(env, session, entry.sys.contentType.sys.id);
241
- const fieldDef = getActiveFieldDef(ct, field);
242
- const linksError = validateLinksSetAgainstFieldSchema(fieldDef, field);
249
+ const linksFieldDef = getActiveFieldDef(ct, field);
250
+ const linksError = validateLinksSetAgainstFieldSchema(linksFieldDef, field);
243
251
  if (linksError) {
244
252
  errorMsg(linksError);
245
253
  process.exit(1);
@@ -262,12 +270,20 @@ export function registerSetCommand(program) {
262
270
  if (!session.modifiedEntryIds.includes(entry.sys.id)) {
263
271
  session.modifiedEntryIds.push(entry.sys.id);
264
272
  }
265
- await saveSession(session);
273
+ await saveSession(session, parentOpts.session);
266
274
  successMsg(opts.append
267
- ? `Appended ${linkArray.length} link(s) to ${field} on ${ref}.`
268
- : `Set ${field} on ${ref} to ${linkArray.length} link(s).`);
275
+ ? `Appended ${linkArray.length} link(s) to ${field} on ${displayRef}.`
276
+ : `Set ${field} on ${displayRef} to ${linkArray.length} link(s).`);
269
277
  return;
270
278
  }
279
+ if (opts.link) {
280
+ const linkError = validateLinkSetAgainstFieldSchema(fieldDef, field, displayRef);
281
+ if (linkError) {
282
+ errorMsg(linkError);
283
+ process.exit(1);
284
+ return;
285
+ }
286
+ }
271
287
  let value = opts.link
272
288
  ? makeEntryLink(effectiveValue.trim())
273
289
  : opts.asset
@@ -293,7 +309,7 @@ export function registerSetCommand(program) {
293
309
  if (!session.modifiedEntryIds.includes(entry.sys.id)) {
294
310
  session.modifiedEntryIds.push(entry.sys.id);
295
311
  }
296
- await saveSession(session);
312
+ await saveSession(session, parentOpts.session);
297
313
  // SEO field warnings
298
314
  if (!opts.link && !opts.asset && typeof value === 'string') {
299
315
  if (field === 'description' && value.length > 160) {
@@ -301,10 +317,10 @@ export function registerSetCommand(program) {
301
317
  }
302
318
  }
303
319
  successMsg(opts.link
304
- ? `Set ${field} on ${ref} to entry link → ${effectiveValue.trim()}`
320
+ ? `Set ${field} on ${displayRef} to entry link → ${effectiveValue.trim()}`
305
321
  : opts.asset
306
- ? `Set ${field} on ${ref} to asset link → ${effectiveValue.trim()}`
307
- : `Set ${field} on ${ref} to: ${JSON.stringify(value)}`);
322
+ ? `Set ${field} on ${displayRef} to asset link → ${effectiveValue.trim()}`
323
+ : `Set ${field} on ${displayRef} to: ${JSON.stringify(value)}`);
308
324
  if (field === 'heading' && typeof value === 'string') {
309
325
  const cmsLabelVal = entry.fields['cmsLabel']?.[locale];
310
326
  const compType = entry.fields['componentType']?.[locale] ??
@@ -312,7 +328,7 @@ export function registerSetCommand(program) {
312
328
  entry.fields['externalComponentType']?.[locale];
313
329
  const typeName = typeof compType === 'string' ? compType : 'component';
314
330
  if (typeof cmsLabelVal === 'string' && cmsLabelVal === `New ${typeName}`) {
315
- infoMsg(`Tip: set cmsLabel on ${ref} so editors can tell this block apart — e.g. set ${ref} cmsLabel "${value.slice(0, 60)}"`);
331
+ infoMsg(`Tip: set cmsLabel on ${displayRef} so editors can tell this block apart — e.g. set ${displayRef} cmsLabel "${value.slice(0, 60)}"`);
316
332
  }
317
333
  }
318
334
  }
@@ -322,6 +338,111 @@ export function registerSetCommand(program) {
322
338
  }
323
339
  });
324
340
  }
341
+ /** Resolve @ref or bare Contentful entry ID (fetch into session if missing). */
342
+ async function resolveRefOrEntryId(session, refOrId, parentOpts) {
343
+ if (refOrId.startsWith('@') || session.refs[refOrId] || session.refs[`@${refOrId}`]) {
344
+ const entry = resolveRef(session, refOrId);
345
+ const displayRef = session.refsByEntry[entry.sys.id] ?? refOrId;
346
+ return { entry, displayRef };
347
+ }
348
+ // Already loaded as detached / tree entry by ID
349
+ if (session.entries[refOrId]) {
350
+ const entry = session.entries[refOrId];
351
+ const displayRef = session.refsByEntry[refOrId] ?? refOrId;
352
+ return { entry, displayRef };
353
+ }
354
+ // Fetch into session (mid-session edit of media or other out-of-tree entries)
355
+ if (!/^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$/.test(refOrId)) {
356
+ throw new Error(`Ref or entry ID "${refOrId}" not found. Use @cN / @root, or a Contentful entry ID.`);
357
+ }
358
+ const config = loadConfig(parentOpts.config);
359
+ const { space } = resolveSpaceConfig(config, session.spaceKey);
360
+ const env = await createSafeEnvironment(space);
361
+ const fetched = await env.getEntry(refOrId);
362
+ const serialized = serializeEntry(fetched);
363
+ session.entries[refOrId] = serialized;
364
+ if (!session.originalEntries[refOrId]) {
365
+ session.originalEntries[refOrId] = JSON.parse(JSON.stringify(serialized));
366
+ }
367
+ // Detached: track by id so diff/save work; no tree node required
368
+ if (!session.refsByEntry[refOrId]) {
369
+ session.refsByEntry[refOrId] = refOrId;
370
+ }
371
+ await saveSession(session, parentOpts.session);
372
+ infoMsg(`Loaded entry ${refOrId} into session for mid-session edit (not in page tree).`);
373
+ return { entry: serialized, displayRef: refOrId };
374
+ }
375
+ /**
376
+ * Apply entryId:field=value scalars on the current session (page or batch).
377
+ * Same shape as `batch set`, but does not require leaving a page session.
378
+ */
379
+ async function handleEntryIdScalarAssignments(tokens, session, parentOpts) {
380
+ let parsed;
381
+ try {
382
+ parsed = parseBatchSetAssignments(tokens);
383
+ }
384
+ catch (err) {
385
+ errorMsg(err instanceof Error ? err.message : String(err));
386
+ process.exit(1);
387
+ return;
388
+ }
389
+ const config = loadConfig(parentOpts.config);
390
+ const { space } = resolveSpaceConfig(config, session.spaceKey);
391
+ const env = await createSafeEnvironment(space);
392
+ const locale = session.defaultLocale;
393
+ const uniqueEntryIds = [...new Set(parsed.map((p) => p.entryId))];
394
+ for (const entryId of uniqueEntryIds) {
395
+ if (!session.entries[entryId]) {
396
+ const fetched = await env.getEntry(entryId);
397
+ const serialized = serializeEntry(fetched);
398
+ session.entries[entryId] = serialized;
399
+ if (!session.originalEntries[entryId]) {
400
+ session.originalEntries[entryId] = JSON.parse(JSON.stringify(serialized));
401
+ }
402
+ if (!session.refsByEntry[entryId]) {
403
+ session.refsByEntry[entryId] = entryId;
404
+ }
405
+ }
406
+ }
407
+ const ctByContentTypeId = new Map();
408
+ for (const { entryId, field } of parsed) {
409
+ const entry = session.entries[entryId];
410
+ if (!entry)
411
+ throw new Error(`Failed to load entry ${entryId}`);
412
+ const ctId = entry.sys.contentType.sys.id;
413
+ let ct = ctByContentTypeId.get(ctId);
414
+ if (!ct) {
415
+ ct = await getContentTypeCached(env, session, ctId);
416
+ ctByContentTypeId.set(ctId, ct);
417
+ }
418
+ const fieldDef = getActiveFieldDef(ct, field);
419
+ if (!fieldDef) {
420
+ throw new Error(`Entry ${entryId}: unknown field '${field}'.`);
421
+ }
422
+ const conflict = validateScalarSetAgainstFieldSchema(fieldDef);
423
+ if (conflict) {
424
+ throw new Error(`Entry ${entryId}: field '${field}' requires a specialized set mode (${conflict.kind}). ` +
425
+ `Use set <id> <field> … with --link/--links for link fields.`);
426
+ }
427
+ }
428
+ for (const { entryId, field, raw } of parsed) {
429
+ const entry = session.entries[entryId];
430
+ if (!entry)
431
+ continue;
432
+ const ctId = entry.sys.contentType.sys.id;
433
+ const ct = ctByContentTypeId.get(ctId);
434
+ const fieldDef = ct ? getActiveFieldDef(ct, field) : undefined;
435
+ const value = resolveScalarValueForField(raw, fieldDef, field);
436
+ if (!entry.fields[field])
437
+ entry.fields[field] = {};
438
+ entry.fields[field][locale] = value;
439
+ if (!session.modifiedEntryIds.includes(entryId)) {
440
+ session.modifiedEntryIds.push(entryId);
441
+ }
442
+ }
443
+ await saveSession(session, parentOpts.session);
444
+ successMsg(`Queued ${parsed.length} field update${parsed.length !== 1 ? 's' : ''} on ${uniqueEntryIds.length} entr${uniqueEntryIds.length !== 1 ? 'ies' : 'y'} in the current session. Run 'cms-edit diff' then 'cms-edit save'.`);
445
+ }
325
446
  function formatSetSchemaConflict(ref, field, conflict) {
326
447
  switch (conflict.kind) {
327
448
  case 'entryLink':
@@ -1 +1 @@
1
- {"version":3,"file":"set.js","sourceRoot":"","sources":["../../src/commands/set.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"set.js","sourceRoot":"","sources":["../../src/commands/set.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,11 @@ export type SetSchemaConflict = {
19
19
  * Returns an error string if the field is incompatible, null if valid or unknown.
20
20
  */
21
21
  export declare function validateLinksSetAgainstFieldSchema(fieldDef: ContentFields | undefined, fieldId: string): string | null;
22
+ /**
23
+ * Validates that a field is suitable for --link (single entry link).
24
+ * Returns an error string if incompatible, null if valid or unknown.
25
+ */
26
+ export declare function validateLinkSetAgainstFieldSchema(fieldDef: ContentFields | undefined, fieldId: string, ref: string): string | null;
22
27
  /**
23
28
  * When the user uses scalar `set` (no --link / --asset / --links / --json),
24
29
  * ensure the target field is not a RichText or Link type that requires those flags.
@@ -1 +1 @@
1
- {"version":3,"file":"set-field-schema.d.ts","sourceRoot":"","sources":["../../src/contentful/set-field-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA+BnD,wDAAwD;AACxD,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CAoB3B;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,gBAAgB,EACpB,OAAO,EAAE,MAAM,GACd,aAAa,GAAG,SAAS,CAE3B;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE/B;;;GAGG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,aAAa,GAAG,SAAS,EACnC,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAoBf;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,aAAa,GAAG,SAAS,GAClC,iBAAiB,GAAG,IAAI,CA2B1B"}
1
+ {"version":3,"file":"set-field-schema.d.ts","sourceRoot":"","sources":["../../src/contentful/set-field-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA+BnD,wDAAwD;AACxD,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CAoB3B;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,gBAAgB,EACpB,OAAO,EAAE,MAAM,GACd,aAAa,GAAG,SAAS,CAE3B;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE/B;;;GAGG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,aAAa,GAAG,SAAS,EACnC,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAuBf;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,aAAa,GAAG,SAAS,EACnC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,IAAI,CA4Bf;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,aAAa,GAAG,SAAS,GAClC,iBAAiB,GAAG,IAAI,CA2B1B"}
@@ -59,10 +59,39 @@ export function validateLinksSetAgainstFieldSchema(fieldDef, fieldId) {
59
59
  return `'${fieldId}' holds asset links — use --json/--json-base64 with a valid link array, or manage assets with cms-edit asset.`;
60
60
  }
61
61
  if (fieldDef.type === 'Link' && fieldDef.linkType === 'Entry') {
62
- return `'${fieldId}' is a single Entry link — use: cms-edit set <ref> ${fieldId} <entry-id> --link`;
62
+ return (`'${fieldId}' is a single Entry link field — use --link (not --links).\n` +
63
+ ` Example: cms-edit set <ref> ${fieldId} <entry-id> --link`);
63
64
  }
64
65
  return `'${fieldId}' (type: ${fieldDef.type}) is not an array of entry links.`;
65
66
  }
67
+ /**
68
+ * Validates that a field is suitable for --link (single entry link).
69
+ * Returns an error string if incompatible, null if valid or unknown.
70
+ */
71
+ export function validateLinkSetAgainstFieldSchema(fieldDef, fieldId, ref) {
72
+ if (!fieldDef)
73
+ return null;
74
+ if (fieldDef.type === 'Link' && fieldDef.linkType === 'Entry') {
75
+ return null;
76
+ }
77
+ if (fieldDef.type === 'Array' &&
78
+ fieldDef.items?.type === 'Link' &&
79
+ fieldDef.items.linkType === 'Entry') {
80
+ return (`'${fieldId}' is an array of entry links — use --links (or --links --append), not --link.\n` +
81
+ ` Replace the whole array: cms-edit set ${ref} ${fieldId} <id1>,<id2> --links\n` +
82
+ ` Append: cms-edit set ${ref} ${fieldId} <id> --links --append\n` +
83
+ ` To change one item: read the array, edit the list, write all ids back with --links.`);
84
+ }
85
+ if (fieldDef.type === 'Link' && fieldDef.linkType === 'Asset') {
86
+ return `'${fieldId}' is an Asset link field — use: cms-edit set ${ref} ${fieldId} <asset-id> --asset`;
87
+ }
88
+ if (fieldDef.type === 'Array' &&
89
+ fieldDef.items?.type === 'Link' &&
90
+ fieldDef.items.linkType === 'Asset') {
91
+ return `'${fieldId}' holds asset links — use --json/--json-base64 with a valid link array, or manage assets with cms-edit asset.`;
92
+ }
93
+ return `'${fieldId}' (type: ${fieldDef.type}) is not a single Entry link field — do not use --link.`;
94
+ }
66
95
  /**
67
96
  * When the user uses scalar `set` (no --link / --asset / --links / --json),
68
97
  * ensure the target field is not a RichText or Link type that requires those flags.
@@ -1 +1 @@
1
- {"version":3,"file":"set-field-schema.js","sourceRoot":"","sources":["../../src/contentful/set-field-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"set-field-schema.js","sourceRoot":"","sources":["../../src/contentful/set-field-schema.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export declare const CMS_EDIT_PACKAGE_NAME = "@se-studio/contentful-cms";
2
- export declare const CMS_EDIT_VERSION = "3.3.0";
2
+ export declare const CMS_EDIT_VERSION = "3.4.0";
3
3
  //# sourceMappingURL=version.d.ts.map
@@ -1,4 +1,4 @@
1
1
  // Generated by scripts/generate-embedded-assets.mjs — do not edit manually.
2
2
  export const CMS_EDIT_PACKAGE_NAME = "@se-studio/contentful-cms";
3
- export const CMS_EDIT_VERSION = "3.3.0";
3
+ export const CMS_EDIT_VERSION = "3.4.0";
4
4
  //# sourceMappingURL=version.js.map
@@ -1,7 +1,7 @@
1
1
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { HostedMcpInfo } from '../guide.js';
3
3
  import type { RunCmsEditFn } from '../types.js';
4
- export declare const TOOL_DESCRIPTION = "Run any cms-edit command. cms-edit edits Contentful draft content (no publishing).\n\nUse cms_edit_version (no args) to check the installed version.\nUse cms_edit_help to read the getting-started guide by topic.\nUse cms_edit_customer to read site-specific playbooks (articles, routing, blog-tag-matrix, etc.).\nIf Integrations only exposes cms_edit, use [\"customer\", \"index\"] or [\"customer\", \"resource=index\"] instead.\nRead the cms-edit://guide resource for the full guide.\n\nWorkflow: open \u2192 snapshot \u2192 read/set/rtf/add/remove \u2192 diff \u2192 save\nAll saves create drafts only \u2014 a human must publish in Contentful.\n\nCommon command sequences:\n [\"open\", \"--page-slug\", \"/\"] \u2014 homepage (CMS slug index; /index is equivalent)\n [\"open\", \"--page-slug\", \"/pricing\"] \u2014 load a page by slug\n [\"open\", \"--id\", \"<entry-id>\"] \u2014 load by Contentful entry ID\n [\"snapshot\"] \u2014 print content tree with @refs\n [\"read\", \"@c0\"] \u2014 read all fields of a component (requires open session)\n [\"read\", \"@c0\", \"heading\"] \u2014 read a specific field (requires open session)\n [\"read\", \"@root\"] \u2014 read root entry fields (requires open session)\n [\"read\", \"<entry-id>\", \"--id\"] \u2014 read entry by ID (no session)\n [\"read\", \"<entry-id>\", \"--id\", \"heading\"] \u2014 read one field by entry ID (no session)\n [\"peek\", \"--page-slug\", \"/pricing\"] \u2014 preview tree + root fields (no session)\n [\"peek\", \"--id\", \"<entry-id>\"] \u2014 preview by entry ID with rootFields in JSON\n [\"set\", \"@c0\", \"heading\", \"New heading\"] \u2014 set a scalar field\n [\"rtf\", \"@c0\", \"body\", \"--content\", \"# H1\\n\\nBody.\"] \u2014 set rich text (preferred for AI)\n [\"rtf\", \"@c0\", \"body\", \"--base64\", \"<encoded>\"] \u2014 set rich text via base64 (no filesystem)\n [\"diff\"] \u2014 show pending changes\n [\"save\"] \u2014 write drafts to Contentful\n [\"discard\"] \u2014 discard unsaved changes\n [\"links\", \"set\", \"@c0\", \"0\", \"variant\", \"link\"] \u2014 set scalar field on link at index 0\n [\"batch\", \"set\", \"<entry-id>:variant=link\"] \u2014 queue scalar edit by entry ID\n [\"batch\", \"diff\"] \u2014 show pending batch edits\n [\"batch\", \"save\"] \u2014 save all batch edits as drafts\n [\"health\"] \u2014 verify config and connectivity\n [\"diagnose\"] \u2014 session/MCP diagnostics (store, userId, active session)\n [\"version\"] \u2014 print installed cms-edit version\n [\"guide\"] \u2014 print getting-started guide\n [\"guide\", \"workflow\"] \u2014 print a guide section\n [\"customer\", \"index\"] \u2014 list site editor playbooks\n [\"customer\", \"articles\"] \u2014 read articles playbook\n [\"customer\", \"resource=index\"] \u2014 same as index (Integrations fallback)\n [\"list\", \"--type\", \"article\", \"--sort\", \"date\", \"-n\", \"10\"] \u2014 recent articles by publication date\n [\"list\", \"--type\", \"article\", \"--sort\", \"date\"] \u2014 list articles (preview index includes drafts)\n [\"peek\", \"--article-slug\", \"<slug>\"] \u2014 preview draft or published article (CMA)\n [\"preview\", \"url\", \"/pricing\"] \u2014 staging page URL (open in browser MCP)\n [\"preview\", \"urls\", \"/pricing\"] \u2014 all preview targets (staging, production, site live preview, Contentful)\n [\"preview\", \"showcase\", \"--component\", \"HeroSimple\"] \u2014 component showcase URL (mock data)\n [\"preview\", \"showcase\", \"--collection\", \"CardGrid\", \"--param\", \"backgroundColour=Navy\"]\n\nDiscovery notes:\n Visual checks: use preview url / preview showcase, then open the returned URL with a browser MCP (cms-edit does not capture screenshots).\n peek/open/read --id load draft content via CMA \u2014 NOT published-only.\n Only list --published / resolve --published use the published-only Delivery API index.\n Articles: use --article-slug (not --page-slug). search --type article sorts by publication date.\n\nSessions persist between MCP calls (Redis on hosted, disk locally). MCP auto-uses session \"_mcp\" unless you pass --session.\nUse --session <name> before the subcommand to isolate concurrent workflows, e.g. [\"--session\", \"my-work\", \"open\", \"/\"].\nUse --space <name> to target a specific Contentful space (local MCP only \u2014 omit for hosted Integrations).\nStateless read (no open required): [\"read\", \"<entry-id>\", \"--id\"] or [\"read\", \"<entry-id>\", \"--id\", \"heading\"].\npeek is one-shot (no session): use [\"peek\", \"--page-slug\", \"<slug>\"] or [\"peek\", \"--id\", \"<entry-id>\"]. Includes rootFields in JSON \u2014 no follow-up read required.\nOutput is always JSON (CMS_EDIT_JSON=1 is forced by the MCP server).\n\nRich text tips:\n --content \"<markdown>\" preferred named flag for inline content (any length)\n --base64 \"<encoded>\" fully environment-agnostic, no filesystem needed\n\nJSON bulk input (create from-json, batch run, taxonomy/person/article-tags imports, set object fields, rtf patch):\n --json \"<string>\" inline JSON (small payloads)\n --json-base64 \"<b64>\" base64-encoded JSON (large payloads)\n\nAsset upload (hosted MCP):\n Large files: [\"staged-upload\", \"request\", \"--file-name\", \"photo.png\", \"--mime\", \"image/png\"] then curl uploadUrl, then [\"asset\", \"upload\", \"--staged\", \"<id>\", ...].\n Or cms_edit_request_staged_upload when available. Small files: --url or --base64 with --mime and --file-name";
4
+ export declare const TOOL_DESCRIPTION = "Run any cms-edit command. cms-edit edits Contentful draft content (no publishing).\n\nUse cms_edit_version (no args) to check the installed version.\nUse cms_edit_help to read the getting-started guide by topic.\nUse cms_edit_customer to read site-specific playbooks (articles, routing, blog-tag-matrix, etc.).\nIf Integrations only exposes cms_edit, use [\"customer\", \"index\"] or [\"customer\", \"resource=index\"] instead.\nRead the cms-edit://guide resource for the full guide.\n\nWorkflow: open \u2192 snapshot \u2192 read/set/rtf/add/remove \u2192 diff \u2192 save\nAll saves create drafts only \u2014 a human must publish in Contentful.\n\nCRITICAL \u2014 sessions and open:\n set/rtf field edits are staged until save. Plain open while dirty HARD-FAILS (does not wipe silently).\n [\"open\", \"--resume\"] \u2014 re-print current session; keeps all staged edits (no Contentful refetch)\n [\"open\", \"--overwrite\", \"--id\", \"<id>\"] \u2014 abandon staged work and load a new entry\n [\"discard\"] then open \u2014 also valid abandon path\n Never re-open the same article mid-edit without save/discard \u2014 use --resume if you only need the tree again.\n\nCommon command sequences:\n [\"open\", \"--page-slug\", \"/\"] \u2014 homepage (CMS slug index; /index is equivalent)\n [\"open\", \"--page-slug\", \"/pricing\"] \u2014 load a page by slug\n [\"open\", \"--id\", \"<entry-id>\"] \u2014 load by Contentful entry ID\n [\"open\", \"--resume\"] \u2014 keep staged work; re-print snapshot\n [\"snapshot\"] \u2014 print content tree with @refs\n [\"read\", \"@c0\"] \u2014 read all fields of a component (requires open session)\n [\"read\", \"@c0\", \"heading\"] \u2014 read a specific field (requires open session)\n [\"read\", \"@root\"] \u2014 read root entry fields (requires open session)\n [\"read\", \"<entry-id>\", \"--id\"] \u2014 read entry by ID (no session)\n [\"read\", \"<entry-id>\", \"--id\", \"heading\"] \u2014 read one field by entry ID (no session)\n [\"peek\", \"--page-slug\", \"/pricing\"] \u2014 preview tree + root fields (no session)\n [\"peek\", \"--id\", \"<entry-id>\"] \u2014 preview by entry ID with rootFields in JSON\n [\"set\", \"@c0\", \"heading\", \"New heading\"] \u2014 set a scalar field\n [\"set\", \"<entry-id>\", \"autoplay\", \"true\"] \u2014 mid-session scalar by ID (e.g. media; no re-open)\n [\"set\", \"<entry-id>:autoplay=true\"] \u2014 same, batch-shaped token on page session\n [\"set\", \"@c1\", \"visual\", \"<media-id>\", \"--link\"] \u2014 single Entry link field only\n [\"set\", \"@c2\", \"contents\", \"<id1>,<id2>\", \"--links\"] \u2014 array of links (full replace); never --link on arrays\n [\"rtf\", \"@c0\", \"body\", \"--content\", \"# H1\\n\\nBody.\"] \u2014 set rich text (preferred for AI)\n [\"rtf\", \"@c0\", \"body\", \"--base64\", \"<encoded>\"] \u2014 set rich text via base64 (no filesystem)\n [\"diff\"] \u2014 show pending changes\n [\"save\"] \u2014 write drafts to Contentful\n [\"discard\"] \u2014 discard unsaved changes\n [\"links\", \"set\", \"@c0\", \"0\", \"variant\", \"link\"] \u2014 set scalar field on link at index 0\n [\"batch\", \"set\", \"<entry-id>:variant=link\"] \u2014 scalar by ID (OK mid-page session; then save)\n [\"batch\", \"diff\"] \u2014 show pending batch edits\n [\"batch\", \"save\"] \u2014 save all batch edits as drafts\n [\"health\"] \u2014 verify config and connectivity\n [\"diagnose\"] \u2014 session/MCP diagnostics (store, userId, active session)\n [\"version\"] \u2014 print installed cms-edit version\n [\"guide\"] \u2014 print getting-started guide\n [\"guide\", \"workflow\"] \u2014 print a guide section\n [\"customer\", \"index\"] \u2014 list site editor playbooks\n [\"customer\", \"articles\"] \u2014 read articles playbook\n [\"customer\", \"resource=index\"] \u2014 same as index (Integrations fallback)\n [\"list\", \"--type\", \"article\", \"--sort\", \"date\", \"-n\", \"10\"] \u2014 recent articles by publication date\n [\"list\", \"--type\", \"article\", \"--sort\", \"date\"] \u2014 list articles (preview index includes drafts)\n [\"peek\", \"--article-slug\", \"<slug>\"] \u2014 preview draft or published article (CMA)\n [\"preview\", \"url\", \"/pricing\"] \u2014 staging page URL (open in browser MCP)\n [\"preview\", \"urls\", \"/pricing\"] \u2014 all preview targets (staging, production, site live preview, Contentful)\n [\"preview\", \"showcase\", \"--component\", \"HeroSimple\"] \u2014 component showcase URL (mock data)\n [\"preview\", \"showcase\", \"--collection\", \"CardGrid\", \"--param\", \"backgroundColour=Navy\"]\n\nDiscovery notes:\n Visual checks: use preview url / preview showcase, then open the returned URL with a browser MCP (cms-edit does not capture screenshots).\n peek/open/read --id load draft content via CMA \u2014 NOT published-only.\n Only list --published / resolve --published use the published-only Delivery API index.\n Articles: use --article-slug (not --page-slug). search --type article sorts by publication date.\n\nSessions persist between MCP calls (Redis on hosted, disk locally). MCP auto-uses session \"_mcp\" unless you pass --session.\nUse --session <name> before the subcommand to isolate concurrent workflows, e.g. [\"--session\", \"my-work\", \"open\", \"/\"].\nUse --space <name> to target a specific Contentful space (local MCP only \u2014 omit for hosted Integrations).\nStateless read (no open required): [\"read\", \"<entry-id>\", \"--id\"] or [\"read\", \"<entry-id>\", \"--id\", \"heading\"].\npeek is one-shot (no session): use [\"peek\", \"--page-slug\", \"<slug>\"] or [\"peek\", \"--id\", \"<entry-id>\"]. Includes rootFields in JSON \u2014 no follow-up read required.\nOutput is always JSON (CMS_EDIT_JSON=1 is forced by the MCP server).\n\n\nRich text tips:\n --content \"<markdown>\" preferred named flag for inline content (any length)\n --base64 \"<encoded>\" fully environment-agnostic, no filesystem needed\n\nJSON bulk input (create from-json, batch run, taxonomy/person/article-tags imports, set object fields, rtf patch):\n --json \"<string>\" inline JSON (small payloads)\n --json-base64 \"<b64>\" base64-encoded JSON (large payloads)\n\nAsset upload (hosted MCP):\n Large files: [\"staged-upload\", \"request\", \"--file-name\", \"photo.png\", \"--mime\", \"image/png\"] then curl uploadUrl, then [\"asset\", \"upload\", \"--staged\", \"<id>\", ...].\n Or cms_edit_request_staged_upload when available. Small files: --url or --base64 with --mime and --file-name";
5
5
  export declare function registerCmsEditTools(server: McpServer, runCmsEdit: RunCmsEditFn, hosted?: HostedMcpInfo): void;
6
6
  export declare function getMcpServerInfo(hosted?: HostedMcpInfo): {
7
7
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"cms-edit.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/cms-edit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAOjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,gBAAgB,w6MAwEkF,CAAC;AAEhH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,YAAY,EACxB,MAAM,CAAC,EAAE,aAAa,GACrB,IAAI,CAsCN;AAED,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAE1F"}
1
+ {"version":3,"file":"cms-edit.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/cms-edit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAOjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,gBAAgB,0iPAqFkF,CAAC;AAEhH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,YAAY,EACxB,MAAM,CAAC,EAAE,aAAa,GACrB,IAAI,CAsCN;AAED,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAE1F"}
@@ -14,10 +14,18 @@ Read the cms-edit://guide resource for the full guide.
14
14
  Workflow: open → snapshot → read/set/rtf/add/remove → diff → save
15
15
  All saves create drafts only — a human must publish in Contentful.
16
16
 
17
+ CRITICAL — sessions and open:
18
+ set/rtf field edits are staged until save. Plain open while dirty HARD-FAILS (does not wipe silently).
19
+ ["open", "--resume"] — re-print current session; keeps all staged edits (no Contentful refetch)
20
+ ["open", "--overwrite", "--id", "<id>"] — abandon staged work and load a new entry
21
+ ["discard"] then open — also valid abandon path
22
+ Never re-open the same article mid-edit without save/discard — use --resume if you only need the tree again.
23
+
17
24
  Common command sequences:
18
25
  ["open", "--page-slug", "/"] — homepage (CMS slug index; /index is equivalent)
19
26
  ["open", "--page-slug", "/pricing"] — load a page by slug
20
27
  ["open", "--id", "<entry-id>"] — load by Contentful entry ID
28
+ ["open", "--resume"] — keep staged work; re-print snapshot
21
29
  ["snapshot"] — print content tree with @refs
22
30
  ["read", "@c0"] — read all fields of a component (requires open session)
23
31
  ["read", "@c0", "heading"] — read a specific field (requires open session)
@@ -27,13 +35,17 @@ Common command sequences:
27
35
  ["peek", "--page-slug", "/pricing"] — preview tree + root fields (no session)
28
36
  ["peek", "--id", "<entry-id>"] — preview by entry ID with rootFields in JSON
29
37
  ["set", "@c0", "heading", "New heading"] — set a scalar field
38
+ ["set", "<entry-id>", "autoplay", "true"] — mid-session scalar by ID (e.g. media; no re-open)
39
+ ["set", "<entry-id>:autoplay=true"] — same, batch-shaped token on page session
40
+ ["set", "@c1", "visual", "<media-id>", "--link"] — single Entry link field only
41
+ ["set", "@c2", "contents", "<id1>,<id2>", "--links"] — array of links (full replace); never --link on arrays
30
42
  ["rtf", "@c0", "body", "--content", "# H1\\n\\nBody."] — set rich text (preferred for AI)
31
43
  ["rtf", "@c0", "body", "--base64", "<encoded>"] — set rich text via base64 (no filesystem)
32
44
  ["diff"] — show pending changes
33
45
  ["save"] — write drafts to Contentful
34
46
  ["discard"] — discard unsaved changes
35
47
  ["links", "set", "@c0", "0", "variant", "link"] — set scalar field on link at index 0
36
- ["batch", "set", "<entry-id>:variant=link"] — queue scalar edit by entry ID
48
+ ["batch", "set", "<entry-id>:variant=link"] — scalar by ID (OK mid-page session; then save)
37
49
  ["batch", "diff"] — show pending batch edits
38
50
  ["batch", "save"] — save all batch edits as drafts
39
51
  ["health"] — verify config and connectivity
@@ -65,6 +77,7 @@ Stateless read (no open required): ["read", "<entry-id>", "--id"] or ["read", "<
65
77
  peek is one-shot (no session): use ["peek", "--page-slug", "<slug>"] or ["peek", "--id", "<entry-id>"]. Includes rootFields in JSON — no follow-up read required.
66
78
  Output is always JSON (CMS_EDIT_JSON=1 is forced by the MCP server).
67
79
 
80
+
68
81
  Rich text tips:
69
82
  --content "<markdown>" preferred named flag for inline content (any length)
70
83
  --base64 "<encoded>" fully environment-agnostic, no filesystem needed
@@ -1 +1 @@
1
- {"version":3,"file":"cms-edit.js","sourceRoot":"","sources":["../../../src/mcp/tools/cms-edit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+GAwE+E,CAAC;AAEhH,MAAM,UAAU,oBAAoB,CAClC,MAAiB,EACjB,UAAwB,EACxB,MAAsB;IAEtB,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,2BAA2B,CACzB,8JAA8J,EAC9J,MAAM,CACP,EACD,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;QAC9B,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;iBAC9D;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,UAAU,EACV,2BAA2B,CAAC,gBAAgB,EAAE,MAAM,CAAC,EACrD;QACE,IAAI,EAAE,CAAC;aACJ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,CACP,uJAAuJ,CACxJ;KACJ,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACjB,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QAC5C,iBAAiB,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,CAAC;QAC9C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACxD,CAAC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAsB;IACrD,OAAO,EAAE,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC7E,CAAC"}
1
+ {"version":3,"file":"cms-edit.js","sourceRoot":"","sources":["../../../src/mcp/tools/cms-edit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+GAqF+E,CAAC;AAEhH,MAAM,UAAU,oBAAoB,CAClC,MAAiB,EACjB,UAAwB,EACxB,MAAsB;IAEtB,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,2BAA2B,CACzB,8JAA8J,EAC9J,MAAM,CACP,EACD,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;QAC9B,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;iBAC9D;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,UAAU,EACV,2BAA2B,CAAC,gBAAgB,EAAE,MAAM,CAAC,EACrD;QACE,IAAI,EAAE,CAAC;aACJ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,CACP,uJAAuJ,CACxJ;KACJ,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACjB,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QAC5C,iBAAiB,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,CAAC;QAC9C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACxD,CAAC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAsB;IACrD,OAAO,EAAE,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC7E,CAAC"}
@@ -3,8 +3,8 @@ export declare function statusBadge(status: EntryStatus): string;
3
3
  export declare function refLabel(ref: string): string;
4
4
  export declare function typeLabel(label: string): string;
5
5
  export declare function entryLabel(label: string): string;
6
- /** Emits an error. In JSON mode: {"ok":false,"error":"..."} to stderr. */
7
- export declare function errorMsg(msg: string): void;
6
+ /** Emits an error. In JSON mode: {"ok":false,"error":"..."} to stderr. Optional extra fields are merged in JSON mode. */
7
+ export declare function errorMsg(msg: string, extra?: Record<string, unknown>): void;
8
8
  /** Emits a warning. In JSON mode: {"warn":"..."} to stdout. */
9
9
  export declare function warnMsg(msg: string): void;
10
10
  /** Emits a success result. In JSON mode: {"ok":true,"message":"..."} to stdout. */
@@ -1 +1 @@
1
- {"version":3,"file":"print.d.ts","sourceRoot":"","sources":["../../src/output/print.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAWvD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,0EAA0E;AAC1E,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAM1C;AAED,+DAA+D;AAC/D,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAMzC;AAED,mFAAmF;AACnF,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAM5C;AAED,wEAAwE;AACxE,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAIzC"}
1
+ {"version":3,"file":"print.d.ts","sourceRoot":"","sources":["../../src/output/print.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAWvD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,yHAAyH;AACzH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAM3E;AAED,+DAA+D;AAC/D,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAMzC;AAED,mFAAmF;AACnF,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAM5C;AAED,wEAAwE;AACxE,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAIzC"}