@superdoc-dev/sdk 1.6.0-next.9 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5142,7 +5142,7 @@ const CONTRACT = {
5142
5142
  "list"
5143
5143
  ],
5144
5144
  "category": "core",
5145
- "description": "List top-level blocks in document order with IDs, types, and text previews. Supports pagination via offset/limit and optional nodeType filtering.",
5145
+ "description": "List top-level blocks in document order with IDs, types, text previews, and optional full text when includeText:true. Supports pagination via offset/limit and optional nodeType filtering.",
5146
5146
  "requiresDocumentContext": true,
5147
5147
  "docRequirement": "optional",
5148
5148
  "responseEnvelopeKey": "result",
@@ -5213,6 +5213,13 @@ const CONTRACT = {
5213
5213
  "description": "Filter by block types (e.g. ['paragraph', 'heading']). Omit for all types."
5214
5214
  },
5215
5215
  "description": "Filter by block types (e.g. ['paragraph', 'heading']). Omit for all types."
5216
+ },
5217
+ {
5218
+ "name": "includeText",
5219
+ "kind": "flag",
5220
+ "type": "boolean",
5221
+ "flag": "include-text",
5222
+ "description": "When true, includes the full flattened block text in each block entry."
5216
5223
  }
5217
5224
  ],
5218
5225
  "constraints": null,
@@ -5249,6 +5256,10 @@ const CONTRACT = {
5249
5256
  ]
5250
5257
  },
5251
5258
  "description": "Filter by block types (e.g. ['paragraph', 'heading']). Omit for all types."
5259
+ },
5260
+ "includeText": {
5261
+ "type": "boolean",
5262
+ "description": "When true, includes the full flattened block text in each block entry."
5252
5263
  }
5253
5264
  },
5254
5265
  "additionalProperties": false
@@ -5294,6 +5305,17 @@ const CONTRACT = {
5294
5305
  }
5295
5306
  ]
5296
5307
  },
5308
+ "text": {
5309
+ "oneOf": [
5310
+ {
5311
+ "type": "string"
5312
+ },
5313
+ {
5314
+ "type": "null"
5315
+ }
5316
+ ],
5317
+ "description": "Full flattened block text when requested with includeText."
5318
+ },
5297
5319
  "isEmpty": {
5298
5320
  "type": "boolean"
5299
5321
  },
@@ -62506,6 +62528,53 @@ const CONTRACT = {
62506
62528
  "by",
62507
62529
  "target"
62508
62530
  ]
62531
+ },
62532
+ {
62533
+ "type": "object",
62534
+ "properties": {
62535
+ "by": {
62536
+ "const": "block"
62537
+ },
62538
+ "nodeType": {
62539
+ "oneOf": [
62540
+ {
62541
+ "const": "paragraph"
62542
+ },
62543
+ {
62544
+ "const": "heading"
62545
+ },
62546
+ {
62547
+ "const": "listItem"
62548
+ },
62549
+ {
62550
+ "const": "table"
62551
+ },
62552
+ {
62553
+ "const": "tableRow"
62554
+ },
62555
+ {
62556
+ "const": "tableCell"
62557
+ },
62558
+ {
62559
+ "const": "tableOfContents"
62560
+ },
62561
+ {
62562
+ "const": "image"
62563
+ },
62564
+ {
62565
+ "const": "sdt"
62566
+ }
62567
+ ]
62568
+ },
62569
+ "nodeId": {
62570
+ "type": "string"
62571
+ }
62572
+ },
62573
+ "required": [
62574
+ "by",
62575
+ "nodeType",
62576
+ "nodeId"
62577
+ ]
62509
62578
  }
62510
62579
  ]
62511
62580
  },
@@ -62701,51 +62770,221 @@ const CONTRACT = {
62701
62770
  "const": "text.insert"
62702
62771
  },
