@tiwater/office-mcp 0.15.0 → 0.15.2

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 (89) hide show
  1. package/office/README.md +5 -0
  2. package/office/contracts/docx_apply_font_policy.schema.json +6 -3
  3. package/office/contracts/docx_apply_toc_style_policy.schema.json +6 -3
  4. package/office/contracts/docx_collapse_trailing_empty_paragraphs.schema.json +6 -3
  5. package/office/contracts/docx_collapse_trailing_empty_section.schema.json +6 -3
  6. package/office/contracts/docx_compare.schema.json +4 -2
  7. package/office/contracts/docx_copy_table_range.schema.json +8 -4
  8. package/office/contracts/docx_delete_body_drawing_before_paragraph.schema.json +6 -3
  9. package/office/contracts/docx_delete_body_paragraph.schema.json +6 -3
  10. package/office/contracts/docx_delete_body_range.schema.json +6 -3
  11. package/office/contracts/docx_delete_comments.schema.json +6 -3
  12. package/office/contracts/docx_delete_table_rows.schema.json +6 -3
  13. package/office/contracts/docx_export_json.schema.json +4 -2
  14. package/office/contracts/docx_find_literal.schema.json +2 -1
  15. package/office/contracts/docx_freeze_fields.schema.json +6 -3
  16. package/office/contracts/docx_insert_body_image.schema.json +8 -4
  17. package/office/contracts/docx_insert_body_range.schema.json +8 -4
  18. package/office/contracts/docx_insert_table_columns.schema.json +6 -3
  19. package/office/contracts/docx_insert_table_rows.schema.json +9 -4
  20. package/office/contracts/docx_inspect.schema.json +4 -2
  21. package/office/contracts/docx_inspect_tables.schema.json +4 -2
  22. package/office/contracts/docx_list_objects.schema.json +2 -1
  23. package/office/contracts/docx_mark_fields_dirty.schema.json +6 -3
  24. package/office/contracts/docx_merge_table_cells.schema.json +6 -3
  25. package/office/contracts/docx_read_object.schema.json +2 -1
  26. package/office/contracts/docx_replace_body_text.schema.json +6 -3
  27. package/office/contracts/docx_replace_drawing_image.schema.json +8 -4
  28. package/office/contracts/docx_replace_header_text.schema.json +6 -3
  29. package/office/contracts/docx_replace_style_ids.schema.json +4 -2
  30. package/office/contracts/docx_replace_table_rows.schema.json +9 -4
  31. package/office/contracts/docx_sanitize_fields.schema.json +6 -3
  32. package/office/contracts/docx_set_anchored_text.schema.json +6 -3
  33. package/office/contracts/docx_set_body_paragraph_keep_lines.schema.json +6 -3
  34. package/office/contracts/docx_set_body_paragraph_keep_next.schema.json +6 -3
  35. package/office/contracts/docx_set_footer_paragraph_text.schema.json +6 -3
  36. package/office/contracts/docx_set_footer_run_text.schema.json +6 -3
  37. package/office/contracts/docx_set_footer_table_cell_run_text.schema.json +6 -3
  38. package/office/contracts/docx_set_footer_table_cell_text.schema.json +6 -3
  39. package/office/contracts/docx_set_header_paragraph_font_size.schema.json +6 -3
  40. package/office/contracts/docx_set_header_paragraph_text.schema.json +6 -3
  41. package/office/contracts/docx_set_header_run_text.schema.json +6 -3
  42. package/office/contracts/docx_set_header_table_cell_run_text.schema.json +6 -3
  43. package/office/contracts/docx_set_header_table_cell_text.schema.json +6 -3
  44. package/office/contracts/docx_set_paragraph_run_text.schema.json +6 -3
  45. package/office/contracts/docx_set_paragraph_text.schema.json +6 -3
  46. package/office/contracts/docx_set_table_cell_alignment.schema.json +6 -3
  47. package/office/contracts/docx_set_table_cell_font_size.schema.json +6 -3
  48. package/office/contracts/docx_set_table_cell_no_wrap.schema.json +6 -3
  49. package/office/contracts/docx_set_table_cell_rich_text.schema.json +6 -3
  50. package/office/contracts/docx_set_table_cell_run_text.schema.json +6 -3
  51. package/office/contracts/docx_set_table_cell_text.schema.json +6 -3
  52. package/office/contracts/docx_set_table_row_cant_split.schema.json +6 -3
  53. package/office/contracts/docx_set_table_row_height.schema.json +6 -3
  54. package/office/contracts/docx_set_table_row_keep_next.schema.json +6 -3
  55. package/office/contracts/docx_set_table_row_repeat_as_header.schema.json +6 -3
  56. package/office/contracts/docx_set_table_width.schema.json +6 -3
  57. package/office/contracts/docx_start_section.schema.json +6 -3
  58. package/office/contracts/docx_strip_direct_formatting.schema.json +4 -2
  59. package/office/contracts/docx_unmerge_table_column_cells.schema.json +6 -3
  60. package/office/contracts/docx_unmerge_table_row_cells.schema.json +6 -3
  61. package/office/contracts/docx_validate.schema.json +2 -1
  62. package/office/contracts/docx_validate_font_policy.schema.json +2 -1
  63. package/office/contracts/docx_validate_toc_style_policy.schema.json +2 -1
  64. package/office/contracts/office_render_pdf.schema.json +6 -3
  65. package/office/contracts/pptx_apply_format.schema.json +6 -3
  66. package/office/contracts/pptx_apply_template.schema.json +8 -4
  67. package/office/contracts/pptx_export_json.schema.json +4 -2
  68. package/office/contracts/pptx_inspect.schema.json +4 -2
  69. package/office/contracts/pptx_replace_picture_image.schema.json +8 -4
  70. package/office/contracts/pptx_set_shape_geometry.schema.json +6 -3
  71. package/office/contracts/pptx_validate.schema.json +2 -1
  72. package/office/contracts/tiwater-office-provider-contract-manifest-v1.json +173 -173
  73. package/office/contracts/xlsx_convert_legacy.schema.json +6 -3
  74. package/office/contracts/xlsx_copy_row.schema.json +6 -3
  75. package/office/contracts/xlsx_delete_rows.schema.json +6 -3
  76. package/office/contracts/xlsx_expand_section_rows.schema.json +6 -3
  77. package/office/contracts/xlsx_export_json.schema.json +4 -2
  78. package/office/contracts/xlsx_insert_rows.schema.json +6 -3
  79. package/office/contracts/xlsx_inspect.schema.json +4 -2
  80. package/office/contracts/xlsx_set_cell_number_format.schema.json +6 -3
  81. package/office/contracts/xlsx_set_cell_value.schema.json +6 -3
  82. package/office/contracts/xlsx_set_column_width.schema.json +6 -3
  83. package/office/contracts/xlsx_set_page_setup.schema.json +6 -3
  84. package/office/contracts/xlsx_set_print_area.schema.json +6 -3
  85. package/office/contracts/xlsx_set_range_values.schema.json +6 -3
  86. package/office/contracts/xlsx_set_rich_text_cell_value.schema.json +6 -3
  87. package/office/contracts/xlsx_set_row_page_breaks.schema.json +6 -3
  88. package/office/contracts/xlsx_validate.schema.json +2 -1
  89. package/package.json +1 -1
