@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,314 @@
1
+ import { z } from 'zod';
2
+ const SESSION_OR_FILE_FIELDS = {
3
+ session_id: z.string().optional(),
4
+ file_path: z.string().optional(),
5
+ };
6
+ const PLAN_OBJECT_SCHEMA = z.object({}).catchall(z.unknown());
7
+ export const SAFE_DOCX_TOOL_CATALOG = [
8
+ {
9
+ name: 'read_file',
10
+ description: 'Read document content with paragraph IDs. Accepts session_id or file_path.',
11
+ input: z.object({
12
+ ...SESSION_OR_FILE_FIELDS,
13
+ offset: z.number().optional(),
14
+ limit: z.number().optional(),
15
+ node_ids: z.array(z.string()).optional(),
16
+ format: z.enum(['toon', 'json', 'simple']).optional(),
17
+ show_formatting: z
18
+ .boolean()
19
+ .optional()
20
+ .describe('When true (default), shows inline formatting tags (<b>, <i>, <u>, <highlighting>, <a>). When false, emits plain text with no inline tags.'),
21
+ }),
22
+ annotations: { readOnlyHint: true, destructiveHint: false },
23
+ },
24
+ {
25
+ name: 'grep',
26
+ description: 'Search paragraphs with regex. Accepts session_id or file_path.',
27
+ input: z.object({
28
+ ...SESSION_OR_FILE_FIELDS,
29
+ patterns: z.array(z.string()),
30
+ case_sensitive: z.boolean().optional(),
31
+ whole_word: z.boolean().optional(),
32
+ max_results: z.number().optional(),
33
+ context_chars: z.number().optional(),
34
+ dedupe_by_paragraph: z.boolean().optional(),
35
+ }),
36
+ annotations: { readOnlyHint: true, destructiveHint: false },
37
+ },
38
+ {
39
+ name: 'init_plan',
40
+ description: 'Initialize revision-bound context metadata for coordinated multi-agent planning. Accepts session_id or file_path.',
41
+ input: z.object({
42
+ ...SESSION_OR_FILE_FIELDS,
43
+ plan_name: z.string().optional(),
44
+ orchestrator_id: z.string().optional(),
45
+ }),
46
+ annotations: { readOnlyHint: true, destructiveHint: false },
47
+ },
48
+ {
49
+ name: 'merge_plans',
50
+ description: 'Deterministically merge multiple sub-agent plans and detect hard conflicts before apply.',
51
+ input: z.object({
52
+ plans: z.array(PLAN_OBJECT_SCHEMA),
53
+ fail_on_conflict: z.boolean().optional(),
54
+ require_shared_base_revision: z.boolean().optional(),
55
+ }),
56
+ annotations: { readOnlyHint: true, destructiveHint: false },
57
+ },
58
+ {
59
+ name: 'apply_plan',
60
+ 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.',
61
+ input: z.object({
62
+ ...SESSION_OR_FILE_FIELDS,
63
+ steps: z
64
+ .array(z.object({}).catchall(z.unknown()))
65
+ .optional()
66
+ .describe('JSON array of edit steps. Each step needs step_id, operation, and operation-specific fields.'),
67
+ plan_file_path: z
68
+ .string()
69
+ .optional()
70
+ .describe('Path to a .json file containing an array of edit steps. Mutually exclusive with steps.'),
71
+ }),
72
+ annotations: { readOnlyHint: false, destructiveHint: true },
73
+ },
74
+ {
75
+ name: 'replace_text',
76
+ description: 'Replace text in a paragraph by _bk_* id, preserving formatting. Accepts session_id or file_path.',
77
+ input: z.object({
78
+ ...SESSION_OR_FILE_FIELDS,
79
+ target_paragraph_id: z.string(),
80
+ old_string: z.string(),
81
+ new_string: z.string(),
82
+ instruction: z.string(),
83
+ normalize_first: z
84
+ .boolean()
85
+ .optional()
86
+ .describe('Merge format-identical adjacent runs before searching. Useful when text is fragmented across runs.'),
87
+ }),
88
+ annotations: { readOnlyHint: false, destructiveHint: true },
89
+ },
90
+ {
91
+ name: 'insert_paragraph',
92
+ description: 'Insert a paragraph before/after an anchor paragraph by _bk_* id. Accepts session_id or file_path.',
93
+ input: z.object({
94
+ ...SESSION_OR_FILE_FIELDS,
95
+ positional_anchor_node_id: z.string(),
96
+ new_string: z.string(),
97
+ instruction: z.string(),
98
+ position: z.enum(['BEFORE', 'AFTER']).optional(),
99
+ style_source_id: z
100
+ .string()
101
+ .optional()
102
+ .describe('Paragraph _bk_* ID to clone formatting (pPr and template run) from instead of the positional anchor. Falls back to anchor with a warning if not found.'),
103
+ }),
104
+ annotations: { readOnlyHint: false, destructiveHint: true },
105
+ },
106
+ {
107
+ name: 'download',
108
+ 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.',
109
+ input: z.object({
110
+ ...SESSION_OR_FILE_FIELDS,
111
+ save_to_local_path: z.string(),
112
+ clean_bookmarks: z.boolean().optional(),
113
+ download_format: z.enum(['clean', 'tracked', 'both']).optional(),
114
+ allow_overwrite: z.boolean().optional(),
115
+ tracked_save_to_local_path: z.string().optional(),
116
+ tracked_changes_author: z.string().optional(),
117
+ tracked_changes_engine: z.enum(['auto', 'atomizer', 'diffmatch']).optional(),
118
+ fail_on_rebuild_fallback: z
119
+ .boolean()
120
+ .optional()
121
+ .describe('When true, return an error instead of a destructive output if the comparison engine falls back to rebuild mode (which destroys table structure). Default: false.'),
122
+ }),
123
+ annotations: { readOnlyHint: false, destructiveHint: true },
124
+ },
125
+ {
126
+ name: 'format_layout',
127
+ description: 'Apply deterministic OOXML layout controls (paragraph spacing, table row height, cell padding). Accepts session_id or file_path.',
128
+ input: z.object({
129
+ ...SESSION_OR_FILE_FIELDS,
130
+ strict: z.boolean().optional(),
131
+ paragraph_spacing: z
132
+ .object({
133
+ paragraph_ids: z.array(z.string()).optional(),
134
+ before_twips: z.number().optional(),
135
+ after_twips: z.number().optional(),
136
+ line_twips: z.number().optional(),
137
+ line_rule: z.enum(['auto', 'exact', 'atLeast']).optional(),
138
+ })
139
+ .optional(),
140
+ row_height: z
141
+ .object({
142
+ table_indexes: z.array(z.number()).optional(),
143
+ row_indexes: z.array(z.number()).optional(),
144
+ value_twips: z.number().optional(),
145
+ rule: z.enum(['auto', 'exact', 'atLeast']).optional(),
146
+ })
147
+ .optional(),
148
+ cell_padding: z
149
+ .object({
150
+ table_indexes: z.array(z.number()).optional(),
151
+ row_indexes: z.array(z.number()).optional(),
152
+ cell_indexes: z.array(z.number()).optional(),
153
+ top_dxa: z.number().optional(),
154
+ bottom_dxa: z.number().optional(),
155
+ left_dxa: z.number().optional(),
156
+ right_dxa: z.number().optional(),
157
+ })
158
+ .optional(),
159
+ }),
160
+ annotations: { readOnlyHint: false, destructiveHint: true },
161
+ },
162
+ {
163
+ name: 'accept_changes',
164
+ description: 'Accept all tracked changes in the document body, producing a clean document with no revision markup. Returns acceptance stats.',
165
+ input: z.object({
166
+ ...SESSION_OR_FILE_FIELDS,
167
+ }),
168
+ annotations: { readOnlyHint: false, destructiveHint: true },
169
+ },
170
+ {
171
+ name: 'has_tracked_changes',
172
+ description: 'Check whether the document body contains tracked-change markers (insertions, deletions, moves, and property-change records). Read-only.',
173
+ input: z.object({
174
+ ...SESSION_OR_FILE_FIELDS,
175
+ }),
176
+ annotations: { readOnlyHint: true, destructiveHint: false },
177
+ },
178
+ {
179
+ name: 'get_session_status',
180
+ description: 'Get session metadata. Accepts session_id or file_path.',
181
+ input: z.object({
182
+ ...SESSION_OR_FILE_FIELDS,
183
+ }),
184
+ annotations: { readOnlyHint: true, destructiveHint: false },
185
+ },
186
+ {
187
+ name: 'clear_session',
188
+ description: 'Clear one session, all sessions for a file path, or all sessions with explicit confirmation.',
189
+ input: z.object({
190
+ session_id: z.string().optional(),
191
+ file_path: z.string().optional(),
192
+ clear_all: z.boolean().optional(),
193
+ confirm: z.boolean().optional(),
194
+ }),
195
+ annotations: { readOnlyHint: false, destructiveHint: true },
196
+ },
197
+ {
198
+ name: 'duplicate_document',
199
+ description: 'Duplicate a source .docx and auto-open a fresh editing session for the duplicate.',
200
+ input: z.object({
201
+ source_file_path: z.string(),
202
+ destination_file_path: z.string().optional(),
203
+ overwrite: z.boolean().optional(),
204
+ }),
205
+ annotations: { readOnlyHint: false, destructiveHint: true },
206
+ },
207
+ {
208
+ name: 'add_comment',
209
+ 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.',
210
+ input: z.object({
211
+ ...SESSION_OR_FILE_FIELDS,
212
+ target_paragraph_id: z.string().optional().describe('Paragraph ID to anchor the comment to (for root comments).'),
213
+ anchor_text: z.string().optional().describe('Text within the paragraph to anchor the comment to. If omitted, anchors to entire paragraph.'),
214
+ parent_comment_id: z.number().optional().describe('Parent comment ID for threaded replies.'),
215
+ author: z.string().describe('Comment author name.'),
216
+ text: z.string().describe('Comment body text.'),
217
+ initials: z.string().optional().describe('Author initials (defaults to first letter of author name).'),
218
+ }),
219
+ annotations: { readOnlyHint: false, destructiveHint: true },
220
+ },
221
+ {
222
+ name: 'get_comments',
223
+ description: 'Get all comments from the document with IDs, authors, dates, text, and anchored paragraph IDs. Includes threaded replies. Read-only.',
224
+ input: z.object({
225
+ ...SESSION_OR_FILE_FIELDS,
226
+ }),
227
+ annotations: { readOnlyHint: true, destructiveHint: false },
228
+ },
229
+ {
230
+ name: 'delete_comment',
231
+ description: 'Delete a comment and all its threaded replies from the document. Cascade-deletes all descendants.',
232
+ input: z.object({
233
+ ...SESSION_OR_FILE_FIELDS,
234
+ comment_id: z.number().describe('Comment ID to delete.'),
235
+ }),
236
+ annotations: { readOnlyHint: false, destructiveHint: true },
237
+ },
238
+ {
239
+ name: 'compare_documents',
240
+ 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.',
241
+ input: z.object({
242
+ original_file_path: z.string().optional().describe('Path to the original DOCX file.'),
243
+ revised_file_path: z.string().optional().describe('Path to the revised DOCX file.'),
244
+ session_id: z.string().optional(),
245
+ file_path: z.string().optional(),
246
+ save_to_local_path: z.string().describe('Path to save the tracked-changes DOCX output.'),
247
+ author: z.string().optional().describe("Author name for track changes. Default: 'Comparison'."),
248
+ engine: z.enum(['auto', 'atomizer', 'diffmatch']).optional().describe("Comparison engine. Default: 'auto'."),
249
+ }),
250
+ annotations: { readOnlyHint: true, destructiveHint: false },
251
+ },
252
+ {
253
+ name: 'get_footnotes',
254
+ description: 'Get all footnotes from the document with IDs, display numbers, text, and anchored paragraph IDs. Read-only.',
255
+ input: z.object({
256
+ ...SESSION_OR_FILE_FIELDS,
257
+ }),
258
+ annotations: { readOnlyHint: true, destructiveHint: false },
259
+ },
260
+ {
261
+ name: 'add_footnote',
262
+ 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.',
263
+ input: z.object({
264
+ ...SESSION_OR_FILE_FIELDS,
265
+ target_paragraph_id: z.string().describe('Paragraph ID to anchor the footnote to.'),
266
+ after_text: z.string().optional().describe('Text after which to insert the footnote reference. If omitted, appends at end of paragraph.'),
267
+ text: z.string().describe('Footnote body text.'),
268
+ }),
269
+ annotations: { readOnlyHint: false, destructiveHint: true },
270
+ },
271
+ {
272
+ name: 'update_footnote',
273
+ description: 'Update the text content of an existing footnote.',
274
+ input: z.object({
275
+ ...SESSION_OR_FILE_FIELDS,
276
+ note_id: z.number().describe('Footnote ID to update.'),
277
+ new_text: z.string().describe('New footnote body text.'),
278
+ }),
279
+ annotations: { readOnlyHint: false, destructiveHint: true },
280
+ },
281
+ {
282
+ name: 'delete_footnote',
283
+ description: 'Delete a footnote and its reference from the document.',
284
+ input: z.object({
285
+ ...SESSION_OR_FILE_FIELDS,
286
+ note_id: z.number().describe('Footnote ID to delete.'),
287
+ }),
288
+ annotations: { readOnlyHint: false, destructiveHint: true },
289
+ },
290
+ {
291
+ name: 'extract_revisions',
292
+ 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.',
293
+ input: z.object({
294
+ ...SESSION_OR_FILE_FIELDS,
295
+ offset: z.number().optional().describe('0-based offset for pagination. Default: 0.'),
296
+ limit: z.number().optional().describe('Max entries per page (1-500). Default: 50.'),
297
+ }),
298
+ annotations: { readOnlyHint: true, destructiveHint: false },
299
+ },
300
+ ];
301
+ function toJsonObjectSchema(schema, name) {
302
+ const jsonSchema = z.toJSONSchema(schema);
303
+ if (typeof jsonSchema !== 'object' || Array.isArray(jsonSchema) || jsonSchema === null) {
304
+ throw new Error(`Expected JSON schema object for tool '${name}'.`);
305
+ }
306
+ return jsonSchema;
307
+ }
308
+ export const SAFE_DOCX_MCP_TOOLS = SAFE_DOCX_TOOL_CATALOG.map((tool) => ({
309
+ name: tool.name,
310
+ description: tool.description,
311
+ inputSchema: toJsonObjectSchema(tool.input, tool.name),
312
+ annotations: tool.annotations,
313
+ }));
314
+ //# sourceMappingURL=tool_catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool_catalog.js","sourceRoot":"","sources":["../src/tool_catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { SessionManager } from '../session/manager.js';
2
+ import { type ToolResponse } from './types.js';
3
+ export declare function acceptChanges(manager: SessionManager, params: {
4
+ session_id?: string;
5
+ file_path?: string;
6
+ }): Promise<ToolResponse>;
7
+ //# sourceMappingURL=accept_changes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accept_changes.d.ts","sourceRoot":"","sources":["../../src/tools/accept_changes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAExD,wBAAsB,aAAa,CACjC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAClD,OAAO,CAAC,YAAY,CAAC,CAevB"}
@@ -0,0 +1,21 @@
1
+ import { errorMessage } from "../error_utils.js";
2
+ import { resolveSessionForTool, mergeSessionResolutionMetadata } from './session_resolution.js';
3
+ import { ok, err } from './types.js';
4
+ export async function acceptChanges(manager, params) {
5
+ const resolved = await resolveSessionForTool(manager, params, { toolName: 'accept_changes' });
6
+ if (!resolved.ok)
7
+ return resolved.response;
8
+ const { session, metadata } = resolved;
9
+ try {
10
+ const stats = session.doc.acceptChanges();
11
+ manager.markEdited(session);
12
+ return ok(mergeSessionResolutionMetadata({
13
+ ...stats,
14
+ session_id: session.sessionId,
15
+ }, metadata));
16
+ }
17
+ catch (e) {
18
+ return err('ACCEPT_CHANGES_ERROR', errorMessage(e));
19
+ }
20
+ }
21
+ //# sourceMappingURL=accept_changes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accept_changes.js","sourceRoot":"","sources":["../../src/tools/accept_changes.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAE,EAAE,EAAE,GAAG,EAAqB,MAAM,YAAY,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAuB,EACvB,MAAmD;IAEnD,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC9F,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC1C,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,EAAE,CAAC,8BAA8B,CAAC;YACvC,GAAG,KAAK;YACR,UAAU,EAAE,OAAO,CAAC,SAAS;SAC9B,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChB,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { SessionManager } from '../session/manager.js';
2
+ import { type ToolResponse } from './types.js';
3
+ export declare function addComment(manager: SessionManager, params: {
4
+ session_id?: string;
5
+ file_path?: string;
6
+ target_paragraph_id?: string;
7
+ anchor_text?: string;
8
+ parent_comment_id?: number;
9
+ author: string;
10
+ text: string;
11
+ initials?: string;
12
+ }): Promise<ToolResponse>;
13
+ //# sourceMappingURL=add_comment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add_comment.d.ts","sourceRoot":"","sources":["../../src/tools/add_comment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAGxD,wBAAsB,UAAU,CAC9B,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE;IACN,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,OAAO,CAAC,YAAY,CAAC,CA6FvB"}
@@ -0,0 +1,77 @@
1
+ import { errorMessage } from "../error_utils.js";
2
+ import { resolveSessionForTool, mergeSessionResolutionMetadata } from './session_resolution.js';
3
+ import { ok, err } from './types.js';
4
+ import { findUniqueSubstringMatch } from '@usejunior/docx-core';
5
+ export async function addComment(manager, params) {
6
+ const resolved = await resolveSessionForTool(manager, params, { toolName: 'add_comment' });
7
+ if (!resolved.ok)
8
+ return resolved.response;
9
+ const { session, metadata } = resolved;
10
+ try {
11
+ // Reply mode: parent_comment_id provided
12
+ if (params.parent_comment_id != null) {
13
+ const result = await session.doc.addCommentReply({
14
+ parentCommentId: params.parent_comment_id,
15
+ author: params.author,
16
+ text: params.text,
17
+ initials: params.initials,
18
+ });
19
+ manager.markEdited(session);
20
+ return ok(mergeSessionResolutionMetadata({
21
+ comment_id: result.commentId,
22
+ parent_comment_id: result.parentCommentId,
23
+ mode: 'reply',
24
+ session_id: session.sessionId,
25
+ }, metadata));
26
+ }
27
+ // Root comment mode: target_paragraph_id required
28
+ if (!params.target_paragraph_id) {
29
+ return err('MISSING_PARAMETER', 'Either target_paragraph_id (for root comments) or parent_comment_id (for replies) is required.', 'Provide target_paragraph_id + optional anchor_text for root comments, or parent_comment_id for threaded replies.');
30
+ }
31
+ const pid = params.target_paragraph_id;
32
+ const pEl = session.doc.getParagraphElementById(pid);
33
+ if (!pEl) {
34
+ return err('ANCHOR_NOT_FOUND', `Paragraph ID ${pid} not found in document`, 'Use grep or read_file to find valid paragraph IDs.');
35
+ }
36
+ let start = 0;
37
+ let end;
38
+ if (params.anchor_text) {
39
+ // Find anchor_text within the paragraph
40
+ const paraText = session.doc.getParagraphTextById(pid) ?? '';
41
+ const match = findUniqueSubstringMatch(paraText, params.anchor_text);
42
+ if (match.status === 'not_found') {
43
+ return err('TEXT_NOT_FOUND', `anchor_text '${params.anchor_text}' not found in paragraph ${pid}`, 'Verify anchor_text is present in the target paragraph.');
44
+ }
45
+ if (match.status === 'multiple') {
46
+ return err('MULTIPLE_MATCHES', `Found ${match.matchCount} matches for anchor_text in paragraph ${pid}`, 'Provide more specific anchor_text for a unique match.');
47
+ }
48
+ start = match.start;
49
+ end = match.end;
50
+ }
51
+ else {
52
+ // Anchor to entire paragraph
53
+ const paraText = session.doc.getParagraphTextById(pid) ?? '';
54
+ end = paraText.length;
55
+ }
56
+ const result = await session.doc.addComment({
57
+ paragraphId: pid,
58
+ start,
59
+ end,
60
+ author: params.author,
61
+ text: params.text,
62
+ initials: params.initials,
63
+ });
64
+ manager.markEdited(session);
65
+ return ok(mergeSessionResolutionMetadata({
66
+ comment_id: result.commentId,
67
+ anchor_paragraph_id: pid,
68
+ anchor_text: params.anchor_text ?? null,
69
+ mode: 'root',
70
+ session_id: session.sessionId,
71
+ }, metadata));
72
+ }
73
+ catch (e) {
74
+ return err('COMMENT_ERROR', errorMessage(e));
75
+ }
76
+ }
77
+ //# sourceMappingURL=add_comment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add_comment.js","sourceRoot":"","sources":["../../src/tools/add_comment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { SessionManager } from '../session/manager.js';
2
+ import { type ToolResponse } from './types.js';
3
+ export declare function addFootnote(manager: SessionManager, params: {
4
+ session_id?: string;
5
+ file_path?: string;
6
+ target_paragraph_id?: string;
7
+ after_text?: string;
8
+ text?: string;
9
+ }): Promise<ToolResponse>;
10
+ //# sourceMappingURL=add_footnote.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add_footnote.d.ts","sourceRoot":"","sources":["../../src/tools/add_footnote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAExD,wBAAsB,WAAW,CAC/B,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE;IACN,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACA,OAAO,CAAC,YAAY,CAAC,CA0CvB"}
@@ -0,0 +1,45 @@
1
+ import { errorMessage } from "../error_utils.js";
2
+ import { resolveSessionForTool, mergeSessionResolutionMetadata } from './session_resolution.js';
3
+ import { ok, err } from './types.js';
4
+ export async function addFootnote(manager, params) {
5
+ const resolved = await resolveSessionForTool(manager, params, { toolName: 'add_footnote' });
6
+ if (!resolved.ok)
7
+ return resolved.response;
8
+ const { session, metadata } = resolved;
9
+ if (!params.target_paragraph_id) {
10
+ return err('MISSING_PARAMETER', 'target_paragraph_id is required.', 'Provide the _bk_* ID of the paragraph to anchor the footnote to.');
11
+ }
12
+ if (!params.text) {
13
+ return err('MISSING_PARAMETER', 'text is required.', 'Provide the footnote body text.');
14
+ }
15
+ const pid = params.target_paragraph_id;
16
+ const pEl = session.doc.getParagraphElementById(pid);
17
+ if (!pEl) {
18
+ return err('ANCHOR_NOT_FOUND', `Paragraph ID ${pid} not found in document`, 'Use grep or read_file to find valid paragraph IDs.');
19
+ }
20
+ try {
21
+ const result = await session.doc.addFootnote({
22
+ paragraphId: pid,
23
+ afterText: params.after_text,
24
+ text: params.text,
25
+ });
26
+ manager.markEdited(session);
27
+ return ok(mergeSessionResolutionMetadata({
28
+ note_id: result.noteId,
29
+ target_paragraph_id: pid,
30
+ after_text: params.after_text ?? null,
31
+ session_id: session.sessionId,
32
+ }, metadata));
33
+ }
34
+ catch (e) {
35
+ const msg = errorMessage(e);
36
+ if (msg.includes('not found in paragraph')) {
37
+ return err('TEXT_NOT_FOUND', msg, 'Verify after_text is present in the target paragraph.');
38
+ }
39
+ if (msg.includes('found') && msg.includes('times')) {
40
+ return err('MULTIPLE_MATCHES', msg, 'Provide more specific after_text for a unique match.');
41
+ }
42
+ return err('FOOTNOTE_ERROR', msg);
43
+ }
44
+ }
45
+ //# sourceMappingURL=add_footnote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add_footnote.js","sourceRoot":"","sources":["../../src/tools/add_footnote.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAE,EAAE,EAAE,GAAG,EAAqB,MAAM,YAAY,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAuB,EACvB,MAMC;IAED,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAC5F,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IAEvC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAChC,OAAO,GAAG,CAAC,mBAAmB,EAAE,kCAAkC,EAAE,kEAAkE,CAAC,CAAC;IAC1I,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,iCAAiC,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,mBAAmB,CAAC;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;IACrD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,GAAG,CAAC,kBAAkB,EAAE,gBAAgB,GAAG,wBAAwB,EAAE,oDAAoD,CAAC,CAAC;IACpI,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;YAC3C,WAAW,EAAE,GAAG;YAChB,SAAS,EAAE,MAAM,CAAC,UAAU;YAC5B,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CAAC;QAEH,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,EAAE,CAAC,8BAA8B,CAAC;YACvC,OAAO,EAAE,MAAM,CAAC,MAAM;YACtB,mBAAmB,EAAE,GAAG;YACxB,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI;YACrC,UAAU,EAAE,OAAO,CAAC,SAAS;SAC9B,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChB,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,GAAG,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;YAC3C,OAAO,GAAG,CAAC,gBAAgB,EAAE,GAAG,EAAE,uDAAuD,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,OAAO,GAAG,CAAC,kBAAkB,EAAE,GAAG,EAAE,sDAAsD,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,GAAG,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { SessionManager } from '../session/manager.js';
2
+ import { type ToolResponse } from './types.js';
3
+ export declare function applyPlan(manager: SessionManager, params: {
4
+ session_id?: string;
5
+ file_path?: string;
6
+ steps?: unknown[];
7
+ plan_file_path?: string;
8
+ }): Promise<ToolResponse>;
9
+ //# sourceMappingURL=apply_plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply_plan.d.ts","sourceRoot":"","sources":["../../src/tools/apply_plan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AA2UxD,wBAAsB,SAAS,CAC7B,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE;IACN,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GACA,OAAO,CAAC,YAAY,CAAC,CAkGvB"}