62703
62772
  "where": {
62704
- "type": "object",
62705
- "properties": {
62706
- "by": {
62707
- "const": "select"
62708
- },
62709
- "select": {
62710
- "oneOf": [
62711
- {
62773
+ "oneOf": [
62774
+ {
62775
+ "type": "object",
62776
+ "properties": {
62777
+ "by": {
62778
+ "const": "select"
62779
+ },
62780
+ "select": {
62781
+ "oneOf": [
62782
+ {
62783
+ "type": "object",
62784
+ "properties": {
62785
+ "type": {
62786
+ "const": "text",
62787
+ "description": "Must be 'text' for text pattern search."
62788
+ },
62789
+ "pattern": {
62790
+ "type": "string",
62791
+ "description": "Text or regex pattern to match."
62792
+ },
62793
+ "mode": {
62794
+ "oneOf": [
62795
+ {
62796
+ "const": "contains"
62797
+ },
62798
+ {
62799
+ "const": "regex"
62800
+ }
62801
+ ],
62802
+ "description": "Match mode: 'contains' (substring) or 'regex'."
62803
+ },
62804
+ "caseSensitive": {
62805
+ "type": "boolean",
62806
+ "description": "Case-sensitive matching. Default: false."
62807
+ }
62808
+ },
62809
+ "required": [
62810
+ "type",
62811
+ "pattern"
62812
+ ]
62813
+ },
62814
+ {
62815
+ "type": "object",
62816
+ "properties": {
62817
+ "type": {
62818
+ "const": "node",
62819
+ "description": "Must be 'node' for node type search."
62820
+ },
62821
+ "nodeType": {
62822
+ "oneOf": [
62823
+ {
62824
+ "const": "paragraph"
62825
+ },
62826
+ {
62827
+ "const": "heading"
62828
+ },
62829
+ {
62830
+ "const": "listItem"
62831
+ },
62832
+ {
62833
+ "const": "table"
62834
+ },
62835
+ {
62836
+ "const": "tableRow"
62837
+ },
62838
+ {
62839
+ "const": "tableCell"
62840
+ },
62841
+ {
62842
+ "const": "tableOfContents"
62843
+ },
62844
+ {
62845
+ "const": "image"
62846
+ },
62847
+ {
62848
+ "const": "sdt"
62849
+ },
62850
+ {
62851
+ "const": "run"
62852
+ },
62853
+ {
62854
+ "const": "bookmark"
62855
+ },
62856
+ {
62857
+ "const": "comment"
62858
+ },
62859
+ {
62860
+ "const": "hyperlink"
62861
+ },
62862
+ {
62863
+ "const": "footnoteRef"
62864
+ },
62865
+ {
62866
+ "const": "endnoteRef"
62867
+ },
62868
+ {
62869
+ "const": "crossRef"
62870
+ },
62871
+ {
62872
+ "const": "indexEntry"
62873
+ },
62874
+ {
62875
+ "const": "citation"
62876
+ },
62877
+ {
62878
+ "const": "authorityEntry"
62879
+ },
62880
+ {
62881
+ "const": "sequenceField"
62882
+ },
62883
+ {
62884
+ "const": "tab"
62885
+ },
62886
+ {
62887
+ "const": "lineBreak"
62888
+ }
62889
+ ],
62890
+ "description": "Block type to match (paragraph, heading, table, listItem, etc.)."
62891
+ },
62892
+ "kind": {
62893
+ "oneOf": [
62894
+ {
62895
+ "const": "block"
62896
+ },
62897
+ {
62898
+ "const": "inline"
62899
+ }
62900
+ ],
62901
+ "description": "Filter: 'block' or 'inline'."
62902
+ }
62903
+ },
62904
+ "required": [
62905
+ "type"
62906
+ ]
62907
+ }
62908
+ ]
62909
+ },
62910
+ "within": {
62712
62911
  "type": "object",
62713
62912
  "properties": {
62714
- "type": {
62715
- "const": "text",
62716
- "description": "Must be 'text' for text pattern search."
62717
- },
62718
- "pattern": {
62719
- "type": "string",
62720
- "description": "Text or regex pattern to match."
62913
+ "kind": {
62914
+ "const": "block"
62721
62915
  },
62722
- "mode": {
62916
+ "nodeType": {
62723
62917
  "oneOf": [
62724
62918
  {
62725
- "const": "contains"
62919
+ "const": "paragraph"
62726
62920
  },
62727
62921
  {
62728
- "const": "regex"
62922
+ "const": "heading"
62923
+ },
62924
+ {
62925
+ "const": "listItem"
62926
+ },
62927
+ {
62928
+ "const": "table"
62929
+ },
62930
+ {
62931
+ "const": "tableRow"
62932
+ },
62933
+ {
62934
+ "const": "tableCell"
62935
+ },
62936
+ {
62937
+ "const": "tableOfContents"
62938
+ },
62939
+ {
62940
+ "const": "image"
62941
+ },
62942
+ {
62943
+ "const": "sdt"
62729
62944
  }
62730
- ],
62731
- "description": "Match mode: 'contains' (substring) or 'regex'."
62945
+ ]
62732
62946
  },
62733
- "caseSensitive": {
62734
- "type": "boolean",
62735
- "description": "Case-sensitive matching. Default: false."
62947
+ "nodeId": {
62948
+ "type": "string"
62736
62949
  }
62737
62950
  },
62738
62951
  "required": [
62739
- "type",
62740
- "pattern"
62952
+ "kind",
62953
+ "nodeType",
62954
+ "nodeId"
62741
62955
  ]
62742
62956
  },
62743
- {
62957
+ "require": {
62958
+ "oneOf": [
62959
+ {
62960
+ "const": "first"
62961
+ },
62962
+ {
62963
+ "const": "exactlyOne"
62964
+ }
62965
+ ]
62966
+ }
62967
+ },
62968
+ "required": [
62969
+ "by",
62970
+ "select",
62971
+ "require"
62972
+ ]
62973
+ },
62974
+ {
62975
+ "type": "object",
62976
+ "properties": {
62977
+ "by": {
62978
+ "const": "ref"
62979
+ },
62980
+ "ref": {
62981
+ "type": "string"
62982
+ },
62983
+ "within": {
62744
62984
  "type": "object",
62745
62985
  "properties": {
62746
- "type": {
62747
- "const": "node",
62748
- "description": "Must be 'node' for node type search."
62986
+ "kind": {
62987
+ "const": "block"
62749
62988
  },
62750
62989
  "nodeType": {
62751
62990
  "oneOf": [
@@ -62775,71 +63014,224 @@ const CONTRACT = {
62775
63014
  },
62776
63015
  {
62777
63016
  "const": "sdt"
62778
- },
62779
- {
62780
- "const": "run"
62781
- },
62782
- {
62783
- "const": "bookmark"
62784
- },
62785
- {
62786
- "const": "comment"
62787
- },
62788
- {
62789
- "const": "hyperlink"
62790
- },
62791
- {
62792
- "const": "footnoteRef"
62793
- },
62794
- {
62795
- "const": "endnoteRef"
62796
- },
62797
- {
62798
- "const": "crossRef"
62799
- },
62800
- {
62801
- "const": "indexEntry"
62802
- },
62803
- {
62804
- "const": "citation"
62805
- },
62806
- {
62807
- "const": "authorityEntry"
62808
- },
62809
- {
62810
- "const": "sequenceField"
62811
- },
63017
+ }
63018
+ ]
63019
+ },
63020
+ "nodeId": {
63021
+ "type": "string"
63022
+ }
63023
+ },
63024
+ "required": [
63025
+ "kind",
63026
+ "nodeType",
63027
+ "nodeId"
63028
+ ]
63029
+ }
63030
+ },
63031
+ "required": [
63032
+ "by",
63033
+ "ref"
63034
+ ]
63035
+ },
63036
+ {
63037
+ "type": "object",
63038
+ "properties": {
63039
+ "by": {
63040
+ "const": "target"
63041
+ },
63042
+ "target": {
63043
+ "type": "object",
63044
+ "properties": {
63045
+ "kind": {
63046
+ "const": "selection"
63047
+ },
63048
+ "start": {
63049
+ "oneOf": [
62812
63050
  {
62813
- "const": "tab"
63051
+ "type": "object",
63052
+ "properties": {
63053
+ "kind": {
63054
+ "const": "text"
63055
+ },
63056
+ "blockId": {
63057
+ "type": "string"
63058
+ },
63059
+ "offset": {
63060
+ "type": "number"
63061
+ }
63062
+ },
63063
+ "required": [
63064
+ "kind",
63065
+ "blockId",
63066
+ "offset"
63067
+ ]
62814
63068
  },
62815
63069
  {
62816
- "const": "lineBreak"
63070
+ "type": "object",
63071
+ "properties": {
63072
+ "kind": {
63073
+ "const": "nodeEdge"
63074
+ },
63075
+ "node": {
63076
+ "type": "object",
63077
+ "properties": {
63078
+ "kind": {
63079
+ "const": "block"
63080
+ },
63081
+ "nodeType": {
63082
+ "oneOf": [
63083
+ {
63084
+ "const": "paragraph"
63085
+ },
63086
+ {
63087
+ "const": "heading"
63088
+ },
63089
+ {
63090
+ "const": "table"
63091
+ },
63092
+ {
63093
+ "const": "tableOfContents"
63094
+ },
63095
+ {
63096
+ "const": "sdt"
63097
+ },
63098
+ {
63099
+ "const": "image"
63100
+ }
63101
+ ]
63102
+ },
63103
+ "nodeId": {
63104
+ "type": "string"
63105
+ }
63106
+ },
63107
+ "required": [
63108
+ "kind",
63109
+ "nodeType",
63110
+ "nodeId"
63111
+ ]
63112
+ },
63113
+ "edge": {
63114
+ "oneOf": [
63115
+ {
63116
+ "const": "before"
63117
+ },
63118
+ {
63119
+ "const": "after"
63120
+ }
63121
+ ]
63122
+ }
63123
+ },
63124
+ "required": [
63125
+ "kind",
63126
+ "node",
63127
+ "edge"
63128
+ ]
62817
63129
  }
62818
63130
  ],
62819
- "description": "Block type to match (paragraph, heading, table, listItem, etc.)."
63131
+ "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."
62820
63132
  },
62821
- "kind": {
63133
+ "end": {
62822
63134
  "oneOf": [
62823
63135
  {
62824
- "const": "block"
63136
+ "type": "object",
63137
+ "properties": {
63138
+ "kind": {
63139
+ "const": "text"
63140
+ },
63141
+ "blockId": {
63142
+ "type": "string"
63143
+ },
63144
+ "offset": {
63145
+ "type": "number"
63146
+ }
63147
+ },
63148
+ "required": [
63149
+ "kind",
63150
+ "blockId",
63151
+ "offset"
63152
+ ]
62825
63153
  },
62826
63154
  {
62827
- "const": "inline"
63155
+ "type": "object",
63156
+ "properties": {
63157
+ "kind": {
63158
+ "const": "nodeEdge"
63159
+ },
63160
+ "node": {
63161
+ "type": "object",
63162
+ "properties": {
63163
+ "kind": {
63164
+ "const": "block"
63165
+ },
63166
+ "nodeType": {
63167
+ "oneOf": [
63168
+ {
63169
+ "const": "paragraph"
63170
+ },
63171
+ {
63172
+ "const": "heading"
63173
+ },
63174
+ {
63175
+ "const": "table"
63176
+ },
63177
+ {
63178
+ "const": "tableOfContents"
63179
+ },
63180
+ {
63181
+ "const": "sdt"
63182
+ },
63183
+ {
63184
+ "const": "image"
63185
+ }
63186
+ ]
63187
+ },
63188
+ "nodeId": {
63189
+ "type": "string"
63190
+ }
63191
+ },
63192
+ "required": [
63193
+ "kind",
63194
+ "nodeType",
63195
+ "nodeId"
63196
+ ]
63197
+ },
63198
+ "edge": {
63199
+ "oneOf": [
63200
+ {
63201
+ "const": "before"
63202
+ },
63203
+ {
63204
+ "const": "after"
63205
+ }
63206
+ ]
63207
+ }
63208
+ },
63209
+ "required": [
63210
+ "kind",
63211
+ "node",
63212
+ "edge"
63213
+ ]
62828
63214
  }
62829
63215
  ],
62830
- "description": "Filter: 'block' or 'inline'."
63216
+ "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."
62831
63217
  }
62832
63218
  },
62833
63219
  "required": [
62834
- "type"
63220
+ "kind",
63221
+ "start",
63222
+ "end"
62835
63223
  ]
62836
63224
  }
63225
+ },
63226
+ "required": [
63227
+ "by",
63228
+ "target"
62837
63229
  ]
62838
63230
  },
62839
- "within": {
63231
+ {
62840
63232
  "type": "object",
62841
63233
  "properties": {
62842
- "kind": {
63234
+ "by": {
62843
63235
  "const": "block"
62844
63236
  },
62845
63237
  "nodeType": {
@@ -62878,26 +63270,11 @@ const CONTRACT = {
62878
63270
  }
62879
63271
  },
62880
63272
  "required": [
62881
- "kind",
63273
+ "by",
62882
63274
  "nodeType",
62883
63275
  "nodeId"
62884
63276
  ]
62885
- },
62886
- "require": {
62887
- "oneOf": [
62888
- {
62889
- "const": "first"
62890
- },
62891
- {
62892
- "const": "exactlyOne"
62893
- }
62894
- ]
62895
63277
  }
62896
- },
62897
- "required": [
62898
- "by",
62899
- "select",
62900
- "require"
62901
63278
  ]
62902
63279
  },
62903
63280
  "args": {
@@ -63494,6 +63871,53 @@ const CONTRACT = {
63494
63871
  "by",
63495
63872
  "target"
63496
63873
  ]
63874
+ },
63875
+ {
63876
+ "type": "object",
63877
+ "properties": {
63878
+ "by": {
63879
+ "const": "block"
63880
+ },
63881
+ "nodeType": {
63882
+ "oneOf": [
63883
+ {
63884
+ "const": "paragraph"
63885
+ },
63886
+ {
63887
+ "const": "heading"
63888
+ },
63889
+ {
63890
+ "const": "listItem"
63891
+ },
63892
+ {
63893
+ "const": "table"
63894
+ },
63895
+ {
63896
+ "const": "tableRow"
63897
+ },
63898
+ {
63899
+ "const": "tableCell"
63900
+ },
63901
+ {
63902
+ "const": "tableOfContents"
63903
+ },
63904
+ {
63905
+ "const": "image"
63906
+ },
63907
+ {
63908
+ "const": "sdt"
63909
+ }
63910
+ ]
63911
+ },
63912
+ "nodeId": {
63913
+ "type": "string"
63914
+ }
63915
+ },
63916
+ "required": [
63917
+ "by",
63918
+ "nodeType",
63919
+ "nodeId"
63920
+ ]
63497
63921
  }
63498
63922
  ]
63499
63923
  },
@@ -63990,6 +64414,53 @@ const CONTRACT = {
63990
64414
  "by",
63991
64415
  "target"
63992
64416
  ]
64417
+ },
64418
+ {
64419
+ "type": "object",
64420
+ "properties": {
64421
+ "by": {
64422
+ "const": "block"
64423
+ },
64424
+ "nodeType": {
64425
+ "oneOf": [
64426
+ {
64427
+ "const": "paragraph"
64428
+ },
64429
+ {
64430
+ "const": "heading"
64431
+ },
64432
+ {
64433
+ "const": "listItem"
64434
+ },
64435
+ {
64436
+ "const": "table"
64437
+ },
64438
+ {
64439
+ "const": "tableRow"
64440
+ },
64441
+ {
64442
+ "const": "tableCell"
64443
+ },
64444
+ {
64445
+ "const": "tableOfContents"
64446
+ },
64447
+ {
64448
+ "const": "image"
64449
+ },
64450
+ {
64451
+ "const": "sdt"
64452
+ }
64453
+ ]
64454
+ },
64455
+ "nodeId": {
64456
+ "type": "string"
64457
+ }
64458
+ },
64459
+ "required": [
64460
+ "by",
64461
+ "nodeType",
64462
+ "nodeId"
64463
+ ]
63993
64464
  }
63994
64465
  ]
63995
64466
  },
@@ -64761,11 +65232,36 @@ const CONTRACT = {
64761
65232
  ]
64762
65233
  }
64763
65234
  }
65235
+ },
65236
+ "alignment": {
65237
+ "oneOf": [
65238
+ {
65239
+ "const": "left"
65240
+ },
65241
+ {
65242
+ "const": "center"
65243
+ },
65244
+ {
65245
+ "const": "right"
65246
+ },
65247
+ {
65248
+ "const": "justify"
65249
+ }
65250
+ ],
65251
+ "description": "Set paragraph alignment on the target block(s). Can be combined with inline formatting in the same step."
65252
+ },
65253
+ "scope": {
65254
+ "oneOf": [
65255
+ {
65256
+ "const": "match"
65257
+ },
65258
+ {
65259
+ "const": "block"
65260
+ }
65261
+ ],
65262
+ "description": "When \"block\", inline formatting expands to cover the entire parent paragraph(s), not just the matched text. Use \"block\" after markdown inserts to format whole paragraphs with a short identifying pattern. Default: \"match\"."
64764
65263
  }
64765
- },
64766
- "required": [
64767
- "inline"
64768
- ]
65264
+ }
64769
65265
  }