package/office/README.md CHANGED
@@ -6,6 +6,11 @@ The server owns technical observation, native conversion, fixed-action edits,
6
6
  package validation, and native WPS rendering. Callers own document selections,
7
7
  values, business mappings, workflow decisions, and delivery status.
8
8
 
9
+ Every filesystem argument is identified in the published MCP input schema by
10
+ `x-tiwater-file-role`. `read` marks an existing provider input; `write` marks a
11
+ new provider artifact. Strings without this metadata are document values or
12
+ OpenXML-internal identifiers, not filesystem arguments.
13
+
9
14
  ## Capability families
10
15
 
11
16
  - DOCX: inspect document/tables, export, compare, validate OpenXML, font, and table-of-contents styles
@@ -4,17 +4,20 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "output": {
10
11
  "type": "string",
11
12
  "minLength": 1,
12
- "description": "New document output path. Existing files are never overwritten."
13
+ "description": "New document output path. Existing files are never overwritten.",
14
+ "x-tiwater-file-role": "write"
13
15
  },
14
16
  "receiptOutput": {
15
17
  "type": "string",
16
18
  "minLength": 1,
17
- "description": "New JSON receipt path. Existing files are never overwritten."
19
+ "description": "New JSON receipt path. Existing files are never overwritten.",
20
+ "x-tiwater-file-role": "write"
18
21
  },
