@tiwater/office-mcp 0.15.13 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/office/README.md +3 -14
  2. package/office/contracts/tiwater-office-provider-contract-manifest-v1.json +1 -507
  3. package/office/index.mjs +16 -54
  4. package/package.json +1 -1
  5. package/office/contracts/docx_apply_font_policy.schema.json +0 -77
  6. package/office/contracts/docx_apply_toc_style_policy.schema.json +0 -53
  7. package/office/contracts/docx_collapse_trailing_empty_paragraphs.schema.json +0 -30
  8. package/office/contracts/docx_collapse_trailing_empty_section.schema.json +0 -30
  9. package/office/contracts/docx_delete_body_drawing_before_paragraph.schema.json +0 -54
  10. package/office/contracts/docx_delete_body_paragraph.schema.json +0 -54
  11. package/office/contracts/docx_delete_body_range.schema.json +0 -69
  12. package/office/contracts/docx_delete_comments.schema.json +0 -52
  13. package/office/contracts/docx_delete_table_rows.schema.json +0 -61
  14. package/office/contracts/docx_freeze_fields.schema.json +0 -30
  15. package/office/contracts/docx_insert_body_image.schema.json +0 -70
  16. package/office/contracts/docx_insert_body_range.schema.json +0 -67
  17. package/office/contracts/docx_insert_table_columns.schema.json +0 -65
  18. package/office/contracts/docx_insert_table_rows.schema.json +0 -140
  19. package/office/contracts/docx_mark_fields_dirty.schema.json +0 -30
  20. package/office/contracts/docx_replace_body_text.schema.json +0 -52
  21. package/office/contracts/docx_replace_drawing_image.schema.json +0 -61
  22. package/office/contracts/docx_replace_header_text.schema.json +0 -52
  23. package/office/contracts/docx_replace_table_rows.schema.json +0 -149
  24. package/office/contracts/docx_sanitize_fields.schema.json +0 -30
  25. package/office/contracts/docx_set_anchored_text.schema.json +0 -52
  26. package/office/contracts/docx_set_body_paragraph_keep_lines.schema.json +0 -53
  27. package/office/contracts/docx_set_body_paragraph_keep_next.schema.json +0 -53
  28. package/office/contracts/docx_set_footer_paragraph_text.schema.json +0 -59
  29. package/office/contracts/docx_set_footer_run_text.schema.json +0 -65
  30. package/office/contracts/docx_set_footer_table_cell_run_text.schema.json +0 -83
  31. package/office/contracts/docx_set_footer_table_cell_text.schema.json +0 -71
  32. package/office/contracts/docx_set_header_paragraph_font_size.schema.json +0 -60
  33. package/office/contracts/docx_set_header_paragraph_text.schema.json +0 -59
  34. package/office/contracts/docx_set_header_run_text.schema.json +0 -65
  35. package/office/contracts/docx_set_header_table_cell_run_text.schema.json +0 -83
  36. package/office/contracts/docx_set_header_table_cell_text.schema.json +0 -71
  37. package/office/contracts/docx_set_paragraph_run_text.schema.json +0 -59
  38. package/office/contracts/docx_set_paragraph_text.schema.json +0 -53
  39. package/office/contracts/docx_set_table_cell_alignment.schema.json +0 -66
  40. package/office/contracts/docx_set_table_cell_font_size.schema.json +0 -66
  41. package/office/contracts/docx_set_table_cell_no_wrap.schema.json +0 -65
  42. package/office/contracts/docx_set_table_cell_rich_text.schema.json +0 -100
  43. package/office/contracts/docx_set_table_cell_run_text.schema.json +0 -77
  44. package/office/contracts/docx_set_table_cell_text.schema.json +0 -68
  45. package/office/contracts/docx_set_table_row_cant_split.schema.json +0 -59
  46. package/office/contracts/docx_set_table_row_height.schema.json +0 -63
  47. package/office/contracts/docx_set_table_row_keep_next.schema.json +0 -59
  48. package/office/contracts/docx_set_table_row_repeat_as_header.schema.json +0 -123
  49. package/office/contracts/docx_set_table_width.schema.json +0 -64
  50. package/office/contracts/docx_start_section.schema.json +0 -56
package/office/index.mjs CHANGED
@@ -100,57 +100,6 @@ const nativeRenderOutput = z.object({
100
100
  }).strict(),
101
101
  }).strict();
102
102
 