64770
65266
  },
64771
65267
  "required": [
@@ -65183,6 +65679,37 @@ const CONTRACT = {
65183
65679
  "by",
65184
65680
  "target"
65185
65681
  ]
65682
+ },
65683
+ {
65684
+ "type": "object",
65685
+ "properties": {
65686
+ "by": {
65687
+ "const": "block",
65688
+ "type": "string"
65689
+ },
65690
+ "nodeType": {
65691
+ "enum": [
65692
+ "paragraph",
65693
+ "heading",
65694
+ "listItem",
65695
+ "table",
65696
+ "tableRow",
65697
+ "tableCell",
65698
+ "tableOfContents",
65699
+ "image",
65700
+ "sdt"
65701
+ ]
65702
+ },
65703
+ "nodeId": {
65704
+ "type": "string"
65705
+ }
65706
+ },
65707
+ "additionalProperties": false,
65708
+ "required": [
65709
+ "by",
65710
+ "nodeType",
65711
+ "nodeId"
65712
+ ]
65186
65713
  }
65187
65714
  ]
65188
65715
  },
@@ -65343,217 +65870,289 @@ const CONTRACT = {
65343
65870
  "const": "text.insert",
65344
65871
  "type": "string"
65345
65872
  },
65346
- "where": {
65347
- "type": "object",
65348
- "properties": {
65349
- "by": {
65350
- "const": "select",
65351
- "type": "string"
65352
- },
65353
- "select": {
65354
- "oneOf": [
65355
- {
65356
- "type": "object",
65357
- "properties": {
65358
- "type": {
65359
- "const": "text",
65360
- "description": "Must be 'text' for text pattern search."
65361
- },
65362
- "pattern": {
65363
- "type": "string",
65364
- "description": "Text or regex pattern to match."
65365
- },
65366
- "mode": {
65367
- "enum": [
65368
- "contains",
65369
- "regex"
65370
- ],
65371
- "description": "Match mode: 'contains' (substring) or 'regex'."
65372
- },
65373
- "caseSensitive": {
65374
- "type": "boolean",
65375
- "description": "Case-sensitive matching. Default: false."
65376
- }
65377
- },
65378
- "additionalProperties": false,
65379
- "required": [
65380
- "type",
65381
- "pattern"
65382
- ]
65383
- },
65384
- {
65385
- "type": "object",
65386
- "properties": {
65387
- "type": {
65388
- "const": "node",
65389
- "description": "Must be 'node' for node type search."
65390
- },
65391
- "nodeType": {
65392
- "enum": [
65393
- "paragraph",
65394
- "heading",
65395
- "listItem",
65396
- "table",
65397
- "tableRow",
65398
- "tableCell",
65399
- "tableOfContents",
65400
- "image",
65401
- "sdt",
65402
- "run",
65403
- "bookmark",
65404
- "comment",
65405
- "hyperlink",
65406
- "footnoteRef",
65407
- "endnoteRef",
65408
- "crossRef",
65409
- "indexEntry",
65410
- "citation",
65411
- "authorityEntry",
65412
- "sequenceField",
65413
- "tab",
65414
- "lineBreak"
65415
- ],
65416
- "description": "Block type to match (paragraph, heading, table, listItem, etc.)."
65417
- },
65418
- "kind": {
65419
- "enum": [
65420
- "block",
65421
- "inline"
65422
- ],
65423
- "description": "Filter: 'block' or 'inline'."
65424
- }
65425
- },
65426
- "additionalProperties": false,
65427
- "required": [
65428
- "type"
65429
- ]
65430
- }
65431
- ]
65432
- },
65433
- "within": {
65434
- "$ref": "#/$defs/BlockNodeAddress"
65435
- },
65436
- "require": {
65437
- "enum": [
65438
- "first",
65439
- "exactlyOne"
65440
- ]
65441
- }
65442
- },
65443
- "additionalProperties": false,
65444
- "required": [
65445
- "by",
65446
- "select",
65447
- "require"
65448
- ]
65449
- },
65450
- "args": {
65451
- "type": "object",
65452
- "properties": {
65453
- "position": {
65454
- "enum": [
65455
- "before",
65456
- "after"
65457
- ]
65458
- },
65459
- "content": {
65460
- "type": "object",
65461
- "properties": {
65462
- "text": {
65463
- "type": "string"
65464
- }
65465
- },
65466
- "additionalProperties": false,
65467
- "required": [
65468
- "text"
65469
- ]
65470
- },
65471
- "style": {
65472
- "type": "object",
65473
- "properties": {
65474
- "inline": {
65475
- "type": "object",
65476
- "properties": {
65477
- "mode": {
65478
- "enum": [
65479
- "inherit",
65480
- "set",
65481
- "clear"
65482
- ],
65483
- "type": "string"
65484
- },
65485
- "setMarks": {
65486
- "type": "object",
65487
- "properties": {
65488
- "bold": {
65489
- "enum": [
65490
- "on",
65491
- "off",
65492
- "clear"
65493
- ]
65494
- },
65495
- "italic": {
65496
- "enum": [
65497
- "on",
65498
- "off",
65499
- "clear"
65500
- ]
65501
- },
65502
- "underline": {
65503
- "enum": [
65504
- "on",
65505
- "off",
65506
- "clear"
65507
- ]
65508
- },
65509
- "strike": {
65510
- "enum": [
65511
- "on",
65512
- "off",
65513
- "clear"
65514
- ]
65515
- }
65516
- },
65517
- "additionalProperties": false
65518
- }
65519
- },
65520
- "additionalProperties": false,
65521
- "required": [
65522
- "mode"
65523
- ]
65524
- }
65525
- },
65526
- "additionalProperties": false,
65527
- "required": [
65528
- "inline"
65529
- ]
65530
- }
65531
- },
65532
- "additionalProperties": false,
65533
- "required": [
65534
- "position",
65535
- "content"
65536
- ]
65537
- }
65538
- },
65539
- "additionalProperties": false,
65540
- "required": [
65541
- "id",
65542
- "op",
65543
- "where",
65544
- "args"
65545
- ]
65546
- },
65547
- {
65548
- "type": "object",
65549
- "properties": {
65550
- "id": {
65551
- "type": "string"
65552
- },
65553
- "op": {
65554
- "const": "text.delete",
65555
- "type": "string"
65556
- },
65873
+ "where": {
65874
+ "oneOf": [
65875
+ {
65876
+ "type": "object",
65877
+ "properties": {
65878
+ "by": {
65879
+ "const": "select",
65880
+ "type": "string"
65881
+ },
65882
+ "select": {
65883
+ "oneOf": [
65884
+ {
65885
+ "type": "object",
65886
+ "properties": {
65887
+ "type": {
65888
+ "const": "text",
65889
+ "description": "Must be 'text' for text pattern search."
65890
+ },
65891
+ "pattern": {
65892
+ "type": "string",
65893
+ "description": "Text or regex pattern to match."
65894
+ },
65895
+ "mode": {
65896
+ "enum": [
65897
+ "contains",
65898
+ "regex"
65899
+ ],
65900
+ "description": "Match mode: 'contains' (substring) or 'regex'."
65901
+ },
65902
+ "caseSensitive": {
65903
+ "type": "boolean",
65904
+ "description": "Case-sensitive matching. Default: false."
65905
+ }
65906
+ },
65907
+ "additionalProperties": false,
65908
+ "required": [
65909
+ "type",
65910
+ "pattern"
65911
+ ]
65912
+ },
65913
+ {
65914
+ "type": "object",
65915
+ "properties": {
65916
+ "type": {
65917
+ "const": "node",
65918
+ "description": "Must be 'node' for node type search."
65919
+ },
65920
+ "nodeType": {
65921
+ "enum": [
65922
+ "paragraph",
65923
+ "heading",
65924
+ "listItem",
65925
+ "table",
65926
+ "tableRow",
65927
+ "tableCell",
65928
+ "tableOfContents",
65929
+ "image",
65930
+ "sdt",
65931
+ "run",
65932
+ "bookmark",
65933
+ "comment",
65934
+ "hyperlink",
65935
+ "footnoteRef",
65936
+ "endnoteRef",
65937
+ "crossRef",
65938
+ "indexEntry",
65939
+ "citation",
65940
+ "authorityEntry",
65941
+ "sequenceField",
65942
+ "tab",
65943
+ "lineBreak"
65944
+ ],
65945
+ "description": "Block type to match (paragraph, heading, table, listItem, etc.)."
65946
+ },
65947
+ "kind": {
65948
+ "enum": [
65949
+ "block",
65950
+ "inline"
65951
+ ],
65952
+ "description": "Filter: 'block' or 'inline'."
65953
+ }
65954
+ },
65955
+ "additionalProperties": false,
65956
+ "required": [
65957
+ "type"
65958
+ ]
65959
+ }
65960
+ ]
65961
+ },
65962
+ "within": {
65963
+ "$ref": "#/$defs/BlockNodeAddress"
65964
+ },
65965
+ "require": {
65966
+ "enum": [
65967
+ "first",
65968
+ "exactlyOne"
65969
+ ]
65970
+ }
65971
+ },
65972
+ "additionalProperties": false,
65973
+ "required": [
65974
+ "by",
65975
+ "select",
65976
+ "require"
65977
+ ]
65978
+ },
65979
+ {
65980
+ "type": "object",
65981
+ "properties": {
65982
+ "by": {
65983
+ "const": "ref",
65984
+ "type": "string"
65985
+ },
65986
+ "ref": {
65987
+ "type": "string"
65988
+ },
65989
+ "within": {
65990
+ "$ref": "#/$defs/BlockNodeAddress"
65991
+ }
65992
+ },
65993
+ "additionalProperties": false,
65994
+ "required": [
65995
+ "by",
65996
+ "ref"
65997
+ ]
65998
+ },
65999
+ {
66000
+ "type": "object",
66001
+ "properties": {
66002
+ "by": {
66003
+ "const": "target",
66004
+ "type": "string"
66005
+ },
66006
+ "target": {
66007
+ "$ref": "#/$defs/SelectionTarget"
66008
+ }
66009
+ },
66010
+ "additionalProperties": false,
66011
+ "required": [
66012
+ "by",
66013
+ "target"
66014
+ ]
66015
+ },
66016
+ {
66017
+ "type": "object",
66018
+ "properties": {
66019
+ "by": {
66020
+ "const": "block",
66021
+ "type": "string"
66022
+ },
66023
+ "nodeType": {
66024
+ "enum": [
66025
+ "paragraph",
66026
+ "heading",
66027
+ "listItem",
66028
+ "table",
66029
+ "tableRow",
66030
+ "tableCell",
66031
+ "tableOfContents",
66032
+ "image",
66033
+ "sdt"
66034
+ ]
66035
+ },
66036
+ "nodeId": {
66037
+ "type": "string"
66038
+ }
66039
+ },
66040
+ "additionalProperties": false,
66041
+ "required": [
66042
+ "by",
66043
+ "nodeType",
66044
+ "nodeId"
66045
+ ]
66046
+ }
66047
+ ]
66048
+ },
66049
+ "args": {
66050
+ "type": "object",
66051
+ "properties": {
66052
+ "position": {
66053
+ "enum": [
66054
+ "before",
66055
+ "after"
66056
+ ]
66057
+ },
66058
+ "content": {
66059
+ "type": "object",
66060
+ "properties": {
66061
+ "text": {
66062
+ "type": "string"
66063
+ }
66064
+ },
66065
+ "additionalProperties": false,
66066
+ "required": [
66067
+ "text"
66068
+ ]
66069
+ },
66070
+ "style": {
66071
+ "type": "object",
66072
+ "properties": {
66073
+ "inline": {
66074
+ "type": "object",
66075
+ "properties": {
66076
+ "mode": {
66077
+ "enum": [
66078
+ "inherit",
66079
+ "set",
66080
+ "clear"
66081
+ ],
66082
+ "type": "string"
66083
+ },
66084
+ "setMarks": {
66085
+ "type": "object",
66086
+ "properties": {
66087
+ "bold": {
66088
+ "enum": [
66089
+ "on",
66090
+ "off",
66091
+ "clear"
66092
+ ]
66093
+ },
66094
+ "italic": {
66095
+ "enum": [
66096
+ "on",
66097
+ "off",
66098
+ "clear"
66099
+ ]
66100
+ },
66101
+ "underline": {
66102
+ "enum": [
66103
+ "on",
66104
+ "off",
66105
+ "clear"
66106
+ ]
66107
+ },
66108
+ "strike": {
66109
+ "enum": [
66110
+ "on",
66111
+ "off",
66112
+ "clear"
66113
+ ]
66114
+ }
66115
+ },
66116
+ "additionalProperties": false
66117
+ }
66118
+ },
66119
+ "additionalProperties": false,
66120
+ "required": [
66121
+ "mode"
66122
+ ]
66123
+ }
66124
+ },
66125
+ "additionalProperties": false,
66126
+ "required": [
66127
+ "inline"
66128
+ ]
66129
+ }
66130
+ },
66131
+ "additionalProperties": false,
66132
+ "required": [
66133
+ "position",
66134
+ "content"
66135
+ ]
66136
+ }
66137
+ },
66138
+ "additionalProperties": false,
66139
+ "required": [
66140
+ "id",
66141
+ "op",
66142
+ "where",
66143
+ "args"
66144
+ ]
66145
+ },
66146
+ {
66147
+ "type": "object",
66148
+ "properties": {
66149
+ "id": {
66150
+ "type": "string"
66151
+ },
66152
+ "op": {
66153
+ "const": "text.delete",
66154
+ "type": "string"
66155
+ },
65557
66156
  "where": {
65558
66157
  "oneOf": [
65559
66158
  {
@@ -65697,6 +66296,37 @@ const CONTRACT = {
65697
66296
  "by",
65698
66297
  "target"
65699
66298
  ]
66299
+ },
66300
+ {
66301
+ "type": "object",
66302
+ "properties": {
66303
+ "by": {
66304
+ "const": "block",
66305
+ "type": "string"
66306
+ },
66307
+ "nodeType": {
66308
+ "enum": [
66309
+ "paragraph",
66310
+ "heading",
66311
+ "listItem",
66312
+ "table",
66313
+ "tableRow",
66314
+ "tableCell",
66315
+ "tableOfContents",
66316
+ "image",
66317
+ "sdt"
66318
+ ]
66319
+ },
66320
+ "nodeId": {
66321
+ "type": "string"
66322
+ }
66323
+ },
66324
+ "additionalProperties": false,
66325
+ "required": [
66326
+ "by",
66327
+ "nodeType",
66328
+ "nodeId"
66329
+ ]
65700
66330
  }
65701
66331
  ]
65702
66332
  },
@@ -65871,6 +66501,37 @@ const CONTRACT = {
65871
66501
  "by",
65872
66502
  "target"
65873
66503
  ]
66504
+ },
66505
+ {
66506
+ "type": "object",
66507
+ "properties": {
66508
+ "by": {
66509
+ "const": "block",
66510
+ "type": "string"
66511
+ },
66512
+ "nodeType": {
66513
+ "enum": [
66514
+ "paragraph",
66515
+ "heading",
66516
+ "listItem",
66517
+ "table",
66518
+ "tableRow",
66519
+ "tableCell",
66520
+ "tableOfContents",
66521
+ "image",
66522
+ "sdt"
66523
+ ]
66524
+ },
66525
+ "nodeId": {
66526
+ "type": "string"
66527
+ }
66528
+ },
66529
+ "additionalProperties": false,
66530
+ "required": [
66531
+ "by",
66532
+ "nodeType",
66533
+ "nodeId"
66534
+ ]
65874
66535
  }
65875
66536
  ]