19
22
  "changes": {
20
23
  "minItems": 1,
@@ -4,17 +4,20 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "output": {
10
11
  "type": "string",
11
12
  "minLength": 1,
12
- "description": "New document output path. Existing files are never overwritten."
13
+ "description": "New document output path. Existing files are never overwritten.",
14
+ "x-tiwater-file-role": "write"
13
15
  },
14
16
  "receiptOutput": {
15
17
  "type": "string",
16
18
  "minLength": 1,
17
- "description": "New JSON receipt path. Existing files are never overwritten."
19
+ "description": "New JSON receipt path. Existing files are never overwritten.",
20
+ "x-tiwater-file-role": "write"
18
21
  },
19
22
  "changes": {
20
23
  "minItems": 1,
@@ -4,17 +4,20 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "output": {
10
11
  "type": "string",
11
12
  "minLength": 1,
12
- "description": "New document output path. Existing files are never overwritten."
13
+ "description": "New document output path. Existing files are never overwritten.",
14
+ "x-tiwater-file-role": "write"
13
15
  },
14
16
  "receiptOutput": {
15
17
  "type": "string",
16
18
  "minLength": 1,
17
- "description": "New JSON receipt path. Existing files are never overwritten."
19
+ "description": "New JSON receipt path. Existing files are never overwritten.",
20
+ "x-tiwater-file-role": "write"
18
21
  }
19
22
  },
20
23
  "required": [
@@ -4,17 +4,20 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "output": {
10
11
  "type": "string",
11
12
  "minLength": 1,
12
- "description": "New document output path. Existing files are never overwritten."
13
+ "description": "New document output path. Existing files are never overwritten.",
14
+ "x-tiwater-file-role": "write"
13
15
  },
14
16
  "receiptOutput": {
15
17
  "type": "string",
16
18
  "minLength": 1,
17
- "description": "New JSON receipt path. Existing files are never overwritten."
19
+ "description": "New JSON receipt path. Existing files are never overwritten.",
20
+ "x-tiwater-file-role": "write"
18
21
  }
19
22
  },
20
23
  "required": [
@@ -4,11 +4,13 @@
4
4
  "properties": {
5
5
  "baseline": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "updated": {
10
11
  "type": "string",
11
- "minLength": 1
12
+ "minLength": 1,
13
+ "x-tiwater-file-role": "read"
12
14
  }
13
15
  },
14
16
  "required": [
@@ -11,7 +11,8 @@
11
11
  "properties": {
12
12
  "input": {
13
13
  "type": "string",
14
- "minLength": 1
14
+ "minLength": 1,
15
+ "x-tiwater-file-role": "read"
15
16
  },
16
17
  "revision": {
17
18
  "type": "string",
@@ -38,7 +39,8 @@
38
39
  "properties": {
39
40
  "input": {
40
41
  "type": "string",
41
- "minLength": 1
42
+ "minLength": 1,
43
+ "x-tiwater-file-role": "read"
42
44
  },
43
45
  "revision": {
44
46
  "type": "string",
@@ -91,11 +93,13 @@
91
93
  },
92
94
  "output": {
93
95
  "type": "string",
94
- "minLength": 1
96
+ "minLength": 1,
97
+ "x-tiwater-file-role": "write"
95
98
  },
96
99
  "receiptOutput": {
97
100
  "type": "string",
98
- "minLength": 1
101
+ "minLength": 1,
102
+ "x-tiwater-file-role": "write"
99
103
  }
100
104
  },
101
105
  "required": [
@@ -4,17 +4,20 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "output": {
10
11
  "type": "string",
11
12
  "minLength": 1,
12
- "description": "New document output path. Existing files are never overwritten."
13
+ "description": "New document output path. Existing files are never overwritten.",
14
+ "x-tiwater-file-role": "write"
13
15
  },
14
16
  "receiptOutput": {
15
17
  "type": "string",
16
18
  "minLength": 1,
17
- "description": "New JSON receipt path. Existing files are never overwritten."
19
+ "description": "New JSON receipt path. Existing files are never overwritten.",
20
+ "x-tiwater-file-role": "write"
18
21
  },
19
22
  "changes": {
20
23
  "minItems": 1,
@@ -4,17 +4,20 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "output": {
10
11
  "type": "string",
11
12
  "minLength": 1,
12
- "description": "New document output path. Existing files are never overwritten."
13
+ "description": "New document output path. Existing files are never overwritten.",
14
+ "x-tiwater-file-role": "write"
13
15
  },
14
16
  "receiptOutput": {
15
17
  "type": "string",
16
18
  "minLength": 1,
17
- "description": "New JSON receipt path. Existing files are never overwritten."
19
+ "description": "New JSON receipt path. Existing files are never overwritten.",
20
+ "x-tiwater-file-role": "write"
18
21
  },
19
22
  "changes": {
20
23
  "minItems": 1,
@@ -4,17 +4,20 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "output": {
10
11
  "type": "string",
11
12
  "minLength": 1,
12
- "description": "New document output path. Existing files are never overwritten."
13
+ "description": "New document output path. Existing files are never overwritten.",
14
+ "x-tiwater-file-role": "write"
13
15
  },
14
16
  "receiptOutput": {
15
17
  "type": "string",
16
18
  "minLength": 1,
17
- "description": "New JSON receipt path. Existing files are never overwritten."
19
+ "description": "New JSON receipt path. Existing files are never overwritten.",
20
+ "x-tiwater-file-role": "write"
18
21
  },
19
22
  "changes": {
20
23
  "minItems": 1,
@@ -4,17 +4,20 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "output": {
10
11
  "type": "string",
11
12
  "minLength": 1,
12
- "description": "New document output path. Existing files are never overwritten."
13
+ "description": "New document output path. Existing files are never overwritten.",
14
+ "x-tiwater-file-role": "write"
13
15
  },
14
16
  "receiptOutput": {
15
17
  "type": "string",
16
18
  "minLength": 1,
17
- "description": "New JSON receipt path. Existing files are never overwritten."
19
+ "description": "New JSON receipt path. Existing files are never overwritten.",
20
+ "x-tiwater-file-role": "write"
18
21
  },
19
22
  "changes": {
20
23
  "minItems": 1,
@@ -4,17 +4,20 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "output": {
10
11
  "type": "string",
11
12
  "minLength": 1,
12
- "description": "New document output path. Existing files are never overwritten."
13
+ "description": "New document output path. Existing files are never overwritten.",
14
+ "x-tiwater-file-role": "write"
13
15
  },
14
16
  "receiptOutput": {
15
17
  "type": "string",
16
18
  "minLength": 1,
17
- "description": "New JSON receipt path. Existing files are never overwritten."
19
+ "description": "New JSON receipt path. Existing files are never overwritten.",
20
+ "x-tiwater-file-role": "write"
18
21
  },
19
22
  "changes": {
20
23
  "minItems": 1,
@@ -4,12 +4,14 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "output": {
10
11
  "type": "string",
11
12
  "minLength": 1,
12
- "description": "New JSON artifact path. Existing files are never overwritten."
13
+ "description": "New JSON artifact path. Existing files are never overwritten.",
14
+ "x-tiwater-file-role": "write"
13
15
  }
14
16
  },
15
17
  "required": [
@@ -4,7 +4,8 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "literal": {
10
11
  "type": "string",
@@ -4,17 +4,20 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "output": {
10
11
  "type": "string",
11
12
  "minLength": 1,
12
- "description": "New document output path. Existing files are never overwritten."
13
+ "description": "New document output path. Existing files are never overwritten.",
14
+ "x-tiwater-file-role": "write"
13
15
  },
14
16
  "receiptOutput": {
15
17
  "type": "string",
16
18
  "minLength": 1,
17
- "description": "New JSON receipt path. Existing files are never overwritten."
19
+ "description": "New JSON receipt path. Existing files are never overwritten.",
20
+ "x-tiwater-file-role": "write"
18
21
  }
19
22
  },
20
23
  "required": [
@@ -4,17 +4,20 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "output": {
10
11
  "type": "string",
11
12
  "minLength": 1,
12
- "description": "New document output path. Existing files are never overwritten."
13
+ "description": "New document output path. Existing files are never overwritten.",
14
+ "x-tiwater-file-role": "write"
13
15
  },
14
16
  "receiptOutput": {
15
17
  "type": "string",
16
18
  "minLength": 1,
17
- "description": "New JSON receipt path. Existing files are never overwritten."
19
+ "description": "New JSON receipt path. Existing files are never overwritten.",
20
+ "x-tiwater-file-role": "write"
18
21
  },
19
22
  "changes": {
20
23
  "minItems": 1,
@@ -29,7 +32,8 @@
29
32
  },
30
33
  "image": {
31
34
  "type": "string",
32
- "minLength": 1
35
+ "minLength": 1,
36
+ "x-tiwater-file-role": "read"
33
37
  },
34
38
  "widthEmu": {
35
39
  "type": "integer",
@@ -4,17 +4,20 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "output": {
10
11
  "type": "string",
11
12
  "minLength": 1,
12
- "description": "New document output path. Existing files are never overwritten."
13
+ "description": "New document output path. Existing files are never overwritten.",
14
+ "x-tiwater-file-role": "write"
13
15
  },
14
16
  "receiptOutput": {
15
17
  "type": "string",
16
18
  "minLength": 1,
17
- "description": "New JSON receipt path. Existing files are never overwritten."
19
+ "description": "New JSON receipt path. Existing files are never overwritten.",
20
+ "x-tiwater-file-role": "write"
18
21
  },
19
22
  "changes": {
20
23
  "minItems": 1,
@@ -24,7 +27,8 @@
24
27
  "properties": {
25
28
  "source": {
26
29
  "type": "string",
27
- "minLength": 1
30
+ "minLength": 1,
31
+ "x-tiwater-file-role": "read"
28
32
  },
29
33
  "sourceStartBodyIndex": {
30
34
  "type": "integer",
@@ -4,17 +4,20 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "output": {
10
11
  "type": "string",
11
12
  "minLength": 1,
12
- "description": "New document output path. Existing files are never overwritten."
13
+ "description": "New document output path. Existing files are never overwritten.",
14
+ "x-tiwater-file-role": "write"
13
15
  },
14
16
  "receiptOutput": {
15
17
  "type": "string",
16
18
  "minLength": 1,
17
- "description": "New JSON receipt path. Existing files are never overwritten."
19
+ "description": "New JSON receipt path. Existing files are never overwritten.",
20
+ "x-tiwater-file-role": "write"
18
21
  },
19
22
  "changes": {
20
23
  "minItems": 1,
@@ -4,17 +4,20 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "output": {
10
11
  "type": "string",
11
12
  "minLength": 1,
12
- "description": "New document output path. Existing files are never overwritten."
13
+ "description": "New document output path. Existing files are never overwritten.",
14
+ "x-tiwater-file-role": "write"
13
15
  },
14
16
  "receiptOutput": {
15
17
  "type": "string",
16
18
  "minLength": 1,
17
- "description": "New JSON receipt path. Existing files are never overwritten."
19
+ "description": "New JSON receipt path. Existing files are never overwritten.",
20
+ "x-tiwater-file-role": "write"
18
21
  },
19
22
  "changes": {
20
23
  "minItems": 1,
@@ -53,7 +56,9 @@
53
56
  "maximum": 9007199254740991
54
57
  },
55
58
  "vMerge": {
56
- "type": "string"
59
+ "type": "string",
60
+ "enum": ["restart", "continue", "none"],
61
+ "description": "Vertical merge state for this cell. Use none to clear a merge inherited from the template row."
57
62
  },
58
63
  "bold": {
59
64
  "type": "boolean"
@@ -4,12 +4,14 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "output": {
10
11
  "type": "string",
11
12
  "minLength": 1,
12
- "description": "New JSON artifact path. Existing files are never overwritten."
13
+ "description": "New JSON artifact path. Existing files are never overwritten.",
14
+ "x-tiwater-file-role": "write"
13
15
  }
14
16
  },
15
17
  "required": [
@@ -4,12 +4,14 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "output": {
10
11
  "type": "string",
11
12
  "minLength": 1,
12
- "description": "New JSON artifact path. Existing files are never overwritten."
13
+ "description": "New JSON artifact path. Existing files are never overwritten.",
14
+ "x-tiwater-file-role": "write"
13
15
  }
14
16
  },
15
17
  "required": [
@@ -4,7 +4,8 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "kind": {
10
11
  "type": "string",
@@ -4,17 +4,20 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "output": {
10
11
  "type": "string",
11
12
  "minLength": 1,
12
- "description": "New document output path. Existing files are never overwritten."
13
+ "description": "New document output path. Existing files are never overwritten.",
14
+ "x-tiwater-file-role": "write"
13
15
  },
14
16
  "receiptOutput": {
15
17
  "type": "string",
16
18
  "minLength": 1,
17
- "description": "New JSON receipt path. Existing files are never overwritten."
19
+ "description": "New JSON receipt path. Existing files are never overwritten.",
20
+ "x-tiwater-file-role": "write"
18
21
  }
19
22
  },
20
23
  "required": [
@@ -4,17 +4,20 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "output": {
10
11
  "type": "string",
11
12
  "minLength": 1,
12
- "description": "New document output path. Existing files are never overwritten."
13
+ "description": "New document output path. Existing files are never overwritten.",
14
+ "x-tiwater-file-role": "write"
13
15
  },
14
16
  "receiptOutput": {
15
17
  "type": "string",
16
18
  "minLength": 1,
17
- "description": "New JSON receipt path. Existing files are never overwritten."
19
+ "description": "New JSON receipt path. Existing files are never overwritten.",
20
+ "x-tiwater-file-role": "write"
18
21
  },
19
22
  "changes": {
20
23
  "minItems": 1,
@@ -4,7 +4,8 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "ref": {
10
11
  "type": "string",
@@ -4,17 +4,20 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "output": {
10
11
  "type": "string",
11
12
  "minLength": 1,
12
- "description": "New document output path. Existing files are never overwritten."
13
+ "description": "New document output path. Existing files are never overwritten.",
14
+ "x-tiwater-file-role": "write"
13
15
  },
14
16
  "receiptOutput": {
15
17
  "type": "string",
16
18
  "minLength": 1,
17
- "description": "New JSON receipt path. Existing files are never overwritten."
19
+ "description": "New JSON receipt path. Existing files are never overwritten.",
20
+ "x-tiwater-file-role": "write"
18
21
  },
19
22
  "changes": {
20
23
  "minItems": 1,
@@ -4,17 +4,20 @@
4
4
  "properties": {
5
5
  "input": {
6
6
  "type": "string",
7
- "minLength": 1
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
8
9
  },
9
10
  "output": {
10
11
  "type": "string",
11
12
  "minLength": 1,
12
- "description": "New document output path. Existing files are never overwritten."
13
+ "description": "New document output path. Existing files are never overwritten.",
14
+ "x-tiwater-file-role": "write"
13
15
  },
14
16
  "receiptOutput": {
15
17
  "type": "string",
16
18
  "minLength": 1,
17
- "description": "New JSON receipt path. Existing files are never overwritten."
19
+ "description": "New JSON receipt path. Existing files are never overwritten.",
20
+ "x-tiwater-file-role": "write"
18
21
  },
19
22
  "changes": {
20
23
  "minItems": 1,
@@ -34,7 +37,8 @@
34
37
  },
35
38
  "image": {
36
39
  "type": "string",
37
- "minLength": 1
40
+ "minLength": 1,
41
+ "x-tiwater-file-role": "read"
38
42
  }
39
43
  },
40
44
  "required": [