@usejunior/docx-mcp 0.0.1 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +208 -28
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/cli/commands/compare.d.ts +20 -0
  5. package/dist/cli/commands/compare.d.ts.map +1 -0
  6. package/dist/cli/commands/compare.js +54 -0
  7. package/dist/cli/commands/compare.js.map +1 -0
  8. package/dist/cli/commands/serve.d.ts +2 -0
  9. package/dist/cli/commands/serve.d.ts.map +1 -0
  10. package/dist/cli/commands/serve.js +5 -0
  11. package/dist/cli/commands/serve.js.map +1 -0
  12. package/dist/cli/index.d.ts +13 -0
  13. package/dist/cli/index.d.ts.map +1 -0
  14. package/dist/cli/index.js +145 -0
  15. package/dist/cli/index.js.map +1 -0
  16. package/dist/cli.d.ts +3 -0
  17. package/dist/cli.d.ts.map +1 -0
  18. package/dist/cli.js +8 -0
  19. package/dist/cli.js.map +1 -0
  20. package/dist/conformance/harness.d.ts +73 -0
  21. package/dist/conformance/harness.d.ts.map +1 -0
  22. package/dist/conformance/harness.js +609 -0
  23. package/dist/conformance/harness.js.map +1 -0
  24. package/dist/error_utils.d.ts +3 -0
  25. package/dist/error_utils.d.ts.map +1 -0
  26. package/dist/error_utils.js +19 -0
  27. package/dist/error_utils.js.map +1 -0
  28. package/dist/index.d.ts +3 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +3 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/server.d.ts +80 -0
  33. package/dist/server.d.ts.map +1 -0
  34. package/dist/server.js +112 -0
  35. package/dist/server.js.map +1 -0
  36. package/dist/session/manager.d.ts +84 -0
  37. package/dist/session/manager.d.ts.map +1 -0
  38. package/dist/session/manager.js +155 -0
  39. package/dist/session/manager.js.map +1 -0
  40. package/dist/tool_catalog.d.ts +439 -0
  41. package/dist/tool_catalog.d.ts.map +1 -0
  42. package/dist/tool_catalog.js +314 -0
  43. package/dist/tool_catalog.js.map +1 -0
  44. package/dist/tools/accept_changes.d.ts +7 -0
  45. package/dist/tools/accept_changes.d.ts.map +1 -0
  46. package/dist/tools/accept_changes.js +21 -0
  47. package/dist/tools/accept_changes.js.map +1 -0
  48. package/dist/tools/add_comment.d.ts +13 -0
  49. package/dist/tools/add_comment.d.ts.map +1 -0
  50. package/dist/tools/add_comment.js +77 -0
  51. package/dist/tools/add_comment.js.map +1 -0
  52. package/dist/tools/add_footnote.d.ts +10 -0
  53. package/dist/tools/add_footnote.d.ts.map +1 -0
  54. package/dist/tools/add_footnote.js +45 -0
  55. package/dist/tools/add_footnote.js.map +1 -0
  56. package/dist/tools/apply_plan.d.ts +9 -0
  57. package/dist/tools/apply_plan.d.ts.map +1 -0
  58. package/dist/tools/apply_plan.js +346 -0
  59. package/dist/tools/apply_plan.js.map +1 -0
  60. package/dist/tools/clear_session.d.ts +9 -0
  61. package/dist/tools/clear_session.d.ts.map +1 -0
  62. package/dist/tools/clear_session.js +66 -0
  63. package/dist/tools/clear_session.js.map +1 -0
  64. package/dist/tools/compare_documents.d.ts +12 -0
  65. package/dist/tools/compare_documents.d.ts.map +1 -0
  66. package/dist/tools/compare_documents.js +121 -0
  67. package/dist/tools/compare_documents.js.map +1 -0
  68. package/dist/tools/comparison_defaults.d.ts +9 -0
  69. package/dist/tools/comparison_defaults.d.ts.map +1 -0
  70. package/dist/tools/comparison_defaults.js +8 -0
  71. package/dist/tools/comparison_defaults.js.map +1 -0
  72. package/dist/tools/delete_comment.d.ts +8 -0
  73. package/dist/tools/delete_comment.d.ts.map +1 -0
  74. package/dist/tools/delete_comment.js +28 -0
  75. package/dist/tools/delete_comment.js.map +1 -0
  76. package/dist/tools/delete_footnote.d.ts +8 -0
  77. package/dist/tools/delete_footnote.d.ts.map +1 -0
  78. package/dist/tools/delete_footnote.js +34 -0
  79. package/dist/tools/delete_footnote.js.map +1 -0
  80. package/dist/tools/docx_archive_guard.d.ts +9 -0
  81. package/dist/tools/docx_archive_guard.d.ts.map +1 -0
  82. package/dist/tools/docx_archive_guard.js +64 -0
  83. package/dist/tools/docx_archive_guard.js.map +1 -0
  84. package/dist/tools/download.d.ts +20 -0
  85. package/dist/tools/download.d.ts.map +1 -0
  86. package/dist/tools/download.js +252 -0
  87. package/dist/tools/download.js.map +1 -0
  88. package/dist/tools/duplicate_document.d.ts +8 -0
  89. package/dist/tools/duplicate_document.d.ts.map +1 -0
  90. package/dist/tools/duplicate_document.js +90 -0
  91. package/dist/tools/duplicate_document.js.map +1 -0
  92. package/dist/tools/extract_revisions.d.ts +9 -0
  93. package/dist/tools/extract_revisions.d.ts.map +1 -0
  94. package/dist/tools/extract_revisions.js +52 -0
  95. package/dist/tools/extract_revisions.js.map +1 -0
  96. package/dist/tools/format_layout.d.ts +35 -0
  97. package/dist/tools/format_layout.d.ts.map +1 -0
  98. package/dist/tools/format_layout.js +332 -0
  99. package/dist/tools/format_layout.js.map +1 -0
  100. package/dist/tools/get_comments.d.ts +7 -0
  101. package/dist/tools/get_comments.d.ts.map +1 -0
  102. package/dist/tools/get_comments.js +32 -0
  103. package/dist/tools/get_comments.js.map +1 -0
  104. package/dist/tools/get_footnotes.d.ts +7 -0
  105. package/dist/tools/get_footnotes.d.ts.map +1 -0
  106. package/dist/tools/get_footnotes.js +25 -0
  107. package/dist/tools/get_footnotes.js.map +1 -0
  108. package/dist/tools/get_session_status.d.ts +7 -0
  109. package/dist/tools/get_session_status.d.ts.map +1 -0
  110. package/dist/tools/get_session_status.js +41 -0
  111. package/dist/tools/get_session_status.js.map +1 -0
  112. package/dist/tools/grep.d.ts +13 -0
  113. package/dist/tools/grep.d.ts.map +1 -0
  114. package/dist/tools/grep.js +129 -0
  115. package/dist/tools/grep.js.map +1 -0
  116. package/dist/tools/has_tracked_changes.d.ts +7 -0
  117. package/dist/tools/has_tracked_changes.d.ts.map +1 -0
  118. package/dist/tools/has_tracked_changes.js +74 -0
  119. package/dist/tools/has_tracked_changes.js.map +1 -0
  120. package/dist/tools/init_plan.d.ts +9 -0
  121. package/dist/tools/init_plan.d.ts.map +1 -0
  122. package/dist/tools/init_plan.js +44 -0
  123. package/dist/tools/init_plan.js.map +1 -0
  124. package/dist/tools/insert_paragraph.d.ts +12 -0
  125. package/dist/tools/insert_paragraph.d.ts.map +1 -0
  126. package/dist/tools/insert_paragraph.js +514 -0
  127. package/dist/tools/insert_paragraph.js.map +1 -0
  128. package/dist/tools/merge_plans.d.ts +7 -0
  129. package/dist/tools/merge_plans.d.ts.map +1 -0
  130. package/dist/tools/merge_plans.js +408 -0
  131. package/dist/tools/merge_plans.js.map +1 -0
  132. package/dist/tools/open_document.d.ts +7 -0
  133. package/dist/tools/open_document.d.ts.map +1 -0
  134. package/dist/tools/open_document.js +102 -0
  135. package/dist/tools/open_document.js.map +1 -0
  136. package/dist/tools/path_policy.d.ts +13 -0
  137. package/dist/tools/path_policy.d.ts.map +1 -0
  138. package/dist/tools/path_policy.js +109 -0
  139. package/dist/tools/path_policy.js.map +1 -0
  140. package/dist/tools/preview.d.ts +5 -0
  141. package/dist/tools/preview.d.ts.map +1 -0
  142. package/dist/tools/preview.js +11 -0
  143. package/dist/tools/preview.js.map +1 -0
  144. package/dist/tools/read_file.d.ts +12 -0
  145. package/dist/tools/read_file.d.ts.map +1 -0
  146. package/dist/tools/read_file.js +113 -0
  147. package/dist/tools/read_file.js.map +1 -0
  148. package/dist/tools/replace_text.d.ts +13 -0
  149. package/dist/tools/replace_text.d.ts.map +1 -0
  150. package/dist/tools/replace_text.js +628 -0
  151. package/dist/tools/replace_text.js.map +1 -0
  152. package/dist/tools/session_resolution.d.ts +29 -0
  153. package/dist/tools/session_resolution.d.ts.map +1 -0
  154. package/dist/tools/session_resolution.js +158 -0
  155. package/dist/tools/session_resolution.js.map +1 -0
  156. package/dist/tools/types.d.ts +15 -0
  157. package/dist/tools/types.d.ts.map +1 -0
  158. package/dist/tools/types.js +7 -0
  159. package/dist/tools/types.js.map +1 -0
  160. package/dist/tools/update_footnote.d.ts +9 -0
  161. package/dist/tools/update_footnote.d.ts.map +1 -0
  162. package/dist/tools/update_footnote.js +39 -0
  163. package/dist/tools/update_footnote.js.map +1 -0
  164. package/package.json +74 -6