65876
66537
  },
@@ -66685,12 +67346,28 @@ const CONTRACT = {
66685
67346
  },
66686
67347
  "additionalProperties": false,
66687
67348
  "minProperties": 1
67349
+ },
67350
+ "alignment": {
67351
+ "type": "string",
67352
+ "enum": [
67353
+ "left",
67354
+ "center",
67355
+ "right",
67356
+ "justify"
67357
+ ],
67358
+ "description": "Set paragraph alignment on the target block(s). Can be combined with inline formatting in the same step."
67359
+ },
67360
+ "scope": {
67361
+ "type": "string",
67362
+ "enum": [
67363
+ "match",
67364
+ "block"
67365
+ ],
67366
+ "description": "When \"block\", inline formatting expands to cover the entire parent paragraph(s), not just the matched text. Use \"block\" after markdown inserts to format whole paragraphs with a short identifying pattern. Default: \"match\"."
66688
67367
  }
66689
67368
  },
66690
67369
  "additionalProperties": false,
66691
- "required": [
66692
- "inline"
66693
- ]
67370
+ "minProperties": 1
66694
67371
  }
66695
67372
  },
66696
67373
  "additionalProperties": false,
@@ -67583,6 +68260,53 @@ const CONTRACT = {
67583
68260
  "by",
67584
68261
  "target"
67585
68262
  ]
