@superdoc-dev/cli 0.3.0-next.36 → 0.3.0-next.38

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 (2) hide show
  1. package/dist/index.js +1144 -342
  2. package/package.json +8 -8
package/dist/index.js CHANGED
@@ -1155,8 +1155,17 @@ function camelToKebab(value) {
1155
1155
  return value.replace(/[A-Z]/g, (char) => `-${char.toLowerCase()}`);
1156
1156
  }
1157
1157
  function formatInlineAliasDescription(key) {
1158
+ if (key === "rtl") {
1159
+ return "Set or clear the `rtl` inline run property on the target text range. This does not change paragraph direction; use `format.paragraph.setDirection` for paragraph-level RTL.";
1160
+ }
1158
1161
  return `Set or clear the \`${key}\` inline run property on the target text range.`;
1159
1162
  }
1163
+ function formatInlineAliasExpectedResult(key) {
1164
+ if (key === "rtl") {
1165
+ return "Returns a TextMutationReceipt confirming only the inline run property patch was applied to the target range; paragraph direction is unchanged.";
1166
+ }
1167
+ return "Returns a TextMutationReceipt confirming the inline run property patch was applied to the target range.";
1168
+ }
1160
1169
  function projectFromDefinitions(fn) {
1161
1170
  return Object.fromEntries(OPERATION_IDS.map((id) => [id, fn(id, OPERATION_DEFINITIONS[id])]));
1162
1171
  }