@@ -0,0 +1,439 @@
1
+ import { z } from 'zod';
2
+ export declare const SAFE_DOCX_TOOL_CATALOG: readonly [{
3
+ readonly name: "read_file";
4
+ readonly description: "Read document content with paragraph IDs. Accepts session_id or file_path.";
5
+ readonly input: z.ZodObject<{
6
+ offset: z.ZodOptional<z.ZodNumber>;
7
+ limit: z.ZodOptional<z.ZodNumber>;
8
+ node_ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
9
+ format: z.ZodOptional<z.ZodEnum<{
10
+ toon: "toon";
11
+ json: "json";
12
+ simple: "simple";
13
+ }>>;
14
+ show_formatting: z.ZodOptional<z.ZodBoolean>;
15
+ session_id: z.ZodOptional<z.ZodString>;
16
+ file_path: z.ZodOptional<z.ZodString>;
17
+ }, z.core.$strip>;
18
+ readonly annotations: {
19
+ readonly readOnlyHint: true;
20
+ readonly destructiveHint: false;
21
+ };
22
+ }, {
23
+ readonly name: "grep";
24
+ readonly description: "Search paragraphs with regex. Accepts session_id or file_path.";
25
+ readonly input: z.ZodObject<{
26
+ patterns: z.ZodArray<z.ZodString>;
27
+ case_sensitive: z.ZodOptional<z.ZodBoolean>;
28
+ whole_word: z.ZodOptional<z.ZodBoolean>;
29
+ max_results: z.ZodOptional<z.ZodNumber>;
30
+ context_chars: z.ZodOptional<z.ZodNumber>;
31
+ dedupe_by_paragraph: z.ZodOptional<z.ZodBoolean>;
32
+ session_id: z.ZodOptional<z.ZodString>;
33
+ file_path: z.ZodOptional<z.ZodString>;
34
+ }, z.core.$strip>;
35
+ readonly annotations: {
36
+ readonly readOnlyHint: true;
37
+ readonly destructiveHint: false;
38
+ };
39
+ }, {
40
+ readonly name: "init_plan";
41
+ readonly description: "Initialize revision-bound context metadata for coordinated multi-agent planning. Accepts session_id or file_path.";
42
+ readonly input: z.ZodObject<{
43
+ plan_name: z.ZodOptional<z.ZodString>;
44
+ orchestrator_id: z.ZodOptional<z.ZodString>;
45
+ session_id: z.ZodOptional<z.ZodString>;
46
+ file_path: z.ZodOptional<z.ZodString>;
47
+ }, z.core.$strip>;
48
+ readonly annotations: {
49
+ readonly readOnlyHint: true;
50
+ readonly destructiveHint: false;
51
+ };
52
+ }, {
53
+ readonly name: "merge_plans";
54
+ readonly description: "Deterministically merge multiple sub-agent plans and detect hard conflicts before apply.";
55
+ readonly input: z.ZodObject<{
56
+ plans: z.ZodArray<z.ZodObject<{}, z.core.$catchall<z.ZodUnknown>>>;
57
+ fail_on_conflict: z.ZodOptional<z.ZodBoolean>;
58
+ require_shared_base_revision: z.ZodOptional<z.ZodBoolean>;
59
+ }, z.core.$strip>;
60
+ readonly annotations: {
61
+ readonly readOnlyHint: true;
62
+ readonly destructiveHint: false;
63
+ };
64
+ }, {
65
+ readonly name: "apply_plan";
66
+ readonly description: "Validate and apply a batch of edit steps (replace_text, insert_paragraph) to a session document in one call. Validates all steps first; applies only if all pass. Accepts inline steps or a plan_file_path. Compatible with merge_plans output.";
67
+ readonly input: z.ZodObject<{
68
+ steps: z.ZodOptional<z.ZodArray<z.ZodObject<{}, z.core.$catchall<z.ZodUnknown>>>>;
69
+ plan_file_path: z.ZodOptional<z.ZodString>;
70
+ session_id: z.ZodOptional<z.ZodString>;
71
+ file_path: z.ZodOptional<z.ZodString>;
72
+ }, z.core.$strip>;
73
+ readonly annotations: {
74
+ readonly readOnlyHint: false;
75
+ readonly destructiveHint: true;
76
+ };
77
+ }, {
78
+ readonly name: "replace_text";
79
+ readonly description: "Replace text in a paragraph by _bk_* id, preserving formatting. Accepts session_id or file_path.";
80
+ readonly input: z.ZodObject<{
81
+ target_paragraph_id: z.ZodString;
82
+ old_string: z.ZodString;
83
+ new_string: z.ZodString;
84
+ instruction: z.ZodString;
85
+ normalize_first: z.ZodOptional<z.ZodBoolean>;
86
+ session_id: z.ZodOptional<z.ZodString>;
87
+ file_path: z.ZodOptional<z.ZodString>;
88
+ }, z.core.$strip>;
89
+ readonly annotations: {
90
+ readonly readOnlyHint: false;
91
+ readonly destructiveHint: true;
92
+ };
93
+ }, {
94
+ readonly name: "insert_paragraph";
95
+ readonly description: "Insert a paragraph before/after an anchor paragraph by _bk_* id. Accepts session_id or file_path.";
96
+ readonly input: z.ZodObject<{
97
+ positional_anchor_node_id: z.ZodString;
98
+ new_string: z.ZodString;
99
+ instruction: z.ZodString;
100
+ position: z.ZodOptional<z.ZodEnum<{
101
+ BEFORE: "BEFORE";
102
+ AFTER: "AFTER";
103
+ }>>;
104
+ style_source_id: z.ZodOptional<z.ZodString>;
105
+ session_id: z.ZodOptional<z.ZodString>;
106
+ file_path: z.ZodOptional<z.ZodString>;
107
+ }, z.core.$strip>;
108
+ readonly annotations: {
109
+ readonly readOnlyHint: false;
110
+ readonly destructiveHint: true;
111
+ };
112
+ }, {
113
+ readonly name: "download";
114
+ readonly description: "Save clean and/or tracked changes output back to the user filesystem. Defaults to both clean and tracked outputs when no format override is provided. Accepts session_id or file_path.";
115
+ readonly input: z.ZodObject<{
116
+ save_to_local_path: z.ZodString;
117
+ clean_bookmarks: z.ZodOptional<z.ZodBoolean>;
118
+ download_format: z.ZodOptional<z.ZodEnum<{
119
+ clean: "clean";
120
+ tracked: "tracked";
121
+ both: "both";
122
+ }>>;
123
+ allow_overwrite: z.ZodOptional<z.ZodBoolean>;
124
+ tracked_save_to_local_path: z.ZodOptional<z.ZodString>;
125
+ tracked_changes_author: z.ZodOptional<z.ZodString>;
126
+ tracked_changes_engine: z.ZodOptional<z.ZodEnum<{
127
+ auto: "auto";
128
+ atomizer: "atomizer";
129
+ diffmatch: "diffmatch";
130
+ }>>;
131
+ fail_on_rebuild_fallback: z.ZodOptional<z.ZodBoolean>;
132
+ session_id: z.ZodOptional<z.ZodString>;
133
+ file_path: z.ZodOptional<z.ZodString>;
134
+ }, z.core.$strip>;
135
+ readonly annotations: {
136
+ readonly readOnlyHint: false;
137
+ readonly destructiveHint: true;
138
+ };
139
+ }, {
140
+ readonly name: "format_layout";
141
+ readonly description: "Apply deterministic OOXML layout controls (paragraph spacing, table row height, cell padding). Accepts session_id or file_path.";
142
+ readonly input: z.ZodObject<{
143
+ strict: z.ZodOptional<z.ZodBoolean>;
144
+ paragraph_spacing: z.ZodOptional<z.ZodObject<{
145
+ paragraph_ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
146
+ before_twips: z.ZodOptional<z.ZodNumber>;
147
+ after_twips: z.ZodOptional<z.ZodNumber>;
148
+ line_twips: z.ZodOptional<z.ZodNumber>;
149
+ line_rule: z.ZodOptional<z.ZodEnum<{
150
+ auto: "auto";
151
+ exact: "exact";
152
+ atLeast: "atLeast";
153
+ }>>;
154
+ }, z.core.$strip>>;
155
+ row_height: z.ZodOptional<z.ZodObject<{
156
+ table_indexes: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
157
+ row_indexes: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
158
+ value_twips: z.ZodOptional<z.ZodNumber>;
159
+ rule: z.ZodOptional<z.ZodEnum<{
160
+ auto: "auto";
161
+ exact: "exact";
162
+ atLeast: "atLeast";
163
+ }>>;
164
+ }, z.core.$strip>>;
165
+ cell_padding: z.ZodOptional<z.ZodObject<{
166
+ table_indexes: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
167
+ row_indexes: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
168
+ cell_indexes: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
169
+ top_dxa: z.ZodOptional<z.ZodNumber>;
170
+ bottom_dxa: z.ZodOptional<z.ZodNumber>;
171
+ left_dxa: z.ZodOptional<z.ZodNumber>;
172
+ right_dxa: z.ZodOptional<z.ZodNumber>;
173
+ }, z.core.$strip>>;
174
+ session_id: z.ZodOptional<z.ZodString>;
175
+ file_path: z.ZodOptional<z.ZodString>;
176
+ }, z.core.$strip>;
177
+ readonly annotations: {
178
+ readonly readOnlyHint: false;
179
+ readonly destructiveHint: true;
180
+ };
181
+ }, {
182
+ readonly name: "accept_changes";
183
+ readonly description: "Accept all tracked changes in the document body, producing a clean document with no revision markup. Returns acceptance stats.";
184
+ readonly input: z.ZodObject<{
185
+ session_id: z.ZodOptional<z.ZodString>;
186
+ file_path: z.ZodOptional<z.ZodString>;
187
+ }, z.core.$strip>;
188
+ readonly annotations: {
189
+ readonly readOnlyHint: false;
190
+ readonly destructiveHint: true;
191
+ };
192
+ }, {
193
+ readonly name: "has_tracked_changes";
194
+ readonly description: "Check whether the document body contains tracked-change markers (insertions, deletions, moves, and property-change records). Read-only.";
195
+ readonly input: z.ZodObject<{
196
+ session_id: z.ZodOptional<z.ZodString>;
197
+ file_path: z.ZodOptional<z.ZodString>;
198
+ }, z.core.$strip>;
199
+ readonly annotations: {
200
+ readonly readOnlyHint: true;
201
+ readonly destructiveHint: false;
202
+ };
203
+ }, {
204
+ readonly name: "get_session_status";
205
+ readonly description: "Get session metadata. Accepts session_id or file_path.";
206
+ readonly input: z.ZodObject<{
207
+ session_id: z.ZodOptional<z.ZodString>;
208
+ file_path: z.ZodOptional<z.ZodString>;
209
+ }, z.core.$strip>;
210
+ readonly annotations: {
211
+ readonly readOnlyHint: true;
212
+ readonly destructiveHint: false;
213
+ };
214
+ }, {
215
+ readonly name: "clear_session";
216
+ readonly description: "Clear one session, all sessions for a file path, or all sessions with explicit confirmation.";
217
+ readonly input: z.ZodObject<{
218
+ session_id: z.ZodOptional<z.ZodString>;
219
+ file_path: z.ZodOptional<z.ZodString>;
220
+ clear_all: z.ZodOptional<z.ZodBoolean>;
221
+ confirm: z.ZodOptional<z.ZodBoolean>;
222
+ }, z.core.$strip>;
223
+ readonly annotations: {
224
+ readonly readOnlyHint: false;
225
+ readonly destructiveHint: true;
226
+ };
227
+ }, {
228
+ readonly name: "duplicate_document";
229
+ readonly description: "Duplicate a source .docx and auto-open a fresh editing session for the duplicate.";
230
+ readonly input: z.ZodObject<{
231
+ source_file_path: z.ZodString;
232
+ destination_file_path: z.ZodOptional<z.ZodString>;
233
+ overwrite: z.ZodOptional<z.ZodBoolean>;
234
+ }, z.core.$strip>;
235
+ readonly annotations: {
236
+ readonly readOnlyHint: false;
237
+ readonly destructiveHint: true;
238
+ };
239
+ }, {
240
+ readonly name: "add_comment";
241
+ readonly description: "Add a comment or threaded reply to a document. Provide target_paragraph_id + anchor_text for root comments, or parent_comment_id for replies.";
242
+ readonly input: z.ZodObject<{
243
+ target_paragraph_id: z.ZodOptional<z.ZodString>;
244
+ anchor_text: z.ZodOptional<z.ZodString>;
245
+ parent_comment_id: z.ZodOptional<z.ZodNumber>;
246
+ author: z.ZodString;
247
+ text: z.ZodString;
248
+ initials: z.ZodOptional<z.ZodString>;
249
+ session_id: z.ZodOptional<z.ZodString>;
250
+ file_path: z.ZodOptional<z.ZodString>;
251
+ }, z.core.$strip>;
252
+ readonly annotations: {
253
+ readonly readOnlyHint: false;
254
+ readonly destructiveHint: true;
255
+ };
256
+ }, {
257
+ readonly name: "get_comments";
258
+ readonly description: "Get all comments from the document with IDs, authors, dates, text, and anchored paragraph IDs. Includes threaded replies. Read-only.";
259
+ readonly input: z.ZodObject<{
260
+ session_id: z.ZodOptional<z.ZodString>;
261
+ file_path: z.ZodOptional<z.ZodString>;
262
+ }, z.core.$strip>;
263
+ readonly annotations: {
264
+ readonly readOnlyHint: true;
265
+ readonly destructiveHint: false;
266
+ };
267
+ }, {
268
+ readonly name: "delete_comment";
269
+ readonly description: "Delete a comment and all its threaded replies from the document. Cascade-deletes all descendants.";
270
+ readonly input: z.ZodObject<{
271
+ comment_id: z.ZodNumber;
272
+ session_id: z.ZodOptional<z.ZodString>;
273
+ file_path: z.ZodOptional<z.ZodString>;
274
+ }, z.core.$strip>;
275
+ readonly annotations: {
276
+ readonly readOnlyHint: false;
277
+ readonly destructiveHint: true;
278
+ };
279
+ }, {
280
+ readonly name: "compare_documents";
281
+ readonly description: "Compare two DOCX documents and produce a tracked-changes output document. Provide original_file_path + revised_file_path for standalone comparison, or session_id/file_path to compare session edits against the original.";
282
+ readonly input: z.ZodObject<{
283
+ original_file_path: z.ZodOptional<z.ZodString>;
284
+ revised_file_path: z.ZodOptional<z.ZodString>;
285
+ session_id: z.ZodOptional<z.ZodString>;
286
+ file_path: z.ZodOptional<z.ZodString>;
287
+ save_to_local_path: z.ZodString;
288
+ author: z.ZodOptional<z.ZodString>;
289
+ engine: z.ZodOptional<z.ZodEnum<{
290
+ auto: "auto";
291
+ atomizer: "atomizer";
292
+ diffmatch: "diffmatch";
293
+ }>>;
294
+ }, z.core.$strip>;
295
+ readonly annotations: {
296
+ readonly readOnlyHint: true;
297
+ readonly destructiveHint: false;
298
+ };
299
+ }, {
300
+ readonly name: "get_footnotes";
301
+ readonly description: "Get all footnotes from the document with IDs, display numbers, text, and anchored paragraph IDs. Read-only.";
302
+ readonly input: z.ZodObject<{
303
+ session_id: z.ZodOptional<z.ZodString>;
304
+ file_path: z.ZodOptional<z.ZodString>;
305
+ }, z.core.$strip>;
306
+ readonly annotations: {
307
+ readonly readOnlyHint: true;
308
+ readonly destructiveHint: false;
309
+ };
310
+ }, {
311
+ readonly name: "add_footnote";
312
+ readonly description: "Add a footnote anchored to a paragraph. Optionally position the reference after specific text using after_text. Note: [^N] markers in read_file output are display-only and not part of the editable text used by replace_text.";
313
+ readonly input: z.ZodObject<{
314
+ target_paragraph_id: z.ZodString;
315
+ after_text: z.ZodOptional<z.ZodString>;
316
+ text: z.ZodString;
317
+ session_id: z.ZodOptional<z.ZodString>;
318
+ file_path: z.ZodOptional<z.ZodString>;
319
+ }, z.core.$strip>;
320
+ readonly annotations: {
321
+ readonly readOnlyHint: false;
322
+ readonly destructiveHint: true;
323
+ };
324
+ }, {
325
+ readonly name: "update_footnote";
326
+ readonly description: "Update the text content of an existing footnote.";
327
+ readonly input: z.ZodObject<{
328
+ note_id: z.ZodNumber;
329
+ new_text: z.ZodString;
330
+ session_id: z.ZodOptional<z.ZodString>;
331
+ file_path: z.ZodOptional<z.ZodString>;
332
+ }, z.core.$strip>;
333
+ readonly annotations: {
334
+ readonly readOnlyHint: false;
335
+ readonly destructiveHint: true;
336
+ };
337
+ }, {
338
+ readonly name: "delete_footnote";
339
+ readonly description: "Delete a footnote and its reference from the document.";
340
+ readonly input: z.ZodObject<{
341
+ note_id: z.ZodNumber;
342
+ session_id: z.ZodOptional<z.ZodString>;
343
+ file_path: z.ZodOptional<z.ZodString>;
344
+ }, z.core.$strip>;
345
+ readonly annotations: {
346
+ readonly readOnlyHint: false;
347
+ readonly destructiveHint: true;
348
+ };
349
+ }, {
350
+ readonly name: "extract_revisions";
351
+ readonly description: "Extract tracked changes as structured JSON with before/after text per paragraph, revision details, and comments. Supports pagination via offset and limit. Read-only - does not modify the document.";
352
+ readonly input: z.ZodObject<{
353
+ offset: z.ZodOptional<z.ZodNumber>;
354
+ limit: z.ZodOptional<z.ZodNumber>;
355
+ session_id: z.ZodOptional<z.ZodString>;
356
+ file_path: z.ZodOptional<z.ZodString>;
357
+ }, z.core.$strip>;
358
+ readonly annotations: {
359
+ readonly readOnlyHint: true;
360
+ readonly destructiveHint: false;
361
+ };
362
+ }];
363
+ export declare const SAFE_DOCX_MCP_TOOLS: {
364
+ name: "read_file" | "grep" | "init_plan" | "merge_plans" | "apply_plan" | "replace_text" | "insert_paragraph" | "download" | "format_layout" | "accept_changes" | "has_tracked_changes" | "get_session_status" | "clear_session" | "duplicate_document" | "add_comment" | "get_comments" | "delete_comment" | "compare_documents" | "get_footnotes" | "add_footnote" | "update_footnote" | "delete_footnote" | "extract_revisions";
365
+ description: "Read document content with paragraph IDs. Accepts session_id or file_path." | "Search paragraphs with regex. Accepts session_id or file_path." | "Initialize revision-bound context metadata for coordinated multi-agent planning. Accepts session_id or file_path." | "Deterministically merge multiple sub-agent plans and detect hard conflicts before apply." | "Validate and apply a batch of edit steps (replace_text, insert_paragraph) to a session document in one call. Validates all steps first; applies only if all pass. Accepts inline steps or a plan_file_path. Compatible with merge_plans output." | "Replace text in a paragraph by _bk_* id, preserving formatting. Accepts session_id or file_path." | "Insert a paragraph before/after an anchor paragraph by _bk_* id. Accepts session_id or file_path." | "Save clean and/or tracked changes output back to the user filesystem. Defaults to both clean and tracked outputs when no format override is provided. Accepts session_id or file_path." | "Apply deterministic OOXML layout controls (paragraph spacing, table row height, cell padding). Accepts session_id or file_path." | "Accept all tracked changes in the document body, producing a clean document with no revision markup. Returns acceptance stats." | "Check whether the document body contains tracked-change markers (insertions, deletions, moves, and property-change records). Read-only." | "Get session metadata. Accepts session_id or file_path." | "Clear one session, all sessions for a file path, or all sessions with explicit confirmation." | "Duplicate a source .docx and auto-open a fresh editing session for the duplicate." | "Add a comment or threaded reply to a document. Provide target_paragraph_id + anchor_text for root comments, or parent_comment_id for replies." | "Get all comments from the document with IDs, authors, dates, text, and anchored paragraph IDs. Includes threaded replies. Read-only." | "Delete a comment and all its threaded replies from the document. Cascade-deletes all descendants." | "Compare two DOCX documents and produce a tracked-changes output document. Provide original_file_path + revised_file_path for standalone comparison, or session_id/file_path to compare session edits against the original." | "Get all footnotes from the document with IDs, display numbers, text, and anchored paragraph IDs. Read-only." | "Add a footnote anchored to a paragraph. Optionally position the reference after specific text using after_text. Note: [^N] markers in read_file output are display-only and not part of the editable text used by replace_text." | "Update the text content of an existing footnote." | "Delete a footnote and its reference from the document." | "Extract tracked changes as structured JSON with before/after text per paragraph, revision details, and comments. Supports pagination via offset and limit. Read-only - does not modify the document.";
366
+ inputSchema: Record<string, unknown>;
367
+ annotations: {
368
+ readonly readOnlyHint: true;
369
+ readonly destructiveHint: false;
370
+ } | {
371
+ readonly readOnlyHint: true;
372
+ readonly destructiveHint: false;
373
+ } | {
374
+ readonly readOnlyHint: true;
375
+ readonly destructiveHint: false;
376
+ } | {
377
+ readonly readOnlyHint: true;
378
+ readonly destructiveHint: false;
379
+ } | {
380
+ readonly readOnlyHint: false;
381
+ readonly destructiveHint: true;
382
+ } | {
383
+ readonly readOnlyHint: false;
384
+ readonly destructiveHint: true;
385
+ } | {
386
+ readonly readOnlyHint: false;
387
+ readonly destructiveHint: true;
388
+ } | {
389
+ readonly readOnlyHint: false;
390
+ readonly destructiveHint: true;
391
+ } | {
392
+ readonly readOnlyHint: false;
393
+ readonly destructiveHint: true;
394
+ } | {
395
+ readonly readOnlyHint: false;
396
+ readonly destructiveHint: true;
397
+ } | {
398
+ readonly readOnlyHint: true;
399
+ readonly destructiveHint: false;
400
+ } | {
401
+ readonly readOnlyHint: true;
402
+ readonly destructiveHint: false;
403
+ } | {
404
+ readonly readOnlyHint: false;
405
+ readonly destructiveHint: true;
406
+ } | {
407
+ readonly readOnlyHint: false;
408
+ readonly destructiveHint: true;
409
+ } | {
410
+ readonly readOnlyHint: false;
411
+ readonly destructiveHint: true;
412
+ } | {
413
+ readonly readOnlyHint: true;
414
+ readonly destructiveHint: false;
415
+ } | {
416
+ readonly readOnlyHint: false;
417
+ readonly destructiveHint: true;
418
+ } | {
419
+ readonly readOnlyHint: true;
420
+ readonly destructiveHint: false;
421
+ } | {
422
+ readonly readOnlyHint: true;
423
+ readonly destructiveHint: false;
424
+ } | {
425
+ readonly readOnlyHint: false;
426
+ readonly destructiveHint: true;
427
+ } | {
428
+ readonly readOnlyHint: false;
429
+ readonly destructiveHint: true;
430
+ } | {
431
+ readonly readOnlyHint: false;
432
+ readonly destructiveHint: true;
433
+ } | {
434
+ readonly readOnlyHint: true;
435
+ readonly destructiveHint: false;
436
+ };
437
+ }[];
438
+ export type SafeDocxToolName = (typeof SAFE_DOCX_TOOL_CATALOG)[number]['name'];
439
+ //# sourceMappingURL=tool_catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool_catalog.d.ts","sourceRoot":"","sources":["../src/tool_catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqBxB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmTa,CAAC;AAUjD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAK7B,CAAC;AAEJ,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC"}