68263
+ },
68264
+ {
68265
+ "type": "object",
68266
+ "properties": {
68267
+ "by": {
68268
+ "const": "block"
68269
+ },
68270
+ "nodeType": {
68271
+ "oneOf": [
68272
+ {
68273
+ "const": "paragraph"
68274
+ },
68275
+ {
68276
+ "const": "heading"
68277
+ },
68278
+ {
68279
+ "const": "listItem"
68280
+ },
68281
+ {
68282
+ "const": "table"
68283
+ },
68284
+ {
68285
+ "const": "tableRow"
68286
+ },
68287
+ {
68288
+ "const": "tableCell"
68289
+ },
68290
+ {
68291
+ "const": "tableOfContents"
68292
+ },
68293
+ {
68294
+ "const": "image"
68295
+ },
68296
+ {
68297
+ "const": "sdt"
68298
+ }
68299
+ ]
68300
+ },
68301
+ "nodeId": {
68302
+ "type": "string"
68303
+ }
68304
+ },
68305
+ "required": [
68306
+ "by",
68307
+ "nodeType",
68308
+ "nodeId"
68309
+ ]
67586
68310
  }
67587
68311
  ]
67588
68312
  },
@@ -67778,51 +68502,221 @@ const CONTRACT = {
67778
68502
  "const": "text.insert"
67779
68503
  },