@@ -1234,7 +1243,7 @@ var init_operation_definitions = __esm(() => {
1234
1243
  const definition = {
1235
1244
  memberPath: operationId,
1236
1245
  description: formatInlineAliasDescription(entry.key),
1237
- expectedResult: "Returns a TextMutationReceipt confirming the inline run property patch was applied to the target range.",
1246
+ expectedResult: formatInlineAliasExpectedResult(entry.key),
1238
1247
  requiresDocumentContext: true,
1239
1248
  metadata: mutationOperation({
1240
1249
  idempotency: "conditional",
@@ -2175,6 +2184,38 @@ var init_operation_definitions = __esm(() => {
2175
2184
  referenceDocPath: "format/paragraph/clear-shading.mdx",
2176
2185
  referenceGroup: "format.paragraph"
2177
2186
  },
2187
+ "format.paragraph.setDirection": {
2188
+ memberPath: "format.paragraph.setDirection",
2189
+ description: "Set paragraph base direction (LTR or RTL via w:bidi). Optionally align text to match.",
2190
+ expectedResult: "Returns a ParagraphMutationResult; reports NO_OP if the direction already matches.",
2191
+ requiresDocumentContext: true,
2192
+ metadata: mutationOperation({
2193
+ idempotency: "conditional",
2194
+ supportsDryRun: true,
2195
+ supportsTrackedMode: false,
2196
+ possibleFailureCodes: ["NO_OP"],
2197
+ throws: T_PARAGRAPH_MUTATION
2198
+ }),
2199
+ referenceDocPath: "format/paragraph/set-direction.mdx",
2200
+ referenceGroup: "format.paragraph",
2201
+ intentGroup: "format",
2202
+ intentAction: "set_direction"
2203
+ },
2204
+ "format.paragraph.clearDirection": {
2205
+ memberPath: "format.paragraph.clearDirection",
2206
+ description: "Remove explicit paragraph direction, reverting to inherited or default (LTR).",
2207
+ expectedResult: "Returns a ParagraphMutationResult; reports NO_OP if no direction is set.",
2208
+ requiresDocumentContext: true,
2209
+ metadata: mutationOperation({
2210
+ idempotency: "conditional",
2211
+ supportsDryRun: true,
2212
+ supportsTrackedMode: false,
2213
+ possibleFailureCodes: ["NO_OP"],
2214
+ throws: T_PARAGRAPH_MUTATION
2215
+ }),
2216
+ referenceDocPath: "format/paragraph/clear-direction.mdx",
2217
+ referenceGroup: "format.paragraph"
2218
+ },
2178
2219
  "lists.list": {
2179
2220
  memberPath: "lists.list",
2180
2221
  description: "List all list nodes in the document, optionally filtered by scope.",
@@ -6125,7 +6166,7 @@ function executeWrite(adapter, request, options) {
6125
6166
  }
6126
6167
 
6127
6168
  // ../../packages/document-api/src/paragraphs/paragraphs.types.ts
6128
- var PARAGRAPH_ALIGNMENTS, TAB_STOP_ALIGNMENTS, TAB_STOP_LEADERS, BORDER_SIDES, CLEAR_BORDER_SIDES, LINE_RULES;
6169
+ var PARAGRAPH_ALIGNMENTS, TAB_STOP_ALIGNMENTS, TAB_STOP_LEADERS, BORDER_SIDES, CLEAR_BORDER_SIDES, LINE_RULES, PARAGRAPH_DIRECTIONS, ALIGNMENT_POLICIES;
6129
6170
  var init_paragraphs_types = __esm(() => {
6130
6171
  PARAGRAPH_ALIGNMENTS = ["left", "center", "right", "justify"];
6131
6172
  TAB_STOP_ALIGNMENTS = ["left", "center", "right", "decimal", "bar"];
@@ -6133,6 +6174,8 @@ var init_paragraphs_types = __esm(() => {
6133
6174
  BORDER_SIDES = ["top", "bottom", "left", "right", "between", "bar"];
6134
6175
  CLEAR_BORDER_SIDES = ["top", "bottom", "left", "right", "between", "bar", "all"];
6135
6176
  LINE_RULES = ["auto", "exact", "atLeast"];
6177
+ PARAGRAPH_DIRECTIONS = ["ltr", "rtl"];
6178
+ ALIGNMENT_POLICIES = ["preserve", "matchDirection"];
6136
6179
  });
6137
6180
 
6138
6181
  // ../../packages/document-api/src/paragraphs/paragraphs.ts
@@ -6388,6 +6431,23 @@ function validateClearShading(input) {
6388
6431
  assertParagraphTarget(input, "format.paragraph.clearShading");
6389
6432
  assertNoUnknownFields(input, CLEAR_SHADING_KEYS, "format.paragraph.clearShading");
6390
6433
  }
6434
+ function validateSetDirection(input) {
6435
+ const op = "format.paragraph.setDirection";
6436
+ assertParagraphTarget(input, op);
6437
+ assertNoUnknownFields(input, SET_DIRECTION_KEYS, op);
6438
+ const rec = input;
6439
+ if (rec.direction === undefined) {
6440
+ throw new DocumentApiValidationError("INVALID_INPUT", `${op} requires a direction field.`);
6441
+ }
6442
+ assertOneOf(rec.direction, "direction", PARAGRAPH_DIRECTIONS, op);
6443
+ if (rec.alignmentPolicy !== undefined) {
6444
+ assertOneOf(rec.alignmentPolicy, "alignmentPolicy", ALIGNMENT_POLICIES, op);
6445
+ }
6446
+ }
6447
+ function validateClearDirection(input) {
6448
+ assertParagraphTarget(input, "format.paragraph.clearDirection");
6449
+ assertNoUnknownFields(input, CLEAR_DIRECTION_KEYS, "format.paragraph.clearDirection");
6450
+ }
6391
6451
  function executeParagraphsSetStyle(adapter, input, options) {
6392
6452
  validateSetStyle(input);
6393
6453
  return adapter.setStyle(input, normalizeMutationOptions(options));
@@ -6464,7 +6524,15 @@ function executeParagraphsClearShading(adapter, input, options) {
6464
6524
  validateClearShading(input);
6465
6525
  return adapter.clearShading(input, normalizeMutationOptions(options));
6466
6526
  }
6467
- var PARAGRAPH_BLOCK_TYPES, SET_STYLE_KEYS, CLEAR_STYLE_KEYS, RESET_DIRECT_FORMATTING_KEYS, SET_ALIGNMENT_KEYS, CLEAR_ALIGNMENT_KEYS, SET_INDENTATION_KEYS, CLEAR_INDENTATION_KEYS, SET_SPACING_KEYS, CLEAR_SPACING_KEYS, SET_KEEP_OPTIONS_KEYS, SET_OUTLINE_LEVEL_KEYS, SET_FLOW_OPTIONS_KEYS, SET_TAB_STOP_KEYS, CLEAR_TAB_STOP_KEYS, CLEAR_ALL_TAB_STOPS_KEYS, SET_BORDER_KEYS, CLEAR_BORDER_KEYS, SET_SHADING_KEYS, CLEAR_SHADING_KEYS;
6527
+ function executeParagraphsSetDirection(adapter, input, options) {
6528
+ validateSetDirection(input);
6529
+ return adapter.setDirection(input, normalizeMutationOptions(options));
6530
+ }
6531
+ function executeParagraphsClearDirection(adapter, input, options) {
6532
+ validateClearDirection(input);
6533
+ return adapter.clearDirection(input, normalizeMutationOptions(options));
6534
+ }
6535
+ var PARAGRAPH_BLOCK_TYPES, SET_STYLE_KEYS, CLEAR_STYLE_KEYS, RESET_DIRECT_FORMATTING_KEYS, SET_ALIGNMENT_KEYS, CLEAR_ALIGNMENT_KEYS, SET_INDENTATION_KEYS, CLEAR_INDENTATION_KEYS, SET_SPACING_KEYS, CLEAR_SPACING_KEYS, SET_KEEP_OPTIONS_KEYS, SET_OUTLINE_LEVEL_KEYS, SET_FLOW_OPTIONS_KEYS, SET_TAB_STOP_KEYS, CLEAR_TAB_STOP_KEYS, CLEAR_ALL_TAB_STOPS_KEYS, SET_BORDER_KEYS, CLEAR_BORDER_KEYS, SET_SHADING_KEYS, CLEAR_SHADING_KEYS, SET_DIRECTION_KEYS, CLEAR_DIRECTION_KEYS;
6468
6536
  var init_paragraphs = __esm(() => {
6469
6537
  init_errors2();
6470
6538
  init_validation_primitives();
@@ -6490,6 +6558,8 @@ var init_paragraphs = __esm(() => {
6490
6558
  CLEAR_BORDER_KEYS = new Set(["target", "side"]);
6491
6559
  SET_SHADING_KEYS = new Set(["target", "fill", "color", "pattern"]);
6492
6560
  CLEAR_SHADING_KEYS = new Set(["target"]);
6561
+ SET_DIRECTION_KEYS = new Set(["target", "direction", "alignmentPolicy"]);
6562
+ CLEAR_DIRECTION_KEYS = new Set(["target"]);
6493
6563
  });
6494
6564
 
6495
6565
  // ../../packages/document-api/src/inline-semantics/token-sets.ts
@@ -7184,8 +7254,20 @@ function ref(name) {
7184
7254
  function targetLocatorWithPayload(payloadProperties, payloadRequired = []) {
7185
7255
  return {
7186
7256
  oneOf: [
7187
- objectSchema({ target: ref("SelectionTarget"), ...payloadProperties }, ["target", ...payloadRequired]),
7188
- objectSchema({ ref: { type: "string" }, ...payloadProperties }, ["ref", ...payloadRequired])
7257
+ objectSchema({
7258
+ target: {
7259
+ ...ref("SelectionTarget"),
7260
+ description: "Selection target: {kind:'selection', start:{kind:'text', blockId, offset}, end:{kind:'text', blockId, offset}}. Use 'ref' instead when you have a search result handle."
7261
+ },
7262
+ ...payloadProperties
7263
+ }, ["target", ...payloadRequired]),
7264
+ objectSchema({
7265
+ ref: {
7266
+ type: "string",
7267
+ description: "Handle ref string from a superdoc_search result. Pass the handle.ref value directly (e.g. 'text:eyJ...'). Preferred over 'target' for inline formatting."
7268
+ },
7269
+ ...payloadProperties
7270
+ }, ["ref", ...payloadRequired])
7189
7271
  ]
7190
7272
  };
7191
7273
  }
@@ -7837,6 +7919,7 @@ var init_schemas = __esm(() => {
7837
7919
  nodeId: { type: "string" }
7838
7920
  }, ["kind", "nodeType", "nodeId"]),
7839
7921
  SelectionPoint: {
7922
+ description: "A point in the document. Use {kind:'text', blockId, offset} for character positions or {kind:'nodeEdge', node:{kind:'block', nodeType, nodeId}, edge:'before'|'after'} for block boundaries.",
7840
7923
  oneOf: [
7841
7924
  objectSchema({ kind: { const: "text" }, blockId: { type: "string" }, offset: { type: "integer", minimum: 0 } }, [
7842
7925
  "kind",
@@ -8121,15 +8204,18 @@ var init_schemas = __esm(() => {
8121
8204
  hint: { type: "string" }
8122
8205
  }, ["message"]);
8123
8206
  textSelectorSchema = objectSchema({
8124
- type: { const: "text" },
8125
- pattern: { type: "string" },
8126
- mode: { enum: ["contains", "regex"] },
8127
- caseSensitive: { type: "boolean" }
8207
+ type: { const: "text", description: "Must be 'text' for text pattern search." },
8208
+ pattern: { type: "string", description: "Text or regex pattern to match." },
8209
+ mode: { enum: ["contains", "regex"], description: "Match mode: 'contains' (substring) or 'regex'." },
8210
+ caseSensitive: { type: "boolean", description: "Case-sensitive matching. Default: false." }
8128
8211
  }, ["type", "pattern"]);
8129
8212
  nodeSelectorSchema = objectSchema({
8130
- type: { const: "node" },
8131
- nodeType: { enum: [...nodeTypeValues] },
8132
- kind: { enum: ["block", "inline"] }
8213
+ type: { const: "node", description: "Must be 'node' for node type search." },
8214
+ nodeType: {
8215
+ enum: [...nodeTypeValues],
8216
+ description: "Block type to match (paragraph, heading, table, listItem, etc.)."
8217
+ },
8218
+ kind: { enum: ["block", "inline"], description: "Filter: 'block' or 'inline'." }
8133
8219
  }, ["type"]);
8134
8220
  selectorShorthandSchema = objectSchema({
8135
8221
  nodeType: { enum: [...nodeTypeValues] }
@@ -8510,20 +8596,36 @@ var init_schemas = __esm(() => {
8510
8596
  oneOf: [{ type: "object" }, { type: "array", items: { type: "object" } }]
8511
8597
  };
8512
8598
  placementSchema = { enum: ["before", "after", "insideStart", "insideEnd"] };
8513
- nestingPolicySchema = objectSchema({
8514
- tables: { enum: ["forbid", "allow"] }
8515
- });
8599
+ nestingPolicySchema = {
8600
+ ...objectSchema({
8601
+ tables: { enum: ["forbid", "allow"] }
8602
+ }),
8603
+ description: "Controls nesting behavior. tables: 'allow' permits inserting tables inside other tables."
8604
+ };
8516
8605
  insertInputSchema = {
8517
8606
  oneOf: [
8518
8607
  objectSchema({
8519
- target: textAddressSchema,
8520
- value: { type: "string" },
8521
- type: { type: "string", enum: ["text", "markdown", "html"] }
8608
+ target: {
8609
+ ...textAddressSchema,
8610
+ description: "Insertion point: {kind:'text', blockId:'...', range:{start, end}}."
8611
+ },
8612
+ value: { type: "string", description: "Text content to insert." },
8613
+ type: {
8614
+ type: "string",
8615
+ enum: ["text", "markdown", "html"],
8616
+ description: "Content format: 'text' (default), 'markdown', or 'html'."
8617
+ }
8522
8618
  }, ["value"]),
8523
8619
  objectSchema({
8524
- target: blockNodeAddressSchema,
8525
- content: sdFragmentSchema,
8526
- placement: placementSchema,
8620
+ target: {
8621
+ ...blockNodeAddressSchema,
8622
+ description: "Block address for structural insertion: {kind:'block', nodeType:'...', nodeId:'...'}."
8623
+ },
8624
+ content: { ...sdFragmentSchema, description: "Document fragment to insert (structured content)." },
8625
+ placement: {
8626
+ ...placementSchema,
8627
+ description: "Where to place content relative to target: 'before', 'after', 'insideStart', or 'insideEnd'."
8628
+ },
8527
8629
  nestingPolicy: nestingPolicySchema
8528
8630
  }, ["content"])
8529
8631
  ]
@@ -8996,7 +9098,10 @@ var init_schemas = __esm(() => {
8996
9098
  },
8997
9099
  getHtml: {
8998
9100
  input: objectSchema({
8999
- unflattenLists: { type: "boolean" }
9101
+ unflattenLists: {
9102
+ type: "boolean",
9103
+ description: "When true, flattens nested list structures in output. Default: false."
9104
+ }
9000
9105
  }),
9001
9106
  output: { type: "string" }
9002
9107
  },
@@ -9033,18 +9138,27 @@ var init_schemas = __esm(() => {
9033
9138
  input: {
9034
9139
  oneOf: [
9035
9140
  {
9036
- ...targetLocatorWithPayload({ text: { type: "string" } }, ["text"])
9141
+ ...targetLocatorWithPayload({ text: { type: "string", description: "Replacement text content." } }, ["text"])
9037
9142
  },
9038
9143
  {
9039
9144
  oneOf: [
9040
9145
  objectSchema({
9041
- target: { oneOf: [blockNodeAddressSchema, selectionTargetSchema] },
9042
- content: sdFragmentSchema,
9146
+ target: {
9147
+ oneOf: [blockNodeAddressSchema, selectionTargetSchema],
9148
+ description: "Target block or selection to replace."
9149
+ },
9150
+ content: {
9151
+ ...sdFragmentSchema,
9152
+ description: "Document fragment to replace with (structured content)."
9153
+ },
9043
9154
  nestingPolicy: nestingPolicySchema
9044
9155
  }, ["target", "content"]),
9045
9156
  objectSchema({
9046
- ref: { type: "string" },
9047
- content: sdFragmentSchema,
9157
+ ref: { type: "string", description: "Reference handle from a previous search result." },
9158
+ content: {
9159
+ ...sdFragmentSchema,
9160
+ description: "Document fragment to replace with (structured content)."
9161
+ },
9048
9162
  nestingPolicy: nestingPolicySchema
9049
9163
  }, ["ref", "content"])
9050
9164
  ]
@@ -9057,7 +9171,9 @@ var init_schemas = __esm(() => {
9057
9171
  },
9058
9172
  delete: {
9059
9173
  input: {
9060
- ...targetLocatorWithPayload({ behavior: deleteBehaviorSchema })
9174
+ ...targetLocatorWithPayload({
9175
+ behavior: { ...deleteBehaviorSchema, description: "Delete behavior: 'selection' (default) or 'exact'." }
9176
+ })
9061
9177
  },
9062
9178
  output: textMutationResultSchemaFor("delete"),
9063
9179
  success: textMutationSuccessSchema,
@@ -9065,7 +9181,12 @@ var init_schemas = __esm(() => {
9065
9181
  },
9066
9182
  "format.apply": {
9067
9183
  input: {
9068
- ...targetLocatorWithPayload({ inline: buildInlineRunPatchSchema() }, ["inline"])
9184
+ ...targetLocatorWithPayload({
9185
+ inline: {
9186
+ ...buildInlineRunPatchSchema(),
9187
+ description: "Inline formatting properties to apply. Set a property to apply it, use null to clear it. Example: {bold: true, italic: true} or {bold: null} to remove bold."
9188
+ }
9189
+ }, ["inline"])
9069
9190
  },
9070
9191
  output: textMutationResultSchemaFor("format.apply"),
9071
9192
  success: textMutationSuccessSchema,
@@ -9191,10 +9312,18 @@ var init_schemas = __esm(() => {
9191
9312
  input: {
9192
9313
  ...objectSchema({
9193
9314
  target: paragraphTargetSchema,
9194
- left: { type: "integer", minimum: 0 },
9195
- right: { type: "integer", minimum: 0 },
9196
- firstLine: { type: "integer", minimum: 0 },
9197
- hanging: { type: "integer", minimum: 0 }
9315
+ left: { type: "integer", minimum: 0, description: "Left indentation in twips (1440 = 1 inch)." },
9316
+ right: { type: "integer", minimum: 0, description: "Right indentation in twips (1440 = 1 inch)." },
9317
+ firstLine: {
9318
+ type: "integer",
9319
+ minimum: 0,
9320
+ description: "First line indent in twips. Cannot be combined with hanging."
9321
+ },
9322
+ hanging: {
9323
+ type: "integer",
9324
+ minimum: 0,
9325
+ description: "Hanging indent in twips. Cannot be combined with firstLine."
9326
+ }
9198
9327
  }, ["target"]),
9199
9328
  anyOf: [{ required: ["left"] }, { required: ["right"] }, { required: ["firstLine"] }, { required: ["hanging"] }],
9200
9329
  not: { required: ["firstLine", "hanging"] }
@@ -9213,10 +9342,17 @@ var init_schemas = __esm(() => {
9213
9342
  input: {
9214
9343
  ...objectSchema({
9215
9344
  target: paragraphTargetSchema,
9216
- before: { type: "integer", minimum: 0 },
9217
- after: { type: "integer", minimum: 0 },
9218
- line: { type: "integer", minimum: 1 },
9219
- lineRule: { enum: [...LINE_RULES] }
9345
+ before: { type: "integer", minimum: 0, description: "Space before paragraph in twips (20 twips = 1pt)." },
9346
+ after: { type: "integer", minimum: 0, description: "Space after paragraph in twips (20 twips = 1pt)." },
9347
+ line: {
9348
+ type: "integer",
9349
+ minimum: 1,
9350
+ description: "Line spacing value. Meaning depends on lineRule. Must be provided together with lineRule."
9351
+ },
9352
+ lineRule: {
9353
+ enum: [...LINE_RULES],
9354
+ description: "Line spacing rule. Required when 'line' is set."
9355
+ }
9220
9356
  }, ["target"]),
9221
9357
  anyOf: [{ required: ["before"] }, { required: ["after"] }, { required: ["line"] }, { required: ["lineRule"] }],
9222
9358
  if: { required: ["line"] },
@@ -9342,6 +9478,22 @@ var init_schemas = __esm(() => {
9342
9478
  success: paragraphMutationSuccessSchema,
9343
9479
  failure: paragraphMutationFailureSchemaFor("format.paragraph.clearShading")
9344
9480
  },
9481
+ "format.paragraph.setDirection": {
9482
+ input: objectSchema({
9483
+ target: paragraphTargetSchema,
9484
+ direction: { type: "string", enum: ["ltr", "rtl"] },
9485
+ alignmentPolicy: { type: "string", enum: ["preserve", "matchDirection"] }
9486
+ }, ["target", "direction"]),
9487
+ output: paragraphMutationResultSchemaFor("format.paragraph.setDirection"),
9488
+ success: paragraphMutationSuccessSchema,
9489
+ failure: paragraphMutationFailureSchemaFor("format.paragraph.setDirection")
9490
+ },
9491
+ "format.paragraph.clearDirection": {
9492
+ input: objectSchema({ target: paragraphTargetSchema }, ["target"]),
9493
+ output: paragraphMutationResultSchemaFor("format.paragraph.clearDirection"),
9494
+ success: paragraphMutationSuccessSchema,
9495
+ failure: paragraphMutationFailureSchemaFor("format.paragraph.clearDirection")
9496
+ },
9345
9497
  "styles.apply": (() => {
9346
9498
  const runInputSchema = objectSchema({
9347
9499
  target: objectSchema({ scope: { const: "docDefaults" }, channel: { const: "run" } }, ["scope", "channel"]),
@@ -9388,6 +9540,7 @@ var init_schemas = __esm(() => {
9388
9540
  "create.paragraph": {
9389
9541
  input: objectSchema({
9390
9542
  at: {
9543
+ description: "Position: {kind:'documentEnd'} to append, {kind:'documentStart'} to prepend, or {kind:'before'|'after', target:{kind:'block', nodeType:'...', nodeId:'...'}} for relative placement.",
9391
9544
  oneOf: [
9392
9545
  objectSchema({ kind: { const: "documentStart" } }, ["kind"]),
9393
9546
  objectSchema({ kind: { const: "documentEnd" } }, ["kind"]),
@@ -9401,7 +9554,7 @@ var init_schemas = __esm(() => {
9401
9554
  }, ["kind", "target"])
9402
9555
  ]
9403
9556
  },
9404
- text: { type: "string" }
9557
+ text: { type: "string", description: "Paragraph text content." }
9405
9558
  }),
9406
9559
  output: createParagraphResultSchemaFor("create.paragraph"),
9407
9560
  success: createParagraphSuccessSchema,
@@ -9409,8 +9562,9 @@ var init_schemas = __esm(() => {
9409
9562
  },
9410
9563
  "create.heading": {
9411
9564
  input: objectSchema({
9412
- level: headingLevelSchema,
9565
+ level: { ...headingLevelSchema, description: "Heading level (1-6)." },
9413
9566
  at: {
9567
+ description: "Position: {kind:'documentEnd'} to append, {kind:'documentStart'} to prepend, or {kind:'before'|'after', target:{kind:'block', nodeType:'...', nodeId:'...'}} for relative placement.",
9414
9568
  oneOf: [
9415
9569
  objectSchema({ kind: { const: "documentStart" } }, ["kind"]),
9416
9570
  objectSchema({ kind: { const: "documentEnd" } }, ["kind"]),
@@ -9424,7 +9578,7 @@ var init_schemas = __esm(() => {
9424
9578
  }, ["kind", "target"])
9425
9579
  ]
9426
9580
  },
9427
- text: { type: "string" }
9581
+ text: { type: "string", description: "Heading text content." }
9428
9582
  }, ["level"]),
9429
9583
  output: createHeadingResultSchemaFor("create.heading"),
9430
9584
  success: createHeadingSuccessSchema,
@@ -9670,9 +9824,15 @@ var init_schemas = __esm(() => {
9670
9824
  },
9671
9825
  "lists.insert": {
9672
9826
  input: objectSchema({
9673
- target: listItemAddressSchema,
9674
- position: listInsertPositionSchema,
9675
- text: { type: "string" }
9827
+ target: {
9828
+ ...listItemAddressSchema,
9829
+ description: "The target list item. For 'insert': the item to insert relative to. For 'create' with mode 'fromParagraphs': use nodeType 'paragraph' instead. Format: {kind:'block', nodeType:'listItem', nodeId:'<id>'}."
9830
+ },
9831
+ position: {
9832
+ ...listInsertPositionSchema,
9833
+ description: "Required. Insert position relative to target: 'before' or 'after'."
9834
+ },
9835
+ text: { type: "string", description: "Text content for the new list item." }
9676
9836
  }, ["target", "position"]),
9677
9837
  output: listsInsertResultSchemaFor("lists.insert"),
9678
9838
  success: listsInsertSuccessSchema,
@@ -9682,11 +9842,28 @@ var init_schemas = __esm(() => {
9682
9842
  input: {
9683
9843
  type: "object",
9684
9844
  properties: {
9685
- mode: { enum: ["empty", "fromParagraphs"] },
9686
- at: ref("BlockAddress"),
9687
- target: ref("BlockAddressOrRange"),
9688
- kind: listKindSchema,
9689
- level: { type: "integer", minimum: 0, maximum: 8 },
9845
+ mode: {
9846
+ enum: ["empty", "fromParagraphs"],
9847
+ description: "Required. Creation mode: 'empty' creates a new empty list at the paragraph specified by 'at'; 'fromParagraphs' converts existing paragraph(s) specified by 'target' into list items."
9848
+ },
9849
+ at: {
9850
+ ...ref("BlockAddress"),
9851
+ description: "Required when mode is 'empty'. The paragraph to create the list at. Format: {kind:'block', nodeType:'paragraph', nodeId:'<id>'}."
9852
+ },
9853
+ target: {
9854
+ ...ref("BlockAddressOrRange"),
9855
+ description: "Required when mode is 'fromParagraphs'. The paragraph(s) to convert into list items. Format: {kind:'block', nodeType:'paragraph', nodeId:'<id>'}."
9856
+ },
9857
+ kind: {
9858
+ ...listKindSchema,
9859
+ description: "List type: 'bullet' for bullet points, 'ordered' for numbered lists."
9860
+ },
9861
+ level: {
9862
+ type: "integer",
9863
+ minimum: 0,
9864
+ maximum: 8,
9865
+ description: "List nesting level (0-8). 0 is the top level."
9866
+ },
9690
9867
  preset: {
9691
9868
  enum: [
9692
9869
  "decimal",
@@ -9699,7 +9876,8 @@ var init_schemas = __esm(() => {
9699
9876
  "circle",
9700
9877
  "square",
9701
9878
  "dash"
9702
- ]
9879
+ ],
9880
+ description: "Predefined list style preset. Overrides 'kind' with a specific numbering or bullet format."
9703
9881
  },
9704
9882
  style: objectSchema({
9705
9883
  version: { const: 1 },
@@ -9964,7 +10142,10 @@ var init_schemas = __esm(() => {
9964
10142
  input: objectSchema({
9965
10143
  target: listItemAddressSchema,
9966
10144
  kind: { enum: ["ordered", "bullet"] },
9967
- continuity: { enum: ["preserve", "none"] }
10145
+ continuity: {
10146
+ enum: ["preserve", "none"],
10147
+ description: "Numbering continuity: 'preserve' keeps numbering; 'none' restarts."
10148
+ }
9968
10149
  }, ["target", "kind"]),
9969
10150
  output: listsMutateItemResultSchemaFor("lists.setType"),
9970
10151
  success: listsMutateItemSuccessSchema,
@@ -10212,9 +10393,12 @@ var init_schemas = __esm(() => {
10212
10393
  },
10213
10394
  "comments.create": {
10214
10395
  input: objectSchema({
10215
- text: { type: "string" },
10216
- target: textAddressSchema,
10217
- parentCommentId: { type: "string" }
10396
+ text: { type: "string", description: "Comment text content." },
10397
+ target: {
10398
+ ...textAddressSchema,
10399
+ description: "Text range to anchor the comment: {kind:'text', blockId:'...', range:{start:N, end:N}}."
10400
+ },
10401
+ parentCommentId: { type: "string", description: "Parent comment ID for creating a threaded reply." }
10218
10402
  }, ["text"]),
10219
10403
  output: receiptResultSchemaFor("comments.create"),
10220
10404
  success: receiptSuccessSchema,
@@ -10223,10 +10407,13 @@ var init_schemas = __esm(() => {
10223
10407
  "comments.patch": {
10224
10408
  input: objectSchema({
10225
10409
  commentId: { type: "string" },
10226
- text: { type: "string" },
10410
+ text: { type: "string", description: "Updated comment text." },
10227
10411
  target: textAddressSchema,
10228
- status: { enum: ["resolved"] },
10229
- isInternal: { type: "boolean" }
10412
+ status: { enum: ["resolved"], description: "Set comment status. Use 'resolved' to mark as resolved." },
10413
+ isInternal: {
10414
+ type: "boolean",
10415
+ description: "When true, marks the comment as internal (hidden from external collaborators)."
10416
+ }
10230
10417
  }, ["commentId"]),
10231
10418
  output: receiptResultSchemaFor("comments.patch"),
10232
10419
  success: receiptSuccessSchema,
@@ -10244,17 +10431,23 @@ var init_schemas = __esm(() => {
10244
10431
  },
10245
10432
  "comments.list": {
10246
10433
  input: objectSchema({
10247
- includeResolved: { type: "boolean" },
10248
- limit: { type: "integer" },
10249
- offset: { type: "integer" }
10434
+ includeResolved: {
10435
+ type: "boolean",
10436
+ description: "When true, includes resolved comments in results. Default: false."
10437
+ },
10438
+ limit: { type: "integer", description: "Maximum number of comments to return." },
10439
+ offset: { type: "integer", description: "Number of comments to skip for pagination." }
10250
10440
  }),
10251
10441
  output: commentsListResultSchema
10252
10442
  },
10253
10443
  "trackChanges.list": {
10254
10444
  input: objectSchema({
10255
- limit: { type: "integer" },
10256
- offset: { type: "integer" },
10257
- type: { enum: ["insert", "delete", "format"] }
10445
+ limit: { type: "integer", description: "Maximum number of tracked changes to return." },
10446
+ offset: { type: "integer", description: "Number of tracked changes to skip for pagination." },
10447
+ type: {
10448
+ enum: ["insert", "delete", "format"],
10449
+ description: "Filter by change type: 'insert', 'delete', or 'format'."
10450
+ }
10258
10451
  }),
10259
10452
  output: trackChangesListResultSchema
10260
10453
  },
@@ -10283,13 +10476,28 @@ var init_schemas = __esm(() => {
10283
10476
  },
10284
10477
  "query.match": {
10285
10478
  input: objectSchema({
10286
- select: { oneOf: [textSelectorSchema, nodeSelectorSchema] },
10287
- within: blockNodeAddressSchema,
10288
- require: { enum: ["any", "first", "exactlyOne", "all"] },
10289
- mode: { enum: ["strict", "candidates"] },
10290
- includeNodes: { type: "boolean" },
10291
- limit: { type: "integer", minimum: 1 },
10292
- offset: { type: "integer", minimum: 0 }
10479
+ select: {
10480
+ description: "Search selector. Use {type:'text', pattern:'...'} for text search or {type:'node', nodeType:'paragraph'|'heading'|...} for node search.",
10481
+ oneOf: [textSelectorSchema, nodeSelectorSchema]
10482
+ },
10483
+ within: {
10484
+ ...blockNodeAddressSchema,
10485
+ description: "Limit search scope to within a specific block: {kind:'block', nodeType:'...', nodeId:'...'}."
10486
+ },
10487
+ require: {
10488
+ enum: ["any", "first", "exactlyOne", "all"],
10489
+ description: "Match cardinality: 'any' (all matches), 'first' (only first), 'exactlyOne' (fail if != 1), 'all' (fail if 0)."
10490
+ },
10491
+ mode: {
10492
+ enum: ["strict", "candidates"],
10493
+ description: "Search mode: 'strict' (default, exact matching) or 'candidates' (returns scored potential matches)."
10494
+ },
10495
+ includeNodes: {
10496
+ type: "boolean",
10497
+ description: "When true, includes full node data in results. Default: false."
10498
+ },
10499
+ limit: { type: "integer", minimum: 1, description: "Maximum number of matches to return." },
10500
+ offset: { type: "integer", minimum: 0, description: "Number of matches to skip for pagination." }
10293
10501
  }, ["select"]),
10294
10502
  output: (() => {
10295
10503
  const textMatchItemSchema = discoveryItemSchema({
@@ -10421,10 +10629,23 @@ var init_schemas = __esm(() => {
10421
10629
  ]
10422
10630
  };
10423
10631
  const mutationsInputSchema = objectSchema({
10424
- expectedRevision: { type: "string" },
10425
- atomic: { const: true, type: "boolean" },
10426
- changeMode: { enum: ["direct", "tracked"] },
10427
- steps: arraySchema(mutationStepSchema)
10632
+ expectedRevision: {
10633
+ type: "string",
10634
+ description: "Document revision for optimistic concurrency. Mutation fails if document was modified since this revision."
10635
+ },
10636
+ atomic: {
10637
+ const: true,
10638
+ type: "boolean",
10639
+ description: "Must be true. All steps execute as one atomic transaction."
10640
+ },
10641
+ changeMode: {
10642
+ enum: ["direct", "tracked"],
10643
+ description: "Required. Use 'direct' for immediate edits or 'tracked' for suggestions. Must always be provided."
10644
+ },
10645
+ steps: {
10646
+ ...arraySchema(mutationStepSchema),
10647
+ description: "Ordered array of mutation steps. Each step needs 'op' (text.rewrite, text.insert, text.delete, format.apply, or assert) and a 'where' targeting clause."
10648
+ }
10428
10649
  }, ["atomic", "changeMode", "steps"]);
10429
10650
  const documentEdgeAnchorSchema = objectSchema({
10430
10651
  kind: { const: "document" },
@@ -14112,6 +14333,8 @@ function buildDispatchTable(api) {
14112
14333
  "format.paragraph.clearBorder": (input, options) => api.format.paragraph.clearBorder(input, options),
14113
14334
  "format.paragraph.setShading": (input, options) => api.format.paragraph.setShading(input, options),
14114
14335
  "format.paragraph.clearShading": (input, options) => api.format.paragraph.clearShading(input, options),
14336
+ "format.paragraph.setDirection": (input, options) => api.format.paragraph.setDirection(input, options),
14337
+ "format.paragraph.clearDirection": (input, options) => api.format.paragraph.clearDirection(input, options),
14115
14338
  "styles.apply": (input, options) => api.styles.apply(input, options),
14116
14339
  "create.paragraph": (input, options) => api.create.paragraph(input, options),
14117
14340
  "create.heading": (input, options) => api.create.heading(input, options),
@@ -16370,6 +16593,12 @@ function createDocumentApi(adapters) {
16370
16593
  },
16371
16594
  clearShading(input, options) {
16372
16595
  return executeParagraphsClearShading(adapters.paragraphs, input, options);
16596
+ },
16597
+ setDirection(input, options) {
16598
+ return executeParagraphsSetDirection(adapters.paragraphs, input, options);
16599
+ },
16600
+ clearDirection(input, options) {
16601
+ return executeParagraphsClearDirection(adapters.paragraphs, input, options);
16373
16602
  }
16374
16603
  }
16375
16604
  },
@@ -39693,7 +39922,7 @@ var init_remark_gfm_z_sDF4ss_es = __esm(() => {
39693
39922
  emptyOptions2 = {};
39694
39923
  });
39695
39924
 
39696
- // ../../packages/superdoc/dist/chunks/SuperConverter-htgbtdmP.es.js
39925
+ // ../../packages/superdoc/dist/chunks/SuperConverter-DarcJh0X.es.js
39697
39926
  function getExtensionConfigField(extension$1, field, context = { name: "" }) {
39698
39927
  const fieldValue = extension$1.config[field];
39699
39928
  if (typeof fieldValue === "function")
@@ -40726,8 +40955,15 @@ function camelToKebab3(value) {
40726
40955
  return value.replace(/[A-Z]/g, (char) => `-${char.toLowerCase()}`);
40727
40956
  }
40728
40957
  function formatInlineAliasDescription2(key) {
40958
+ if (key === "rtl")
40959
+ return "Set or clear the `rtl` inline run property on the target text range. This does not change paragraph direction; use `format.paragraph.setDirection` for paragraph-level RTL.";
40729
40960
  return `Set or clear the \`${key}\` inline run property on the target text range.`;
40730
40961
  }
40962
+ function formatInlineAliasExpectedResult2(key) {
40963
+ if (key === "rtl")
40964
+ return "Returns a TextMutationReceipt confirming only the inline run property patch was applied to the target range; paragraph direction is unchanged.";
40965
+ return "Returns a TextMutationReceipt confirming the inline run property patch was applied to the target range.";
40966
+ }
40731
40967
  function projectFromDefinitions2(fn) {
40732
40968
  return Object.fromEntries(OPERATION_IDS2.map((id) => [id, fn(id, OPERATION_DEFINITIONS2[id])]));
40733
40969
  }
@@ -41006,6 +41242,21 @@ function validateClearShading2(input) {
41006
41242
  assertParagraphTarget2(input, "format.paragraph.clearShading");
41007
41243
  assertNoUnknownFields3(input, CLEAR_SHADING_KEYS2, "format.paragraph.clearShading");
41008
41244
  }
41245
+ function validateSetDirection2(input) {
41246
+ const op = "format.paragraph.setDirection";
41247
+ assertParagraphTarget2(input, op);
41248
+ assertNoUnknownFields3(input, SET_DIRECTION_KEYS2, op);
41249
+ const rec = input;
41250
+ if (rec.direction === undefined)
41251
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${op} requires a direction field.`);
41252
+ assertOneOf$2(rec.direction, "direction", PARAGRAPH_DIRECTIONS2, op);
41253
+ if (rec.alignmentPolicy !== undefined)
41254
+ assertOneOf$2(rec.alignmentPolicy, "alignmentPolicy", ALIGNMENT_POLICIES2, op);
41255
+ }
41256
+ function validateClearDirection2(input) {
41257
+ assertParagraphTarget2(input, "format.paragraph.clearDirection");
41258
+ assertNoUnknownFields3(input, CLEAR_DIRECTION_KEYS2, "format.paragraph.clearDirection");
41259
+ }
41009
41260
  function executeParagraphsSetStyle2(adapter, input, options) {
41010
41261
  validateSetStyle2(input);
41011
41262
  return adapter.setStyle(input, normalizeMutationOptions2(options));
@@ -41082,6 +41333,14 @@ function executeParagraphsClearShading2(adapter, input, options) {
41082
41333
  validateClearShading2(input);
41083
41334
  return adapter.clearShading(input, normalizeMutationOptions2(options));
41084
41335
  }
41336
+ function executeParagraphsSetDirection2(adapter, input, options) {
41337
+ validateSetDirection2(input);
41338
+ return adapter.setDirection(input, normalizeMutationOptions2(options));
41339
+ }
41340
+ function executeParagraphsClearDirection2(adapter, input, options) {
41341
+ validateClearDirection2(input);
41342
+ return adapter.clearDirection(input, normalizeMutationOptions2(options));
41343
+ }
41085
41344
  function getPropertyDefinition2(key, channel) {
41086
41345
  return PROPERTY_INDEX2.get(`${channel}:${key}`);
41087
41346
  }
@@ -41392,10 +41651,16 @@ function ref2(name) {
41392
41651
  }
41393
41652
  function targetLocatorWithPayload2(payloadProperties, payloadRequired = []) {
41394
41653
  return { oneOf: [objectSchema2({
41395
- target: ref2("SelectionTarget"),
41654
+ target: {
41655
+ ...ref2("SelectionTarget"),
41656
+ description: "Selection target: {kind:'selection', start:{kind:'text', blockId, offset}, end:{kind:'text', blockId, offset}}. Use 'ref' instead when you have a search result handle."
41657
+ },
41396
41658
  ...payloadProperties
41397
41659
  }, ["target", ...payloadRequired]), objectSchema2({
41398
- ref: { type: "string" },
41660
+ ref: {
41661
+ type: "string",
41662
+ description: "Handle ref string from a superdoc_search result. Pass the handle.ref value directly (e.g. 'text:eyJ...'). Preferred over 'target' for inline formatting."
41663
+ },
41399
41664
  ...payloadProperties
41400
41665
  }, ["ref", ...payloadRequired])] };
41401
41666
  }
@@ -43476,6 +43741,8 @@ function buildDispatchTable2(api) {
43476
43741
  "format.paragraph.clearBorder": (input, options) => api.format.paragraph.clearBorder(input, options),
43477
43742
  "format.paragraph.setShading": (input, options) => api.format.paragraph.setShading(input, options),
43478
43743
  "format.paragraph.clearShading": (input, options) => api.format.paragraph.clearShading(input, options),
43744
+ "format.paragraph.setDirection": (input, options) => api.format.paragraph.setDirection(input, options),
43745
+ "format.paragraph.clearDirection": (input, options) => api.format.paragraph.clearDirection(input, options),
43479
43746
  "styles.apply": (input, options) => api.styles.apply(input, options),
43480
43747
  "create.paragraph": (input, options) => api.create.paragraph(input, options),
43481
43748
  "create.heading": (input, options) => api.create.heading(input, options),
@@ -45418,6 +45685,12 @@ function createDocumentApi2(adapters) {
45418
45685
  },
45419
45686
  clearShading(input, options) {
45420
45687
  return executeParagraphsClearShading2(adapters.paragraphs, input, options);
45688
+ },
45689
+ setDirection(input, options) {
45690
+ return executeParagraphsSetDirection2(adapters.paragraphs, input, options);
45691
+ },
45692
+ clearDirection(input, options) {
45693
+ return executeParagraphsClearDirection2(adapters.paragraphs, input, options);
45421
45694
  }
45422
45695
  }
45423
45696
  },
@@ -71693,7 +71966,7 @@ var isRegExp = (value) => {
71693
71966
  tracked: false,
71694
71967
  carrier: runAttributeCarrier2(runPropertyKey ?? key),
71695
71968
  schema
71696
- }), INLINE_PROPERTY_REGISTRY2, INLINE_PROPERTY_KEY_SET2, INLINE_PROPERTY_BY_KEY2, UNDERLINE_OBJECT_ALLOWED_KEYS2, SHADING_ALLOWED_KEYS2, BORDER_ALLOWED_KEYS2, FIT_TEXT_ALLOWED_KEYS2, LANG_ALLOWED_KEYS2, RFONTS_ALLOWED_KEYS2, EAST_ASIAN_LAYOUT_ALLOWED_KEYS2, STYLISTIC_SET_ALLOWED_KEYS2, VERT_ALIGN_VALUES2, PROPERTY_VALIDATOR_MAP2, NONE_FAILURES2, NONE_THROWS2, T_NOT_FOUND2, T_NOT_FOUND_CAPABLE2, T_PLAN_ENGINE2, T_NOT_FOUND_COMMAND2, T_IMAGE_COMMAND2, T_CC_READ2, T_CC_MUTATION2, T_CC_TYPED2, T_CC_TYPED_READ2, T_CC_RAW2, T_QUERY_MATCH2, T_SECTION_CREATE2, T_SECTION_READ2, T_PARAGRAPH_MUTATION2, T_SECTION_MUTATION2, T_SECTION_SETTINGS_MUTATION2, T_HEADER_FOOTER_MUTATION2, T_REF_READ_LIST2, T_REF_MUTATION2, T_REF_MUTATION_REMOVE2, T_REF_INSERT2, FORMAT_INLINE_ALIAS_OPERATION_DEFINITIONS2, OPERATION_DEFINITIONS2, OPERATION_IDS2, COMMAND_CATALOG3, PARAGRAPH_ALIGNMENTS2, TAB_STOP_ALIGNMENTS2, TAB_STOP_LEADERS2, BORDER_SIDES2, CLEAR_BORDER_SIDES2, LINE_RULES2, PARAGRAPH_BLOCK_TYPES2, SET_STYLE_KEYS2, CLEAR_STYLE_KEYS2, RESET_DIRECT_FORMATTING_KEYS2, SET_ALIGNMENT_KEYS2, CLEAR_ALIGNMENT_KEYS2, SET_INDENTATION_KEYS2, CLEAR_INDENTATION_KEYS2, SET_SPACING_KEYS2, CLEAR_SPACING_KEYS2, SET_KEEP_OPTIONS_KEYS2, SET_OUTLINE_LEVEL_KEYS2, SET_FLOW_OPTIONS_KEYS2, SET_TAB_STOP_KEYS2, CLEAR_TAB_STOP_KEYS2, CLEAR_ALL_TAB_STOPS_KEYS2, SET_BORDER_KEYS2, CLEAR_BORDER_KEYS2, SET_SHADING_KEYS2, CLEAR_SHADING_KEYS2, ST_ON_OFF_ON_VALUES2, ST_ON_OFF_OFF_VALUES2, ST_UNDERLINE_VALUES2, ST_UNDERLINE_VALUE_SET2, ST_VERTICAL_ALIGN_RUN2, ST_EM2, ST_TEXT_ALIGNMENT2, ST_TEXT_DIRECTION2, ST_TEXTBOX_TIGHT_WRAP2, ST_TEXT_TRANSFORM2, ST_JUSTIFICATION2, FONT_FAMILY_SCHEMA2, COLOR_SCHEMA2, SPACING_SCHEMA2, INDENT_SCHEMA2, UNDERLINE_SCHEMA2, BORDER_PROPERTIES_SCHEMA2, SHADING_SCHEMA2, LANG_SCHEMA2, EAST_ASIAN_LAYOUT_SCHEMA2, FIT_TEXT_SCHEMA2, NUMBERING_PROPERTIES_SCHEMA2, FRAME_PR_SCHEMA2, PARAGRAPH_BORDERS_SCHEMA2, TAB_STOP_SCHEMA2, PROPERTY_REGISTRY2, ALLOWED_KEYS_BY_CHANNEL2, PROPERTY_INDEX2, EXCLUDED_KEYS2, INPUT_ALLOWED_KEYS2, TARGET_ALLOWED_KEYS2, OPTIONS_ALLOWED_KEYS2, VALID_CHANNELS2, Z_ORDER_RELATIVE_HEIGHT_MAX2 = 4294967295, nodeTypeValues2, blockNodeTypeValues2, deletableBlockNodeTypeValues2, inlineNodeTypeValues2, rangeSchema2, textAddressSchema2, textTargetSchema2, blockNodeAddressSchema2, deletableBlockNodeAddressSchema2, tableAddressSchema2, tableRowAddressSchema2, tableCellAddressSchema2, tableOrCellAddressSchema2, paragraphAddressSchema2, headingAddressSchema2, listItemAddressSchema2, paragraphTargetSchema2, sectionAddressSchema2, nodeAddressSchema2, commentAddressSchema2, trackedChangeAddressSchema2, entityAddressSchema2, selectionTargetSchema2, deleteBehaviorSchema2, resolvedHandleSchema2, pageInfoSchema2, receiptSuccessSchema2, textMutationRangeSchema2, textMutationResolutionSchema2, textMutationSuccessSchema2, matchBlockSchema2, trackChangeRefSchema2, createParagraphSuccessSchema2, createHeadingSuccessSchema2, headingLevelSchema2, listsInsertSuccessSchema2, listsMutateItemSuccessSchema2, textSelectorSchema2, nodeSelectorSchema2, sdMutationResolutionSchema2, sdMutationSuccessSchema2, documentInfoCountsSchema2, documentInfoOutlineItemSchema2, documentInfoCapabilitiesSchema2, listKindSchema2, listInsertPositionSchema2, sectionBreakTypeSchema2, sectionOrientationSchema2, sectionVerticalAlignSchema2, sectionDirectionSchema2, sectionHeaderFooterKindSchema2, sectionHeaderFooterVariantSchema2, sectionLineNumberRestartSchema2, sectionPageNumberFormatSchema2, sectionRangeDomainSchema2, sectionPageMarginsSchema2, sectionHeaderFooterMarginsSchema2, sectionPageSetupSchema2, sectionColumnsSchema2, sectionLineNumberingSchema2, sectionPageNumberingSchema2, sectionHeaderFooterRefsSchema2, sectionBorderSpecSchema2, sectionPageBordersSchema2, sectionMutationSuccessSchema2, documentMutationSuccessSchema2, paragraphMutationTargetSchema2, paragraphMutationSuccessSchema2, createSectionBreakSuccessSchema2, capabilityReasonsSchema2, capabilityFlagSchema2, operationRuntimeCapabilitySchema2, operationCapabilitiesSchema2, inlinePropertyCapabilitySchema2, formatCapabilitiesSchema2, planEngineCapabilitiesSchema2, nullableTableBorderSpecSchema2, sdFragmentSchema2, placementSchema2, nestingPolicySchema2, tableCreateLocationSchema2, formatInlineAliasOperationSchemas2, tocMutationFailureSchema2, tocMutationSuccessSchema2, tocEntryMutationFailureSchema2, tocEntryMutationSuccessSchema2, hyperlinkTargetSchema2, hyperlinkReadPropertiesSchema2, hyperlinkSpecSchema2, hyperlinkPatchSchema2, hyperlinkDomainSchema2, hyperlinkMutationSuccessSchema2, hyperlinkMutationFailureSchema2, contentControlTargetSchema2, contentControlMutationSuccessSchema2, contentControlMutationFailureSchema2, ccListResultSchema2, ccInfoSchema2, refFailureSchema2, bookmarkAddressSchema2, bookmarkMutation2, footnoteAddressSchema2, footnoteConfigScopeSchema2, footnoteNumberingSchema2, footnoteMutation2, footnoteConfig2, crossRefAddressSchema2, crossRefTargetSchema2, crossRefDisplaySchema2, crossRefMutation2, indexAddressSchema2, indexEntryAddressSchema2, indexConfigSchema2, indexEntryDataSchema2, indexEntryPatchSchema2, indexMutation2, indexEntryMutation2, captionAddressSchema2, captionMutation2, captionConfig2, fieldAddressSchema2, fieldMutation2, citationAddressSchema2, citationSourceAddressSchema2, bibliographyAddressSchema2, citationMutation2, citationSourceMutation2, bibliographyMutation2, citationPersonSchema2, citationSourceFieldsSchema2, tocCreateLocationSchema2, authoritiesAddressSchema2, authorityEntryAddressSchema2, authoritiesConfigSchema2, authorityEntryDataSchema2, authorityEntryPatchSchema2, authoritiesMutation2, authorityEntryMutation2, diffCoverageSchema2, diffSummarySchema2, diffSnapshotSchema2, diffPayloadSchema2, GROUP_METADATA2, STEP_OP_CATALOG_UNFROZEN2, PUBLIC_STEP_OP_CATALOG_UNFROZEN2, PUBLIC_MUTATION_STEP_OP_IDS2, PUBLIC_MUTATION_STEP_OP_SET2, CAPABILITY_REASON_CODES, VALID_EDGE_VALUES2, VALID_EDGE_NODE_TYPES2, VALID_DOCUMENT_EDGES2, VALID_REF_BOUNDARIES2, VALID_ANCHOR_KINDS2, RESOLVE_RANGE_ALLOWED_KEYS2, CREATE_COMMENT_ALLOWED_KEYS2, PATCH_COMMENT_ALLOWED_KEYS2, STYLE_APPLY_INPUT_ALLOWED_KEYS2, INLINE_ALIAS_INPUT_ALLOWED_KEYS2, DELETE_INPUT_ALLOWED_KEYS2, VALID_BEHAVIORS2, CONTENT_KIND_SET2, INLINE_KIND_SET2, LEGACY_TOP_LEVEL_TYPES2, LEGACY_INSERT_ALLOWED_KEYS2, STRUCTURAL_INSERT_ALLOWED_KEYS2, VALID_INSERT_TYPES2, TEXT_REPLACE_ALLOWED_KEYS2, STRUCTURAL_REPLACE_ALLOWED_KEYS2, SECTION_BREAK_TYPES$1, SUPPORTED_DELETE_NODE_TYPES2, REJECTED_DELETE_NODE_TYPES2, VALID_BLOCK_NODE_TYPES2, SNAPSHOT_VERSION2 = "sd-diff-snapshot/v1", PAYLOAD_VERSION2 = "sd-diff-payload/v1", VALID_STYLE_OPTION_FLAGS2, TABLE_BORDER_COLOR_PATTERN2, VALID_APPLY_TO_VALUES2, VALID_BORDER_EDGE_KEYS2, HEADER_FOOTER_KINDS$1, HEADER_FOOTER_VARIANTS$1, DEFAULT_SECTIONS_LIST_LIMIT2 = 250, SECTION_BREAK_TYPES3, SECTION_ORIENTATIONS2, SECTION_VERTICAL_ALIGNS2, SECTION_DIRECTIONS2, HEADER_FOOTER_KINDS3, HEADER_FOOTER_VARIANTS3, LINE_NUMBER_RESTARTS2, PAGE_NUMBER_FORMATS2, PAGE_BORDER_DISPLAYS2, PAGE_BORDER_OFFSET_FROM_VALUES2, PAGE_BORDER_Z_ORDER_VALUES2, VALID_WRAP_TYPES2, VALID_WRAP_SIDES2, VALID_IMAGE_SIZE_UNITS2, PATCH_FIELDS2, ADAPTER_GATED_PREFIXES2, _buffers, _defaultCollectionId = null, _nextCollectionId = 1, generateV2HandlerEntity = (handlerName, translator$216) => ({
71969
+ }), INLINE_PROPERTY_REGISTRY2, INLINE_PROPERTY_KEY_SET2, INLINE_PROPERTY_BY_KEY2, UNDERLINE_OBJECT_ALLOWED_KEYS2, SHADING_ALLOWED_KEYS2, BORDER_ALLOWED_KEYS2, FIT_TEXT_ALLOWED_KEYS2, LANG_ALLOWED_KEYS2, RFONTS_ALLOWED_KEYS2, EAST_ASIAN_LAYOUT_ALLOWED_KEYS2, STYLISTIC_SET_ALLOWED_KEYS2, VERT_ALIGN_VALUES2, PROPERTY_VALIDATOR_MAP2, NONE_FAILURES2, NONE_THROWS2, T_NOT_FOUND2, T_NOT_FOUND_CAPABLE2, T_PLAN_ENGINE2, T_NOT_FOUND_COMMAND2, T_IMAGE_COMMAND2, T_CC_READ2, T_CC_MUTATION2, T_CC_TYPED2, T_CC_TYPED_READ2, T_CC_RAW2, T_QUERY_MATCH2, T_SECTION_CREATE2, T_SECTION_READ2, T_PARAGRAPH_MUTATION2, T_SECTION_MUTATION2, T_SECTION_SETTINGS_MUTATION2, T_HEADER_FOOTER_MUTATION2, T_REF_READ_LIST2, T_REF_MUTATION2, T_REF_MUTATION_REMOVE2, T_REF_INSERT2, FORMAT_INLINE_ALIAS_OPERATION_DEFINITIONS2, OPERATION_DEFINITIONS2, OPERATION_IDS2, COMMAND_CATALOG3, PARAGRAPH_ALIGNMENTS2, TAB_STOP_ALIGNMENTS2, TAB_STOP_LEADERS2, BORDER_SIDES2, CLEAR_BORDER_SIDES2, LINE_RULES2, PARAGRAPH_DIRECTIONS2, ALIGNMENT_POLICIES2, PARAGRAPH_BLOCK_TYPES2, SET_STYLE_KEYS2, CLEAR_STYLE_KEYS2, RESET_DIRECT_FORMATTING_KEYS2, SET_ALIGNMENT_KEYS2, CLEAR_ALIGNMENT_KEYS2, SET_INDENTATION_KEYS2, CLEAR_INDENTATION_KEYS2, SET_SPACING_KEYS2, CLEAR_SPACING_KEYS2, SET_KEEP_OPTIONS_KEYS2, SET_OUTLINE_LEVEL_KEYS2, SET_FLOW_OPTIONS_KEYS2, SET_TAB_STOP_KEYS2, CLEAR_TAB_STOP_KEYS2, CLEAR_ALL_TAB_STOPS_KEYS2, SET_BORDER_KEYS2, CLEAR_BORDER_KEYS2, SET_SHADING_KEYS2, CLEAR_SHADING_KEYS2, SET_DIRECTION_KEYS2, CLEAR_DIRECTION_KEYS2, ST_ON_OFF_ON_VALUES2, ST_ON_OFF_OFF_VALUES2, ST_UNDERLINE_VALUES2, ST_UNDERLINE_VALUE_SET2, ST_VERTICAL_ALIGN_RUN2, ST_EM2, ST_TEXT_ALIGNMENT2, ST_TEXT_DIRECTION2, ST_TEXTBOX_TIGHT_WRAP2, ST_TEXT_TRANSFORM2, ST_JUSTIFICATION2, FONT_FAMILY_SCHEMA2, COLOR_SCHEMA2, SPACING_SCHEMA2, INDENT_SCHEMA2, UNDERLINE_SCHEMA2, BORDER_PROPERTIES_SCHEMA2, SHADING_SCHEMA2, LANG_SCHEMA2, EAST_ASIAN_LAYOUT_SCHEMA2, FIT_TEXT_SCHEMA2, NUMBERING_PROPERTIES_SCHEMA2, FRAME_PR_SCHEMA2, PARAGRAPH_BORDERS_SCHEMA2, TAB_STOP_SCHEMA2, PROPERTY_REGISTRY2, ALLOWED_KEYS_BY_CHANNEL2, PROPERTY_INDEX2, EXCLUDED_KEYS2, INPUT_ALLOWED_KEYS2, TARGET_ALLOWED_KEYS2, OPTIONS_ALLOWED_KEYS2, VALID_CHANNELS2, Z_ORDER_RELATIVE_HEIGHT_MAX2 = 4294967295, nodeTypeValues2, blockNodeTypeValues2, deletableBlockNodeTypeValues2, inlineNodeTypeValues2, rangeSchema2, textAddressSchema2, textTargetSchema2, blockNodeAddressSchema2, deletableBlockNodeAddressSchema2, tableAddressSchema2, tableRowAddressSchema2, tableCellAddressSchema2, tableOrCellAddressSchema2, paragraphAddressSchema2, headingAddressSchema2, listItemAddressSchema2, paragraphTargetSchema2, sectionAddressSchema2, nodeAddressSchema2, commentAddressSchema2, trackedChangeAddressSchema2, entityAddressSchema2, selectionTargetSchema2, deleteBehaviorSchema2, resolvedHandleSchema2, pageInfoSchema2, receiptSuccessSchema2, textMutationRangeSchema2, textMutationResolutionSchema2, textMutationSuccessSchema2, matchBlockSchema2, trackChangeRefSchema2, createParagraphSuccessSchema2, createHeadingSuccessSchema2, headingLevelSchema2, listsInsertSuccessSchema2, listsMutateItemSuccessSchema2, textSelectorSchema2, nodeSelectorSchema2, sdMutationResolutionSchema2, sdMutationSuccessSchema2, documentInfoCountsSchema2, documentInfoOutlineItemSchema2, documentInfoCapabilitiesSchema2, listKindSchema2, listInsertPositionSchema2, sectionBreakTypeSchema2, sectionOrientationSchema2, sectionVerticalAlignSchema2, sectionDirectionSchema2, sectionHeaderFooterKindSchema2, sectionHeaderFooterVariantSchema2, sectionLineNumberRestartSchema2, sectionPageNumberFormatSchema2, sectionRangeDomainSchema2, sectionPageMarginsSchema2, sectionHeaderFooterMarginsSchema2, sectionPageSetupSchema2, sectionColumnsSchema2, sectionLineNumberingSchema2, sectionPageNumberingSchema2, sectionHeaderFooterRefsSchema2, sectionBorderSpecSchema2, sectionPageBordersSchema2, sectionMutationSuccessSchema2, documentMutationSuccessSchema2, paragraphMutationTargetSchema2, paragraphMutationSuccessSchema2, createSectionBreakSuccessSchema2, capabilityReasonsSchema2, capabilityFlagSchema2, operationRuntimeCapabilitySchema2, operationCapabilitiesSchema2, inlinePropertyCapabilitySchema2, formatCapabilitiesSchema2, planEngineCapabilitiesSchema2, nullableTableBorderSpecSchema2, sdFragmentSchema2, placementSchema2, nestingPolicySchema2, tableCreateLocationSchema2, formatInlineAliasOperationSchemas2, tocMutationFailureSchema2, tocMutationSuccessSchema2, tocEntryMutationFailureSchema2, tocEntryMutationSuccessSchema2, hyperlinkTargetSchema2, hyperlinkReadPropertiesSchema2, hyperlinkSpecSchema2, hyperlinkPatchSchema2, hyperlinkDomainSchema2, hyperlinkMutationSuccessSchema2, hyperlinkMutationFailureSchema2, contentControlTargetSchema2, contentControlMutationSuccessSchema2, contentControlMutationFailureSchema2, ccListResultSchema2, ccInfoSchema2, refFailureSchema2, bookmarkAddressSchema2, bookmarkMutation2, footnoteAddressSchema2, footnoteConfigScopeSchema2, footnoteNumberingSchema2, footnoteMutation2, footnoteConfig2, crossRefAddressSchema2, crossRefTargetSchema2, crossRefDisplaySchema2, crossRefMutation2, indexAddressSchema2, indexEntryAddressSchema2, indexConfigSchema2, indexEntryDataSchema2, indexEntryPatchSchema2, indexMutation2, indexEntryMutation2, captionAddressSchema2, captionMutation2, captionConfig2, fieldAddressSchema2, fieldMutation2, citationAddressSchema2, citationSourceAddressSchema2, bibliographyAddressSchema2, citationMutation2, citationSourceMutation2, bibliographyMutation2, citationPersonSchema2, citationSourceFieldsSchema2, tocCreateLocationSchema2, authoritiesAddressSchema2, authorityEntryAddressSchema2, authoritiesConfigSchema2, authorityEntryDataSchema2, authorityEntryPatchSchema2, authoritiesMutation2, authorityEntryMutation2, diffCoverageSchema2, diffSummarySchema2, diffSnapshotSchema2, diffPayloadSchema2, GROUP_METADATA2, STEP_OP_CATALOG_UNFROZEN2, PUBLIC_STEP_OP_CATALOG_UNFROZEN2, PUBLIC_MUTATION_STEP_OP_IDS2, PUBLIC_MUTATION_STEP_OP_SET2, CAPABILITY_REASON_CODES, VALID_EDGE_VALUES2, VALID_EDGE_NODE_TYPES2, VALID_DOCUMENT_EDGES2, VALID_REF_BOUNDARIES2, VALID_ANCHOR_KINDS2, RESOLVE_RANGE_ALLOWED_KEYS2, CREATE_COMMENT_ALLOWED_KEYS2, PATCH_COMMENT_ALLOWED_KEYS2, STYLE_APPLY_INPUT_ALLOWED_KEYS2, INLINE_ALIAS_INPUT_ALLOWED_KEYS2, DELETE_INPUT_ALLOWED_KEYS2, VALID_BEHAVIORS2, CONTENT_KIND_SET2, INLINE_KIND_SET2, LEGACY_TOP_LEVEL_TYPES2, LEGACY_INSERT_ALLOWED_KEYS2, STRUCTURAL_INSERT_ALLOWED_KEYS2, VALID_INSERT_TYPES2, TEXT_REPLACE_ALLOWED_KEYS2, STRUCTURAL_REPLACE_ALLOWED_KEYS2, SECTION_BREAK_TYPES$1, SUPPORTED_DELETE_NODE_TYPES2, REJECTED_DELETE_NODE_TYPES2, VALID_BLOCK_NODE_TYPES2, SNAPSHOT_VERSION2 = "sd-diff-snapshot/v1", PAYLOAD_VERSION2 = "sd-diff-payload/v1", VALID_STYLE_OPTION_FLAGS2, TABLE_BORDER_COLOR_PATTERN2, VALID_APPLY_TO_VALUES2, VALID_BORDER_EDGE_KEYS2, HEADER_FOOTER_KINDS$1, HEADER_FOOTER_VARIANTS$1, DEFAULT_SECTIONS_LIST_LIMIT2 = 250, SECTION_BREAK_TYPES3, SECTION_ORIENTATIONS2, SECTION_VERTICAL_ALIGNS2, SECTION_DIRECTIONS2, HEADER_FOOTER_KINDS3, HEADER_FOOTER_VARIANTS3, LINE_NUMBER_RESTARTS2, PAGE_NUMBER_FORMATS2, PAGE_BORDER_DISPLAYS2, PAGE_BORDER_OFFSET_FROM_VALUES2, PAGE_BORDER_Z_ORDER_VALUES2, VALID_WRAP_TYPES2, VALID_WRAP_SIDES2, VALID_IMAGE_SIZE_UNITS2, PATCH_FIELDS2, ADAPTER_GATED_PREFIXES2, _buffers, _defaultCollectionId = null, _nextCollectionId = 1, generateV2HandlerEntity = (handlerName, translator$216) => ({
71697
71970
  handlerName,
71698
71971
  handler: (params) => {
71699
71972
  const { nodes } = params;
@@ -85724,7 +85997,7 @@ var isRegExp = (value) => {
85724
85997
  state.kern = kernNode.attributes["w:val"];
85725
85998
  }
85726
85999
  }, SuperConverter;
85727
- var init_SuperConverter_htgbtdmP_es = __esm(() => {
86000
+ var init_SuperConverter_DarcJh0X_es = __esm(() => {
85728
86001
  init_rolldown_runtime_B2q5OVn9_es();
85729
86002
  init_jszip_ChlR43oI_es();
85730
86003
  init_xml_js_BtmJ6bNs_es();
@@ -88704,7 +88977,7 @@ var init_SuperConverter_htgbtdmP_es = __esm(() => {
88704
88977
  return [operationId, {
88705
88978
  memberPath: operationId,
88706
88979
  description: formatInlineAliasDescription2(entry.key),
88707
- expectedResult: "Returns a TextMutationReceipt confirming the inline run property patch was applied to the target range.",
88980
+ expectedResult: formatInlineAliasExpectedResult2(entry.key),
88708
88981
  requiresDocumentContext: true,
88709
88982
  metadata: mutationOperation2({
88710
88983
  idempotency: "conditional",
@@ -89729,6 +90002,38 @@ var init_SuperConverter_htgbtdmP_es = __esm(() => {
89729
90002
  referenceDocPath: "format/paragraph/clear-shading.mdx",
89730
90003
  referenceGroup: "format.paragraph"
89731
90004
  },
90005
+ "format.paragraph.setDirection": {
90006
+ memberPath: "format.paragraph.setDirection",
90007
+ description: "Set paragraph base direction (LTR or RTL via w:bidi). Optionally align text to match.",
90008
+ expectedResult: "Returns a ParagraphMutationResult; reports NO_OP if the direction already matches.",
90009
+ requiresDocumentContext: true,
90010
+ metadata: mutationOperation2({
90011
+ idempotency: "conditional",
90012
+ supportsDryRun: true,
90013
+ supportsTrackedMode: false,
90014
+ possibleFailureCodes: ["NO_OP"],
90015
+ throws: T_PARAGRAPH_MUTATION2
90016
+ }),
90017
+ referenceDocPath: "format/paragraph/set-direction.mdx",
90018
+ referenceGroup: "format.paragraph",
90019
+ intentGroup: "format",
90020
+ intentAction: "set_direction"
90021
+ },
90022
+ "format.paragraph.clearDirection": {
90023
+ memberPath: "format.paragraph.clearDirection",
90024
+ description: "Remove explicit paragraph direction, reverting to inherited or default (LTR).",
90025
+ expectedResult: "Returns a ParagraphMutationResult; reports NO_OP if no direction is set.",
90026
+ requiresDocumentContext: true,
90027
+ metadata: mutationOperation2({
90028
+ idempotency: "conditional",
90029
+ supportsDryRun: true,
90030
+ supportsTrackedMode: false,
90031
+ possibleFailureCodes: ["NO_OP"],
90032
+ throws: T_PARAGRAPH_MUTATION2
90033
+ }),
90034
+ referenceDocPath: "format/paragraph/clear-direction.mdx",
90035
+ referenceGroup: "format.paragraph"
90036
+ },
89732
90037
  "lists.list": {
89733
90038
  memberPath: "lists.list",
89734
90039
  description: "List all list nodes in the document, optionally filtered by scope.",
@@ -93936,6 +94241,8 @@ var init_SuperConverter_htgbtdmP_es = __esm(() => {
93936
94241
  "exact",
93937
94242
  "atLeast"
93938
94243
  ];
94244
+ PARAGRAPH_DIRECTIONS2 = ["ltr", "rtl"];
94245
+ ALIGNMENT_POLICIES2 = ["preserve", "matchDirection"];
93939
94246
  PARAGRAPH_BLOCK_TYPES2 = new Set([
93940
94247
  "paragraph",
93941
94248
  "heading",
@@ -93999,6 +94306,12 @@ var init_SuperConverter_htgbtdmP_es = __esm(() => {
93999
94306
  "pattern"
94000
94307
  ]);
94001
94308
  CLEAR_SHADING_KEYS2 = new Set(["target"]);
94309
+ SET_DIRECTION_KEYS2 = new Set([
94310
+ "target",
94311
+ "direction",
94312
+ "alignmentPolicy"
94313
+ ]);
94314
+ CLEAR_DIRECTION_KEYS2 = new Set(["target"]);
94002
94315
  ST_ON_OFF_ON_VALUES2 = new Set([
94003
94316
  "true",
94004
94317
  "1",
@@ -95094,15 +95407,36 @@ var init_SuperConverter_htgbtdmP_es = __esm(() => {
95094
95407
  hint: { type: "string" }
95095
95408
  }, ["message"]);
95096
95409
  textSelectorSchema2 = objectSchema2({
95097
- type: { const: "text" },
95098
- pattern: { type: "string" },
95099
- mode: { enum: ["contains", "regex"] },
95100
- caseSensitive: { type: "boolean" }
95410
+ type: {
95411
+ const: "text",
95412
+ description: "Must be 'text' for text pattern search."
95413
+ },
95414
+ pattern: {
95415
+ type: "string",
95416
+ description: "Text or regex pattern to match."
95417
+ },
95418
+ mode: {
95419
+ enum: ["contains", "regex"],
95420
+ description: "Match mode: 'contains' (substring) or 'regex'."
95421
+ },
95422
+ caseSensitive: {
95423
+ type: "boolean",
95424
+ description: "Case-sensitive matching. Default: false."
95425
+ }
95101
95426
  }, ["type", "pattern"]);
95102
95427
  nodeSelectorSchema2 = objectSchema2({
95103
- type: { const: "node" },
95104
- nodeType: { enum: [...nodeTypeValues2] },
95105
- kind: { enum: ["block", "inline"] }
95428
+ type: {
95429
+ const: "node",
95430
+ description: "Must be 'node' for node type search."
95431
+ },
95432
+ nodeType: {
95433
+ enum: [...nodeTypeValues2],
95434
+ description: "Block type to match (paragraph, heading, table, listItem, etc.)."
95435
+ },
95436
+ kind: {
95437
+ enum: ["block", "inline"],
95438
+ description: "Filter: 'block' or 'inline'."
95439
+ }
95106
95440
  }, ["type"]);
95107
95441
  objectSchema2({ nodeType: { enum: [...nodeTypeValues2] } }, ["nodeType"]);
95108
95442
  objectSchema2({
@@ -95658,22 +95992,41 @@ var init_SuperConverter_htgbtdmP_es = __esm(() => {
95658
95992
  "insideStart",
95659
95993
  "insideEnd"
95660
95994
  ] };
95661
- nestingPolicySchema2 = objectSchema2({ tables: { enum: ["forbid", "allow"] } });
95995
+ nestingPolicySchema2 = {
95996
+ ...objectSchema2({ tables: { enum: ["forbid", "allow"] } }),
95997
+ description: "Controls nesting behavior. tables: 'allow' permits inserting tables inside other tables."
95998
+ };
95662
95999
  objectSchema2({
95663
- target: textAddressSchema2,
95664
- value: { type: "string" },
96000
+ target: {
96001
+ ...textAddressSchema2,
96002
+ description: "Insertion point: {kind:'text', blockId:'...', range:{start, end}}."
96003
+ },
96004
+ value: {
96005
+ type: "string",
96006
+ description: "Text content to insert."
96007
+ },
95665
96008
  type: {
95666
96009
  type: "string",
95667
96010
  enum: [
95668
96011
  "text",
95669
96012
  "markdown",
95670
96013
  "html"
95671
- ]
96014
+ ],
96015
+ description: "Content format: 'text' (default), 'markdown', or 'html'."
95672
96016
  }
95673
96017
  }, ["value"]), objectSchema2({
95674
- target: blockNodeAddressSchema2,
95675
- content: sdFragmentSchema2,
95676
- placement: placementSchema2,
96018
+ target: {
96019
+ ...blockNodeAddressSchema2,
96020
+ description: "Block address for structural insertion: {kind:'block', nodeType:'...', nodeId:'...'}."
96021
+ },
96022
+ content: {
96023
+ ...sdFragmentSchema2,
96024
+ description: "Document fragment to insert (structured content)."
96025
+ },
96026
+ placement: {
96027
+ ...placementSchema2,
96028
+ description: "Where to place content relative to target: 'before', 'after', 'insideStart', or 'insideEnd'."
96029
+ },
95677
96030
  nestingPolicy: nestingPolicySchema2
95678
96031
  }, ["content"]);
95679
96032
  ({ ...objectSchema2({
@@ -96356,7 +96709,10 @@ var init_SuperConverter_htgbtdmP_es = __esm(() => {
96356
96709
  }, ["modelVersion", "body"]), objectSchema2({
96357
96710
  nodeId: { type: "string" },
96358
96711
  nodeType: { enum: [...blockNodeTypeValues2] }
96359
- }, ["nodeId"]), objectSchema2({ unflattenLists: { type: "boolean" } }), objectSchema2({ markdown: { type: "string" } }, ["markdown"]), objectSchema2({
96712
+ }, ["nodeId"]), objectSchema2({ unflattenLists: {
96713
+ type: "boolean",
96714
+ description: "When true, flattens nested list structures in output. Default: false."
96715
+ } }), objectSchema2({ markdown: { type: "string" } }, ["markdown"]), objectSchema2({
96360
96716
  fragment: {},
96361
96717
  lossy: { type: "boolean" },
96362
96718
  diagnostics: arraySchema2(objectSchema2({
@@ -96380,15 +96736,36 @@ var init_SuperConverter_htgbtdmP_es = __esm(() => {
96380
96736
  "fragment",
96381
96737
  "lossy",
96382
96738
  "diagnostics"
96383
- ]), receiptResultSchemaFor2("clearContent"), receiptFailureResultSchemaFor2("clearContent"), sdMutationResultSchemaFor2("insert"), sdMutationFailureSchemaFor2("insert"), { ...targetLocatorWithPayload2({ text: { type: "string" } }, ["text"]) }, objectSchema2({
96384
- target: { oneOf: [blockNodeAddressSchema2, selectionTargetSchema2] },
96385
- content: sdFragmentSchema2,
96739
+ ]), receiptResultSchemaFor2("clearContent"), receiptFailureResultSchemaFor2("clearContent"), sdMutationResultSchemaFor2("insert"), sdMutationFailureSchemaFor2("insert"), { ...targetLocatorWithPayload2({ text: {
96740
+ type: "string",
96741
+ description: "Replacement text content."
96742
+ } }, ["text"]) }, objectSchema2({
96743
+ target: {
96744
+ oneOf: [blockNodeAddressSchema2, selectionTargetSchema2],
96745
+ description: "Target block or selection to replace."
96746
+ },
96747
+ content: {
96748
+ ...sdFragmentSchema2,
96749
+ description: "Document fragment to replace with (structured content)."
96750
+ },
96386
96751
  nestingPolicy: nestingPolicySchema2
96387
96752
  }, ["target", "content"]), objectSchema2({
96388
- ref: { type: "string" },
96389
- content: sdFragmentSchema2,
96753
+ ref: {
96754
+ type: "string",
96755
+ description: "Reference handle from a previous search result."
96756
+ },
96757
+ content: {
96758
+ ...sdFragmentSchema2,
96759
+ description: "Document fragment to replace with (structured content)."
96760
+ },
96390
96761
  nestingPolicy: nestingPolicySchema2
96391
- }, ["ref", "content"]), sdMutationResultSchemaFor2("replace"), sdMutationFailureSchemaFor2("replace"), { ...targetLocatorWithPayload2({ behavior: deleteBehaviorSchema2 }) }, textMutationResultSchemaFor2("delete"), textMutationFailureSchemaFor2("delete"), { ...targetLocatorWithPayload2({ inline: buildInlineRunPatchSchema2() }, ["inline"]) }, textMutationResultSchemaFor2("format.apply"), textMutationFailureSchemaFor2("format.apply"), { ...formatInlineAliasOperationSchemas2 }, objectSchema2({
96762
+ }, ["ref", "content"]), sdMutationResultSchemaFor2("replace"), sdMutationFailureSchemaFor2("replace"), { ...targetLocatorWithPayload2({ behavior: {
96763
+ ...deleteBehaviorSchema2,
96764
+ description: "Delete behavior: 'selection' (default) or 'exact'."
96765
+ } }) }, textMutationResultSchemaFor2("delete"), textMutationFailureSchemaFor2("delete"), { ...targetLocatorWithPayload2({ inline: {
96766
+ ...buildInlineRunPatchSchema2(),
96767
+ description: "Inline formatting properties to apply. Set a property to apply it, use null to clear it. Example: {bold: true, italic: true} or {bold: null} to remove bold."
96768
+ } }, ["inline"]) }, textMutationResultSchemaFor2("format.apply"), textMutationFailureSchemaFor2("format.apply"), { ...formatInlineAliasOperationSchemas2 }, objectSchema2({
96392
96769
  offset: {
96393
96770
  type: "number",
96394
96771
  minimum: 0
@@ -96501,35 +96878,45 @@ var init_SuperConverter_htgbtdmP_es = __esm(() => {
96501
96878
  target: paragraphTargetSchema2,
96502
96879
  left: {
96503
96880
  type: "integer",
96504
- minimum: 0
96881
+ minimum: 0,
96882
+ description: "Left indentation in twips (1440 = 1 inch)."
96505
96883
  },
96506
96884
  right: {
96507
96885
  type: "integer",
96508
- minimum: 0
96886
+ minimum: 0,
96887
+ description: "Right indentation in twips (1440 = 1 inch)."
96509
96888
  },
96510
96889
  firstLine: {
96511
96890
  type: "integer",
96512
- minimum: 0
96891
+ minimum: 0,
96892
+ description: "First line indent in twips. Cannot be combined with hanging."
96513
96893
  },
96514
96894
  hanging: {
96515
96895
  type: "integer",
96516
- minimum: 0
96896
+ minimum: 0,
96897
+ description: "Hanging indent in twips. Cannot be combined with firstLine."
96517
96898
  }
96518
96899
  }, ["target"]) }, paragraphMutationResultSchemaFor2("format.paragraph.setIndentation"), paragraphMutationFailureSchemaFor2("format.paragraph.setIndentation"), objectSchema2({ target: paragraphTargetSchema2 }, ["target"]), paragraphMutationResultSchemaFor2("format.paragraph.clearIndentation"), paragraphMutationFailureSchemaFor2("format.paragraph.clearIndentation"), { ...objectSchema2({
96519
96900
  target: paragraphTargetSchema2,
96520
96901
  before: {
96521
96902
  type: "integer",
96522
- minimum: 0
96903
+ minimum: 0,
96904
+ description: "Space before paragraph in twips (20 twips = 1pt)."
96523
96905
  },
96524
96906
  after: {
96525
96907
  type: "integer",
96526
- minimum: 0
96908
+ minimum: 0,
96909
+ description: "Space after paragraph in twips (20 twips = 1pt)."
96527
96910
  },
96528
96911
  line: {
96529
96912
  type: "integer",
96530
- minimum: 1
96913
+ minimum: 1,
96914
+ description: "Line spacing value. Meaning depends on lineRule. Must be provided together with lineRule."
96531
96915
  },
96532
- lineRule: { enum: [...LINE_RULES2] }
96916
+ lineRule: {
96917
+ enum: [...LINE_RULES2],
96918
+ description: "Line spacing rule. Required when 'line' is set."
96919
+ }
96533
96920
  }, ["target"]) }, paragraphMutationResultSchemaFor2("format.paragraph.setSpacing"), paragraphMutationFailureSchemaFor2("format.paragraph.setSpacing"), objectSchema2({ target: paragraphTargetSchema2 }, ["target"]), paragraphMutationResultSchemaFor2("format.paragraph.clearSpacing"), paragraphMutationFailureSchemaFor2("format.paragraph.clearSpacing"), { ...objectSchema2({
96534
96921
  target: paragraphTargetSchema2,
96535
96922
  keepNext: { type: "boolean" },
@@ -96605,7 +96992,17 @@ var init_SuperConverter_htgbtdmP_es = __esm(() => {
96605
96992
  type: "string",
96606
96993
  minLength: 1
96607
96994
  }
96608
- }, ["target"]) }, paragraphMutationResultSchemaFor2("format.paragraph.setShading"), paragraphMutationFailureSchemaFor2("format.paragraph.setShading"), objectSchema2({ target: paragraphTargetSchema2 }, ["target"]), paragraphMutationResultSchemaFor2("format.paragraph.clearShading"), paragraphMutationFailureSchemaFor2("format.paragraph.clearShading"), (() => {
96995
+ }, ["target"]) }, paragraphMutationResultSchemaFor2("format.paragraph.setShading"), paragraphMutationFailureSchemaFor2("format.paragraph.setShading"), objectSchema2({ target: paragraphTargetSchema2 }, ["target"]), paragraphMutationResultSchemaFor2("format.paragraph.clearShading"), paragraphMutationFailureSchemaFor2("format.paragraph.clearShading"), objectSchema2({
96996
+ target: paragraphTargetSchema2,
96997
+ direction: {
96998
+ type: "string",
96999
+ enum: ["ltr", "rtl"]
97000
+ },
97001
+ alignmentPolicy: {
97002
+ type: "string",
97003
+ enum: ["preserve", "matchDirection"]
97004
+ }
97005
+ }, ["target", "direction"]), paragraphMutationResultSchemaFor2("format.paragraph.setDirection"), paragraphMutationFailureSchemaFor2("format.paragraph.setDirection"), objectSchema2({ target: paragraphTargetSchema2 }, ["target"]), paragraphMutationResultSchemaFor2("format.paragraph.clearDirection"), paragraphMutationFailureSchemaFor2("format.paragraph.clearDirection"), (() => {
96609
97006
  const runInputSchema = objectSchema2({
96610
97007
  target: objectSchema2({
96611
97008
  scope: { const: "docDefaults" },
@@ -96667,34 +97064,49 @@ var init_SuperConverter_htgbtdmP_es = __esm(() => {
96667
97064
  failure: stylesFailureSchema
96668
97065
  };
96669
97066
  })(), objectSchema2({
96670
- at: { oneOf: [
96671
- objectSchema2({ kind: { const: "documentStart" } }, ["kind"]),
96672
- objectSchema2({ kind: { const: "documentEnd" } }, ["kind"]),
96673
- objectSchema2({
96674
- kind: { const: "before" },
96675
- target: blockNodeAddressSchema2
96676
- }, ["kind", "target"]),
96677
- objectSchema2({
96678
- kind: { const: "after" },
96679
- target: blockNodeAddressSchema2
96680
- }, ["kind", "target"])
96681
- ] },
96682
- text: { type: "string" }
97067
+ at: {
97068
+ description: "Position: {kind:'documentEnd'} to append, {kind:'documentStart'} to prepend, or {kind:'before'|'after', target:{kind:'block', nodeType:'...', nodeId:'...'}} for relative placement.",
97069
+ oneOf: [
97070
+ objectSchema2({ kind: { const: "documentStart" } }, ["kind"]),
97071
+ objectSchema2({ kind: { const: "documentEnd" } }, ["kind"]),
97072
+ objectSchema2({
97073
+ kind: { const: "before" },
97074
+ target: blockNodeAddressSchema2
97075
+ }, ["kind", "target"]),
97076
+ objectSchema2({
97077
+ kind: { const: "after" },
97078
+ target: blockNodeAddressSchema2
97079
+ }, ["kind", "target"])
97080
+ ]
97081
+ },
97082
+ text: {
97083
+ type: "string",
97084
+ description: "Paragraph text content."
97085
+ }
96683
97086
  }), createParagraphResultSchemaFor2("create.paragraph"), createParagraphFailureSchemaFor2("create.paragraph"), objectSchema2({
96684
- level: headingLevelSchema2,
96685
- at: { oneOf: [
96686
- objectSchema2({ kind: { const: "documentStart" } }, ["kind"]),
96687
- objectSchema2({ kind: { const: "documentEnd" } }, ["kind"]),
96688
- objectSchema2({
96689
- kind: { const: "before" },
96690
- target: blockNodeAddressSchema2
96691
- }, ["kind", "target"]),
96692
- objectSchema2({
96693
- kind: { const: "after" },
96694
- target: blockNodeAddressSchema2
96695
- }, ["kind", "target"])
96696
- ] },
96697
- text: { type: "string" }
97087
+ level: {
97088
+ ...headingLevelSchema2,
97089
+ description: "Heading level (1-6)."
97090
+ },
97091
+ at: {
97092
+ description: "Position: {kind:'documentEnd'} to append, {kind:'documentStart'} to prepend, or {kind:'before'|'after', target:{kind:'block', nodeType:'...', nodeId:'...'}} for relative placement.",
97093
+ oneOf: [
97094
+ objectSchema2({ kind: { const: "documentStart" } }, ["kind"]),
97095
+ objectSchema2({ kind: { const: "documentEnd" } }, ["kind"]),
97096
+ objectSchema2({
97097
+ kind: { const: "before" },
97098
+ target: blockNodeAddressSchema2
97099
+ }, ["kind", "target"]),
97100
+ objectSchema2({
97101
+ kind: { const: "after" },
97102
+ target: blockNodeAddressSchema2
97103
+ }, ["kind", "target"])
97104
+ ]
97105
+ },
97106
+ text: {
97107
+ type: "string",
97108
+ description: "Heading text content."
97109
+ }
96698
97110
  }, ["level"]), createHeadingResultSchemaFor2("create.heading"), createHeadingFailureSchemaFor2("create.heading"), objectSchema2({
96699
97111
  at: { oneOf: [
96700
97112
  objectSchema2({ kind: { const: "documentStart" } }, ["kind"]),
@@ -96855,10 +97267,19 @@ var init_SuperConverter_htgbtdmP_es = __esm(() => {
96855
97267
  level: { type: "integer" },
96856
97268
  ordinal: { type: "integer" }
96857
97269
  }), objectSchema2({ address: listItemAddressSchema2 }, ["address"]), objectSchema2({
96858
- target: listItemAddressSchema2,
96859
- position: listInsertPositionSchema2,
96860
- text: { type: "string" }
96861
- }, ["target", "position"]), listsInsertResultSchemaFor2("lists.insert"), listsFailureSchemaFor2("lists.insert"), ref2("BlockAddress"), ref2("BlockAddressOrRange"), objectSchema2({
97270
+ target: {
97271
+ ...listItemAddressSchema2,
97272
+ description: "The target list item. For 'insert': the item to insert relative to. For 'create' with mode 'fromParagraphs': use nodeType 'paragraph' instead. Format: {kind:'block', nodeType:'listItem', nodeId:'<id>'}."
97273
+ },
97274
+ position: {
97275
+ ...listInsertPositionSchema2,
97276
+ description: "Required. Insert position relative to target: 'before' or 'after'."
97277
+ },
97278
+ text: {
97279
+ type: "string",
97280
+ description: "Text content for the new list item."
97281
+ }
97282
+ }, ["target", "position"]), listsInsertResultSchemaFor2("lists.insert"), listsFailureSchemaFor2("lists.insert"), { ...ref2("BlockAddress") }, { ...ref2("BlockAddressOrRange") }, { ...listKindSchema2 }, objectSchema2({
96862
97283
  version: { const: 1 },
96863
97284
  levels: arraySchema2(objectSchema2({
96864
97285
  level: {
@@ -97062,7 +97483,10 @@ var init_SuperConverter_htgbtdmP_es = __esm(() => {
97062
97483
  }, ["target", "preset"]), listsMutateItemResultSchemaFor2("lists.applyPreset"), listsFailureSchemaFor2("lists.applyPreset"), objectSchema2({
97063
97484
  target: listItemAddressSchema2,
97064
97485
  kind: { enum: ["ordered", "bullet"] },
97065
- continuity: { enum: ["preserve", "none"] }
97486
+ continuity: {
97487
+ enum: ["preserve", "none"],
97488
+ description: "Numbering continuity: 'preserve' keeps numbering; 'none' restarts."
97489
+ }
97066
97490
  }, ["target", "kind"]), listsMutateItemResultSchemaFor2("lists.setType"), listsFailureSchemaFor2("lists.setType"), (() => {
97067
97491
  const successSchema = objectSchema2({
97068
97492
  success: { const: true },
@@ -97358,45 +97782,98 @@ var init_SuperConverter_htgbtdmP_es = __esm(() => {
97358
97782
  "level",
97359
97783
  "layout"
97360
97784
  ]), listsMutateItemResultSchemaFor2("lists.setLevelLayout"), listsFailureSchemaFor2("lists.setLevelLayout"), objectSchema2({
97361
- text: { type: "string" },
97362
- target: textAddressSchema2,
97363
- parentCommentId: { type: "string" }
97785
+ text: {
97786
+ type: "string",
97787
+ description: "Comment text content."
97788
+ },
97789
+ target: {
97790
+ ...textAddressSchema2,
97791
+ description: "Text range to anchor the comment: {kind:'text', blockId:'...', range:{start:N, end:N}}."
97792
+ },
97793
+ parentCommentId: {
97794
+ type: "string",
97795
+ description: "Parent comment ID for creating a threaded reply."
97796
+ }
97364
97797
  }, ["text"]), receiptResultSchemaFor2("comments.create"), receiptFailureResultSchemaFor2("comments.create"), objectSchema2({
97365
97798
  commentId: { type: "string" },
97366
- text: { type: "string" },
97799
+ text: {
97800
+ type: "string",
97801
+ description: "Updated comment text."
97802
+ },
97367
97803
  target: textAddressSchema2,
97368
- status: { enum: ["resolved"] },
97369
- isInternal: { type: "boolean" }
97804
+ status: {
97805
+ enum: ["resolved"],
97806
+ description: "Set comment status. Use 'resolved' to mark as resolved."
97807
+ },
97808
+ isInternal: {
97809
+ type: "boolean",
97810
+ description: "When true, marks the comment as internal (hidden from external collaborators)."
97811
+ }
97370
97812
  }, ["commentId"]), receiptResultSchemaFor2("comments.patch"), receiptFailureResultSchemaFor2("comments.patch"), objectSchema2({ commentId: { type: "string" } }, ["commentId"]), receiptResultSchemaFor2("comments.delete"), receiptFailureResultSchemaFor2("comments.delete"), objectSchema2({ commentId: { type: "string" } }, ["commentId"]), objectSchema2({
97371
- includeResolved: { type: "boolean" },
97372
- limit: { type: "integer" },
97373
- offset: { type: "integer" }
97813
+ includeResolved: {
97814
+ type: "boolean",
97815
+ description: "When true, includes resolved comments in results. Default: false."
97816
+ },
97817
+ limit: {
97818
+ type: "integer",
97819
+ description: "Maximum number of comments to return."
97820
+ },
97821
+ offset: {
97822
+ type: "integer",
97823
+ description: "Number of comments to skip for pagination."
97824
+ }
97374
97825
  }), objectSchema2({
97375
- limit: { type: "integer" },
97376
- offset: { type: "integer" },
97377
- type: { enum: [
97378
- "insert",
97379
- "delete",
97380
- "format"
97381
- ] }
97826
+ limit: {
97827
+ type: "integer",
97828
+ description: "Maximum number of tracked changes to return."
97829
+ },
97830
+ offset: {
97831
+ type: "integer",
97832
+ description: "Number of tracked changes to skip for pagination."
97833
+ },
97834
+ type: {
97835
+ enum: [
97836
+ "insert",
97837
+ "delete",
97838
+ "format"
97839
+ ],
97840
+ description: "Filter by change type: 'insert', 'delete', or 'format'."
97841
+ }
97382
97842
  }), objectSchema2({ id: { type: "string" } }, ["id"]), objectSchema2({ id: { type: "string" } }, ["id"]), objectSchema2({ scope: { enum: ["all"] } }, ["scope"]), receiptResultSchemaFor2("trackChanges.decide"), receiptFailureResultSchemaFor2("trackChanges.decide"), objectSchema2({
97383
- select: { oneOf: [textSelectorSchema2, nodeSelectorSchema2] },
97384
- within: blockNodeAddressSchema2,
97385
- require: { enum: [
97386
- "any",
97387
- "first",
97388
- "exactlyOne",
97389
- "all"
97390
- ] },
97391
- mode: { enum: ["strict", "candidates"] },
97392
- includeNodes: { type: "boolean" },
97843
+ select: {
97844
+ description: "Search selector. Use {type:'text', pattern:'...'} for text search or {type:'node', nodeType:'paragraph'|'heading'|...} for node search.",
97845
+ oneOf: [textSelectorSchema2, nodeSelectorSchema2]
97846
+ },
97847
+ within: {
97848
+ ...blockNodeAddressSchema2,
97849
+ description: "Limit search scope to within a specific block: {kind:'block', nodeType:'...', nodeId:'...'}."
97850
+ },
97851
+ require: {
97852
+ enum: [
97853
+ "any",
97854
+ "first",
97855
+ "exactlyOne",
97856
+ "all"
97857
+ ],
97858
+ description: "Match cardinality: 'any' (all matches), 'first' (only first), 'exactlyOne' (fail if != 1), 'all' (fail if 0)."
97859
+ },
97860
+ mode: {
97861
+ enum: ["strict", "candidates"],
97862
+ description: "Search mode: 'strict' (default, exact matching) or 'candidates' (returns scored potential matches)."
97863
+ },
97864
+ includeNodes: {
97865
+ type: "boolean",
97866
+ description: "When true, includes full node data in results. Default: false."
97867
+ },
97393
97868
  limit: {
97394
97869
  type: "integer",
97395
- minimum: 1
97870
+ minimum: 1,
97871
+ description: "Maximum number of matches to return."
97396
97872
  },
97397
97873
  offset: {
97398
97874
  type: "integer",
97399
- minimum: 0
97875
+ minimum: 0,
97876
+ description: "Number of matches to skip for pagination."
97400
97877
  }
97401
97878
  }, ["select"]), (() => {
97402
97879
  const textMatchItemSchema = discoveryItemSchema2({
@@ -97539,91 +98016,101 @@ var init_SuperConverter_htgbtdmP_es = __esm(() => {
97539
98016
  setMarks: setMarksSchema
97540
98017
  }, ["mode"]) }, ["inline"]);
97541
98018
  const mutationsInputSchema = objectSchema2({
97542
- expectedRevision: { type: "string" },
98019
+ expectedRevision: {
98020
+ type: "string",
98021
+ description: "Document revision for optimistic concurrency. Mutation fails if document was modified since this revision."
98022
+ },
97543
98023
  atomic: {
97544
98024
  const: true,
97545
- type: "boolean"
98025
+ type: "boolean",
98026
+ description: "Must be true. All steps execute as one atomic transaction."
97546
98027
  },
97547
- changeMode: { enum: ["direct", "tracked"] },
97548
- steps: arraySchema2({ oneOf: [
97549
- objectSchema2({
97550
- id: { type: "string" },
97551
- op: {
97552
- const: "text.rewrite",
97553
- type: "string"
97554
- },
97555
- where: stepWhereSchema,
97556
- args: objectSchema2({
97557
- replacement: replacementPayloadSchema,
97558
- style: stylePolicySchema
97559
- }, ["replacement"])
97560
- }, [
97561
- "id",
97562
- "op",
97563
- "where",
97564
- "args"
97565
- ]),
97566
- objectSchema2({
97567
- id: { type: "string" },
97568
- op: {
97569
- const: "text.insert",
97570
- type: "string"
97571
- },
97572
- where: insertWhereSchema,
97573
- args: objectSchema2({
97574
- position: { enum: ["before", "after"] },
97575
- content: objectSchema2({ text: { type: "string" } }, ["text"]),
97576
- style: insertStylePolicySchema
97577
- }, ["position", "content"])
97578
- }, [
97579
- "id",
97580
- "op",
97581
- "where",
97582
- "args"
97583
- ]),
97584
- objectSchema2({
97585
- id: { type: "string" },
97586
- op: {
97587
- const: "text.delete",
97588
- type: "string"
97589
- },
97590
- where: stepWhereSchema,
97591
- args: objectSchema2({ behavior: deleteBehaviorSchema2 })
97592
- }, [
97593
- "id",
97594
- "op",
97595
- "where",
97596
- "args"
97597
- ]),
97598
- objectSchema2({
97599
- id: { type: "string" },
97600
- op: {
97601
- const: "format.apply",
97602
- type: "string"
97603
- },
97604
- where: stepWhereSchema,
97605
- args: objectSchema2({ inline: buildInlineRunPatchSchema2() }, ["inline"])
97606
- }, [
97607
- "id",
97608
- "op",
97609
- "where",
97610
- "args"
97611
- ]),
97612
- objectSchema2({
97613
- id: { type: "string" },
97614
- op: {
97615
- const: "assert",
97616
- type: "string"
97617
- },
97618
- where: assertWhereSchema,
97619
- args: objectSchema2({ expectCount: { type: "number" } }, ["expectCount"])
97620
- }, [
97621
- "id",
97622
- "op",
97623
- "where",
97624
- "args"
97625
- ])
97626
- ] })
98028
+ changeMode: {
98029
+ enum: ["direct", "tracked"],
98030
+ description: "Required. Use 'direct' for immediate edits or 'tracked' for suggestions. Must always be provided."
98031
+ },
98032
+ steps: {
98033
+ ...arraySchema2({ oneOf: [
98034
+ objectSchema2({
98035
+ id: { type: "string" },
98036
+ op: {
98037
+ const: "text.rewrite",
98038
+ type: "string"
98039
+ },
98040
+ where: stepWhereSchema,
98041
+ args: objectSchema2({
98042
+ replacement: replacementPayloadSchema,
98043
+ style: stylePolicySchema
98044
+ }, ["replacement"])
98045
+ }, [
98046
+ "id",
98047
+ "op",
98048
+ "where",
98049
+ "args"
98050
+ ]),
98051
+ objectSchema2({
98052
+ id: { type: "string" },
98053
+ op: {
98054
+ const: "text.insert",
98055
+ type: "string"
98056
+ },
98057
+ where: insertWhereSchema,
98058
+ args: objectSchema2({
98059
+ position: { enum: ["before", "after"] },
98060
+ content: objectSchema2({ text: { type: "string" } }, ["text"]),
98061
+ style: insertStylePolicySchema
98062
+ }, ["position", "content"])
98063
+ }, [
98064
+ "id",
98065
+ "op",
98066
+ "where",
98067
+ "args"
98068
+ ]),
98069
+ objectSchema2({
98070
+ id: { type: "string" },
98071
+ op: {
98072
+ const: "text.delete",
98073
+ type: "string"
98074
+ },
98075
+ where: stepWhereSchema,
98076
+ args: objectSchema2({ behavior: deleteBehaviorSchema2 })
98077
+ }, [
98078
+ "id",
98079
+ "op",
98080
+ "where",
98081
+ "args"
98082
+ ]),
98083
+ objectSchema2({
98084
+ id: { type: "string" },
98085
+ op: {
98086
+ const: "format.apply",
98087
+ type: "string"
98088
+ },
98089
+ where: stepWhereSchema,
98090
+ args: objectSchema2({ inline: buildInlineRunPatchSchema2() }, ["inline"])
98091
+ }, [
98092
+ "id",
98093
+ "op",
98094
+ "where",
98095
+ "args"
98096
+ ]),
98097
+ objectSchema2({
98098
+ id: { type: "string" },
98099
+ op: {
98100
+ const: "assert",
98101
+ type: "string"
98102
+ },
98103
+ where: assertWhereSchema,
98104
+ args: objectSchema2({ expectCount: { type: "number" } }, ["expectCount"])
98105
+ }, [
98106
+ "id",
98107
+ "op",
98108
+ "where",
98109
+ "args"
98110
+ ])
98111
+ ] }),
98112
+ description: "Ordered array of mutation steps. Each step needs 'op' (text.rewrite, text.insert, text.delete, format.apply, or assert) and a 'where' targeting clause."
98113
+ }
97627
98114
  }, [
97628
98115
  "atomic",
97629
98116
  "changeMode",
@@ -148326,7 +148813,7 @@ var init_remark_gfm_CjV8kaUy_es = __esm(() => {
148326
148813
  init_remark_gfm_z_sDF4ss_es();
148327
148814
  });
148328
148815
 
148329
- // ../../packages/superdoc/dist/chunks/src-D2teG0gz.es.js
148816
+ // ../../packages/superdoc/dist/chunks/src-Bf4fUvSx.es.js
148330
148817
  function deleteProps(obj, propOrProps) {
148331
148818
  const props = typeof propOrProps === "string" ? [propOrProps] : propOrProps;
148332
148819
  const removeNested = (target, pathParts, index2 = 0) => {
@@ -153993,8 +154480,8 @@ function extractParagraphProps(attrs) {
153993
154480
  props.shading = ppAny.shading;
153994
154481
  hasProps = true;
153995
154482
  }
153996
- if (ppAny.bidi !== undefined) {
153997
- props.bidi = ppAny.bidi;
154483
+ if (ppAny.rightToLeft !== undefined) {
154484
+ props.bidi = ppAny.rightToLeft;
153998
154485
  hasProps = true;
153999
154486
  }
154000
154487
  if (ppAny.markRunProps) {
@@ -159198,7 +159685,7 @@ function buildParagraphProperties(styleRef, props) {
159198
159685
  if (props.shading)
159199
159686
  result.shading = props.shading;
159200
159687
  if (props.bidi !== undefined)
159201
- result.bidi = props.bidi;
159688
+ result.rightToLeft = props.bidi;
159202
159689
  if (props.outlineLevel !== undefined)
159203
159690
  result.outlineLevel = props.outlineLevel;
159204
159691
  if (props.markRunProps)
@@ -162000,6 +162487,24 @@ function paragraphsClearShadingWrapper(editor, input2, options) {
162000
162487
  return result;
162001
162488
  }, options);
162002
162489
  }
162490
+ function paragraphsSetDirectionWrapper(editor, input2, options) {
162491
+ rejectTrackedMode("format.paragraph.setDirection", options);
162492
+ return mutateParagraphProperties(editor, resolveParagraphBlock(editor, input2.target), "format.paragraph.setDirection", input2.target, (pPr) => {
162493
+ const result = { ...pPr };
162494
+ result.rightToLeft = input2.direction === "rtl";
162495
+ if (input2.alignmentPolicy === "matchDirection")
162496
+ result.justification = input2.direction === "rtl" ? "right" : "left";
162497
+ return result;
162498
+ }, options);
162499
+ }
162500
+ function paragraphsClearDirectionWrapper(editor, input2, options) {
162501
+ rejectTrackedMode("format.paragraph.clearDirection", options);
162502
+ return mutateParagraphProperties(editor, resolveParagraphBlock(editor, input2.target), "format.paragraph.clearDirection", input2.target, (pPr) => {
162503
+ const result = { ...pPr };
162504
+ delete result.rightToLeft;
162505
+ return result;
162506
+ }, options);
162507
+ }
162003
162508
  function buildTrackChangeInfo(editor, change) {
162004
162509
  const excerpt = normalizeExcerpt(editor.state.doc.textBetween(change.from, change.to, " ", ""));
162005
162510
  const type = resolveTrackedChangeType(change);
@@ -179972,7 +180477,9 @@ function assembleDocumentApiAdapters(editor) {
179972
180477
  setBorder: (input2, options) => paragraphsSetBorderWrapper(editor, input2, options),
179973
180478
  clearBorder: (input2, options) => paragraphsClearBorderWrapper(editor, input2, options),
179974
180479
  setShading: (input2, options) => paragraphsSetShadingWrapper(editor, input2, options),
179975
- clearShading: (input2, options) => paragraphsClearShadingWrapper(editor, input2, options)
180480
+ clearShading: (input2, options) => paragraphsClearShadingWrapper(editor, input2, options),
180481
+ setDirection: (input2, options) => paragraphsSetDirectionWrapper(editor, input2, options),
180482
+ clearDirection: (input2, options) => paragraphsClearDirectionWrapper(editor, input2, options)
179976
180483
  },
179977
180484
  trackChanges: {
179978
180485
  list: (input2) => trackChangesListWrapper(editor, input2),
@@ -215914,7 +216421,8 @@ var Node$13 = class Node$14 {
215914
216421
  keepNext: resolvedParagraphProperties.keepNext,
215915
216422
  keepLines: resolvedParagraphProperties.keepLines,
215916
216423
  floatAlignment,
215917
- pageBreakBefore: resolvedParagraphProperties.pageBreakBefore
216424
+ pageBreakBefore: resolvedParagraphProperties.pageBreakBefore,
216425
+ direction: resolvedParagraphProperties.rightToLeft ? "rtl" : undefined
215918
216426
  };
215919
216427
  if (normalizedNumberingProperties && normalizedListRendering)
215920
216428
  paragraphAttrs.wordLayout = computeWordParagraphLayout({
@@ -228471,9 +228979,9 @@ var Node$13 = class Node$14 {
228471
228979
  return false;
228472
228980
  return Boolean(checker(attrs));
228473
228981
  }, SuperToolbar, ICONS, TEXTS, tableActionsOptions;
228474
- var init_src_D2teG0gz_es = __esm(() => {
228982
+ var init_src_Bf4fUvSx_es = __esm(() => {
228475
228983
  init_rolldown_runtime_B2q5OVn9_es();
228476
- init_SuperConverter_htgbtdmP_es();
228984
+ init_SuperConverter_DarcJh0X_es();
228477
228985
  init_jszip_ChlR43oI_es();
228478
228986
  init_uuid_qzgm05fK_es();
228479
228987
  init_constants_ep1_Gwqi_es();
@@ -261776,8 +262284,8 @@ var init_zipper_DqXT7uTa_es = __esm(() => {
261776
262284
 
261777
262285
  // ../../packages/superdoc/dist/super-editor.es.js
261778
262286
  var init_super_editor_es = __esm(() => {
261779
- init_src_D2teG0gz_es();
261780
- init_SuperConverter_htgbtdmP_es();
262287
+ init_src_Bf4fUvSx_es();
262288
+ init_SuperConverter_DarcJh0X_es();
261781
262289
  init_jszip_ChlR43oI_es();
261782
262290
  init_xml_js_BtmJ6bNs_es();
261783
262291
  init_constants_ep1_Gwqi_es();
@@ -318248,40 +318756,43 @@ function isSimpleType2(schema, $defs) {
318248
318756
  }
318249
318757
  function jsonSchemaToTypeSpec(schema, $defs) {
318250
318758
  schema = resolveRef(schema, $defs);
318251
- if ("const" in schema)
318252
- return { const: schema.const };
318253
- if (schema.oneOf) {
318254
- return {
318759
+ const desc = typeof schema.description === "string" ? schema.description : undefined;
318760
+ let result2;
318761
+ if ("const" in schema) {
318762
+ result2 = { const: schema.const };
318763
+ } else if (schema.oneOf) {
318764
+ result2 = {
318255
318765
  oneOf: schema.oneOf.map((s2) => jsonSchemaToTypeSpec(s2, $defs))
318256
318766
  };
318257
- }
318258
- if (schema.enum && Array.isArray(schema.enum)) {
318259
- return {
318767
+ } else if (schema.enum && Array.isArray(schema.enum)) {
318768
+ result2 = {
318260
318769
  oneOf: schema.enum.map((v) => ({ const: v }))
318261
318770
  };
318262
- }
318263
- if (schema.type === "string")
318264
- return { type: "string" };
318265
- if (schema.type === "number" || schema.type === "integer")
318266
- return { type: "number" };
318267
- if (schema.type === "boolean")
318268
- return { type: "boolean" };
318269
- if (schema.type === "array") {
318771
+ } else if (schema.type === "string") {
318772
+ result2 = { type: "string" };
318773
+ } else if (schema.type === "number" || schema.type === "integer") {
318774
+ result2 = { type: "number" };
318775
+ } else if (schema.type === "boolean") {
318776
+ result2 = { type: "boolean" };
318777
+ } else if (schema.type === "array") {
318270
318778
  const items2 = schema.items ?? {};
318271
- return { type: "array", items: jsonSchemaToTypeSpec(items2, $defs) };
318272
- }
318273
- if (schema.type === "object") {
318779
+ result2 = { type: "array", items: jsonSchemaToTypeSpec(items2, $defs) };
318780
+ } else if (schema.type === "object") {
318274
318781
  const properties = {};
318275
318782
  for (const [key2, propSchema] of Object.entries(schema.properties ?? {})) {
318276
318783
  properties[key2] = jsonSchemaToTypeSpec(propSchema, $defs);
318277
318784
  }
318278
- const result2 = { type: "object", properties };
318785
+ result2 = { type: "object", properties };
318279
318786
  if (schema.required && Array.isArray(schema.required)) {
318280
318787
  result2.required = schema.required;
318281
318788
  }
318282
- return result2;
318789
+ } else {
318790
+ result2 = { type: "json" };
318283
318791
  }
318284
- return { type: "json" };
318792
+ if (desc) {
318793
+ result2.description = desc;
318794
+ }
318795
+ return result2;
318285
318796
  }
318286
318797
  function deriveParamsFromInputSchema(inputSchema, $defs) {
318287
318798
  const params4 = [];
@@ -318309,13 +318820,20 @@ function deriveParamsFromInputSchema(inputSchema, $defs) {
318309
318820
  const paramType = schemaToParamType(propSchema, $defs);
318310
318821
  const isComplex = !isSimpleType2(propSchema, $defs) && paramType === "json";
318311
318822
  const flagBase = camelToKebab4(name2);
318823
+ const isRequired = required.has(name2);
318312
318824
  const param = {
318313
318825
  name: name2,
318314
318826
  kind: isComplex ? "jsonFlag" : "flag",
318315
318827
  flag: isComplex ? `${flagBase}-json` : flagBase,
318316
318828
  type: paramType,
318317
- required: required.has(name2)
318829
+ required: isRequired
318318
318830
  };
318831
+ const rawDesc = rawPropSchema.description;
318832
+ const resolvedDesc = propSchema.description;
318833
+ const desc = typeof rawDesc === "string" ? rawDesc : typeof resolvedDesc === "string" ? resolvedDesc : undefined;
318834
+ if (desc) {
318835
+ param.description = desc;
318836
+ }
318319
318837
  if (AGENT_HIDDEN_PARAM_NAMES.has(name2)) {
318320
318838
  param.agentVisible = false;
318321
318839
  }
@@ -318369,9 +318887,9 @@ function buildDocBackedMetadata() {
318369
318887
  const envelope = envelopeParams(docApiId);
318370
318888
  const seenNames = new Set;
318371
318889
  const mergedParams = [];
318372
- for (const param of envelope) {
318373
- seenNames.add(param.name);
318374
- mergedParams.push(param);
318890
+ for (const envelopeParam of envelope) {
318891
+ seenNames.add(envelopeParam.name);
318892
+ mergedParams.push(envelopeParam);
318375
318893
  }
318376
318894
  const overrides = PARAM_FLAG_OVERRIDES[cliOpId];
318377
318895
  const schemaOverrides = PARAM_SCHEMA_OVERRIDES[cliOpId];
@@ -318460,30 +318978,49 @@ function deriveOptionSpecs(operationId, params4) {
318460
318978
  var DOC_PARAM, SESSION_PARAM, OUT_PARAM, FORCE_PARAM, DRY_RUN_PARAM, CHANGE_MODE_PARAM, EXPECTED_REVISION_PARAM, USER_NAME_PARAM, USER_EMAIL_PARAM, AGENT_HIDDEN_PARAM_NAMES, OPERATION_CONSTRAINTS, PARAM_FLAG_OVERRIDES, PARAM_SCHEMA_OVERRIDES, PARAM_EXCLUSIONS, TEXT_TARGET_FLAT_PARAMS, INSERT_FLAT_PARAMS, LIST_TARGET_FLAT_PARAMS, FORMAT_OPERATION_IDS, EXTRA_CLI_PARAMS, CLI_ONLY_METADATA, CLI_OPERATION_METADATA, OPTION_FLAG_ALIASES, CLI_OPERATION_OPTION_SPECS;
318461
318979
  var init_operation_params = __esm(() => {
318462
318980
  init_src();
318463
- init_operation_set();
318464
318981
  init_commands();
318465
- DOC_PARAM = { name: "doc", kind: "doc", type: "string" };
318466
- SESSION_PARAM = { name: "sessionId", kind: "flag", flag: "session", type: "string" };
318982
+ init_operation_set();
318983
+ DOC_PARAM = {
318984
+ name: "doc",
318985
+ kind: "doc",
318986
+ type: "string",
318987
+ description: "Document path. Optional when a session is already open."
318988
+ };
318989
+ SESSION_PARAM = {
318990
+ name: "sessionId",
318991
+ kind: "flag",
318992
+ flag: "session",
318993
+ type: "string",
318994
+ description: "Session ID for multi-session workflows. Optional when only one session is open."
318995
+ };
318467
318996
  OUT_PARAM = { name: "out", kind: "flag", type: "string", agentVisible: false };
318468
- FORCE_PARAM = { name: "force", kind: "flag", type: "boolean" };
318997
+ FORCE_PARAM = {
318998
+ name: "force",
318999
+ kind: "flag",
319000
+ type: "boolean",
319001
+ description: "Bypass confirmation checks."
319002
+ };
318469
319003
  DRY_RUN_PARAM = {
318470
319004
  name: "dryRun",
318471
319005
  kind: "flag",
318472
319006
  flag: "dry-run",
318473
- type: "boolean"
319007
+ type: "boolean",
319008
+ description: "Preview the result without applying changes."
318474
319009
  };
318475
319010
  CHANGE_MODE_PARAM = {
318476
319011
  name: "changeMode",
318477
319012
  kind: "flag",
318478
319013
  flag: "change-mode",
318479
319014
  type: "string",
318480
- schema: { enum: ["direct", "tracked"] }
319015
+ schema: { enum: ["direct", "tracked"] },
319016
+ description: 'Edit mode: "direct" applies changes immediately, "tracked" records as suggestions.'
318481
319017
  };
318482
319018
  EXPECTED_REVISION_PARAM = {
318483
319019
  name: "expectedRevision",
318484
319020
  kind: "flag",
318485
319021
  flag: "expected-revision",
318486
- type: "number"
319022
+ type: "number",
319023
+ agentVisible: false
318487
319024
  };
318488
319025
  USER_NAME_PARAM = {
318489
319026
  name: "userName",
@@ -318539,94 +319076,325 @@ var init_operation_params = __esm(() => {
318539
319076
  "doc.find": new Set(["select"])
318540
319077
  };
318541
319078
  TEXT_TARGET_FLAT_PARAMS = [
318542
- { name: "blockId", kind: "flag", flag: "block-id", type: "string" },
318543
- { name: "start", kind: "flag", type: "number" },
318544
- { name: "end", kind: "flag", type: "number" }
319079
+ { name: "blockId", kind: "flag", flag: "block-id", type: "string", description: "Block ID of the target paragraph." },
319080
+ { name: "start", kind: "flag", type: "number", description: "Start offset within the block (character index)." },
319081
+ { name: "end", kind: "flag", type: "number", description: "End offset within the block (character index)." }
318545
319082
  ];
318546
319083
  INSERT_FLAT_PARAMS = [
318547
- { name: "blockId", kind: "flag", flag: "block-id", type: "string" },
318548
- { name: "offset", kind: "flag", type: "number" }
319084
+ { name: "blockId", kind: "flag", flag: "block-id", type: "string", description: "Block ID of the target paragraph." },
319085
+ { name: "offset", kind: "flag", type: "number", description: "Character offset within the block for insertion." }
318549
319086
  ];
318550
319087
  LIST_TARGET_FLAT_PARAMS = [
318551
- { name: "nodeId", kind: "flag", flag: "node-id", type: "string" }
319088
+ { name: "nodeId", kind: "flag", flag: "node-id", type: "string", description: "Node ID of the target list item." }
318552
319089
  ];
318553
319090
  FORMAT_OPERATION_IDS = CLI_DOC_OPERATIONS.filter((operationId) => operationId.startsWith("format."));
318554
319091
  EXTRA_CLI_PARAMS = {
318555
319092
  "doc.find": [
318556
- { name: "type", kind: "flag", type: "string" },
318557
- { name: "nodeType", kind: "flag", flag: "node-type", type: "string" },
318558
- { name: "kind", kind: "flag", type: "string" },
318559
- { name: "pattern", kind: "flag", type: "string" },
318560
- { name: "mode", kind: "flag", type: "string" },
318561
- { name: "caseSensitive", kind: "flag", flag: "case-sensitive", type: "boolean" },
318562
- { name: "select", kind: "jsonFlag", flag: "select-json", type: "json" },
318563
- { name: "query", kind: "jsonFlag", flag: "query-json", type: "json" }
319093
+ {
319094
+ name: "type",
319095
+ kind: "flag",
319096
+ type: "string",
319097
+ description: "Selector type: 'text' for text search or 'node' for node type search."
319098
+ },
319099
+ {
319100
+ name: "nodeType",
319101
+ kind: "flag",
319102
+ flag: "node-type",
319103
+ type: "string",
319104
+ description: "Node type to match (paragraph, heading, table, listItem, etc.)."
319105
+ },
319106
+ { name: "kind", kind: "flag", type: "string", description: "Filter: 'block' or 'inline'." },
319107
+ { name: "pattern", kind: "flag", type: "string", description: "Text or regex pattern to match." },
319108
+ { name: "mode", kind: "flag", type: "string", description: "Match mode: 'contains' (substring) or 'regex'." },
319109
+ {
319110
+ name: "caseSensitive",
319111
+ kind: "flag",
319112
+ flag: "case-sensitive",
319113
+ type: "boolean",
319114
+ description: "Case-sensitive matching. Default: false."
319115
+ },
319116
+ {
319117
+ name: "select",
319118
+ kind: "jsonFlag",
319119
+ flag: "select-json",
319120
+ type: "json",
319121
+ description: "Search selector as JSON: {type:'text', pattern:'...'} or {type:'node', nodeType:'...'}."
319122
+ },
319123
+ { name: "query", kind: "jsonFlag", flag: "query-json", type: "json", description: "Query filter as JSON object." }
318564
319124
  ],
318565
319125
  "doc.lists.list": [{ name: "query", kind: "jsonFlag", flag: "query-json", type: "json" }],
318566
- "doc.getNode": [{ name: "address", kind: "jsonFlag", flag: "address-json", type: "json" }],
319126
+ "doc.getNode": [
319127
+ {
319128
+ name: "address",
319129
+ kind: "jsonFlag",
319130
+ flag: "address-json",
319131
+ type: "json",
319132
+ description: "Node address to retrieve (block or inline address object)."
319133
+ }
319134
+ ],
318567
319135
  "doc.insert": [...INSERT_FLAT_PARAMS],
318568
319136
  "doc.replace": [...TEXT_TARGET_FLAT_PARAMS],
318569
319137
  "doc.delete": [...TEXT_TARGET_FLAT_PARAMS],
318570
319138
  "doc.styles.apply": [
318571
- { name: "target", kind: "jsonFlag", flag: "target-json", type: "json" },
318572
- { name: "patch", kind: "jsonFlag", flag: "patch-json", type: "json" }
319139
+ {
319140
+ name: "target",
319141
+ kind: "jsonFlag",
319142
+ flag: "target-json",
319143
+ type: "json",
319144
+ description: "Text address or block address to apply styles to."
319145
+ },
319146
+ {
319147
+ name: "patch",
319148
+ kind: "jsonFlag",
319149
+ flag: "patch-json",
319150
+ type: "json",
319151
+ description: "Style patch object with run and/or paragraph properties to apply."
319152
+ }
318573
319153
  ],
318574
319154
  "doc.comments.create": [...TEXT_TARGET_FLAT_PARAMS],
318575
319155
  "doc.comments.patch": [...TEXT_TARGET_FLAT_PARAMS],
318576
319156
  "doc.lists.insert": [
318577
- { name: "input", kind: "jsonFlag", flag: "input-json", type: "json" },
319157
+ {
319158
+ name: "input",
319159
+ kind: "jsonFlag",
319160
+ flag: "input-json",
319161
+ type: "json",
319162
+ description: "Operation input as JSON object."
319163
+ },
318578
319164
  ...LIST_TARGET_FLAT_PARAMS
318579
319165
  ],
318580
319166
  "doc.lists.indent": [
318581
- { name: "input", kind: "jsonFlag", flag: "input-json", type: "json" },
319167
+ {
319168
+ name: "input",
319169
+ kind: "jsonFlag",
319170
+ flag: "input-json",
319171
+ type: "json",
319172
+ description: "Operation input as JSON object."
319173
+ },
318582
319174
  ...LIST_TARGET_FLAT_PARAMS
318583
319175
  ],
318584
319176
  "doc.lists.outdent": [
318585
- { name: "input", kind: "jsonFlag", flag: "input-json", type: "json" },
319177
+ {
319178
+ name: "input",
319179
+ kind: "jsonFlag",
319180
+ flag: "input-json",
319181
+ type: "json",
319182
+ description: "Operation input as JSON object."
319183
+ },
318586
319184
  ...LIST_TARGET_FLAT_PARAMS
318587
319185
  ],
318588
- "doc.lists.create": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
318589
- "doc.lists.attach": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
319186
+ "doc.lists.create": [
319187
+ {
319188
+ name: "input",
319189
+ kind: "jsonFlag",
319190
+ flag: "input-json",
319191
+ type: "json",
319192
+ description: "Operation input as JSON object."
319193
+ }
319194
+ ],
319195
+ "doc.lists.attach": [
319196
+ {
319197
+ name: "input",
319198
+ kind: "jsonFlag",
319199
+ flag: "input-json",
319200
+ type: "json",
319201
+ description: "Operation input as JSON object."
319202
+ }
319203
+ ],
318590
319204
  "doc.lists.detach": [
318591
- { name: "input", kind: "jsonFlag", flag: "input-json", type: "json" },
319205
+ {
319206
+ name: "input",
319207
+ kind: "jsonFlag",
319208
+ flag: "input-json",
319209
+ type: "json",
319210
+ description: "Operation input as JSON object."
319211
+ },
318592
319212
  ...LIST_TARGET_FLAT_PARAMS
318593
319213
  ],
318594
- "doc.lists.join": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
318595
- "doc.lists.canJoin": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
319214
+ "doc.lists.join": [
319215
+ {
319216
+ name: "input",
319217
+ kind: "jsonFlag",
319218
+ flag: "input-json",
319219
+ type: "json",
319220
+ description: "Operation input as JSON object."
319221
+ }
319222
+ ],
319223
+ "doc.lists.canJoin": [
319224
+ {
319225
+ name: "input",
319226
+ kind: "jsonFlag",
319227
+ flag: "input-json",
319228
+ type: "json",
319229
+ description: "Operation input as JSON object."
319230
+ }
319231
+ ],
318596
319232
  "doc.lists.separate": [
318597
- { name: "input", kind: "jsonFlag", flag: "input-json", type: "json" },
319233
+ {
319234
+ name: "input",
319235
+ kind: "jsonFlag",
319236
+ flag: "input-json",
319237
+ type: "json",
319238
+ description: "Operation input as JSON object."
319239
+ },
318598
319240
  ...LIST_TARGET_FLAT_PARAMS
318599
319241
  ],
318600
319242
  "doc.lists.setLevel": [
318601
- { name: "input", kind: "jsonFlag", flag: "input-json", type: "json" },
319243
+ {
319244
+ name: "input",
319245
+ kind: "jsonFlag",
319246
+ flag: "input-json",
319247
+ type: "json",
319248
+ description: "Operation input as JSON object."
319249
+ },
318602
319250
  ...LIST_TARGET_FLAT_PARAMS
318603
319251
  ],
318604
319252
  "doc.lists.setValue": [
318605
- { name: "input", kind: "jsonFlag", flag: "input-json", type: "json" },
319253
+ {
319254
+ name: "input",
319255
+ kind: "jsonFlag",
319256
+ flag: "input-json",
319257
+ type: "json",
319258
+ description: "Operation input as JSON object."
319259
+ },
318606
319260
  ...LIST_TARGET_FLAT_PARAMS
318607
319261
  ],
318608
319262
  "doc.lists.continuePrevious": [
318609
- { name: "input", kind: "jsonFlag", flag: "input-json", type: "json" },
319263
+ {
319264
+ name: "input",
319265
+ kind: "jsonFlag",
319266
+ flag: "input-json",
319267
+ type: "json",
319268
+ description: "Operation input as JSON object."
319269
+ },
318610
319270
  ...LIST_TARGET_FLAT_PARAMS
318611
319271
  ],
318612
319272
  "doc.lists.canContinuePrevious": [
318613
- { name: "input", kind: "jsonFlag", flag: "input-json", type: "json" },
319273
+ {
319274
+ name: "input",
319275
+ kind: "jsonFlag",
319276
+ flag: "input-json",
319277
+ type: "json",
319278
+ description: "Operation input as JSON object."
319279
+ },
318614
319280
  ...LIST_TARGET_FLAT_PARAMS
318615
319281
  ],
318616
- "doc.lists.setLevelRestart": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
318617
- "doc.lists.applyTemplate": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
318618
- "doc.lists.applyPreset": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
318619
- "doc.lists.captureTemplate": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
318620
- "doc.lists.setLevelNumbering": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
318621
- "doc.lists.setLevelBullet": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
318622
- "doc.lists.setLevelPictureBullet": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
318623
- "doc.lists.setLevelAlignment": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
318624
- "doc.lists.setLevelIndents": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
318625
- "doc.lists.setLevelTrailingCharacter": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
318626
- "doc.lists.setLevelMarkerFont": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
318627
- "doc.lists.clearLevelOverrides": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
319282
+ "doc.lists.setLevelRestart": [
319283
+ {
319284
+ name: "input",
319285
+ kind: "jsonFlag",
319286
+ flag: "input-json",
319287
+ type: "json",
319288
+ description: "Operation input as JSON object."
319289
+ }
319290
+ ],
319291
+ "doc.lists.applyTemplate": [
319292
+ {
319293
+ name: "input",
319294
+ kind: "jsonFlag",
319295
+ flag: "input-json",
319296
+ type: "json",
319297
+ description: "Operation input as JSON object."
319298
+ }
319299
+ ],
319300
+ "doc.lists.applyPreset": [
319301
+ {
319302
+ name: "input",
319303
+ kind: "jsonFlag",
319304
+ flag: "input-json",
319305
+ type: "json",
319306
+ description: "Operation input as JSON object."
319307
+ }
319308
+ ],
319309
+ "doc.lists.captureTemplate": [
319310
+ {
319311
+ name: "input",
319312
+ kind: "jsonFlag",
319313
+ flag: "input-json",
319314
+ type: "json",
319315
+ description: "Operation input as JSON object."
319316
+ }
319317
+ ],
319318
+ "doc.lists.setLevelNumbering": [
319319
+ {
319320
+ name: "input",
319321
+ kind: "jsonFlag",
319322
+ flag: "input-json",
319323
+ type: "json",
319324
+ description: "Operation input as JSON object."
319325
+ }
319326
+ ],
319327
+ "doc.lists.setLevelBullet": [
319328
+ {
319329
+ name: "input",
319330
+ kind: "jsonFlag",
319331
+ flag: "input-json",
319332
+ type: "json",
319333
+ description: "Operation input as JSON object."
319334
+ }
319335
+ ],
319336
+ "doc.lists.setLevelPictureBullet": [
319337
+ {
319338
+ name: "input",
319339
+ kind: "jsonFlag",
319340
+ flag: "input-json",
319341
+ type: "json",
319342
+ description: "Operation input as JSON object."
319343
+ }
319344
+ ],
319345
+ "doc.lists.setLevelAlignment": [
319346
+ {
319347
+ name: "input",
319348
+ kind: "jsonFlag",
319349
+ flag: "input-json",
319350
+ type: "json",
319351
+ description: "Operation input as JSON object."
319352
+ }
319353
+ ],
319354
+ "doc.lists.setLevelIndents": [
319355
+ {
319356
+ name: "input",
319357
+ kind: "jsonFlag",
319358
+ flag: "input-json",
319359
+ type: "json",
319360
+ description: "Operation input as JSON object."
319361
+ }
319362
+ ],
319363
+ "doc.lists.setLevelTrailingCharacter": [
319364
+ {
319365
+ name: "input",
319366
+ kind: "jsonFlag",
319367
+ flag: "input-json",
319368
+ type: "json",
319369
+ description: "Operation input as JSON object."
319370
+ }
319371
+ ],
319372
+ "doc.lists.setLevelMarkerFont": [
319373
+ {
319374
+ name: "input",
319375
+ kind: "jsonFlag",
319376
+ flag: "input-json",
319377
+ type: "json",
319378
+ description: "Operation input as JSON object."
319379
+ }
319380
+ ],
319381
+ "doc.lists.clearLevelOverrides": [
319382
+ {
319383
+ name: "input",
319384
+ kind: "jsonFlag",
319385
+ flag: "input-json",
319386
+ type: "json",
319387
+ description: "Operation input as JSON object."
319388
+ }
319389
+ ],
318628
319390
  "doc.lists.convertToText": [
318629
- { name: "input", kind: "jsonFlag", flag: "input-json", type: "json" },
319391
+ {
319392
+ name: "input",
319393
+ kind: "jsonFlag",
319394
+ flag: "input-json",
319395
+ type: "json",
319396
+ description: "Operation input as JSON object."
319397
+ },
318630
319398
  ...LIST_TARGET_FLAT_PARAMS
318631
319399
  ],
318632
319400
  "doc.blocks.list": [
@@ -318635,15 +319403,49 @@ var init_operation_params = __esm(() => {
318635
319403
  { name: "nodeTypes", kind: "jsonFlag", flag: "node-types-json", type: "json" }
318636
319404
  ],
318637
319405
  "doc.blocks.delete": [
318638
- { name: "nodeType", kind: "flag", flag: "node-type", type: "string" },
318639
- { name: "nodeId", kind: "flag", flag: "node-id", type: "string" }
319406
+ {
319407
+ name: "nodeType",
319408
+ kind: "flag",
319409
+ flag: "node-type",
319410
+ type: "string",
319411
+ description: "Block type of the node to delete."
319412
+ },
319413
+ { name: "nodeId", kind: "flag", flag: "node-id", type: "string", description: "Node ID of the block to delete." }
318640
319414
  ],
318641
319415
  "doc.blocks.deleteRange": [
318642
- { name: "start", kind: "jsonFlag", flag: "start-json", type: "json" },
318643
- { name: "end", kind: "jsonFlag", flag: "end-json", type: "json" }
319416
+ {
319417
+ name: "start",
319418
+ kind: "jsonFlag",
319419
+ flag: "start-json",
319420
+ type: "json",
319421
+ description: "Block address of the first block in the range to delete."
319422
+ },
319423
+ {
319424
+ name: "end",
319425
+ kind: "jsonFlag",
319426
+ flag: "end-json",
319427
+ type: "json",
319428
+ description: "Block address of the last block in the range to delete."
319429
+ }
319430
+ ],
319431
+ "doc.create.paragraph": [
319432
+ {
319433
+ name: "input",
319434
+ kind: "jsonFlag",
319435
+ flag: "input-json",
319436
+ type: "json",
319437
+ description: "Full paragraph input as JSON (alternative to individual text/at params)."
319438
+ }
318644
319439
  ],
318645
- "doc.create.paragraph": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
318646
- "doc.create.heading": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }]
319440
+ "doc.create.heading": [
319441
+ {
319442
+ name: "input",
319443
+ kind: "jsonFlag",
319444
+ flag: "input-json",
319445
+ type: "json",
319446
+ description: "Full heading input as JSON (alternative to individual text/level/at params)."
319447
+ }
319448
+ ]
318647
319449
  };
318648
319450
  for (const operationId of FORMAT_OPERATION_IDS) {
318649
319451
  EXTRA_CLI_PARAMS[`doc.${operationId}`] = [...TEXT_TARGET_FLAT_PARAMS];