@usejunior/docx-mcp 0.14.0 → 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.
- package/README.md +1 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/cli/commands/compare.js +1 -1
- package/dist/cli/commands/compare.js.map +1 -1
- package/dist/server.d.ts +6 -70
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +9 -0
- package/dist/server.js.map +1 -1
- package/dist/session/manager.d.ts +37 -7
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +10 -0
- package/dist/session/manager.js.map +1 -1
- package/dist/tool_catalog.d.ts +125 -85
- package/dist/tool_catalog.d.ts.map +1 -1
- package/dist/tool_catalog.js +125 -13
- package/dist/tool_catalog.js.map +1 -1
- package/dist/tools/accept_ai_edits.d.ts +13 -0
- package/dist/tools/accept_ai_edits.d.ts.map +1 -0
- package/dist/tools/accept_ai_edits.js +41 -0
- package/dist/tools/accept_ai_edits.js.map +1 -0
- package/dist/tools/add_comment.d.ts.map +1 -1
- package/dist/tools/add_comment.js +40 -0
- package/dist/tools/add_comment.js.map +1 -1
- package/dist/tools/add_footnote.d.ts.map +1 -1
- package/dist/tools/add_footnote.js +21 -0
- package/dist/tools/add_footnote.js.map +1 -1
- package/dist/tools/compare_documents.js +1 -1
- package/dist/tools/compare_documents.js.map +1 -1
- package/dist/tools/comparison_defaults.d.ts +1 -1
- package/dist/tools/comparison_defaults.d.ts.map +1 -1
- package/dist/tools/delete_comment.d.ts.map +1 -1
- package/dist/tools/delete_comment.js +34 -0
- package/dist/tools/delete_comment.js.map +1 -1
- package/dist/tools/get_document_outline.d.ts +29 -0
- package/dist/tools/get_document_outline.d.ts.map +1 -0
- package/dist/tools/get_document_outline.js +67 -0
- package/dist/tools/get_document_outline.js.map +1 -0
- package/dist/tools/read_file.d.ts +1 -0
- package/dist/tools/read_file.d.ts.map +1 -1
- package/dist/tools/read_file.js +46 -2
- package/dist/tools/read_file.js.map +1 -1
- package/dist/tools/reject_ai_edits.d.ts +14 -0
- package/dist/tools/reject_ai_edits.d.ts.map +1 -0
- package/dist/tools/reject_ai_edits.js +42 -0
- package/dist/tools/reject_ai_edits.js.map +1 -0
- package/dist/tools/save.d.ts +1 -21
- package/dist/tools/save.d.ts.map +1 -1
- package/dist/tools/save.js +84 -129
- package/dist/tools/save.js.map +1 -1
- package/package.json +10 -9
package/dist/tool_catalog.js
CHANGED
|
@@ -5,6 +5,11 @@ const FILE_FIELD = {
|
|
|
5
5
|
const FILE_FIELD_OPTIONAL = {
|
|
6
6
|
file_path: z.string().optional().describe('Path to the DOCX or ODT file.'),
|
|
7
7
|
};
|
|
8
|
+
// DOCX-only tools reject `.odt` paths with UNSUPPORTED_FOR_ODF, so their
|
|
9
|
+
// file_path description must not advertise ODT support.
|
|
10
|
+
const FILE_FIELD_OPTIONAL_DOCX_ONLY = {
|
|
11
|
+
file_path: z.string().optional().describe('Path to the DOCX file.'),
|
|
12
|
+
};
|
|
8
13
|
const GOOGLE_DOC_ID_FIELD = {
|
|
9
14
|
google_doc_id: z.string().optional().describe('Google Doc ID or URL (alternative to file_path). ' +
|
|
10
15
|
'Extract from URL: docs.google.com/document/d/{ID}/edit'),
|
|
@@ -12,6 +17,7 @@ const GOOGLE_DOC_ID_FIELD = {
|
|
|
12
17
|
export const SAFE_DOCX_TOOL_CATALOG = [
|
|
13
18
|
{
|
|
14
19
|
name: 'read_file',
|
|
20
|
+
surface: 'internal',
|
|
15
21
|
description: 'Read document content (DOCX, ODT, or Google Doc). Output is token-limited (~14k tokens) by default with pagination metadata (has_more, next_offset). Use offset/limit to paginate.',
|
|
16
22
|
input: z.object({
|
|
17
23
|
...FILE_FIELD_OPTIONAL,
|
|
@@ -32,6 +38,10 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
32
38
|
.boolean()
|
|
33
39
|
.optional()
|
|
34
40
|
.describe('When true and format="json", include a portable content_fingerprint ("sha256:nfkc:<32hex>") on each paragraph. Read-only metadata derived from the paragraph\'s normalized visible text; NOT an edit anchor. Edit tools accept only `_bk_*` IDs. No effect on TOON/simple output. Ignored for Google Docs and ODT.'),
|
|
41
|
+
include_fingerprint_ordinal: z
|
|
42
|
+
.boolean()
|
|
43
|
+
.optional()
|
|
44
|
+
.describe('When true together with include_fingerprint and format="json", add duplicate-disambiguation metadata to each paragraph: `content_fingerprint_ordinal` (1-based document-order position among paragraphs sharing the same content_fingerprint), `content_fingerprint_count_in_document` (total paragraphs sharing it, document-wide even under pagination), and `portable_paragraph_ref` ("<content_fingerprint>#<ordinal>"). Read-only disambiguator, NOT an edit anchor; reordering duplicates may change ordinals. No effect without include_fingerprint, and no effect on TOON/simple output. Ignored for Google Docs and ODT. Default: false.'),
|
|
35
45
|
include_footnotes: z
|
|
36
46
|
.boolean()
|
|
37
47
|
.optional()
|
|
@@ -39,8 +49,26 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
39
49
|
}),
|
|
40
50
|
annotations: { readOnlyHint: true, destructiveHint: false },
|
|
41
51
|
},
|
|
52
|
+
{
|
|
53
|
+
name: 'get_document_outline',
|
|
54
|
+
surface: 'internal',
|
|
55
|
+
description: 'Get a compact structural map of a document\'s headings (DOCX only). Returns one entry per heading paragraph with its text, outline level, source, and stable `_bk_*` paragraph_id — so an agent can read the cheap outline first, then scope a targeted read_file/replace_text to the right section instead of scanning the whole body. Style-based (Word HeadingN) headings only by default; set include_heuristic_headings=true to also include heuristic titles/run-in headers. Read-only.',
|
|
56
|
+
input: z.object({
|
|
57
|
+
...FILE_FIELD_OPTIONAL_DOCX_ONLY,
|
|
58
|
+
format: z
|
|
59
|
+
.enum(['json', 'markdown'])
|
|
60
|
+
.optional()
|
|
61
|
+
.describe("Output format: 'json' (default, structured outline array) or 'markdown' (indented ATX outline under `content`)."),
|
|
62
|
+
include_heuristic_headings: z
|
|
63
|
+
.boolean()
|
|
64
|
+
.optional()
|
|
65
|
+
.describe('When true, also include heuristically-detected headings (manual title / run-in / centered-caps) alongside Word HeadingN styles. Default: false (style-based only).'),
|
|
66
|
+
}),
|
|
67
|
+
annotations: { readOnlyHint: true, destructiveHint: false },
|
|
68
|
+
},
|
|
42
69
|
{
|
|
43
70
|
name: 'grep',
|
|
71
|
+
surface: 'internal',
|
|
44
72
|
description: 'Search paragraphs with regex. Use file_path for session-based search, file_paths for stateless multi-file search, or google_doc_id for Google Docs. ODT supported via file_path (single-file) only.',
|
|
45
73
|
input: z.object({
|
|
46
74
|
...FILE_FIELD_OPTIONAL,
|
|
@@ -60,7 +88,8 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
60
88
|
},
|
|
61
89
|
{
|
|
62
90
|
name: 'batch_edit',
|
|
63
|
-
|
|
91
|
+
surface: 'revisionable',
|
|
92
|
+
description: 'Single-agent front door for applying multiple edit steps (replace_text, insert_paragraph) to a document in one call. Validates all steps first, rejects conflicts before applying anything, then executes valid steps sequentially. Accepts inline steps or a plan_file_path JSON array. Surface: revisionable — every applied step emits native OOXML tracked changes.',
|
|
64
93
|
input: z.object({
|
|
65
94
|
...FILE_FIELD,
|
|
66
95
|
steps: z
|
|
@@ -76,7 +105,8 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
76
105
|
},
|
|
77
106
|
{
|
|
78
107
|
name: 'replace_text',
|
|
79
|
-
|
|
108
|
+
surface: 'revisionable',
|
|
109
|
+
description: 'Replace text in a paragraph by provider paragraph id, preserving formatting where supported. Supports DOCX, ODT, and Google Docs. Surface: revisionable — DOCX edits emit native OOXML tracked changes (w:ins/w:del/w:rPrChange).',
|
|
80
110
|
input: z.object({
|
|
81
111
|
...FILE_FIELD_OPTIONAL,
|
|
82
112
|
...GOOGLE_DOC_ID_FIELD,
|
|
@@ -93,7 +123,8 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
93
123
|
},
|
|
94
124
|
{
|
|
95
125
|
name: 'insert_paragraph',
|
|
96
|
-
|
|
126
|
+
surface: 'revisionable',
|
|
127
|
+
description: 'Insert a paragraph before/after an anchor paragraph by paragraph id. Supports DOCX, ODT, and Google Docs. (ODT paragraph ids are positional and shift after insertion — re-read before further edits.) Surface: revisionable — DOCX insertions emit native OOXML tracked changes.',
|
|
97
128
|
input: z.object({
|
|
98
129
|
...FILE_FIELD_OPTIONAL,
|
|
99
130
|
...GOOGLE_DOC_ID_FIELD,
|
|
@@ -110,7 +141,8 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
110
141
|
},
|
|
111
142
|
{
|
|
112
143
|
name: 'save',
|
|
113
|
-
|
|
144
|
+
surface: 'revisionable',
|
|
145
|
+
description: 'Save document. For DOCX: saves clean and/or tracked changes output. For ODT: saves an .odt package. For Google Docs: checkpoint (default) returns revisionId, or snapshot exports as DOCX. Surface: revisionable — the save report lists both the AI revisions applied and a non-revision change manifest of any package-level mutations (comment/footnote side parts, relationships) that have no tracked-change wrapper.',
|
|
114
146
|
input: z.object({
|
|
115
147
|
...FILE_FIELD_OPTIONAL,
|
|
116
148
|
...GOOGLE_DOC_ID_FIELD,
|
|
@@ -120,16 +152,20 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
120
152
|
allow_overwrite: z.boolean().optional(),
|
|
121
153
|
tracked_save_to_local_path: z.string().optional(),
|
|
122
154
|
tracked_changes_author: z.string().optional(),
|
|
123
|
-
tracked_changes_engine: z
|
|
155
|
+
tracked_changes_engine: z
|
|
156
|
+
.enum(['auto', 'atomizer'])
|
|
157
|
+
.optional()
|
|
158
|
+
.describe('Deprecated and ignored (#126). The redline is now the session\'s write-time tracked markup, serialized directly — there is no comparison engine to select. Use the compare_documents tool for comparison-based redlines.'),
|
|
124
159
|
fail_on_rebuild_fallback: z
|
|
125
160
|
.boolean()
|
|
126
161
|
.optional()
|
|
127
|
-
.describe('
|
|
162
|
+
.describe('Deprecated and ignored (#126). The default save no longer runs the comparison reconstruction engine, so there is no rebuild fallback to guard against; accepted for backward compatibility only.'),
|
|
128
163
|
}),
|
|
129
164
|
annotations: { readOnlyHint: false, destructiveHint: true },
|
|
130
165
|
},
|
|
131
166
|
{
|
|
132
167
|
name: 'export',
|
|
168
|
+
surface: 'internal',
|
|
133
169
|
description: 'Export a document to a portable rendering (Markdown, semantic HTML, or plain text). Writes an output file (default: source path with the format extension, e.g. .md, .html, or .txt) and returns its path, byte count, and the rendered content (under `content`). Intentionally lossy (no round-trip); HTML is the semantic tier, not pixel-faithful. DOCX only — Google Docs is not supported.',
|
|
134
170
|
input: z.object({
|
|
135
171
|
...FILE_FIELD_OPTIONAL,
|
|
@@ -154,6 +190,7 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
154
190
|
},
|
|
155
191
|
{
|
|
156
192
|
name: 'convert_to_odt',
|
|
193
|
+
surface: 'internal',
|
|
157
194
|
description: 'Convert a DOCX document to OpenDocument Text (.odt) using the native model-to-model converter (no LibreOffice involved). Writes the .odt (default: source path with the .odt extension), validates ODF packaging safety before writing, and returns the output path plus a `lossiness` summary itemizing every downgraded construct. Conversion is semantic and intentionally lossy: text, headings, bold/italic/underline, hyperlinks, lists, and tables are mapped; richer styling, tracked changes, comments, and headers/footers are not. DOCX in, ODT out — Google Docs and .odt inputs are not supported.',
|
|
158
195
|
input: z.object({
|
|
159
196
|
...FILE_FIELD_OPTIONAL,
|
|
@@ -170,7 +207,8 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
170
207
|
},
|
|
171
208
|
{
|
|
172
209
|
name: 'format_layout',
|
|
173
|
-
|
|
210
|
+
surface: 'revisionable',
|
|
211
|
+
description: 'Apply layout controls (paragraph spacing, table row height, cell padding). Google Docs supports paragraph spacing only. Surface: revisionable — DOCX geometry edits emit native property-change revisions (w:pPrChange/w:trPrChange/w:tcPrChange).',
|
|
174
212
|
input: z.object({
|
|
175
213
|
...FILE_FIELD_OPTIONAL,
|
|
176
214
|
...GOOGLE_DOC_ID_FIELD,
|
|
@@ -208,14 +246,58 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
208
246
|
},
|
|
209
247
|
{
|
|
210
248
|
name: 'accept_changes',
|
|
249
|
+
surface: 'internal',
|
|
211
250
|
description: 'Accept all tracked changes in the document body, producing a clean document with no revision markup. Returns acceptance stats.',
|
|
212
251
|
input: z.object({
|
|
213
252
|
...FILE_FIELD,
|
|
214
253
|
}),
|
|
215
254
|
annotations: { readOnlyHint: false, destructiveHint: true },
|
|
216
255
|
},
|
|
256
|
+
{
|
|
257
|
+
name: 'accept_ai_edits',
|
|
258
|
+
surface: 'internal',
|
|
259
|
+
description: 'Selectively accept tracked changes by revision id or author, leaving all other (e.g. third-party reviewer) revisions byte-untouched. Provide revision_ids (array of w:id values) to target specific revisions, or author to accept every revision by one actor. Sweeps document.xml and supported side-story parts (footnotes, endnotes, comments). An ambiguous overlap — a targeted revision structurally containing, or contained by, a non-targeted revision (nested ins/del/move) — hard-errors with code AMBIGUOUS_REVISION_OVERLAP and a structured `overlaps` list unless normalize_first is set (best-effort, no byte-identical promise).',
|
|
260
|
+
input: z.object({
|
|
261
|
+
...FILE_FIELD,
|
|
262
|
+
revision_ids: z
|
|
263
|
+
.array(z.union([z.string(), z.number()]))
|
|
264
|
+
.optional()
|
|
265
|
+
.describe('w:id values of the revisions to accept. Mutually preferred over author.'),
|
|
266
|
+
author: z
|
|
267
|
+
.string()
|
|
268
|
+
.optional()
|
|
269
|
+
.describe('Accept every revision authored by this w:author. Convenience alternative to revision_ids.'),
|
|
270
|
+
normalize_first: z
|
|
271
|
+
.boolean()
|
|
272
|
+
.optional()
|
|
273
|
+
.describe('Attempt best-effort resolution on an ambiguous (overlapping) revision graph instead of hard-erroring. No byte-identical guarantee. Default: false.'),
|
|
274
|
+
}),
|
|
275
|
+
annotations: { readOnlyHint: false, destructiveHint: true },
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
name: 'reject_ai_edits',
|
|
279
|
+
surface: 'internal',
|
|
280
|
+
description: 'Selectively reject tracked changes by revision id or author (restoring their pre-edit state), leaving all other revisions byte-untouched. Symmetric to accept_ai_edits: provide revision_ids or author, sweeps document.xml and supported side-story parts, and hard-errors on an ambiguous overlap (code AMBIGUOUS_REVISION_OVERLAP with a structured `overlaps` list) unless normalize_first is set.',
|
|
281
|
+
input: z.object({
|
|
282
|
+
...FILE_FIELD,
|
|
283
|
+
revision_ids: z
|
|
284
|
+
.array(z.union([z.string(), z.number()]))
|
|
285
|
+
.optional()
|
|
286
|
+
.describe('w:id values of the revisions to reject. Mutually preferred over author.'),
|
|
287
|
+
author: z
|
|
288
|
+
.string()
|
|
289
|
+
.optional()
|
|
290
|
+
.describe('Reject every revision authored by this w:author. Convenience alternative to revision_ids.'),
|
|
291
|
+
normalize_first: z
|
|
292
|
+
.boolean()
|
|
293
|
+
.optional()
|
|
294
|
+
.describe('Attempt best-effort resolution on an ambiguous (overlapping) revision graph instead of hard-erroring. No byte-identical guarantee. Default: false.'),
|
|
295
|
+
}),
|
|
296
|
+
annotations: { readOnlyHint: false, destructiveHint: true },
|
|
297
|
+
},
|
|
217
298
|
{
|
|
218
299
|
name: 'has_tracked_changes',
|
|
300
|
+
surface: 'internal',
|
|
219
301
|
description: 'Check whether the document body contains tracked-change markers (insertions, deletions, moves, and property-change records). Read-only.',
|
|
220
302
|
input: z.object({
|
|
221
303
|
...FILE_FIELD,
|
|
@@ -224,6 +306,7 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
224
306
|
},
|
|
225
307
|
{
|
|
226
308
|
name: 'get_file_status',
|
|
309
|
+
surface: 'internal',
|
|
227
310
|
description: 'Get file/session metadata including edit count, normalization stats, and cache info. Supports DOCX, ODT, and Google Docs.',
|
|
228
311
|
input: z.object({
|
|
229
312
|
...FILE_FIELD_OPTIONAL,
|
|
@@ -233,6 +316,7 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
233
316
|
},
|
|
234
317
|
{
|
|
235
318
|
name: 'close_file',
|
|
319
|
+
surface: 'internal',
|
|
236
320
|
description: 'Close an open file session, or close all sessions with explicit confirmation. Supports DOCX, ODT, and Google Docs.',
|
|
237
321
|
input: z.object({
|
|
238
322
|
...FILE_FIELD_OPTIONAL,
|
|
@@ -244,7 +328,9 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
244
328
|
},
|
|
245
329
|
{
|
|
246
330
|
name: 'add_comment',
|
|
247
|
-
|
|
331
|
+
surface: 'revisionable',
|
|
332
|
+
emitsNonRevisionChanges: true,
|
|
333
|
+
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. Supports DOCX and ODT (ODT backs comments with office:annotation; threaded replies are DOCX-only). Surface: revisionable + package-mutation — the body-story comment reference is tracked (w:ins), while comment text and author metadata are recorded in the save report non-revision change manifest.',
|
|
248
334
|
input: z.object({
|
|
249
335
|
...FILE_FIELD,
|
|
250
336
|
target_paragraph_id: z.string().optional().describe('Paragraph ID to anchor the comment to (for root comments).'),
|
|
@@ -258,6 +344,7 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
258
344
|
},
|
|
259
345
|
{
|
|
260
346
|
name: 'get_comments',
|
|
347
|
+
surface: 'internal',
|
|
261
348
|
description: 'Get all comments from the document with IDs, authors, dates, text, and anchored paragraph IDs. Range-anchored DOCX comments also expose optional end_paragraph_id, start_run_index, start_char_offset, end_run_index, and end_char_offset fields describing the covered span. Includes threaded replies (DOCX). Supports DOCX and ODT. Read-only.',
|
|
262
349
|
input: z.object({
|
|
263
350
|
...FILE_FIELD,
|
|
@@ -266,7 +353,9 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
266
353
|
},
|
|
267
354
|
{
|
|
268
355
|
name: 'delete_comment',
|
|
269
|
-
|
|
356
|
+
surface: 'revisionable',
|
|
357
|
+
emitsNonRevisionChanges: true,
|
|
358
|
+
description: 'Delete a comment and all its threaded replies from the document. Cascade-deletes all descendants. Surface: revisionable + package-mutation — the body-story comment reference removal is tracked (w:del), while comment/reply text cleanup is recorded in the save report non-revision change manifest.',
|
|
270
359
|
input: z.object({
|
|
271
360
|
...FILE_FIELD,
|
|
272
361
|
comment_id: z.number().describe('Comment ID to delete.'),
|
|
@@ -275,6 +364,7 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
275
364
|
},
|
|
276
365
|
{
|
|
277
366
|
name: 'compare_documents',
|
|
367
|
+
surface: 'revisionable',
|
|
278
368
|
description: 'Compare two documents and produce a tracked-changes output document. Provide original_file_path + revised_file_path for standalone comparison, or file_path to compare session edits against the original. DOCX and ODF (.odt) support both modes. DOCX stats count insertions/deletions as contiguous ranges, expose atom totals as insertedAtoms/deletedAtoms, and report formatChanges separately from modifiedParagraphs. ODF compares at inline granularity (a modified paragraph is marked up in place — only the changed spans are struck or inserted).',
|
|
279
369
|
input: z.object({
|
|
280
370
|
original_file_path: z.string().optional().describe('Path to the original DOCX or .odt file.'),
|
|
@@ -288,6 +378,7 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
288
378
|
},
|
|
289
379
|
{
|
|
290
380
|
name: 'get_footnotes',
|
|
381
|
+
surface: 'internal',
|
|
291
382
|
description: 'Get all footnotes from the document with IDs, display numbers, text, and anchored paragraph IDs. Read-only.',
|
|
292
383
|
input: z.object({
|
|
293
384
|
...FILE_FIELD,
|
|
@@ -296,7 +387,9 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
296
387
|
},
|
|
297
388
|
{
|
|
298
389
|
name: 'add_footnote',
|
|
299
|
-
|
|
390
|
+
surface: 'revisionable',
|
|
391
|
+
emitsNonRevisionChanges: true,
|
|
392
|
+
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. Surface: revisionable + package-mutation — the footnote reference and note text are tracked (w:ins), while footnote-part creation and registration are recorded in the save report non-revision change manifest.',
|
|
300
393
|
input: z.object({
|
|
301
394
|
...FILE_FIELD,
|
|
302
395
|
target_paragraph_id: z.string().describe('Paragraph ID to anchor the footnote to.'),
|
|
@@ -307,7 +400,8 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
307
400
|
},
|
|
308
401
|
{
|
|
309
402
|
name: 'update_footnote',
|
|
310
|
-
|
|
403
|
+
surface: 'revisionable',
|
|
404
|
+
description: 'Update the text content of an existing footnote. Surface: revisionable — note-text changes emit native OOXML tracked changes (w:ins/w:del) inside the footnote body.',
|
|
311
405
|
input: z.object({
|
|
312
406
|
...FILE_FIELD,
|
|
313
407
|
note_id: z.number().describe('Footnote ID to update.'),
|
|
@@ -317,7 +411,8 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
317
411
|
},
|
|
318
412
|
{
|
|
319
413
|
name: 'delete_footnote',
|
|
320
|
-
|
|
414
|
+
surface: 'revisionable',
|
|
415
|
+
description: 'Delete a footnote and its reference from the document. Surface: revisionable — the reference and note text are removed as native OOXML tracked deletions (w:del).',
|
|
321
416
|
input: z.object({
|
|
322
417
|
...FILE_FIELD,
|
|
323
418
|
note_id: z.number().describe('Footnote ID to delete.'),
|
|
@@ -326,7 +421,8 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
326
421
|
},
|
|
327
422
|
{
|
|
328
423
|
name: 'clear_formatting',
|
|
329
|
-
|
|
424
|
+
surface: 'revisionable',
|
|
425
|
+
description: 'Clear specific run-level formatting (bold, italic, underline, highlight, color, font) from paragraphs. Surface: revisionable — clearing emits a native run-property-change revision (w:rPrChange).',
|
|
330
426
|
input: z.object({
|
|
331
427
|
...FILE_FIELD,
|
|
332
428
|
paragraph_ids: z.array(z.string()).optional().describe('Paragraph IDs to clear formatting from. If omitted, clears from all paragraphs.'),
|
|
@@ -341,6 +437,7 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
341
437
|
},
|
|
342
438
|
{
|
|
343
439
|
name: 'extract_revisions',
|
|
440
|
+
surface: 'internal',
|
|
344
441
|
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.',
|
|
345
442
|
input: z.object({
|
|
346
443
|
...FILE_FIELD,
|
|
@@ -362,5 +459,20 @@ export const SAFE_DOCX_MCP_TOOLS = SAFE_DOCX_TOOL_CATALOG.map((tool) => ({
|
|
|
362
459
|
description: tool.description,
|
|
363
460
|
inputSchema: toJsonObjectSchema(tool.input, tool.name),
|
|
364
461
|
annotations: tool.annotations,
|
|
462
|
+
// #122: contract-surface classification, advertised alongside the tool so
|
|
463
|
+
// clients can distinguish tracked (revisionable) writes from untracked
|
|
464
|
+
// package mutations without reading SUPPORT.md.
|
|
465
|
+
surface: tool.surface,
|
|
466
|
+
emitsNonRevisionChanges: tool.emitsNonRevisionChanges ?? false,
|
|
365
467
|
}));
|
|
468
|
+
/**
|
|
469
|
+
* Programmatic index of the contract surface each tool writes to (#122),
|
|
470
|
+
* mirroring the ratified inventory in `packages/docx-core/SUPPORT.md`.
|
|
471
|
+
* Consumed by the revisionable-surface property test and by the classification
|
|
472
|
+
* coverage test.
|
|
473
|
+
*/
|
|
474
|
+
export const TOOL_SURFACE_INDEX = Object.fromEntries(SAFE_DOCX_TOOL_CATALOG.map((tool) => [
|
|
475
|
+
tool.name,
|
|
476
|
+
{ surface: tool.surface, emitsNonRevisionChanges: tool.emitsNonRevisionChanges ?? false },
|
|
477
|
+
]));
|
|
366
478
|
//# sourceMappingURL=tool_catalog.js.map
|
package/dist/tool_catalog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool_catalog.js","sourceRoot":"","sources":["../src/tool_catalog.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool_catalog.js","sourceRoot":"","sources":["../src/tool_catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SessionManager } from '../session/manager.js';
|
|
2
|
+
import { type ToolResponse } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* accept_ai_edits — selectively accept tracked changes by revision id or author
|
|
5
|
+
* (#123), leaving all other (e.g. third-party reviewer) revisions untouched.
|
|
6
|
+
*/
|
|
7
|
+
export declare function acceptAiEdits(manager: SessionManager, params: {
|
|
8
|
+
file_path?: string;
|
|
9
|
+
revision_ids?: Array<string | number>;
|
|
10
|
+
author?: string;
|
|
11
|
+
normalize_first?: boolean;
|
|
12
|
+
}): Promise<ToolResponse>;
|
|
13
|
+
//# sourceMappingURL=accept_ai_edits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accept_ai_edits.d.ts","sourceRoot":"","sources":["../../src/tools/accept_ai_edits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAGxD;;;GAGG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE;IACN,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GACA,OAAO,CAAC,YAAY,CAAC,CAuCvB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { errorMessage } from '../error_utils.js';
|
|
2
|
+
import { resolveSessionForTool, mergeSessionResolutionMetadata } from './session_resolution.js';
|
|
3
|
+
import { ok, err } from './types.js';
|
|
4
|
+
import { AmbiguousRevisionOverlapError } from '@usejunior/docx-core';
|
|
5
|
+
/**
|
|
6
|
+
* accept_ai_edits — selectively accept tracked changes by revision id or author
|
|
7
|
+
* (#123), leaving all other (e.g. third-party reviewer) revisions untouched.
|
|
8
|
+
*/
|
|
9
|
+
export async function acceptAiEdits(manager, params) {
|
|
10
|
+
const resolved = await resolveSessionForTool(manager, params, { toolName: 'accept_ai_edits' });
|
|
11
|
+
if (!resolved.ok)
|
|
12
|
+
return resolved.response;
|
|
13
|
+
const { session, metadata } = resolved;
|
|
14
|
+
const hasIds = Array.isArray(params.revision_ids) && params.revision_ids.length > 0;
|
|
15
|
+
if (!hasIds && (params.author == null || params.author === '')) {
|
|
16
|
+
return err('MISSING_PARAMETER', 'Provide revision_ids or author.', "Target specific w:id values with revision_ids, or every revision by one actor with author.");
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
const { result, selectedIds } = await session.doc.acceptAIEdits({
|
|
20
|
+
revisionIds: params.revision_ids,
|
|
21
|
+
author: params.author,
|
|
22
|
+
normalizeFirst: params.normalize_first,
|
|
23
|
+
});
|
|
24
|
+
manager.markEdited(session);
|
|
25
|
+
return ok(mergeSessionResolutionMetadata({
|
|
26
|
+
...result,
|
|
27
|
+
selected_revision_ids: selectedIds,
|
|
28
|
+
file_path: manager.normalizePath(session.originalPath),
|
|
29
|
+
}, metadata));
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
if (e instanceof AmbiguousRevisionOverlapError) {
|
|
33
|
+
return {
|
|
34
|
+
...err('AMBIGUOUS_REVISION_OVERLAP', e.message, 'Pass normalize_first=true for best-effort resolution, or target a non-overlapping revision set.'),
|
|
35
|
+
overlaps: e.overlaps,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
return err('ACCEPT_AI_EDITS_ERROR', errorMessage(e));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=accept_ai_edits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accept_ai_edits.js","sourceRoot":"","sources":["../../src/tools/accept_ai_edits.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAE,EAAE,EAAE,GAAG,EAAqB,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAErE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAuB,EACvB,MAKC;IAED,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC/F,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IAEvC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACpF,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,CAAC,EAAE,CAAC;QAC/D,OAAO,GAAG,CACR,mBAAmB,EACnB,iCAAiC,EACjC,4FAA4F,CAC7F,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;YAC9D,WAAW,EAAE,MAAM,CAAC,YAAY;YAChC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,cAAc,EAAE,MAAM,CAAC,eAAe;SACvC,CAAC,CAAC;QACH,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,EAAE,CAAC,8BAA8B,CAAC;YACvC,GAAG,MAAM;YACT,qBAAqB,EAAE,WAAW;YAClC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC;SACvD,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChB,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,6BAA6B,EAAE,CAAC;YAC/C,OAAO;gBACL,GAAG,GAAG,CACJ,4BAA4B,EAC5B,CAAC,CAAC,OAAO,EACT,iGAAiG,CAClG;gBACD,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,CAAC,uBAAuB,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add_comment.d.ts","sourceRoot":"","sources":["../../src/tools/add_comment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAgC,MAAM,uBAAuB,CAAC;AAGrF,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"add_comment.d.ts","sourceRoot":"","sources":["../../src/tools/add_comment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAgC,MAAM,uBAAuB,CAAC;AAGrF,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAmCxD,wBAAsB,UAAU,CAC9B,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE;IACN,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,CAmIvB"}
|
|
@@ -8,6 +8,30 @@ const COMMENT_TOUCHED_CONTEXT = {
|
|
|
8
8
|
relationshipParts: ['word/_rels/document.xml.rels'],
|
|
9
9
|
sideParts: ['word/comments.xml', 'word/commentsExtended.xml', 'word/people.xml'],
|
|
10
10
|
};
|
|
11
|
+
// Non-revision parts a *root* comment can mutate without a tracked-change
|
|
12
|
+
// wrapper. Unlike the body-story w:commentReference run (which is wrapped in
|
|
13
|
+
// w:ins, Table A), the w:commentRangeStart/End milestones are written to
|
|
14
|
+
// word/document.xml as structural markers and are NOT revision-wrapped (Word's
|
|
15
|
+
// own behavior; see SUPPORT.md Table A note), so document.xml belongs here. The
|
|
16
|
+
// content-types and relationship parts are touched only when comment
|
|
17
|
+
// infrastructure is bootstrapped; they are declared conservatively so the
|
|
18
|
+
// manifest never under-reports a package mutation.
|
|
19
|
+
const ROOT_COMMENT_NON_REVISION_PARTS = [
|
|
20
|
+
'word/document.xml',
|
|
21
|
+
'word/comments.xml',
|
|
22
|
+
'word/commentsExtended.xml',
|
|
23
|
+
'word/people.xml',
|
|
24
|
+
'[Content_Types].xml',
|
|
25
|
+
'word/_rels/document.xml.rels',
|
|
26
|
+
];
|
|
27
|
+
// A threaded reply has no body anchor at all: the entire write is side-part
|
|
28
|
+
// metadata (comments.xml text + commentsExtended.xml graph + people.xml), so no
|
|
29
|
+
// tracked-change marker is emitted and document.xml is untouched.
|
|
30
|
+
const REPLY_COMMENT_NON_REVISION_PARTS = [
|
|
31
|
+
'word/comments.xml',
|
|
32
|
+
'word/commentsExtended.xml',
|
|
33
|
+
'word/people.xml',
|
|
34
|
+
];
|
|
11
35
|
export async function addComment(manager, params) {
|
|
12
36
|
const resolved = await resolveSessionForTool(manager, params, { toolName: 'add_comment' });
|
|
13
37
|
if (!resolved.ok)
|
|
@@ -29,6 +53,13 @@ export async function addComment(manager, params) {
|
|
|
29
53
|
return revisionPreflight;
|
|
30
54
|
const result = await mutate(session.doc, ctx);
|
|
31
55
|
manager.markEdited(session);
|
|
56
|
+
// Replies have no body anchor, so the whole write is package-mutation
|
|
57
|
+
// side-part metadata (#122): record it in the non-revision manifest.
|
|
58
|
+
manager.recordNonRevisionChange(session, {
|
|
59
|
+
tool: 'add_comment',
|
|
60
|
+
parts: REPLY_COMMENT_NON_REVISION_PARTS,
|
|
61
|
+
description: `Threaded reply to comment ${parentCommentId} written to comment side-story parts (comments.xml, commentsExtended.xml, people.xml). Reply mode is package-mutation only: it has no body anchor, so no tracked-change marker is emitted and word/document.xml is untouched.`,
|
|
62
|
+
});
|
|
32
63
|
return ok(mergeSessionResolutionMetadata({
|
|
33
64
|
comment_id: result.commentId,
|
|
34
65
|
parent_comment_id: result.parentCommentId,
|
|
@@ -78,6 +109,15 @@ export async function addComment(manager, params) {
|
|
|
78
109
|
return revisionPreflight;
|
|
79
110
|
const result = await mutate(session.doc, ctx);
|
|
80
111
|
manager.markEdited(session);
|
|
112
|
+
// The body-story w:commentReference run is wrapped in w:ins (Table A), but
|
|
113
|
+
// the comment body text, author metadata, and any comment-infrastructure
|
|
114
|
+
// bootstrap are package-mutation side-part writes with no revision wrapper
|
|
115
|
+
// (#122): record them in the non-revision manifest.
|
|
116
|
+
manager.recordNonRevisionChange(session, {
|
|
117
|
+
tool: 'add_comment',
|
|
118
|
+
parts: ROOT_COMMENT_NON_REVISION_PARTS,
|
|
119
|
+
description: `Comment ${result.commentId}: body text and author metadata written to comment side parts (comments.xml, people.xml), and w:commentRangeStart/End milestones written to word/document.xml as structural markers (not revision-wrapped). Comment infrastructure and its content-type/relationship registration are created when the package lacked them. The body-story w:commentReference run is tracked separately as a w:ins revision.`,
|
|
120
|
+
});
|
|
81
121
|
return ok(mergeSessionResolutionMetadata({
|
|
82
122
|
comment_id: result.commentId,
|
|
83
123
|
anchor_paragraph_id: pid,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add_comment.js","sourceRoot":"","sources":["../../src/tools/add_comment.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"add_comment.js","sourceRoot":"","sources":["../../src/tools/add_comment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add_footnote.d.ts","sourceRoot":"","sources":["../../src/tools/add_footnote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAgC,MAAM,uBAAuB,CAAC;AAGrF,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"add_footnote.d.ts","sourceRoot":"","sources":["../../src/tools/add_footnote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAgC,MAAM,uBAAuB,CAAC;AAGrF,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAsBxD,wBAAsB,WAAW,CAC/B,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE;IACN,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,CA+DvB"}
|
|
@@ -7,6 +7,18 @@ const FOOTNOTE_TOUCHED_CONTEXT = {
|
|
|
7
7
|
relationshipParts: ['word/_rels/document.xml.rels'],
|
|
8
8
|
sideParts: ['word/footnotes.xml'],
|
|
9
9
|
};
|
|
10
|
+
// Non-revision parts add_footnote can mutate without a tracked-change wrapper.
|
|
11
|
+
// The note text runs and the body-story w:footnoteReference are wrapped in w:ins
|
|
12
|
+
// (Table A), but the <w:footnote> container element appended to footnotes.xml is
|
|
13
|
+
// a structural addition with no revision wrapper, and the content-type /
|
|
14
|
+
// relationship registration is created when footnote infrastructure is
|
|
15
|
+
// bootstrapped. [Content_Types].xml is declared so bootstrap registration is
|
|
16
|
+
// never under-reported.
|
|
17
|
+
const FOOTNOTE_NON_REVISION_PARTS = [
|
|
18
|
+
'word/footnotes.xml',
|
|
19
|
+
'[Content_Types].xml',
|
|
20
|
+
'word/_rels/document.xml.rels',
|
|
21
|
+
];
|
|
10
22
|
export async function addFootnote(manager, params) {
|
|
11
23
|
const resolved = await resolveSessionForTool(manager, params, { toolName: 'add_footnote' });
|
|
12
24
|
if (!resolved.ok)
|
|
@@ -36,6 +48,15 @@ export async function addFootnote(manager, params) {
|
|
|
36
48
|
return revisionPreflight;
|
|
37
49
|
const result = await mutate(session.doc, ctx);
|
|
38
50
|
manager.markEdited(session);
|
|
51
|
+
// The body-story w:footnoteReference and note text are tracked as w:ins
|
|
52
|
+
// (Table A), but creating word/footnotes.xml and registering the part in
|
|
53
|
+
// relationships/content-types is a package mutation with no revision
|
|
54
|
+
// wrapper (#122): record it in the non-revision manifest.
|
|
55
|
+
manager.recordNonRevisionChange(session, {
|
|
56
|
+
tool: 'add_footnote',
|
|
57
|
+
parts: FOOTNOTE_NON_REVISION_PARTS,
|
|
58
|
+
description: `Footnote ${result.noteId}: the <w:footnote> container element is appended to word/footnotes.xml as a structural addition (the note text runs are tracked separately as w:ins). When the document lacked footnote infrastructure, the part and its content-type/relationship registration were bootstrapped. The body-story footnote reference is also tracked as a w:ins revision.`,
|
|
59
|
+
});
|
|
39
60
|
return ok(mergeSessionResolutionMetadata({
|
|
40
61
|
note_id: result.noteId,
|
|
41
62
|
target_paragraph_id: pid,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add_footnote.js","sourceRoot":"","sources":["../../src/tools/add_footnote.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"add_footnote.js","sourceRoot":"","sources":["../../src/tools/add_footnote.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import path from 'node:path';
|
|
|
2
2
|
import { errorCode, errorMessage } from "../error_utils.js";
|
|
3
3
|
import fs from 'node:fs/promises';
|
|
4
4
|
import { err, ok } from './types.js';
|
|
5
|
-
import { compareDocuments } from '@usejunior/docx-
|
|
5
|
+
import { compareDocuments } from '@usejunior/docx-compare';
|
|
6
6
|
import { mergeSessionResolutionMetadata, resolveSessionForTool, validateAndLoadDocxFromPath, } from './session_resolution.js';
|
|
7
7
|
import { enforceWritePathPolicy, resolvesToSamePath } from './path_policy.js';
|
|
8
8
|
import { DEFAULT_RECONSTRUCTION_MODE } from './comparison_defaults.js';
|