67780
68504
  "where": {
67781
- "type": "object",
67782
- "properties": {
67783
- "by": {
67784
- "const": "select"
67785
- },
67786
- "select": {
67787
- "oneOf": [
67788
- {
68505
+ "oneOf": [
68506
+ {
68507
+ "type": "object",
68508
+ "properties": {
68509
+ "by": {
68510
+ "const": "select"
68511
+ },
68512
+ "select": {
68513
+ "oneOf": [
68514
+ {
68515
+ "type": "object",
68516
+ "properties": {
68517
+ "type": {
68518
+ "const": "text",
68519
+ "description": "Must be 'text' for text pattern search."
68520
+ },
68521
+ "pattern": {
68522
+ "type": "string",
68523
+ "description": "Text or regex pattern to match."
68524
+ },
68525
+ "mode": {
68526
+ "oneOf": [
68527
+ {
68528
+ "const": "contains"
68529
+ },
68530
+ {
68531
+ "const": "regex"
68532
+ }
68533
+ ],
68534
+ "description": "Match mode: 'contains' (substring) or 'regex'."
68535
+ },
68536
+ "caseSensitive": {
68537
+ "type": "boolean",
68538
+ "description": "Case-sensitive matching. Default: false."
68539
+ }
68540
+ },
68541
+ "required": [
68542
+ "type",
68543
+ "pattern"
68544
+ ]
68545
+ },
68546
+ {
68547
+ "type": "object",
68548
+ "properties": {
68549
+ "type": {
68550
+ "const": "node",
68551
+ "description": "Must be 'node' for node type search."
68552
+ },
68553
+ "nodeType": {
68554
+ "oneOf": [
68555
+ {
68556
+ "const": "paragraph"
68557
+ },
68558
+ {
68559
+ "const": "heading"
68560
+ },
68561
+ {
68562
+ "const": "listItem"
68563
+ },
68564
+ {
68565
+ "const": "table"
68566
+ },
68567
+ {
68568
+ "const": "tableRow"
68569
+ },
68570
+ {
68571
+ "const": "tableCell"
68572
+ },
68573
+ {
68574
+ "const": "tableOfContents"
68575
+ },
68576
+ {
68577
+ "const": "image"
68578
+ },
68579
+ {
68580
+ "const": "sdt"
68581
+ },
68582
+ {
68583
+ "const": "run"
68584
+ },
68585
+ {
68586
+ "const": "bookmark"
68587
+ },
68588
+ {
68589
+ "const": "comment"
68590
+ },
68591
+ {
68592
+ "const": "hyperlink"
68593
+ },
68594
+ {
68595
+ "const": "footnoteRef"
68596
+ },
68597
+ {
68598
+ "const": "endnoteRef"
68599
+ },
68600
+ {
68601
+ "const": "crossRef"
68602
+ },
68603
+ {
68604
+ "const": "indexEntry"
68605
+ },
68606
+ {
68607
+ "const": "citation"
68608
+ },
68609
+ {
68610
+ "const": "authorityEntry"
68611
+ },
68612
+ {
68613
+ "const": "sequenceField"
68614
+ },
68615
+ {
68616
+ "const": "tab"
68617
+ },
68618
+ {
68619
+ "const": "lineBreak"
68620
+ }
68621
+ ],
68622
+ "description": "Block type to match (paragraph, heading, table, listItem, etc.)."
68623
+ },
68624
+ "kind": {
68625
+ "oneOf": [
68626
+ {
68627
+ "const": "block"
68628
+ },
68629
+ {
68630
+ "const": "inline"
68631
+ }
68632
+ ],
68633
+ "description": "Filter: 'block' or 'inline'."
68634
+ }
68635
+ },
68636
+ "required": [
68637
+ "type"
68638
+ ]
68639
+ }
68640
+ ]
68641
+ },
68642
+ "within": {
67789
68643
  "type": "object",
67790
68644
  "properties": {
67791
- "type": {
67792
- "const": "text",
67793
- "description": "Must be 'text' for text pattern search."
67794
- },
67795
- "pattern": {
67796
- "type": "string",
67797
- "description": "Text or regex pattern to match."
68645
+ "kind": {
68646
+ "const": "block"
67798
68647
  },
67799
- "mode": {
68648
+ "nodeType": {
67800
68649
  "oneOf": [
67801
68650
  {
67802
- "const": "contains"
68651
+ "const": "paragraph"
67803
68652
  },
67804
68653
  {
67805
- "const": "regex"
68654
+ "const": "heading"
68655
+ },
68656
+ {
68657
+ "const": "listItem"
68658
+ },
68659
+ {
68660
+ "const": "table"
68661
+ },
68662
+ {
68663
+ "const": "tableRow"
68664
+ },
68665
+ {
68666
+ "const": "tableCell"
68667
+ },
68668
+ {
68669
+ "const": "tableOfContents"
68670
+ },
68671
+ {
68672
+ "const": "image"
68673
+ },
68674
+ {
68675
+ "const": "sdt"
67806
68676
  }
67807
- ],
67808
- "description": "Match mode: 'contains' (substring) or 'regex'."
68677
+ ]
67809
68678
  },
67810
- "caseSensitive": {
67811
- "type": "boolean",
67812
- "description": "Case-sensitive matching. Default: false."
68679
+ "nodeId": {
68680
+ "type": "string"
67813
68681
  }
67814
68682
  },
67815
68683
  "required": [
67816
- "type",
67817
- "pattern"
68684
+ "kind",
68685
+ "nodeType",
68686
+ "nodeId"
67818
68687
  ]
67819
68688
  },
67820
- {
68689
+ "require": {
68690
+ "oneOf": [
68691
+ {
68692
+ "const": "first"
68693
+ },
68694
+ {
68695
+ "const": "exactlyOne"
68696
+ }
68697
+ ]
68698
+ }
68699
+ },
68700
+ "required": [
68701
+ "by",
68702
+ "select",
68703
+ "require"
68704
+ ]
68705
+ },
68706
+ {
68707
+ "type": "object",
68708
+ "properties": {
68709
+ "by": {
68710
+ "const": "ref"
68711
+ },
68712
+ "ref": {
68713
+ "type": "string"
68714
+ },
68715
+ "within": {
67821
68716
  "type": "object",
67822
68717
  "properties": {
67823
- "type": {
67824
- "const": "node",
67825
- "description": "Must be 'node' for node type search."
68718
+ "kind": {
68719
+ "const": "block"
67826
68720
  },
67827
68721
  "nodeType": {
67828
68722
  "oneOf": [
@@ -67852,71 +68746,224 @@ const CONTRACT = {
67852
68746
  },
67853
68747
  {
67854
68748
  "const": "sdt"
67855
- },
67856
- {
67857
- "const": "run"
67858
- },
67859
- {
67860
- "const": "bookmark"
67861
- },
67862
- {
67863
- "const": "comment"
67864
- },
67865
- {
67866
- "const": "hyperlink"
67867
- },
67868
- {
67869
- "const": "footnoteRef"
67870
- },
67871
- {
67872
- "const": "endnoteRef"
67873
- },
67874
- {
67875
- "const": "crossRef"
67876
- },
67877
- {
67878
- "const": "indexEntry"
67879
- },
67880
- {
67881
- "const": "citation"
67882
- },
67883
- {
67884
- "const": "authorityEntry"
67885
- },
67886
- {
67887
- "const": "sequenceField"
67888
- },
68749
+ }
68750
+ ]
68751
+ },
68752
+ "nodeId": {
68753
+ "type": "string"
68754
+ }
68755
+ },
68756
+ "required": [
68757
+ "kind",
68758
+ "nodeType",
68759
+ "nodeId"
68760
+ ]
68761
+ }
68762
+ },
68763
+ "required": [
68764
+ "by",
68765
+ "ref"
68766
+ ]
68767
+ },
68768
+ {
68769
+ "type": "object",
68770
+ "properties": {
68771
+ "by": {
68772
+ "const": "target"
68773
+ },
68774
+ "target": {
68775
+ "type": "object",
68776
+ "properties": {
68777
+ "kind": {
68778
+ "const": "selection"
68779
+ },
68780
+ "start": {
68781
+ "oneOf": [
67889
68782
  {
67890
- "const": "tab"
68783
+ "type": "object",
68784
+ "properties": {
68785
+ "kind": {
68786
+ "const": "text"
68787
+ },
68788
+ "blockId": {
68789
+ "type": "string"
68790
+ },
68791
+ "offset": {
68792
+ "type": "number"
68793
+ }
68794
+ },
68795
+ "required": [
68796
+ "kind",
68797
+ "blockId",
68798
+ "offset"
68799
+ ]
67891
68800
  },
67892
68801
  {
67893
- "const": "lineBreak"
68802
+ "type": "object",
68803
+ "properties": {
68804
+ "kind": {
68805
+ "const": "nodeEdge"
68806
+ },
68807
+ "node": {
68808
+ "type": "object",
68809
+ "properties": {
68810
+ "kind": {
68811
+ "const": "block"
68812
+ },
68813
+ "nodeType": {
68814
+ "oneOf": [
68815
+ {
68816
+ "const": "paragraph"
68817
+ },
68818
+ {
68819
+ "const": "heading"
68820
+ },
68821
+ {
68822
+ "const": "table"
68823
+ },
68824
+ {
68825
+ "const": "tableOfContents"
68826
+ },
68827
+ {
68828
+ "const": "sdt"
68829
+ },
68830
+ {
68831
+ "const": "image"
68832
+ }
68833
+ ]
68834
+ },
68835
+ "nodeId": {
68836
+ "type": "string"
68837
+ }
68838
+ },
68839
+ "required": [
68840
+ "kind",
68841
+ "nodeType",
68842
+ "nodeId"
68843
+ ]
68844
+ },
68845
+ "edge": {
68846
+ "oneOf": [
68847
+ {
68848
+ "const": "before"
68849
+ },
68850
+ {
68851
+ "const": "after"
68852
+ }
68853
+ ]
68854
+ }
68855
+ },
68856
+ "required": [
68857
+ "kind",
68858
+ "node",
68859
+ "edge"
68860
+ ]
67894
68861
  }
67895
68862
  ],
67896
- "description": "Block type to match (paragraph, heading, table, listItem, etc.)."
68863
+ "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."
67897
68864
  },
67898
- "kind": {
68865
+ "end": {
67899
68866
  "oneOf": [
67900
68867
  {
67901
- "const": "block"
68868
+ "type": "object",
68869
+ "properties": {
68870
+ "kind": {
68871
+ "const": "text"
68872
+ },
68873
+ "blockId": {
68874
+ "type": "string"
68875
+ },
68876
+ "offset": {
68877
+ "type": "number"
68878
+ }
68879
+ },
68880
+ "required": [
68881
+ "kind",
68882
+ "blockId",
68883
+ "offset"
68884
+ ]
67902
68885
  },
67903
68886
  {
67904
- "const": "inline"
68887
+ "type": "object",
68888
+ "properties": {
68889
+ "kind": {
68890
+ "const": "nodeEdge"
68891
+ },
68892
+ "node": {
68893
+ "type": "object",
68894
+ "properties": {
68895
+ "kind": {
68896
+ "const": "block"
68897
+ },
68898
+ "nodeType": {
68899
+ "oneOf": [
68900
+ {
68901
+ "const": "paragraph"
68902
+ },
68903
+ {
68904
+ "const": "heading"
68905
+ },
68906
+ {
68907
+ "const": "table"
68908
+ },
68909
+ {
68910
+ "const": "tableOfContents"
68911
+ },
68912
+ {
68913
+ "const": "sdt"
68914
+ },
68915
+ {
68916
+ "const": "image"
68917
+ }
68918
+ ]
68919
+ },
68920
+ "nodeId": {
68921
+ "type": "string"
68922
+ }
68923
+ },
68924
+ "required": [
68925
+ "kind",
68926
+ "nodeType",
68927
+ "nodeId"
68928
+ ]
68929
+ },
68930
+ "edge": {
68931
+ "oneOf": [
68932
+ {
68933
+ "const": "before"
68934
+ },
68935
+ {
68936
+ "const": "after"
68937
+ }
68938
+ ]
68939
+ }
68940
+ },
68941
+ "required": [
68942
+ "kind",
68943
+ "node",
68944
+ "edge"
68945
+ ]
67905
68946
  }
67906
68947
  ],
67907
- "description": "Filter: 'block' or 'inline'."
68948
+ "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."
67908
68949
  }
67909
68950
  },
67910
68951
  "required": [
67911
- "type"
68952
+ "kind",
68953
+ "start",
68954
+ "end"
67912
68955
  ]
67913
68956
  }
68957
+ },
68958
+ "required": [
68959
+ "by",
68960
+ "target"
67914
68961
  ]
67915
68962
  },
67916
- "within": {
68963
+ {
67917
68964
  "type": "object",
67918
68965
  "properties": {
67919
- "kind": {
68966
+ "by": {
67920
68967
  "const": "block"
67921
68968
  },
67922
68969
  "nodeType": {
@@ -67955,26 +69002,11 @@ const CONTRACT = {
67955
69002
  }
67956
69003
  },
67957
69004
  "required": [
67958
- "kind",
69005
+ "by",
67959
69006
  "nodeType",
67960
69007
  "nodeId"
67961
69008
  ]
67962
- },
67963
- "require": {
67964
- "oneOf": [
67965
- {
67966
- "const": "first"
67967
- },
67968
- {
67969
- "const": "exactlyOne"
67970
- }
67971
- ]
67972
69009
  }
67973
- },
67974
- "required": [
67975
- "by",
67976
- "select",
67977
- "require"
67978
69010
  ]
67979
69011
  },
67980
69012
  "args": {
@@ -68571,6 +69603,53 @@ const CONTRACT = {
68571
69603
  "by",
68572
69604
  "target"
68573
69605
  ]
69606
+ },
69607
+ {
69608
+ "type": "object",
69609
+ "properties": {
69610
+ "by": {
69611
+ "const": "block"
69612
+ },
69613
+ "nodeType": {
69614
+ "oneOf": [
69615
+ {
69616
+ "const": "paragraph"
69617
+ },
69618
+ {
69619
+ "const": "heading"
69620
+ },
69621
+ {
69622
+ "const": "listItem"
69623
+ },
69624
+ {
69625
+ "const": "table"
69626
+ },
69627
+ {
69628
+ "const": "tableRow"
69629
+ },
69630
+ {
69631
+ "const": "tableCell"
69632
+ },
69633
+ {
69634
+ "const": "tableOfContents"
69635
+ },
69636
+ {
69637
+ "const": "image"
69638
+ },
69639
+ {
69640
+ "const": "sdt"
69641
+ }
69642
+ ]
69643
+ },
69644
+ "nodeId": {
69645
+ "type": "string"
69646
+ }
69647
+ },
69648
+ "required": [
69649
+ "by",
69650
+ "nodeType",
69651
+ "nodeId"
69652
+ ]
68574
69653
  }
68575
69654
  ]
68576
69655
  },
@@ -69067,6 +70146,53 @@ const CONTRACT = {
69067
70146
  "by",
69068
70147
  "target"
69069
70148
  ]
70149
+ },
70150
+ {
70151
+ "type": "object",
70152
+ "properties": {
70153
+ "by": {
70154
+ "const": "block"
70155
+ },
70156
+ "nodeType": {
70157
+ "oneOf": [
70158
+ {
70159
+ "const": "paragraph"
70160
+ },
70161
+ {
70162
+ "const": "heading"
70163
+ },
70164
+ {
70165
+ "const": "listItem"
70166
+ },
70167
+ {
70168
+ "const": "table"
70169
+ },
70170
+ {
70171
+ "const": "tableRow"
70172
+ },
70173
+ {
70174
+ "const": "tableCell"
70175
+ },
70176
+ {
70177
+ "const": "tableOfContents"
70178
+ },
70179
+ {
70180
+ "const": "image"
70181
+ },
70182
+ {
70183
+ "const": "sdt"
70184
+ }
70185
+ ]
70186
+ },
70187
+ "nodeId": {
70188
+ "type": "string"
70189
+ }
70190
+ },
70191
+ "required": [
70192
+ "by",
70193
+ "nodeType",
70194
+ "nodeId"
70195
+ ]
69070
70196
  }
69071
70197
  ]
69072
70198
  },
@@ -69838,11 +70964,36 @@ const CONTRACT = {
69838
70964
  ]
69839
70965
  }
69840
70966
  }
70967
+ },
70968
+ "alignment": {
70969
+ "oneOf": [
70970
+ {
70971
+ "const": "left"
70972
+ },
70973
+ {
70974
+ "const": "center"
70975
+ },
70976
+ {
70977
+ "const": "right"
70978
+ },
70979
+ {
70980
+ "const": "justify"
70981
+ }
70982
+ ],
70983
+ "description": "Set paragraph alignment on the target block(s). Can be combined with inline formatting in the same step."
70984
+ },
70985
+ "scope": {
70986
+ "oneOf": [
70987
+ {
70988
+ "const": "match"
70989
+ },
70990
+ {
70991
+ "const": "block"
70992
+ }
70993
+ ],
70994
+ "description": "When \"block\", inline formatting expands to cover the entire parent paragraph(s), not just the matched text. Use \"block\" after markdown inserts to format whole paragraphs with a short identifying pattern. Default: \"match\"."
69841
70995
  }
69842
- },
69843
- "required": [
69844
- "inline"
69845
- ]
70996
+ }
69846
70997
  }