103
- const docxFixedTools = [
104
- {"name":"docx_set_anchored_text","description":"Set text at current DOCX comment anchors."},
105
- {"name":"docx_set_paragraph_text","description":"Set current body paragraph text."},
106
- {"name":"docx_set_paragraph_run_text","description":"Set current body paragraph run text."},
107
- {"name":"docx_replace_body_text","description":"Replace uniquely matched current body text."},
108
- {"name":"docx_delete_body_paragraph","description":"Delete uniquely matched current body paragraphs."},
109
- {"name":"docx_delete_body_drawing_before_paragraph","description":"Delete the drawing immediately before a uniquely matched current paragraph."},
110
- {"name":"docx_insert_body_range","description":"Insert a bounded direct-body range from a current source DOCX before a current target body boundary, preserving supported styles and relationships."},
111
- {"name":"docx_replace_drawing_image","description":"Replace the image relationship of a current body drawing while preserving its drawing geometry."},
112
- {"name":"docx_insert_body_image","description":"Insert an image as a new inline drawing before a current direct-body boundary."},
113
- {"name":"docx_delete_body_range","description":"Delete uniquely bounded current body ranges."},
114
- {"name":"docx_start_section","description":"Start a section before a uniquely matched current paragraph."},
115
- {"name":"docx_set_header_paragraph_text","description":"Set current header paragraph text."},
116
- {"name":"docx_set_header_run_text","description":"Set current header run text."},
117
- {"name":"docx_replace_header_text","description":"Replace uniquely matched current header text."},
118
- {"name":"docx_set_footer_paragraph_text","description":"Set current footer paragraph text."},
119
- {"name":"docx_set_footer_run_text","description":"Set current footer run text."},
120
- {"name":"docx_set_table_cell_text","description":"Set current body table cell text."},
121
- {"name":"docx_set_table_cell_run_text","description":"Set current body table cell run text."},
122
- {"name":"docx_set_header_table_cell_text","description":"Set current header table cell text."},
123
- {"name":"docx_set_header_table_cell_run_text","description":"Set current header table cell run text."},
124
- {"name":"docx_set_footer_table_cell_text","description":"Set current footer table cell text."},
125
- {"name":"docx_set_footer_table_cell_run_text","description":"Set current footer table cell run text."},
126
- {"name":"docx_set_table_cell_rich_text","description":"Set current body table cell rich text."},
127
- {"name":"docx_insert_table_rows","description":"Insert rows into a current body table."},
128
- {"name":"docx_delete_table_rows","description":"Delete current body table row ranges."},
129
- {"name":"docx_replace_table_rows","description":"Replace an inclusive range of existing current body table rows with explicit final rows. startRowIndex/endRowIndex address existing rows and do not describe the number of replacement rows; rows may contain a different count. Use when values must be regrouped, filtered, assigned to different semantic columns, or given explicit gridSpan/vMerge states; matching template-row styles are retained."},
130
- {"name":"docx_insert_table_columns","description":"Insert columns into a current body table."},
131
- {"name":"docx_set_table_width","description":"Set current body table widths."},
132
- {"name":"docx_set_table_cell_alignment","description":"Set current body table cell alignment."},
133
- {"name":"docx_set_table_cell_no_wrap","description":"Set current body table cell no-wrap state."},
134
- {"name":"docx_set_table_cell_font_size","description":"Set current body table cell font size."},
135
- {"name":"docx_apply_font_policy","description":"Apply an explicit font policy to current document text."},
136
- {"name":"docx_set_table_row_height","description":"Set current body table row height."},
137
- {"name":"docx_set_table_row_cant_split","description":"Set current body table row split behavior."},
138
- {"name":"docx_set_table_row_repeat_as_header","description":"Set or unset repeat-as-header on uniquely addressed current body, header, or footer table rows."},
139
- {"name":"docx_set_table_row_keep_next","description":"Set keep-next behavior for current body table rows."},
140
- {"name":"docx_set_body_paragraph_keep_next","description":"Set keep-next behavior for current body paragraphs."},
141
- {"name":"docx_set_body_paragraph_keep_lines","description":"Set keep-lines behavior for current body paragraphs."},
142
- {"name":"docx_apply_toc_style_policy","description":"Apply current document table-of-contents paragraph style properties."},
143
- {"name":"docx_set_header_paragraph_font_size","description":"Set current header paragraph font size."},
144
- {"name":"docx_collapse_trailing_empty_section","description":"Collapse a current trailing empty section."},
145
- {"name":"docx_collapse_trailing_empty_paragraphs","description":"Collapse current trailing empty body paragraphs."},
146
- {"name":"docx_merge_cells","description":"Merge selected current DOCX cells when they form one closed rectangle."},
147
- {"name":"docx_split_cells","description":"Split selected current DOCX merged cells."},
148
- {"name":"docx_delete_comments","description":"Delete explicit current DOCX comments."},
149
- {"name":"docx_mark_fields_dirty","description":"Mark current DOCX fields for native refresh."},
150
- {"name":"docx_sanitize_fields","description":"Remove update prompts and dirty markers from current DOCX fields."},
151
- {"name":"docx_freeze_fields","description":"Convert current visible DOCX field results to ordinary content."},
152
- ];
153
-
154
103
  const xlsxFixedTools = [
155
104
  {"name":"xlsx_set_cell_value","description":"Set current workbook cell values."},
156
105
  {"name":"xlsx_set_cell_number_format","description":"Set current workbook cell number formats."},
@@ -205,14 +154,14 @@ const tools = [
205
154
  },
206
155
  {
207
156
  name: 'docx_list_objects',
208
- description: 'List one small page of revision-bound DOCX object identities for structure discovery, not document-text extraction. For content, use docx_find_literal and then docx_read_object on the selected table or row. Use parentRef for nearest children: a part yields top-level story blocks and a table yields rows. Without parentRef the request is story-wide; scope is only an exact story-part URI.',
157
+ description: 'List one small page of revision-bound DOCX object identities for structure discovery, not selection by text. To select a table or row by any descendant cell text, call docx_find_literal with kind table or row instead of listing the document. Use parentRef for nearest children: a part yields top-level story blocks and a table yields rows. Without parentRef the request is story-wide; scope is only an exact story-part URI.',
209
158
  inputSchema: inputContract('docx_list_objects'),
210
159
  annotations: { readOnlyHint: true, idempotentHint: true },
211
160
  handler: args => docxObservation('docx_list_objects', args),
212
161
  },
213
162
  {
214
163
  name: 'docx_find_literal',
215
- description: 'Find exact current text in one small page of revision-bound native DOCX objects, then pass a selected table or row ref to docx_read_object. Use parentRef to search only the nearest published children of a selected part, table, row, cell, or paragraph; this is not recursive descendant search.',
164
+ description: 'Find exact current text in one small page of revision-bound native DOCX objects. With kind table or row, matching includes all descendant cell text, so no prior paragraph, cell, or document-wide list is needed. Use parentRef only to search nearest published children of a selected object.',
216
165
  inputSchema: inputContract('docx_find_literal'),
217
166
  annotations: { readOnlyHint: true, idempotentHint: true },
218
167
  handler: args => docxObservation('docx_find_literal', args),
@@ -246,6 +195,20 @@ const tools = [
246
195
  outputSchema: fixedEditOutput('docx_delete_object'),
247
196
  handler: args => fixedEdit('docx_delete_object', args),
248
197
  },
198
+ {
199
+ name: 'docx_merge_cells',
200
+ description: 'Merge selected current DOCX cells when they form one closed rectangle.',
201
+ inputSchema: inputContract('docx_merge_cells'),
202
+ outputSchema: fixedEditOutput('docx_merge_cells'),
203
+ handler: args => fixedEdit('docx_merge_cells', args),
204
+ },
205
+ {
206
+ name: 'docx_split_cells',
207
+ description: 'Split selected current DOCX merged cells.',
208
+ inputSchema: inputContract('docx_split_cells'),
209
+ outputSchema: fixedEditOutput('docx_split_cells'),
210
+ handler: args => fixedEdit('docx_split_cells', args),
211
+ },
249
212
  {
250
213
  name: 'docx_compare',
251
214
  description: 'Compare two DOCX files and report package, metric, and style differences.',
@@ -293,7 +256,6 @@ const tools = [
293
256
  inputSchema: inputContract('docx_replace_style_ids'),
294
257
  handler: docxReplaceStyleIds,
295
258
  },
296
- ...fixedToolDefinitions(docxFixedTools),
297
259
  {
298
260
  name: 'office_render_pdf',
299
261
  description: 'Render a current Office document to PDF with its required native WPS backend and write the complete provider receipt as evidence. The input extension selects Writer, Spreadsheets, or Presentation; fallback rendering is rejected.',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tiwater/office-mcp",
3
- "version": "0.15.13",
3
+ "version": "0.16.0",
4
4
  "description": "Published MCP server for Tiwater Office document capabilities",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -1,77 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "type": "object",
4
- "properties": {
5
- "input": {
6
- "type": "string",
7
- "minLength": 1,
8
- "x-tiwater-file-role": "read"
9
- },
10
- "output": {
11
- "type": "string",
12
- "minLength": 1,
13
- "description": "New document output path. Existing files are never overwritten.",
14
- "x-tiwater-file-role": "write"
15
- },
16
- "receiptOutput": {
17
- "type": "string",
18
- "minLength": 1,
19
- "description": "New JSON receipt path. Existing files are never overwritten.",
20
- "x-tiwater-file-role": "write",
21
- "x-tiwater-file-effect": false
22
- },
23
- "changes": {
24
- "minItems": 1,
25
- "type": "array",
26
- "items": {
27
- "type": "object",
28
- "properties": {
29
- "fontPolicy": {
30
- "type": "object",
31
- "properties": {
32
- "schema": {
33
- "type": "string",
34
- "minLength": 1
35
- },
36
- "body": {
37
- "type": "object",
38
- "propertyNames": {
39
- "type": "string"
40
- },
41
- "additionalProperties": {
42
- "type": "string"
43
- }
44
- },
45
- "table": {
46
- "type": "object",
47
- "propertyNames": {
48
- "type": "string"
49
- },
50
- "additionalProperties": {
51
- "type": "string"
52
- }
53
- }
54
- },
55
- "required": [
56
- "schema",
57
- "body",
58
- "table"
59
- ],
60
- "additionalProperties": false
61
- }
62
- },
63
- "required": [
64
- "fontPolicy"
65
- ],
66
- "additionalProperties": false
67
- }
68
- }
69
- },
70
- "required": [
71
- "input",
72
- "output",
73
- "receiptOutput",
74
- "changes"
75
- ],
76
- "additionalProperties": false
77
- }
@@ -1,53 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "type": "object",
4
- "properties": {
5
- "input": {
6
- "type": "string",
7
- "minLength": 1,
8
- "x-tiwater-file-role": "read"
9
- },
10
- "output": {
11
- "type": "string",
12
- "minLength": 1,
13
- "description": "New document output path. Existing files are never overwritten.",
14
- "x-tiwater-file-role": "write"
15
- },
16
- "receiptOutput": {
17
- "type": "string",
18
- "minLength": 1,
19
- "description": "New JSON receipt path. Existing files are never overwritten.",
20
- "x-tiwater-file-role": "write",
21
- "x-tiwater-file-effect": false
22
- },
23
- "changes": {
24
- "minItems": 1,
25
- "type": "array",
26
- "items": {
27
- "type": "object",
28
- "properties": {
29
- "italic": {
30
- "type": "boolean"
31
- },
32
- "indentCharactersPerLevel": {
33
- "type": "integer",
34
- "minimum": 0,
35
- "maximum": 9007199254740991
36
- }
37
- },
38
- "required": [
39
- "italic",
40
- "indentCharactersPerLevel"
41
- ],
42
- "additionalProperties": false
43
- }
44
- }
45
- },
46
- "required": [
47
- "input",
48
- "output",
49
- "receiptOutput",
50
- "changes"
51
- ],
52
- "additionalProperties": false
53
- }
@@ -1,30 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "type": "object",
4
- "properties": {
5
- "input": {
6
- "type": "string",
7
- "minLength": 1,
8
- "x-tiwater-file-role": "read"
9
- },
10
- "output": {
11
- "type": "string",
12
- "minLength": 1,
13
- "description": "New document output path. Existing files are never overwritten.",
14
- "x-tiwater-file-role": "write"
15
- },
16
- "receiptOutput": {
17
- "type": "string",
18
- "minLength": 1,
19
- "description": "New JSON receipt path. Existing files are never overwritten.",
20
- "x-tiwater-file-role": "write",
21
- "x-tiwater-file-effect": false
22
- }
23
- },
24
- "required": [
25
- "input",
26
- "output",
27
- "receiptOutput"
28
- ],
29
- "additionalProperties": false
30
- }
@@ -1,30 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "type": "object",
4
- "properties": {
5
- "input": {
6
- "type": "string",
7
- "minLength": 1,
8
- "x-tiwater-file-role": "read"
9
- },
10
- "output": {
11
- "type": "string",
12
- "minLength": 1,
13
- "description": "New document output path. Existing files are never overwritten.",
14
- "x-tiwater-file-role": "write"
15
- },
16
- "receiptOutput": {
17
- "type": "string",
18
- "minLength": 1,
19
- "description": "New JSON receipt path. Existing files are never overwritten.",
20
- "x-tiwater-file-role": "write",
21
- "x-tiwater-file-effect": false
22
- }
23
- },
24
- "required": [
25
- "input",
26
- "output",
27
- "receiptOutput"
28
- ],
29
- "additionalProperties": false
30
- }
@@ -1,54 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "type": "object",
4
- "properties": {
5
- "input": {
6
- "type": "string",
7
- "minLength": 1,
8
- "x-tiwater-file-role": "read"
9
- },
10
- "output": {
11
- "type": "string",
12
- "minLength": 1,
13
- "description": "New document output path. Existing files are never overwritten.",
14
- "x-tiwater-file-role": "write"
15
- },
16
- "receiptOutput": {
17
- "type": "string",
18
- "minLength": 1,
19
- "description": "New JSON receipt path. Existing files are never overwritten.",
20
- "x-tiwater-file-role": "write",
21
- "x-tiwater-file-effect": false
22
- },
23
- "changes": {
24
- "minItems": 1,
25
- "type": "array",
26
- "items": {
27
- "type": "object",
28
- "properties": {
29
- "findText": {
30
- "type": "string",
31
- "minLength": 1
32
- },
33
- "matchMode": {
34
- "type": "string"
35
- },
36
- "paragraphStyle": {
37
- "type": "string"
38
- }
39
- },
40
- "required": [
41
- "findText"
42
- ],
43
- "additionalProperties": false
44
- }
45
- }
46
- },
47
- "required": [
48
- "input",
49
- "output",
50
- "receiptOutput",
51
- "changes"
52
- ],
53
- "additionalProperties": false
54
- }
@@ -1,54 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "type": "object",
4
- "properties": {
5
- "input": {
6
- "type": "string",
7
- "minLength": 1,
8
- "x-tiwater-file-role": "read"
9
- },
10
- "output": {
11
- "type": "string",
12
- "minLength": 1,
13
- "description": "New document output path. Existing files are never overwritten.",
14
- "x-tiwater-file-role": "write"
15
- },
16
- "receiptOutput": {
17
- "type": "string",
18
- "minLength": 1,
19
- "description": "New JSON receipt path. Existing files are never overwritten.",
20
- "x-tiwater-file-role": "write",
21
- "x-tiwater-file-effect": false
22
- },
23
- "changes": {
24
- "minItems": 1,
25
- "type": "array",
26
- "items": {
27
- "type": "object",
28
- "properties": {
29
- "findText": {
30
- "type": "string",
31
- "minLength": 1
32
- },
33
- "matchMode": {
34
- "type": "string"
35
- },
36
- "paragraphStyle": {
37
- "type": "string"
38
- }
39
- },
40
- "required": [
41
- "findText"
42
- ],
43
- "additionalProperties": false
44
- }
45
- }
46
- },
47
- "required": [
48
- "input",
49
- "output",
50
- "receiptOutput",
51
- "changes"
52
- ],
53
- "additionalProperties": false
54
- }
@@ -1,69 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "type": "object",
4
- "properties": {
5
- "input": {
6
- "type": "string",
7
- "minLength": 1,
8
- "x-tiwater-file-role": "read"
9
- },
10
- "output": {
11
- "type": "string",
12
- "minLength": 1,
13
- "description": "New document output path. Existing files are never overwritten.",
14
- "x-tiwater-file-role": "write"
15
- },
16
- "receiptOutput": {
17
- "type": "string",
18
- "minLength": 1,
19
- "description": "New JSON receipt path. Existing files are never overwritten.",
20
- "x-tiwater-file-role": "write",
21
- "x-tiwater-file-effect": false
22
- },
23
- "changes": {
24
- "minItems": 1,
25
- "type": "array",
26
- "items": {
27
- "type": "object",
28
- "properties": {
29
- "findText": {
30
- "type": "string",
31
- "minLength": 1
32
- },
33
- "endFindText": {
34
- "type": "string"
35
- },
36
- "matchMode": {
37
- "type": "string"
38
- },
39
- "endMatchMode": {
40
- "type": "string"
41
- },
42
- "paragraphStyle": {
43
- "type": "string"
44
- },
45
- "endParagraphStyle": {
46
- "type": "string"
47
- },
48
- "deleteToBodyEnd": {
49
- "type": "boolean"
50
- },
51
- "removePrecedingPageBreak": {
52
- "type": "boolean"
53
- }
54
- },
55
- "required": [
56
- "findText"
57
- ],
58
- "additionalProperties": false
59
- }
60
- }
61
- },
62
- "required": [
63
- "input",
64
- "output",
65
- "receiptOutput",
66
- "changes"
67
- ],
68
- "additionalProperties": false
69
- }
@@ -1,52 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "type": "object",
4
- "properties": {
5
- "input": {
6
- "type": "string",
7
- "minLength": 1,
8
- "x-tiwater-file-role": "read"
9
- },
10
- "output": {
11
- "type": "string",
12
- "minLength": 1,
13
- "description": "New document output path. Existing files are never overwritten.",
14
- "x-tiwater-file-role": "write"
15
- },
16
- "receiptOutput": {
17
- "type": "string",
18
- "minLength": 1,
19
- "description": "New JSON receipt path. Existing files are never overwritten.",
20
- "x-tiwater-file-role": "write",
21
- "x-tiwater-file-effect": false
22
- },
23
- "changes": {
24
- "minItems": 1,
25
- "type": "array",
26
- "items": {
27
- "type": "object",
28
- "properties": {
29
- "commentIds": {
30
- "minItems": 1,
31
- "type": "array",
32
- "items": {
33
- "type": "string",
34
- "minLength": 1
35
- }
36
- }
37
- },
38
- "required": [
39
- "commentIds"
40
- ],
41
- "additionalProperties": false
42
- }
43
- }
44
- },
45
- "required": [
46
- "input",
47
- "output",
48
- "receiptOutput",
49
- "changes"
50
- ],
51
- "additionalProperties": false
52
- }
@@ -1,61 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "type": "object",
4
- "properties": {
5
- "input": {
6
- "type": "string",
7
- "minLength": 1,
8
- "x-tiwater-file-role": "read"
9
- },
10
- "output": {
11
- "type": "string",
12
- "minLength": 1,
13
- "description": "New document output path. Existing files are never overwritten.",
14
- "x-tiwater-file-role": "write"
15
- },
16
- "receiptOutput": {
17
- "type": "string",
18
- "minLength": 1,
19
- "description": "New JSON receipt path. Existing files are never overwritten.",
20
- "x-tiwater-file-role": "write",
21
- "x-tiwater-file-effect": false
22
- },
23
- "changes": {
24
- "minItems": 1,
25
- "type": "array",
26
- "items": {
27
- "type": "object",
28
- "properties": {
29
- "tableIndex": {
30
- "type": "integer",
31
- "minimum": 0,
32
- "maximum": 9007199254740991
33
- },
34
- "startRowIndex": {
35
- "type": "integer",
36
- "minimum": 0,
37
- "maximum": 9007199254740991
38
- },
39
- "endRowIndex": {
40
- "type": "integer",
41
- "minimum": 0,
42
- "maximum": 9007199254740991
43
- }
44
- },
45
- "required": [
46
- "tableIndex",
47
- "startRowIndex",
48
- "endRowIndex"
49
- ],
50
- "additionalProperties": false
51
- }
52
- }
53
- },
54
- "required": [
55
- "input",
56
- "output",
57
- "receiptOutput",
58
- "changes"
59
- ],
60
- "additionalProperties": false
61
- }
@@ -1,30 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "type": "object",
4
- "properties": {
5
- "input": {
6
- "type": "string",
7
- "minLength": 1,
8
- "x-tiwater-file-role": "read"
9
- },
10
- "output": {
11
- "type": "string",
12
- "minLength": 1,
13
- "description": "New document output path. Existing files are never overwritten.",
14
- "x-tiwater-file-role": "write"
15
- },
16
- "receiptOutput": {
17
- "type": "string",
18
- "minLength": 1,
19
- "description": "New JSON receipt path. Existing files are never overwritten.",
20
- "x-tiwater-file-role": "write",
21
- "x-tiwater-file-effect": false
22
- }
23
- },
24
- "required": [
25
- "input",
26
- "output",
27
- "receiptOutput"
28
- ],
29
- "additionalProperties": false
30
- }