@superdoc/cli 0.45.0-next.9 → 0.46.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +118466 -113056
- package/dist/prompts/mcp-prompt.md +2 -0
- package/dist/prompts/system-prompt.md +1 -1
- package/dist/tools/catalog.json +171 -3
- package/dist/tools/system-prompt-mcp.md +1 -0
- package/dist/tools/system-prompt.md +1 -0
- package/dist/tools/tools.anthropic.json +171 -3
- package/dist/tools/tools.generic.json +171 -3
- package/dist/tools/tools.openai.json +171 -3
- package/dist/tools/tools.vercel.json +171 -3
- package/package.json +11 -10
|
@@ -4450,6 +4450,10 @@
|
|
|
4450
4450
|
"type": "string",
|
|
4451
4451
|
"description": "Text content for the new list item. Only for action 'insert'. Omit for other actions."
|
|
4452
4452
|
},
|
|
4453
|
+
"inheritFrom": {
|
|
4454
|
+
"$ref": "#/$defs/ListItemAddress",
|
|
4455
|
+
"description": "Optional same-story list item to inherit paragraph and run formatting from without changing placement or numbering. When omitted, existing paragraph-creation formatting behavior, including next-style handling, is preserved. Only for action 'insert'. Omit for other actions."
|
|
4456
|
+
},
|
|
4453
4457
|
"input": {
|
|
4454
4458
|
"type": "object",
|
|
4455
4459
|
"description": "Operation input as JSON object."
|
|
@@ -6253,7 +6257,7 @@
|
|
|
6253
6257
|
},
|
|
6254
6258
|
{
|
|
6255
6259
|
"name": "superdoc_search",
|
|
6256
|
-
"description": "Find text patterns or nodes in the document and get ref handles for targeting edits and formatting. Refs expire after any mutation that changes the document. Re-search before the next edit when using individual tools (superdoc_edit, superdoc_format). Within a superdoc_mutations batch, selectors in \"where\" clauses resolve automatically at compile time; no manual re-searching needed between steps. Text search returns handle.ref covering only the matched substring. Node search finds blocks by type (paragraph, heading, table, listItem, etc.). The \"require\" parameter controls match cardinality: \"first\" returns one match, \"all\" returns every match, \"exactlyOne\" fails if not exactly one match. Supports scoping via \"within\" to search inside a single block. Patterns are plain text by default; pass select.mode: \"regex\" for regular-expression search (g/gi semantics, 1024-char cap, no wholeWord, capture groups returned on matches). Invalid or unsafe patterns fail with INVALID_INPUT. Do NOT use markdown formatting markers (#, **, etc.) in search patterns. Do NOT use this tool when you already have a ref from superdoc_get_content blocks or superdoc_create; use that ref directly.\n\nEXAMPLES:\n 1. {\"select\":{\"type\":\"text\",\"pattern\":\"Introduction\"},\"require\":\"first\"}\n 2. {\"select\":{\"type\":\"text\",\"pattern\":\"total amount\"},\"require\":\"all\"}\n 3. {\"select\":{\"type\":\"node\",\"nodeType\":\"heading\"},\"require\":\"all\"}\n 4. {\"select\":{\"type\":\"text\",\"pattern\":\"contract\"},\"within\":{\"kind\":\"block\",\"nodeType\":\"paragraph\",\"nodeId\":\"abc123\"},\"require\":\"first\"}",
|
|
6260
|
+
"description": "Find text patterns or nodes in the document and get ref handles for targeting edits and formatting. Refs expire after any mutation that changes the document. Re-search before the next edit when using individual tools (superdoc_edit, superdoc_format). Within a superdoc_mutations batch, selectors in \"where\" clauses resolve automatically at compile time; no manual re-searching needed between steps. Text search returns handle.ref covering only the matched substring. Node search finds blocks by type (paragraph, heading, table, listItem, etc.). The \"require\" parameter controls match cardinality: \"first\" returns one match, \"last\" returns the final match (without limit/offset), \"all\" returns every match, \"exactlyOne\" fails if not exactly one match. Supports scoping via \"within\" to search inside a single block. Patterns are plain text by default; pass select.mode: \"regex\" for regular-expression search (g/gi semantics, 1024-char cap, no wholeWord, capture groups returned on matches). Invalid or unsafe patterns fail with INVALID_INPUT. Do NOT use markdown formatting markers (#, **, etc.) in search patterns. Do NOT use this tool when you already have a ref from superdoc_get_content blocks or superdoc_create; use that ref directly.\n\nEXAMPLES:\n 1. {\"select\":{\"type\":\"text\",\"pattern\":\"Introduction\"},\"require\":\"first\"}\n 2. {\"select\":{\"type\":\"text\",\"pattern\":\"total amount\"},\"require\":\"all\"}\n 3. {\"select\":{\"type\":\"node\",\"nodeType\":\"heading\"},\"require\":\"all\"}\n 4. {\"select\":{\"type\":\"text\",\"pattern\":\"contract\"},\"within\":{\"kind\":\"block\",\"nodeType\":\"paragraph\",\"nodeId\":\"abc123\"},\"require\":\"first\"}",
|
|
6257
6261
|
"parameters": {
|
|
6258
6262
|
"type": "object",
|
|
6259
6263
|
"properties": {
|
|
@@ -6360,10 +6364,11 @@
|
|
|
6360
6364
|
"enum": [
|
|
6361
6365
|
"any",
|
|
6362
6366
|
"first",
|
|
6367
|
+
"last",
|
|
6363
6368
|
"exactlyOne",
|
|
6364
6369
|
"all"
|
|
6365
6370
|
],
|
|
6366
|
-
"description": "Match cardinality: 'any' (all matches), 'first' (only first), 'exactlyOne' (fail if != 1), 'all' (fail if 0)."
|
|
6371
|
+
"description": "Match cardinality: 'any' (all matches), 'first' (only first), 'last' (final scoped match, without limit/offset), 'exactlyOne' (fail if != 1), 'all' (fail if 0). For 'last', page.offset reports the selected match's ordinal in the full set."
|
|
6367
6372
|
},
|
|
6368
6373
|
"mode": {
|
|
6369
6374
|
"enum": [
|
|
@@ -8945,10 +8950,133 @@
|
|
|
8945
8950
|
"where",
|
|
8946
8951
|
"args"
|
|
8947
8952
|
]
|
|
8953
|
+
},
|
|
8954
|
+
{
|
|
8955
|
+
"type": "object",
|
|
8956
|
+
"properties": {
|
|
8957
|
+
"id": {
|
|
8958
|
+
"type": "string",
|
|
8959
|
+
"minLength": 1
|
|
8960
|
+
},
|
|
8961
|
+
"op": {
|
|
8962
|
+
"const": "comments.patch",
|
|
8963
|
+
"type": "string"
|
|
8964
|
+
},
|
|
8965
|
+
"args": {
|
|
8966
|
+
"type": "object",
|
|
8967
|
+
"properties": {
|
|
8968
|
+
"commentId": {
|
|
8969
|
+
"type": "string",
|
|
8970
|
+
"minLength": 1
|
|
8971
|
+
},
|
|
8972
|
+
"target": {
|
|
8973
|
+
"oneOf": [
|
|
8974
|
+
{
|
|
8975
|
+
"$ref": "#/$defs/TextAddress"
|
|
8976
|
+
},
|
|
8977
|
+
{
|
|
8978
|
+
"$ref": "#/$defs/SelectionTarget"
|
|
8979
|
+
}
|
|
8980
|
+
]
|
|
8981
|
+
}
|
|
8982
|
+
},
|
|
8983
|
+
"additionalProperties": false,
|
|
8984
|
+
"required": [
|
|
8985
|
+
"commentId",
|
|
8986
|
+
"target"
|
|
8987
|
+
]
|
|
8988
|
+
}
|
|
8989
|
+
},
|
|
8990
|
+
"additionalProperties": false,
|
|
8991
|
+
"required": [
|
|
8992
|
+
"id",
|
|
8993
|
+
"op",
|
|
8994
|
+
"args"
|
|
8995
|
+
]
|
|
8996
|
+
},
|
|
8997
|
+
{
|
|
8998
|
+
"type": "object",
|
|
8999
|
+
"properties": {
|
|
9000
|
+
"id": {
|
|
9001
|
+
"type": "string",
|
|
9002
|
+
"minLength": 1
|
|
9003
|
+
},
|
|
9004
|
+
"op": {
|
|
9005
|
+
"const": "trackChanges.decide",
|
|
9006
|
+
"type": "string"
|
|
9007
|
+
},
|
|
9008
|
+
"args": {
|
|
9009
|
+
"type": "object",
|
|
9010
|
+
"properties": {
|
|
9011
|
+
"decision": {
|
|
9012
|
+
"enum": [
|
|
9013
|
+
"accept",
|
|
9014
|
+
"reject"
|
|
9015
|
+
],
|
|
9016
|
+
"type": "string"
|
|
9017
|
+
},
|
|
9018
|
+
"target": {
|
|
9019
|
+
"oneOf": [
|
|
9020
|
+
{
|
|
9021
|
+
"type": "object",
|
|
9022
|
+
"properties": {
|
|
9023
|
+
"kind": {
|
|
9024
|
+
"const": "id",
|
|
9025
|
+
"type": "string"
|
|
9026
|
+
},
|
|
9027
|
+
"id": {
|
|
9028
|
+
"type": "string",
|
|
9029
|
+
"minLength": 1
|
|
9030
|
+
}
|
|
9031
|
+
},
|
|
9032
|
+
"additionalProperties": false,
|
|
9033
|
+
"required": [
|
|
9034
|
+
"kind",
|
|
9035
|
+
"id"
|
|
9036
|
+
]
|
|
9037
|
+
},
|
|
9038
|
+
{
|
|
9039
|
+
"type": "object",
|
|
9040
|
+
"properties": {
|
|
9041
|
+
"kind": {
|
|
9042
|
+
"const": "ids",
|
|
9043
|
+
"type": "string"
|
|
9044
|
+
},
|
|
9045
|
+
"ids": {
|
|
9046
|
+
"type": "array",
|
|
9047
|
+
"items": {
|
|
9048
|
+
"type": "string",
|
|
9049
|
+
"minLength": 1
|
|
9050
|
+
},
|
|
9051
|
+
"minItems": 1
|
|
9052
|
+
}
|
|
9053
|
+
},
|
|
9054
|
+
"additionalProperties": false,
|
|
9055
|
+
"required": [
|
|
9056
|
+
"kind",
|
|
9057
|
+
"ids"
|
|
9058
|
+
]
|
|
9059
|
+
}
|
|
9060
|
+
]
|
|
9061
|
+
}
|
|
9062
|
+
},
|
|
9063
|
+
"additionalProperties": false,
|
|
9064
|
+
"required": [
|
|
9065
|
+
"decision",
|
|
9066
|
+
"target"
|
|
9067
|
+
]
|
|
9068
|
+
}
|
|
9069
|
+
},
|
|
9070
|
+
"additionalProperties": false,
|
|
9071
|
+
"required": [
|
|
9072
|
+
"id",
|
|
9073
|
+
"op",
|
|
9074
|
+
"args"
|
|
9075
|
+
]
|
|
8948
9076
|
}
|
|
8949
9077
|
]
|
|
8950
9078
|
},
|
|
8951
|
-
"description": "Ordered array of mutation steps. Each step needs 'op' (text.rewrite, text.insert, text.delete, format.apply, structural.replace, or
|
|
9079
|
+
"description": "Ordered array of mutation steps. Each step needs 'op' (text.rewrite, text.insert, text.delete, format.apply, structural.replace, assert, comments.patch, or trackChanges.decide). Core steps use 'where'; review steps use explicit native args and require direct body-only plans with relocations before decisions. Check runtime capabilities for operation-specific content and targeting restrictions."
|
|
8952
9080
|
},
|
|
8953
9081
|
"detail": {
|
|
8954
9082
|
"type": "object",
|
|
@@ -9019,6 +9147,22 @@
|
|
|
9019
9147
|
"exact"
|
|
9020
9148
|
]
|
|
9021
9149
|
},
|
|
9150
|
+
"Range": {
|
|
9151
|
+
"type": "object",
|
|
9152
|
+
"properties": {
|
|
9153
|
+
"start": {
|
|
9154
|
+
"type": "integer"
|
|
9155
|
+
},
|
|
9156
|
+
"end": {
|
|
9157
|
+
"type": "integer"
|
|
9158
|
+
}
|
|
9159
|
+
},
|
|
9160
|
+
"additionalProperties": false,
|
|
9161
|
+
"required": [
|
|
9162
|
+
"start",
|
|
9163
|
+
"end"
|
|
9164
|
+
]
|
|
9165
|
+
},
|
|
9022
9166
|
"SectionAddress": {
|
|
9023
9167
|
"type": "object",
|
|
9024
9168
|
"properties": {
|
|
@@ -9310,6 +9454,30 @@
|
|
|
9310
9454
|
}
|
|
9311
9455
|
]
|
|
9312
9456
|
},
|
|
9457
|
+
"TextAddress": {
|
|
9458
|
+
"type": "object",
|
|
9459
|
+
"properties": {
|
|
9460
|
+
"kind": {
|
|
9461
|
+
"const": "text",
|
|
9462
|
+
"type": "string"
|
|
9463
|
+
},
|
|
9464
|
+
"blockId": {
|
|
9465
|
+
"type": "string"
|
|
9466
|
+
},
|
|
9467
|
+
"range": {
|
|
9468
|
+
"$ref": "#/$defs/Range"
|
|
9469
|
+
},
|
|
9470
|
+
"story": {
|
|
9471
|
+
"$ref": "#/$defs/StoryLocator"
|
|
9472
|
+
}
|
|
9473
|
+
},
|
|
9474
|
+
"additionalProperties": false,
|
|
9475
|
+
"required": [
|
|
9476
|
+
"kind",
|
|
9477
|
+
"blockId",
|
|
9478
|
+
"range"
|
|
9479
|
+
]
|
|
9480
|
+
},
|
|
9313
9481
|
"TextCoordinateSpace": {
|
|
9314
9482
|
"enum": [
|
|
9315
9483
|
"visible",
|
|
@@ -4377,6 +4377,10 @@
|
|
|
4377
4377
|
"type": "string",
|
|
4378
4378
|
"description": "Text content for the new list item. Only for action 'insert'. Omit for other actions."
|
|
4379
4379
|
},
|
|
4380
|
+
"inheritFrom": {
|
|
4381
|
+
"$ref": "#/$defs/ListItemAddress",
|
|
4382
|
+
"description": "Optional same-story list item to inherit paragraph and run formatting from without changing placement or numbering. When omitted, existing paragraph-creation formatting behavior, including next-style handling, is preserved. Only for action 'insert'. Omit for other actions."
|
|
4383
|
+
},
|
|
4380
4384
|
"input": {
|
|
4381
4385
|
"type": "object",
|
|
4382
4386
|
"description": "Operation input as JSON object."
|
|
@@ -6124,7 +6128,7 @@
|
|
|
6124
6128
|
"type": "function",
|
|
6125
6129
|
"function": {
|
|
6126
6130
|
"name": "superdoc_search",
|
|
6127
|
-
"description": "Find text patterns or nodes in the document and get ref handles for targeting edits and formatting. Refs expire after any mutation that changes the document. Re-search before the next edit when using individual tools (superdoc_edit, superdoc_format). Within a superdoc_mutations batch, selectors in \"where\" clauses resolve automatically at compile time; no manual re-searching needed between steps. Text search returns handle.ref covering only the matched substring. Node search finds blocks by type (paragraph, heading, table, listItem, etc.). The \"require\" parameter controls match cardinality: \"first\" returns one match, \"all\" returns every match, \"exactlyOne\" fails if not exactly one match. Supports scoping via \"within\" to search inside a single block. Patterns are plain text by default; pass select.mode: \"regex\" for regular-expression search (g/gi semantics, 1024-char cap, no wholeWord, capture groups returned on matches). Invalid or unsafe patterns fail with INVALID_INPUT. Do NOT use markdown formatting markers (#, **, etc.) in search patterns. Do NOT use this tool when you already have a ref from superdoc_get_content blocks or superdoc_create; use that ref directly.\n\nEXAMPLES:\n 1. {\"select\":{\"type\":\"text\",\"pattern\":\"Introduction\"},\"require\":\"first\"}\n 2. {\"select\":{\"type\":\"text\",\"pattern\":\"total amount\"},\"require\":\"all\"}\n 3. {\"select\":{\"type\":\"node\",\"nodeType\":\"heading\"},\"require\":\"all\"}\n 4. {\"select\":{\"type\":\"text\",\"pattern\":\"contract\"},\"within\":{\"kind\":\"block\",\"nodeType\":\"paragraph\",\"nodeId\":\"abc123\"},\"require\":\"first\"}",
|
|
6131
|
+
"description": "Find text patterns or nodes in the document and get ref handles for targeting edits and formatting. Refs expire after any mutation that changes the document. Re-search before the next edit when using individual tools (superdoc_edit, superdoc_format). Within a superdoc_mutations batch, selectors in \"where\" clauses resolve automatically at compile time; no manual re-searching needed between steps. Text search returns handle.ref covering only the matched substring. Node search finds blocks by type (paragraph, heading, table, listItem, etc.). The \"require\" parameter controls match cardinality: \"first\" returns one match, \"last\" returns the final match (without limit/offset), \"all\" returns every match, \"exactlyOne\" fails if not exactly one match. Supports scoping via \"within\" to search inside a single block. Patterns are plain text by default; pass select.mode: \"regex\" for regular-expression search (g/gi semantics, 1024-char cap, no wholeWord, capture groups returned on matches). Invalid or unsafe patterns fail with INVALID_INPUT. Do NOT use markdown formatting markers (#, **, etc.) in search patterns. Do NOT use this tool when you already have a ref from superdoc_get_content blocks or superdoc_create; use that ref directly.\n\nEXAMPLES:\n 1. {\"select\":{\"type\":\"text\",\"pattern\":\"Introduction\"},\"require\":\"first\"}\n 2. {\"select\":{\"type\":\"text\",\"pattern\":\"total amount\"},\"require\":\"all\"}\n 3. {\"select\":{\"type\":\"node\",\"nodeType\":\"heading\"},\"require\":\"all\"}\n 4. {\"select\":{\"type\":\"text\",\"pattern\":\"contract\"},\"within\":{\"kind\":\"block\",\"nodeType\":\"paragraph\",\"nodeId\":\"abc123\"},\"require\":\"first\"}",
|
|
6128
6132
|
"parameters": {
|
|
6129
6133
|
"type": "object",
|
|
6130
6134
|
"properties": {
|
|
@@ -6231,10 +6235,11 @@
|
|
|
6231
6235
|
"enum": [
|
|
6232
6236
|
"any",
|
|
6233
6237
|
"first",
|
|
6238
|
+
"last",
|
|
6234
6239
|
"exactlyOne",
|
|
6235
6240
|
"all"
|
|
6236
6241
|
],
|
|
6237
|
-
"description": "Match cardinality: 'any' (all matches), 'first' (only first), 'exactlyOne' (fail if != 1), 'all' (fail if 0)."
|
|
6242
|
+
"description": "Match cardinality: 'any' (all matches), 'first' (only first), 'last' (final scoped match, without limit/offset), 'exactlyOne' (fail if != 1), 'all' (fail if 0). For 'last', page.offset reports the selected match's ordinal in the full set."
|
|
6238
6243
|
},
|
|
6239
6244
|
"mode": {
|
|
6240
6245
|
"enum": [
|
|
@@ -8803,10 +8808,133 @@
|
|
|
8803
8808
|
"where",
|
|
8804
8809
|
"args"
|
|
8805
8810
|
]
|
|
8811
|
+
},
|
|
8812
|
+
{
|
|
8813
|
+
"type": "object",
|
|
8814
|
+
"properties": {
|
|
8815
|
+
"id": {
|
|
8816
|
+
"type": "string",
|
|
8817
|
+
"minLength": 1
|
|
8818
|
+
},
|
|
8819
|
+
"op": {
|
|
8820
|
+
"const": "comments.patch",
|
|
8821
|
+
"type": "string"
|
|
8822
|
+
},
|
|
8823
|
+
"args": {
|
|
8824
|
+
"type": "object",
|
|
8825
|
+
"properties": {
|
|
8826
|
+
"commentId": {
|
|
8827
|
+
"type": "string",
|
|
8828
|
+
"minLength": 1
|
|
8829
|
+
},
|
|
8830
|
+
"target": {
|
|
8831
|
+
"oneOf": [
|
|
8832
|
+
{
|
|
8833
|
+
"$ref": "#/$defs/TextAddress"
|
|
8834
|
+
},
|
|
8835
|
+
{
|
|
8836
|
+
"$ref": "#/$defs/SelectionTarget"
|
|
8837
|
+
}
|
|
8838
|
+
]
|
|
8839
|
+
}
|
|
8840
|
+
},
|
|
8841
|
+
"additionalProperties": false,
|
|
8842
|
+
"required": [
|
|
8843
|
+
"commentId",
|
|
8844
|
+
"target"
|
|
8845
|
+
]
|
|
8846
|
+
}
|
|
8847
|
+
},
|
|
8848
|
+
"additionalProperties": false,
|
|
8849
|
+
"required": [
|
|
8850
|
+
"id",
|
|
8851
|
+
"op",
|
|
8852
|
+
"args"
|
|
8853
|
+
]
|
|
8854
|
+
},
|
|
8855
|
+
{
|
|
8856
|
+
"type": "object",
|
|
8857
|
+
"properties": {
|
|
8858
|
+
"id": {
|
|
8859
|
+
"type": "string",
|
|
8860
|
+
"minLength": 1
|
|
8861
|
+
},
|
|
8862
|
+
"op": {
|
|
8863
|
+
"const": "trackChanges.decide",
|
|
8864
|
+
"type": "string"
|
|
8865
|
+
},
|
|
8866
|
+
"args": {
|
|
8867
|
+
"type": "object",
|
|
8868
|
+
"properties": {
|
|
8869
|
+
"decision": {
|
|
8870
|
+
"enum": [
|
|
8871
|
+
"accept",
|
|
8872
|
+
"reject"
|
|
8873
|
+
],
|
|
8874
|
+
"type": "string"
|
|
8875
|
+
},
|
|
8876
|
+
"target": {
|
|
8877
|
+
"oneOf": [
|
|
8878
|
+
{
|
|
8879
|
+
"type": "object",
|
|
8880
|
+
"properties": {
|
|
8881
|
+
"kind": {
|
|
8882
|
+
"const": "id",
|
|
8883
|
+
"type": "string"
|
|
8884
|
+
},
|
|
8885
|
+
"id": {
|
|
8886
|
+
"type": "string",
|
|
8887
|
+
"minLength": 1
|
|
8888
|
+
}
|
|
8889
|
+
},
|
|
8890
|
+
"additionalProperties": false,
|
|
8891
|
+
"required": [
|
|
8892
|
+
"kind",
|
|
8893
|
+
"id"
|
|
8894
|
+
]
|
|
8895
|
+
},
|
|
8896
|
+
{
|
|
8897
|
+
"type": "object",
|
|
8898
|
+
"properties": {
|
|
8899
|
+
"kind": {
|
|
8900
|
+
"const": "ids",
|
|
8901
|
+
"type": "string"
|
|
8902
|
+
},
|
|
8903
|
+
"ids": {
|
|
8904
|
+
"type": "array",
|
|
8905
|
+
"items": {
|
|
8906
|
+
"type": "string",
|
|
8907
|
+
"minLength": 1
|
|
8908
|
+
},
|
|
8909
|
+
"minItems": 1
|
|
8910
|
+
}
|
|
8911
|
+
},
|
|
8912
|
+
"additionalProperties": false,
|
|
8913
|
+
"required": [
|
|
8914
|
+
"kind",
|
|
8915
|
+
"ids"
|
|
8916
|
+
]
|
|
8917
|
+
}
|
|
8918
|
+
]
|
|
8919
|
+
}
|
|
8920
|
+
},
|
|
8921
|
+
"additionalProperties": false,
|
|
8922
|
+
"required": [
|
|
8923
|
+
"decision",
|
|
8924
|
+
"target"
|
|
8925
|
+
]
|
|
8926
|
+
}
|
|
8927
|
+
},
|
|
8928
|
+
"additionalProperties": false,
|
|
8929
|
+
"required": [
|
|
8930
|
+
"id",
|
|
8931
|
+
"op",
|
|
8932
|
+
"args"
|
|
8933
|
+
]
|
|
8806
8934
|
}
|
|
8807
8935
|
]
|
|
8808
8936
|
},
|
|
8809
|
-
"description": "Ordered array of mutation steps. Each step needs 'op' (text.rewrite, text.insert, text.delete, format.apply, structural.replace, or
|
|
8937
|
+
"description": "Ordered array of mutation steps. Each step needs 'op' (text.rewrite, text.insert, text.delete, format.apply, structural.replace, assert, comments.patch, or trackChanges.decide). Core steps use 'where'; review steps use explicit native args and require direct body-only plans with relocations before decisions. Check runtime capabilities for operation-specific content and targeting restrictions."
|
|
8810
8938
|
},
|
|
8811
8939
|
"detail": {
|
|
8812
8940
|
"type": "object",
|
|
@@ -8877,6 +9005,22 @@
|
|
|
8877
9005
|
"exact"
|
|
8878
9006
|
]
|
|
8879
9007
|
},
|
|
9008
|
+
"Range": {
|
|
9009
|
+
"type": "object",
|
|
9010
|
+
"properties": {
|
|
9011
|
+
"start": {
|
|
9012
|
+
"type": "integer"
|
|
9013
|
+
},
|
|
9014
|
+
"end": {
|
|
9015
|
+
"type": "integer"
|
|
9016
|
+
}
|
|
9017
|
+
},
|
|
9018
|
+
"additionalProperties": false,
|
|
9019
|
+
"required": [
|
|
9020
|
+
"start",
|
|
9021
|
+
"end"
|
|
9022
|
+
]
|
|
9023
|
+
},
|
|
8880
9024
|
"SectionAddress": {
|
|
8881
9025
|
"type": "object",
|
|
8882
9026
|
"properties": {
|
|
@@ -9168,6 +9312,30 @@
|
|
|
9168
9312
|
}
|
|
9169
9313
|
]
|
|
9170
9314
|
},
|
|
9315
|
+
"TextAddress": {
|
|
9316
|
+
"type": "object",
|
|
9317
|
+
"properties": {
|
|
9318
|
+
"kind": {
|
|
9319
|
+
"const": "text",
|
|
9320
|
+
"type": "string"
|
|
9321
|
+
},
|
|
9322
|
+
"blockId": {
|
|
9323
|
+
"type": "string"
|
|
9324
|
+
},
|
|
9325
|
+
"range": {
|
|
9326
|
+
"$ref": "#/$defs/Range"
|
|
9327
|
+
},
|
|
9328
|
+
"story": {
|
|
9329
|
+
"$ref": "#/$defs/StoryLocator"
|
|
9330
|
+
}
|
|
9331
|
+
},
|
|
9332
|
+
"additionalProperties": false,
|
|
9333
|
+
"required": [
|
|
9334
|
+
"kind",
|
|
9335
|
+
"blockId",
|
|
9336
|
+
"range"
|
|
9337
|
+
]
|
|
9338
|
+
},
|
|
9171
9339
|
"TextCoordinateSpace": {
|
|
9172
9340
|
"enum": [
|
|
9173
9341
|
"visible",
|