69847
70998
  },
69848
70999
  "required": [
@@ -70260,6 +71411,37 @@ const CONTRACT = {
70260
71411
  "by",
70261
71412
  "target"
70262
71413
  ]
71414
+ },
71415
+ {
71416
+ "type": "object",
71417
+ "properties": {
71418
+ "by": {
71419
+ "const": "block",
71420
+ "type": "string"
71421
+ },
71422
+ "nodeType": {
71423
+ "enum": [
71424
+ "paragraph",
71425
+ "heading",
71426
+ "listItem",
71427
+ "table",
71428
+ "tableRow",
71429
+ "tableCell",
71430
+ "tableOfContents",
71431
+ "image",
71432
+ "sdt"
71433
+ ]
71434
+ },
71435
+ "nodeId": {
71436
+ "type": "string"
71437
+ }
71438
+ },
71439
+ "additionalProperties": false,
71440
+ "required": [
71441
+ "by",
71442
+ "nodeType",
71443
+ "nodeId"
71444
+ ]
70263
71445
  }
70264
71446
  ]
70265
71447
  },
@@ -70421,107 +71603,179 @@ const CONTRACT = {
70421
71603
  "type": "string"
70422
71604
  },
70423
71605
  "where": {
70424
- "type": "object",
70425
- "properties": {
70426
- "by": {
70427
- "const": "select",
70428
- "type": "string"
70429
- },
70430
- "select": {
70431
- "oneOf": [
70432
- {
70433
- "type": "object",
70434
- "properties": {
70435
- "type": {
70436
- "const": "text",
70437
- "description": "Must be 'text' for text pattern search."
70438
- },
70439
- "pattern": {
70440
- "type": "string",
70441
- "description": "Text or regex pattern to match."
70442
- },
70443
- "mode": {
70444
- "enum": [
70445
- "contains",
70446
- "regex"
70447
- ],
70448
- "description": "Match mode: 'contains' (substring) or 'regex'."
71606
+ "oneOf": [
71607
+ {
71608
+ "type": "object",
71609
+ "properties": {
71610
+ "by": {
71611
+ "const": "select",
71612
+ "type": "string"
71613
+ },
71614
+ "select": {
71615
+ "oneOf": [
71616
+ {
71617
+ "type": "object",
71618
+ "properties": {
71619
+ "type": {
71620
+ "const": "text",
71621
+ "description": "Must be 'text' for text pattern search."
71622
+ },
71623
+ "pattern": {
71624
+ "type": "string",
71625
+ "description": "Text or regex pattern to match."
71626
+ },
71627
+ "mode": {
71628
+ "enum": [
71629
+ "contains",
71630
+ "regex"
71631
+ ],
71632
+ "description": "Match mode: 'contains' (substring) or 'regex'."
71633
+ },
71634
+ "caseSensitive": {
71635
+ "type": "boolean",
71636
+ "description": "Case-sensitive matching. Default: false."
71637
+ }
71638
+ },
71639
+ "additionalProperties": false,
71640
+ "required": [
71641
+ "type",
71642
+ "pattern"
71643
+ ]
70449
71644
  },
70450
- "caseSensitive": {
70451
- "type": "boolean",
70452
- "description": "Case-sensitive matching. Default: false."
71645
+ {
71646
+ "type": "object",
71647
+ "properties": {
71648
+ "type": {
71649
+ "const": "node",
71650
+ "description": "Must be 'node' for node type search."
71651
+ },
71652
+ "nodeType": {
71653
+ "enum": [
71654
+ "paragraph",
71655
+ "heading",
71656
+ "listItem",
71657
+ "table",
71658
+ "tableRow",
71659
+ "tableCell",
71660
+ "tableOfContents",
71661
+ "image",
71662
+ "sdt",
71663
+ "run",
71664
+ "bookmark",
71665
+ "comment",
71666
+ "hyperlink",
71667
+ "footnoteRef",
71668
+ "endnoteRef",
71669
+ "crossRef",
71670
+ "indexEntry",
71671
+ "citation",
71672
+ "authorityEntry",
71673
+ "sequenceField",
71674
+ "tab",
71675
+ "lineBreak"
71676
+ ],
71677
+ "description": "Block type to match (paragraph, heading, table, listItem, etc.)."
71678
+ },
71679
+ "kind": {
71680
+ "enum": [
71681
+ "block",
71682
+ "inline"
71683
+ ],
71684
+ "description": "Filter: 'block' or 'inline'."
71685
+ }
71686
+ },
71687
+ "additionalProperties": false,
71688
+ "required": [
71689
+ "type"
71690
+ ]
70453
71691
  }
70454
- },
70455
- "additionalProperties": false,
70456
- "required": [
70457
- "type",
70458
- "pattern"
70459
71692
  ]
70460
71693
  },
70461
- {
70462
- "type": "object",
70463
- "properties": {
70464
- "type": {
70465
- "const": "node",
70466
- "description": "Must be 'node' for node type search."
70467
- },
70468
- "nodeType": {
70469
- "enum": [
70470
- "paragraph",
70471
- "heading",
70472
- "listItem",
70473
- "table",
70474
- "tableRow",
70475
- "tableCell",
70476
- "tableOfContents",
70477
- "image",
70478
- "sdt",
70479
- "run",
70480
- "bookmark",
70481
- "comment",
70482
- "hyperlink",
70483
- "footnoteRef",
70484
- "endnoteRef",
70485
- "crossRef",
70486
- "indexEntry",
70487
- "citation",
70488
- "authorityEntry",
70489
- "sequenceField",
70490
- "tab",
70491
- "lineBreak"
70492
- ],
70493
- "description": "Block type to match (paragraph, heading, table, listItem, etc.)."
70494
- },
70495
- "kind": {
70496
- "enum": [
70497
- "block",
70498
- "inline"
70499
- ],
70500
- "description": "Filter: 'block' or 'inline'."
70501
- }
70502
- },
70503
- "additionalProperties": false,
70504
- "required": [
70505
- "type"
71694
+ "within": {
71695
+ "$ref": "#/$defs/BlockNodeAddress"
71696
+ },
71697
+ "require": {
71698
+ "enum": [
71699
+ "first",
71700
+ "exactlyOne"
70506
71701
  ]
70507
71702
  }
71703
+ },
71704
+ "additionalProperties": false,
71705
+ "required": [
71706
+ "by",
71707
+ "select",
71708
+ "require"
70508
71709
  ]
70509
71710
  },
70510
- "within": {
70511
- "$ref": "#/$defs/BlockNodeAddress"
71711
+ {
71712
+ "type": "object",
71713
+ "properties": {
71714
+ "by": {
71715
+ "const": "ref",
71716
+ "type": "string"
71717
+ },
71718
+ "ref": {
71719
+ "type": "string"
71720
+ },
71721
+ "within": {
71722
+ "$ref": "#/$defs/BlockNodeAddress"
71723
+ }
71724
+ },
71725
+ "additionalProperties": false,
71726
+ "required": [
71727
+ "by",
71728
+ "ref"
71729
+ ]
70512
71730
  },
70513
- "require": {
70514
- "enum": [
70515
- "first",
70516
- "exactlyOne"
71731
+ {
71732
+ "type": "object",
71733
+ "properties": {
71734
+ "by": {
71735
+ "const": "target",
71736
+ "type": "string"
71737
+ },
71738
+ "target": {
71739
+ "$ref": "#/$defs/SelectionTarget"
71740
+ }
71741
+ },
71742
+ "additionalProperties": false,
71743
+ "required": [
71744
+ "by",
71745
+ "target"
71746
+ ]
71747
+ },
71748
+ {
71749
+ "type": "object",
71750
+ "properties": {
71751
+ "by": {
71752
+ "const": "block",
71753
+ "type": "string"
71754
+ },
71755
+ "nodeType": {
71756
+ "enum": [
71757
+ "paragraph",
71758
+ "heading",
71759
+ "listItem",
71760
+ "table",
71761
+ "tableRow",
71762
+ "tableCell",
71763
+ "tableOfContents",
71764
+ "image",
71765
+ "sdt"
71766
+ ]
71767
+ },
71768
+ "nodeId": {
71769
+ "type": "string"
71770
+ }
71771
+ },
71772
+ "additionalProperties": false,
71773
+ "required": [
71774
+ "by",
71775
+ "nodeType",
71776
+ "nodeId"
70517
71777
  ]
70518
71778
  }
70519
- },
70520
- "additionalProperties": false,
70521
- "required": [
70522
- "by",
70523
- "select",
70524
- "require"
70525
71779
  ]
70526
71780
  },
70527
71781
  "args": {
@@ -70774,6 +72028,37 @@ const CONTRACT = {
70774
72028
  "by",
70775
72029
  "target"
70776
72030
  ]
72031
+ },
72032
+ {
72033
+ "type": "object",
72034
+ "properties": {
72035
+ "by": {
72036
+ "const": "block",
72037
+ "type": "string"
72038
+ },
72039
+ "nodeType": {
72040
+ "enum": [
72041
+ "paragraph",
72042
+ "heading",
72043
+ "listItem",
72044
+ "table",
72045
+ "tableRow",
72046
+ "tableCell",
72047
+ "tableOfContents",
72048
+ "image",
72049
+ "sdt"
72050
+ ]
72051
+ },
72052
+ "nodeId": {
72053
+ "type": "string"
72054
+ }
72055
+ },
72056
+ "additionalProperties": false,
72057
+ "required": [
72058
+ "by",
72059
+ "nodeType",
72060
+ "nodeId"
72061
+ ]
70777
72062
  }
70778
72063
  ]
70779
72064
  },
@@ -70948,6 +72233,37 @@ const CONTRACT = {
70948
72233
  "by",
70949
72234
  "target"
70950
72235
  ]
72236
+ },
72237
+ {
72238
+ "type": "object",
72239
+ "properties": {
72240
+ "by": {
72241
+ "const": "block",
72242
+ "type": "string"
72243
+ },
72244
+ "nodeType": {
72245
+ "enum": [
72246
+ "paragraph",
72247
+ "heading",
72248
+ "listItem",
72249
+ "table",
72250
+ "tableRow",
72251
+ "tableCell",
72252
+ "tableOfContents",
72253
+ "image",
72254
+ "sdt"
72255
+ ]
72256
+ },
72257
+ "nodeId": {
72258
+ "type": "string"
72259
+ }
72260
+ },
72261
+ "additionalProperties": false,
72262
+ "required": [
72263
+ "by",
72264
+ "nodeType",
72265
+ "nodeId"
72266
+ ]
70951
72267
  }
70952
72268
  ]
70953
72269
  },
@@ -71762,12 +73078,28 @@ const CONTRACT = {
71762
73078
  },
71763
73079
  "additionalProperties": false,
71764
73080
  "minProperties": 1
73081
+ },
73082
+ "alignment": {
73083
+ "type": "string",
73084
+ "enum": [
73085
+ "left",
73086
+ "center",
73087
+ "right",
73088
+ "justify"
73089
+ ],
73090
+ "description": "Set paragraph alignment on the target block(s). Can be combined with inline formatting in the same step."
73091
+ },
73092
+ "scope": {
73093
+ "type": "string",
73094
+ "enum": [
73095
+ "match",
73096
+ "block"
73097
+ ],
73098
+ "description": "When \"block\", inline formatting expands to cover the entire parent paragraph(s), not just the matched text. Use \"block\" after markdown inserts to format whole paragraphs with a short identifying pattern. Default: \"match\"."
71765
73099
  }
71766
73100
  },
71767
73101
  "additionalProperties": false,
71768
- "required": [
71769
- "inline"
71770
- ]
73102
+ "minProperties": 1
71771
73103
  }
71772
73104
  },
71773
73105
  "additionalProperties": false,
@@ -114286,6 +115618,195 @@ const CONTRACT = {
114286
115618
  ]
114287
115619
  }
114288
115620
  },
115621
+ {
115622
+ "name": "at",
115623
+ "kind": "jsonFlag",
115624
+ "type": "json",
115625
+ "flag": "at-json",
115626
+ "schema": {
115627
+ "type": "object",
115628
+ "properties": {
115629
+ "kind": {
115630
+ "const": "selection"
115631
+ },
115632
+ "start": {
115633
+ "oneOf": [
115634
+ {
115635
+ "type": "object",
115636
+ "properties": {
115637
+ "kind": {
115638
+ "const": "text"
115639
+ },
115640
+ "blockId": {
115641
+ "type": "string"
115642
+ },
115643
+ "offset": {
115644
+ "type": "number"
115645
+ }
115646
+ },
115647
+ "required": [
115648
+ "kind",
115649
+ "blockId",
115650
+ "offset"
115651
+ ]
115652
+ },
115653
+ {
115654
+ "type": "object",
115655
+ "properties": {
115656
+ "kind": {
115657
+ "const": "nodeEdge"
115658
+ },
115659
+ "node": {
115660
+ "type": "object",
115661
+ "properties": {
115662
+ "kind": {
115663
+ "const": "block"
115664
+ },
115665
+ "nodeType": {
115666
+ "oneOf": [
115667
+ {
115668
+ "const": "paragraph"
115669
+ },
115670
+ {
115671
+ "const": "heading"
115672
+ },
115673
+ {
115674
+ "const": "table"
115675
+ },
115676
+ {
115677
+ "const": "tableOfContents"
115678
+ },
115679
+ {
115680
+ "const": "sdt"
115681
+ },
115682
+ {
115683
+ "const": "image"
115684
+ }
115685
+ ]
115686
+ },
115687
+ "nodeId": {
115688
+ "type": "string"
115689
+ }
115690
+ },
115691
+ "required": [
115692
+ "kind",
115693
+ "nodeType",
115694
+ "nodeId"
115695
+ ]
115696
+ },
115697
+ "edge": {
115698
+ "oneOf": [
115699
+ {
115700
+ "const": "before"
115701
+ },
115702
+ {
115703
+ "const": "after"
115704
+ }
115705
+ ]
115706
+ }
115707
+ },
115708
+ "required": [
115709
+ "kind",
115710
+ "node",
115711
+ "edge"
115712
+ ]
115713
+ }
115714
+ ],
115715
+ "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."
115716
+ },
115717
+ "end": {
115718
+ "oneOf": [
115719
+ {
115720
+ "type": "object",
115721
+ "properties": {
115722
+ "kind": {
115723
+ "const": "text"
115724
+ },
115725
+ "blockId": {
115726
+ "type": "string"
115727
+ },
115728
+ "offset": {
115729
+ "type": "number"
115730
+ }
115731
+ },
115732
+ "required": [
115733
+ "kind",
115734
+ "blockId",
115735
+ "offset"
115736
+ ]
115737
+ },
115738
+ {
115739
+ "type": "object",
115740
+ "properties": {
115741
+ "kind": {
115742
+ "const": "nodeEdge"
115743
+ },
115744
+ "node": {
115745
+ "type": "object",
115746
+ "properties": {
115747
+ "kind": {
115748
+ "const": "block"
115749
+ },
115750
+ "nodeType": {
115751
+ "oneOf": [
115752
+ {
115753
+ "const": "paragraph"
115754
+ },
115755
+ {
115756
+ "const": "heading"
115757
+ },
115758
+ {
115759
+ "const": "table"
115760
+ },
115761
+ {
115762
+ "const": "tableOfContents"
115763
+ },
115764
+ {
115765
+ "const": "sdt"
115766
+ },
115767
+ {
115768
+ "const": "image"
115769
+ }
115770
+ ]
115771
+ },
115772
+ "nodeId": {
115773
+ "type": "string"
115774
+ }
115775
+ },
115776
+ "required": [
115777
+ "kind",
115778
+ "nodeType",
115779
+ "nodeId"
115780
+ ]
115781
+ },
115782
+ "edge": {
115783
+ "oneOf": [
115784
+ {
115785
+ "const": "before"
115786
+ },
115787
+ {
115788
+ "const": "after"
115789
+ }
115790
+ ]
115791
+ }
115792
+ },
115793
+ "required": [
115794
+ "kind",
115795
+ "node",
115796
+ "edge"
115797
+ ]
115798
+ }
115799
+ ],
115800
+ "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."
115801
+ }
115802
+ },
115803
+ "required": [
115804
+ "kind",
115805
+ "start",
115806
+ "end"
115807
+ ]
115808
+ }
115809
+ },
114289
115810
  {
114290
115811
  "name": "tag",
114291
115812
  "kind": "flag",
@@ -114364,6 +115885,9 @@ const CONTRACT = {
114364
115885
  "nodeId"
114365
115886
  ]
114366
115887
  },
115888
+ "at": {
115889
+ "$ref": "#/$defs/SelectionTarget"
115890
+ },
114367
115891
  "tag": {
114368
115892
  "type": "string"
114369
115893
  },