@usejunior/docx-mcp 0.10.0 → 0.11.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.
- package/LICENSE +202 -21
- package/NOTICE +2 -0
- package/README.md +3 -3
- package/dist/.tsbuildinfo +1 -1
- package/dist/cli/commands/edit.js +5 -5
- package/dist/cli/commands/edit.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +1 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/odf_loader.d.ts.map +1 -1
- package/dist/odf_loader.js +6 -5
- package/dist/odf_loader.js.map +1 -1
- package/dist/server.d.ts +5 -8
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +6 -9
- package/dist/server.js.map +1 -1
- package/dist/session/manager.d.ts +4 -0
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +16 -57
- package/dist/session/manager.js.map +1 -1
- package/dist/tool_catalog.d.ts +22 -36
- package/dist/tool_catalog.d.ts.map +1 -1
- package/dist/tool_catalog.js +24 -25
- package/dist/tool_catalog.js.map +1 -1
- package/dist/tools/add_comment.d.ts.map +1 -1
- package/dist/tools/add_comment.js +19 -5
- 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 +13 -3
- package/dist/tools/add_footnote.js.map +1 -1
- package/dist/tools/ai_revision_guard.d.ts +38 -0
- package/dist/tools/ai_revision_guard.d.ts.map +1 -0
- package/dist/tools/ai_revision_guard.js +115 -0
- package/dist/tools/ai_revision_guard.js.map +1 -0
- package/dist/tools/{apply_plan.d.ts → batch_edit.d.ts} +2 -2
- package/dist/tools/batch_edit.d.ts.map +1 -0
- package/dist/tools/{apply_plan.js → batch_edit.js} +216 -72
- package/dist/tools/batch_edit.js.map +1 -0
- package/dist/tools/clear_formatting.d.ts.map +1 -1
- package/dist/tools/clear_formatting.js +52 -42
- package/dist/tools/clear_formatting.js.map +1 -1
- package/dist/tools/convert_to_odt.d.ts +20 -0
- package/dist/tools/convert_to_odt.d.ts.map +1 -0
- package/dist/tools/convert_to_odt.js +74 -0
- package/dist/tools/convert_to_odt.js.map +1 -0
- package/dist/tools/delete_comment.d.ts.map +1 -1
- package/dist/tools/delete_comment.js +10 -1
- package/dist/tools/delete_comment.js.map +1 -1
- package/dist/tools/delete_footnote.d.ts.map +1 -1
- package/dist/tools/delete_footnote.js +10 -1
- package/dist/tools/delete_footnote.js.map +1 -1
- package/dist/tools/format_layout.d.ts.map +1 -1
- package/dist/tools/format_layout.js +16 -0
- package/dist/tools/format_layout.js.map +1 -1
- package/dist/tools/get_comments.d.ts.map +1 -1
- package/dist/tools/get_comments.js +9 -0
- package/dist/tools/get_comments.js.map +1 -1
- package/dist/tools/grep.d.ts.map +1 -1
- package/dist/tools/grep.js +13 -0
- package/dist/tools/grep.js.map +1 -1
- package/dist/tools/insert_paragraph.d.ts +5 -0
- package/dist/tools/insert_paragraph.d.ts.map +1 -1
- package/dist/tools/insert_paragraph.js +36 -26
- package/dist/tools/insert_paragraph.js.map +1 -1
- 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 +65 -72
- package/dist/tools/read_file.js.map +1 -1
- package/dist/tools/replace_text.d.ts +5 -0
- package/dist/tools/replace_text.d.ts.map +1 -1
- package/dist/tools/replace_text.js +65 -60
- package/dist/tools/replace_text.js.map +1 -1
- package/dist/tools/save.d.ts +19 -0
- package/dist/tools/save.d.ts.map +1 -1
- package/dist/tools/save.js +109 -8
- package/dist/tools/save.js.map +1 -1
- package/dist/tools/update_footnote.d.ts.map +1 -1
- package/dist/tools/update_footnote.js +18 -7
- package/dist/tools/update_footnote.js.map +1 -1
- package/package.json +8 -7
- package/dist/tools/apply_plan.d.ts.map +0 -1
- package/dist/tools/apply_plan.js.map +0 -1
- package/dist/tools/init_plan.d.ts +0 -8
- package/dist/tools/init_plan.d.ts.map +0 -1
- package/dist/tools/init_plan.js +0 -45
- package/dist/tools/init_plan.js.map +0 -1
- package/dist/tools/merge_plans.d.ts +0 -7
- package/dist/tools/merge_plans.d.ts.map +0 -1
- package/dist/tools/merge_plans.js +0 -408
- package/dist/tools/merge_plans.js.map +0 -1
package/dist/tool_catalog.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export declare const SAFE_DOCX_TOOL_CATALOG: readonly [{
|
|
|
19
19
|
}>>;
|
|
20
20
|
show_formatting: z.ZodOptional<z.ZodBoolean>;
|
|
21
21
|
include_fingerprint: z.ZodOptional<z.ZodBoolean>;
|
|
22
|
+
include_footnotes: z.ZodOptional<z.ZodBoolean>;
|
|
22
23
|
google_doc_id: z.ZodOptional<z.ZodString>;
|
|
23
24
|
file_path: z.ZodOptional<z.ZodString>;
|
|
24
25
|
}, z.core.$strip>;
|
|
@@ -48,32 +49,8 @@ export declare const SAFE_DOCX_TOOL_CATALOG: readonly [{
|
|
|
48
49
|
readonly destructiveHint: false;
|
|
49
50
|
};
|
|
50
51
|
}, {
|
|
51
|
-
readonly name: "
|
|
52
|
-
readonly description: "
|
|
53
|
-
readonly input: z.ZodObject<{
|
|
54
|
-
plan_name: z.ZodOptional<z.ZodString>;
|
|
55
|
-
orchestrator_id: z.ZodOptional<z.ZodString>;
|
|
56
|
-
file_path: z.ZodString;
|
|
57
|
-
}, z.core.$strip>;
|
|
58
|
-
readonly annotations: {
|
|
59
|
-
readonly readOnlyHint: true;
|
|
60
|
-
readonly destructiveHint: false;
|
|
61
|
-
};
|
|
62
|
-
}, {
|
|
63
|
-
readonly name: "merge_plans";
|
|
64
|
-
readonly description: "Deterministically merge multiple sub-agent plans and detect hard conflicts before apply.";
|
|
65
|
-
readonly input: z.ZodObject<{
|
|
66
|
-
plans: z.ZodArray<z.ZodObject<{}, z.core.$catchall<z.ZodUnknown>>>;
|
|
67
|
-
fail_on_conflict: z.ZodOptional<z.ZodBoolean>;
|
|
68
|
-
require_shared_base_revision: z.ZodOptional<z.ZodBoolean>;
|
|
69
|
-
}, z.core.$strip>;
|
|
70
|
-
readonly annotations: {
|
|
71
|
-
readonly readOnlyHint: true;
|
|
72
|
-
readonly destructiveHint: false;
|
|
73
|
-
};
|
|
74
|
-
}, {
|
|
75
|
-
readonly name: "apply_plan";
|
|
76
|
-
readonly description: "Validate and apply a batch of edit steps (replace_text, insert_paragraph) to a 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.";
|
|
52
|
+
readonly name: "batch_edit";
|
|
53
|
+
readonly 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.";
|
|
77
54
|
readonly input: z.ZodObject<{
|
|
78
55
|
steps: z.ZodOptional<z.ZodArray<z.ZodObject<{}, z.core.$catchall<z.ZodUnknown>>>>;
|
|
79
56
|
plan_file_path: z.ZodOptional<z.ZodString>;
|
|
@@ -162,6 +139,18 @@ export declare const SAFE_DOCX_TOOL_CATALOG: readonly [{
|
|
|
162
139
|
readonly readOnlyHint: false;
|
|
163
140
|
readonly destructiveHint: false;
|
|
164
141
|
};
|
|
142
|
+
}, {
|
|
143
|
+
readonly name: "convert_to_odt";
|
|
144
|
+
readonly 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.";
|
|
145
|
+
readonly input: z.ZodObject<{
|
|
146
|
+
output_path: z.ZodOptional<z.ZodString>;
|
|
147
|
+
allow_overwrite: z.ZodOptional<z.ZodBoolean>;
|
|
148
|
+
file_path: z.ZodOptional<z.ZodString>;
|
|
149
|
+
}, z.core.$strip>;
|
|
150
|
+
readonly annotations: {
|
|
151
|
+
readonly readOnlyHint: false;
|
|
152
|
+
readonly destructiveHint: false;
|
|
153
|
+
};
|
|
165
154
|
}, {
|
|
166
155
|
readonly name: "format_layout";
|
|
167
156
|
readonly description: "Apply layout controls (paragraph spacing, table row height, cell padding). Google Docs supports paragraph spacing only.";
|
|
@@ -266,7 +255,7 @@ export declare const SAFE_DOCX_TOOL_CATALOG: readonly [{
|
|
|
266
255
|
};
|
|
267
256
|
}, {
|
|
268
257
|
readonly name: "get_comments";
|
|
269
|
-
readonly description: "Get all comments from the document with IDs, authors, dates, text, and anchored paragraph IDs. Includes threaded replies (DOCX). Supports DOCX and ODT. Read-only.";
|
|
258
|
+
readonly 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.";
|
|
270
259
|
readonly input: z.ZodObject<{
|
|
271
260
|
file_path: z.ZodString;
|
|
272
261
|
}, z.core.$strip>;
|
|
@@ -287,7 +276,7 @@ export declare const SAFE_DOCX_TOOL_CATALOG: readonly [{
|
|
|
287
276
|
};
|
|
288
277
|
}, {
|
|
289
278
|
readonly name: "compare_documents";
|
|
290
|
-
readonly 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
|
|
279
|
+
readonly 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).";
|
|
291
280
|
readonly input: z.ZodObject<{
|
|
292
281
|
save_to_local_path: z.ZodString;
|
|
293
282
|
author: z.ZodOptional<z.ZodString>;
|
|
@@ -380,8 +369,8 @@ export declare const SAFE_DOCX_TOOL_CATALOG: readonly [{
|
|
|
380
369
|
};
|
|
381
370
|
}];
|
|
382
371
|
export declare const SAFE_DOCX_MCP_TOOLS: {
|
|
383
|
-
name: "read_file" | "grep" | "
|
|
384
|
-
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." | "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." | "
|
|
372
|
+
name: "read_file" | "grep" | "batch_edit" | "replace_text" | "insert_paragraph" | "save" | "export" | "convert_to_odt" | "format_layout" | "accept_changes" | "has_tracked_changes" | "get_file_status" | "close_file" | "add_comment" | "get_comments" | "delete_comment" | "compare_documents" | "get_footnotes" | "add_footnote" | "update_footnote" | "delete_footnote" | "clear_formatting" | "extract_revisions";
|
|
373
|
+
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." | "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." | "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." | "Replace text in a paragraph by provider paragraph id, preserving formatting where supported. Supports DOCX, ODT, and Google Docs." | "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.)" | "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." | "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." | "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." | "Apply layout controls (paragraph spacing, table row height, cell padding). Google Docs supports paragraph spacing only." | "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 file/session metadata including edit count, normalization stats, and cache info. Supports DOCX, ODT, and Google Docs." | "Close an open file session, or close all sessions with explicit confirmation. Supports DOCX, ODT, and Google Docs." | "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)." | "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." | "Delete a comment and all its threaded replies from the document. Cascade-deletes all descendants." | "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)." | "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." | "Clear specific run-level formatting (bold, italic, underline, highlight, color, font) from paragraphs." | "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.";
|
|
385
374
|
inputSchema: Record<string, unknown>;
|
|
386
375
|
annotations: {
|
|
387
376
|
readonly readOnlyHint: true;
|
|
@@ -389,12 +378,6 @@ export declare const SAFE_DOCX_MCP_TOOLS: {
|
|
|
389
378
|
} | {
|
|
390
379
|
readonly readOnlyHint: true;
|
|
391
380
|
readonly destructiveHint: false;
|
|
392
|
-
} | {
|
|
393
|
-
readonly readOnlyHint: true;
|
|
394
|
-
readonly destructiveHint: false;
|
|
395
|
-
} | {
|
|
396
|
-
readonly readOnlyHint: true;
|
|
397
|
-
readonly destructiveHint: false;
|
|
398
381
|
} | {
|
|
399
382
|
readonly readOnlyHint: false;
|
|
400
383
|
readonly destructiveHint: true;
|
|
@@ -410,6 +393,9 @@ export declare const SAFE_DOCX_MCP_TOOLS: {
|
|
|
410
393
|
} | {
|
|
411
394
|
readonly readOnlyHint: false;
|
|
412
395
|
readonly destructiveHint: false;
|
|
396
|
+
} | {
|
|
397
|
+
readonly readOnlyHint: false;
|
|
398
|
+
readonly destructiveHint: false;
|
|
413
399
|
} | {
|
|
414
400
|
readonly readOnlyHint: false;
|
|
415
401
|
readonly destructiveHint: true;
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"tool_catalog.d.ts","sourceRoot":"","sources":["../src/tool_catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA6BxB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2Wa,CAAC;AAUjD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAK7B,CAAC;AAEJ,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
package/dist/tool_catalog.js
CHANGED
|
@@ -9,7 +9,6 @@ const GOOGLE_DOC_ID_FIELD = {
|
|
|
9
9
|
google_doc_id: z.string().optional().describe('Google Doc ID or URL (alternative to file_path). ' +
|
|
10
10
|
'Extract from URL: docs.google.com/document/d/{ID}/edit'),
|
|
11
11
|
};
|
|
12
|
-
const PLAN_OBJECT_SCHEMA = z.object({}).catchall(z.unknown());
|
|
13
12
|
export const SAFE_DOCX_TOOL_CATALOG = [
|
|
14
13
|
{
|
|
15
14
|
name: 'read_file',
|
|
@@ -33,6 +32,10 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
33
32
|
.boolean()
|
|
34
33
|
.optional()
|
|
35
34
|
.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.'),
|
|
35
|
+
include_footnotes: z
|
|
36
|
+
.boolean()
|
|
37
|
+
.optional()
|
|
38
|
+
.describe('When true and format="json", attach a `footnotes` array ({id, display_number, text}) to each paragraph node for the footnotes anchored to it. Windowed to the returned slice (a paginated walk returns each footnote exactly once) and counted toward the read token budget. Footnotes with an empty body or no anchored paragraph are excluded — use get_footnotes for the authoritative full enumeration. No effect on TOON/simple output. Ignored for Google Docs and ODT. Default: false.'),
|
|
36
39
|
}),
|
|
37
40
|
annotations: { readOnlyHint: true, destructiveHint: false },
|
|
38
41
|
},
|
|
@@ -56,28 +59,8 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
56
59
|
annotations: { readOnlyHint: true, destructiveHint: false },
|
|
57
60
|
},
|
|
58
61
|
{
|
|
59
|
-
name: '
|
|
60
|
-
description: '
|
|
61
|
-
input: z.object({
|
|
62
|
-
...FILE_FIELD,
|
|
63
|
-
plan_name: z.string().optional(),
|
|
64
|
-
orchestrator_id: z.string().optional(),
|
|
65
|
-
}),
|
|
66
|
-
annotations: { readOnlyHint: true, destructiveHint: false },
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
name: 'merge_plans',
|
|
70
|
-
description: 'Deterministically merge multiple sub-agent plans and detect hard conflicts before apply.',
|
|
71
|
-
input: z.object({
|
|
72
|
-
plans: z.array(PLAN_OBJECT_SCHEMA),
|
|
73
|
-
fail_on_conflict: z.boolean().optional(),
|
|
74
|
-
require_shared_base_revision: z.boolean().optional(),
|
|
75
|
-
}),
|
|
76
|
-
annotations: { readOnlyHint: true, destructiveHint: false },
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
name: 'apply_plan',
|
|
80
|
-
description: 'Validate and apply a batch of edit steps (replace_text, insert_paragraph) to a 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.',
|
|
62
|
+
name: 'batch_edit',
|
|
63
|
+
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.',
|
|
81
64
|
input: z.object({
|
|
82
65
|
...FILE_FIELD,
|
|
83
66
|
steps: z
|
|
@@ -169,6 +152,22 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
169
152
|
}),
|
|
170
153
|
annotations: { readOnlyHint: false, destructiveHint: false },
|
|
171
154
|
},
|
|
155
|
+
{
|
|
156
|
+
name: 'convert_to_odt',
|
|
157
|
+
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
|
+
input: z.object({
|
|
159
|
+
...FILE_FIELD_OPTIONAL,
|
|
160
|
+
output_path: z
|
|
161
|
+
.string()
|
|
162
|
+
.optional()
|
|
163
|
+
.describe('Where to write the .odt. Defaults to the source path with the .odt extension.'),
|
|
164
|
+
allow_overwrite: z
|
|
165
|
+
.boolean()
|
|
166
|
+
.optional()
|
|
167
|
+
.describe('Overwrite output_path if it already exists. Default: false.'),
|
|
168
|
+
}),
|
|
169
|
+
annotations: { readOnlyHint: false, destructiveHint: false },
|
|
170
|
+
},
|
|
172
171
|
{
|
|
173
172
|
name: 'format_layout',
|
|
174
173
|
description: 'Apply layout controls (paragraph spacing, table row height, cell padding). Google Docs supports paragraph spacing only.',
|
|
@@ -259,7 +258,7 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
259
258
|
},
|
|
260
259
|
{
|
|
261
260
|
name: 'get_comments',
|
|
262
|
-
description: 'Get all comments from the document with IDs, authors, dates, text, and anchored paragraph IDs. Includes threaded replies (DOCX). Supports DOCX and ODT. Read-only.',
|
|
261
|
+
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.',
|
|
263
262
|
input: z.object({
|
|
264
263
|
...FILE_FIELD,
|
|
265
264
|
}),
|
|
@@ -276,7 +275,7 @@ export const SAFE_DOCX_TOOL_CATALOG = [
|
|
|
276
275
|
},
|
|
277
276
|
{
|
|
278
277
|
name: 'compare_documents',
|
|
279
|
-
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
|
|
278
|
+
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).',
|
|
280
279
|
input: z.object({
|
|
281
280
|
original_file_path: z.string().optional().describe('Path to the original DOCX or .odt file.'),
|
|
282
281
|
revised_file_path: z.string().optional().describe('Path to the revised DOCX or .odt file.'),
|
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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"}
|
|
@@ -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;AASxD,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,CAmHvB"}
|
|
@@ -3,6 +3,11 @@ import { errorMessage } from "../error_utils.js";
|
|
|
3
3
|
import { resolveSessionForTool, mergeSessionResolutionMetadata } from './session_resolution.js';
|
|
4
4
|
import { ok, err } from './types.js';
|
|
5
5
|
import { findUniqueSubstringMatch } from '@usejunior/docx-core';
|
|
6
|
+
import { preflightAiRevisionMutation } from './ai_revision_guard.js';
|
|
7
|
+
const COMMENT_TOUCHED_CONTEXT = {
|
|
8
|
+
relationshipParts: ['word/_rels/document.xml.rels'],
|
|
9
|
+
sideParts: ['word/comments.xml', 'word/commentsExtended.xml', 'word/people.xml'],
|
|
10
|
+
};
|
|
6
11
|
export async function addComment(manager, params) {
|
|
7
12
|
const resolved = await resolveSessionForTool(manager, params, { toolName: 'add_comment' });
|
|
8
13
|
if (!resolved.ok)
|
|
@@ -12,12 +17,17 @@ export async function addComment(manager, params) {
|
|
|
12
17
|
try {
|
|
13
18
|
// Reply mode: parent_comment_id provided
|
|
14
19
|
if (params.parent_comment_id != null) {
|
|
15
|
-
const
|
|
16
|
-
|
|
20
|
+
const parentCommentId = params.parent_comment_id;
|
|
21
|
+
const mutate = (doc, activeCtx) => doc.addCommentReply({
|
|
22
|
+
parentCommentId,
|
|
17
23
|
author: params.author,
|
|
18
24
|
text: params.text,
|
|
19
25
|
initials: params.initials,
|
|
20
|
-
},
|
|
26
|
+
}, activeCtx);
|
|
27
|
+
const revisionPreflight = await preflightAiRevisionMutation(session, ctx, async (doc, activeCtx) => { await mutate(doc, activeCtx); }, COMMENT_TOUCHED_CONTEXT);
|
|
28
|
+
if (revisionPreflight)
|
|
29
|
+
return revisionPreflight;
|
|
30
|
+
const result = await mutate(session.doc, ctx);
|
|
21
31
|
manager.markEdited(session);
|
|
22
32
|
return ok(mergeSessionResolutionMetadata({
|
|
23
33
|
comment_id: result.commentId,
|
|
@@ -55,14 +65,18 @@ export async function addComment(manager, params) {
|
|
|
55
65
|
const paraText = session.doc.getParagraphTextById(pid) ?? '';
|
|
56
66
|
end = paraText.length;
|
|
57
67
|
}
|
|
58
|
-
const
|
|
68
|
+
const mutate = (doc, activeCtx) => doc.addComment({
|
|
59
69
|
paragraphId: pid,
|
|
60
70
|
start,
|
|
61
71
|
end,
|
|
62
72
|
author: params.author,
|
|
63
73
|
text: params.text,
|
|
64
74
|
initials: params.initials,
|
|
65
|
-
},
|
|
75
|
+
}, activeCtx);
|
|
76
|
+
const revisionPreflight = await preflightAiRevisionMutation(session, ctx, async (doc, activeCtx) => { await mutate(doc, activeCtx); }, COMMENT_TOUCHED_CONTEXT);
|
|
77
|
+
if (revisionPreflight)
|
|
78
|
+
return revisionPreflight;
|
|
79
|
+
const result = await mutate(session.doc, ctx);
|
|
66
80
|
manager.markEdited(session);
|
|
67
81
|
return ok(mergeSessionResolutionMetadata({
|
|
68
82
|
comment_id: result.commentId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add_comment.js","sourceRoot":"","sources":["../../src/tools/add_comment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrF,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;AACxD,OAAO,
|
|
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;AASxD,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,CAsDvB"}
|
|
@@ -2,6 +2,11 @@ import { getRevisionContextForSession } from '../session/manager.js';
|
|
|
2
2
|
import { errorMessage } from "../error_utils.js";
|
|
3
3
|
import { resolveSessionForTool, mergeSessionResolutionMetadata } from './session_resolution.js';
|
|
4
4
|
import { ok, err } from './types.js';
|
|
5
|
+
import { preflightAiRevisionMutation } from './ai_revision_guard.js';
|
|
6
|
+
const FOOTNOTE_TOUCHED_CONTEXT = {
|
|
7
|
+
relationshipParts: ['word/_rels/document.xml.rels'],
|
|
8
|
+
sideParts: ['word/footnotes.xml'],
|
|
9
|
+
};
|
|
5
10
|
export async function addFootnote(manager, params) {
|
|
6
11
|
const resolved = await resolveSessionForTool(manager, params, { toolName: 'add_footnote' });
|
|
7
12
|
if (!resolved.ok)
|
|
@@ -15,16 +20,21 @@ export async function addFootnote(manager, params) {
|
|
|
15
20
|
return err('MISSING_PARAMETER', 'text is required.', 'Provide the footnote body text.');
|
|
16
21
|
}
|
|
17
22
|
const pid = params.target_paragraph_id;
|
|
23
|
+
const text = params.text;
|
|
18
24
|
const pEl = session.doc.getParagraphElementById(pid);
|
|
19
25
|
if (!pEl) {
|
|
20
26
|
return err('ANCHOR_NOT_FOUND', `Paragraph ID ${pid} not found in document`, 'Use grep or read_file to find valid paragraph IDs.');
|
|
21
27
|
}
|
|
22
28
|
try {
|
|
23
|
-
const
|
|
29
|
+
const mutate = (doc, activeCtx) => doc.addFootnote({
|
|
24
30
|
paragraphId: pid,
|
|
25
31
|
afterText: params.after_text,
|
|
26
|
-
text
|
|
27
|
-
},
|
|
32
|
+
text,
|
|
33
|
+
}, activeCtx);
|
|
34
|
+
const revisionPreflight = await preflightAiRevisionMutation(session, ctx, async (doc, activeCtx) => { await mutate(doc, activeCtx); }, FOOTNOTE_TOUCHED_CONTEXT);
|
|
35
|
+
if (revisionPreflight)
|
|
36
|
+
return revisionPreflight;
|
|
37
|
+
const result = await mutate(session.doc, ctx);
|
|
28
38
|
manager.markEdited(session);
|
|
29
39
|
return ok(mergeSessionResolutionMetadata({
|
|
30
40
|
note_id: result.noteId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add_footnote.js","sourceRoot":"","sources":["../../src/tools/add_footnote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrF,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,MAKC;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;IACvC,MAAM,GAAG,GAAG,MAAM,4BAA4B,CAAC,OAAO,CAAC,CAAC;IAExD,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,
|
|
1
|
+
{"version":3,"file":"add_footnote.js","sourceRoot":"","sources":["../../src/tools/add_footnote.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { DocxDocument, type AiRevisionDiagnostic, type AiRevisionValidationTouchedContext, type RevisionContext } from '@usejunior/docx-core';
|
|
2
|
+
import { type DocxSession } from '../session/manager.js';
|
|
3
|
+
import { type ToolResponse } from './types.js';
|
|
4
|
+
export declare function cloneRevisionContext(ctx: RevisionContext | undefined): RevisionContext | undefined;
|
|
5
|
+
export declare function aiRevisionValidationFailure(diagnostics: {
|
|
6
|
+
errors: AiRevisionDiagnostic[];
|
|
7
|
+
warnings: AiRevisionDiagnostic[];
|
|
8
|
+
}): ToolResponse;
|
|
9
|
+
/**
|
|
10
|
+
* Stable fingerprint for one diagnostic, used to recognize the same finding
|
|
11
|
+
* across two validation passes of the same session document.
|
|
12
|
+
*/
|
|
13
|
+
export declare function aiRevisionDiagnosticKey(d: AiRevisionDiagnostic): string;
|
|
14
|
+
/**
|
|
15
|
+
* Multiset of diagnostic fingerprints. Counts matter: structural diagnostics
|
|
16
|
+
* (field-structure, package invariants) carry no per-instance location, so a
|
|
17
|
+
* plain Set would let N newly-introduced instances hide behind one
|
|
18
|
+
* pre-existing instance of the same finding.
|
|
19
|
+
*/
|
|
20
|
+
export declare function diagnosticCountMap(diagnostics: AiRevisionDiagnostic[]): Map<string, number>;
|
|
21
|
+
/**
|
|
22
|
+
* Splits errors into those exceeding the pre-existing count for their
|
|
23
|
+
* fingerprint (introduced — must fail) and those covered by it (demoted to
|
|
24
|
+
* warnings). Consumes counts so duplicates beyond the baseline count fail.
|
|
25
|
+
*/
|
|
26
|
+
export declare function splitIntroducedDiagnostics(errors: AiRevisionDiagnostic[], preExisting: Map<string, number>): {
|
|
27
|
+
introduced: AiRevisionDiagnostic[];
|
|
28
|
+
demoted: AiRevisionDiagnostic[];
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Error-fingerprint counts already present in the originally-loaded file.
|
|
32
|
+
* Documents arrive from the wild with anomalies (unbalanced fields, odd
|
|
33
|
+
* foreign markup) that no AI operation introduced; those must never
|
|
34
|
+
* hard-fail a write or save.
|
|
35
|
+
*/
|
|
36
|
+
export declare function getAiRevisionBaseline(session: DocxSession): Promise<Map<string, number>>;
|
|
37
|
+
export declare function preflightAiRevisionMutation(session: DocxSession, ctx: RevisionContext | undefined, mutatePreview: (doc: DocxDocument, ctx: RevisionContext | undefined) => Promise<void> | void, touched?: AiRevisionValidationTouchedContext): Promise<ToolResponse | null>;
|
|
38
|
+
//# sourceMappingURL=ai_revision_guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai_revision_guard.d.ts","sourceRoot":"","sources":["../../src/tools/ai_revision_guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,KAAK,oBAAoB,EACzB,KAAK,kCAAkC,EACvC,KAAK,eAAe,EAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AASpD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,GAAG,SAAS,GAAG,eAAe,GAAG,SAAS,CAOlG;AAED,wBAAgB,2BAA2B,CACzC,WAAW,EAAE;IAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAAC,QAAQ,EAAE,oBAAoB,EAAE,CAAA;CAAE,GAChF,YAAY,CASd;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAEvE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAO3F;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,oBAAoB,EAAE,EAC9B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B;IAAE,UAAU,EAAE,oBAAoB,EAAE,CAAC;IAAC,OAAO,EAAE,oBAAoB,EAAE,CAAA;CAAE,CAezE;AAID;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAWxF;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,eAAe,GAAG,SAAS,EAChC,aAAa,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,eAAe,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EAC5F,OAAO,CAAC,EAAE,kCAAkC,GAC3C,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA+B9B"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { DocxDocument, } from '@usejunior/docx-core';
|
|
2
|
+
import { err } from './types.js';
|
|
3
|
+
function cloneRevisionIdState(state) {
|
|
4
|
+
return {
|
|
5
|
+
nextId: state.nextId,
|
|
6
|
+
moveRangeIds: new Map(state.moveRangeIds),
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export function cloneRevisionContext(ctx) {
|
|
10
|
+
if (!ctx)
|
|
11
|
+
return undefined;
|
|
12
|
+
return {
|
|
13
|
+
author: ctx.author,
|
|
14
|
+
date: ctx.date,
|
|
15
|
+
idState: cloneRevisionIdState(ctx.idState),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export function aiRevisionValidationFailure(diagnostics) {
|
|
19
|
+
return {
|
|
20
|
+
...err('AI_REVISION_VALIDATION_FAILED', 'The requested edit would produce invalid AI-authored tracked-change markup.', 'Repair the emitted revision markup before applying this edit.'),
|
|
21
|
+
diagnostics,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Stable fingerprint for one diagnostic, used to recognize the same finding
|
|
26
|
+
* across two validation passes of the same session document.
|
|
27
|
+
*/
|
|
28
|
+
export function aiRevisionDiagnosticKey(d) {
|
|
29
|
+
return [d.code, d.part ?? '', d.element ?? '', d.id ?? '', d.author ?? '', d.message].join('|');
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Multiset of diagnostic fingerprints. Counts matter: structural diagnostics
|
|
33
|
+
* (field-structure, package invariants) carry no per-instance location, so a
|
|
34
|
+
* plain Set would let N newly-introduced instances hide behind one
|
|
35
|
+
* pre-existing instance of the same finding.
|
|
36
|
+
*/
|
|
37
|
+
export function diagnosticCountMap(diagnostics) {
|
|
38
|
+
const counts = new Map();
|
|
39
|
+
for (const d of diagnostics) {
|
|
40
|
+
const key = aiRevisionDiagnosticKey(d);
|
|
41
|
+
counts.set(key, (counts.get(key) ?? 0) + 1);
|
|
42
|
+
}
|
|
43
|
+
return counts;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Splits errors into those exceeding the pre-existing count for their
|
|
47
|
+
* fingerprint (introduced — must fail) and those covered by it (demoted to
|
|
48
|
+
* warnings). Consumes counts so duplicates beyond the baseline count fail.
|
|
49
|
+
*/
|
|
50
|
+
export function splitIntroducedDiagnostics(errors, preExisting) {
|
|
51
|
+
const remaining = new Map(preExisting);
|
|
52
|
+
const introduced = [];
|
|
53
|
+
const demoted = [];
|
|
54
|
+
for (const e of errors) {
|
|
55
|
+
const key = aiRevisionDiagnosticKey(e);
|
|
56
|
+
const count = remaining.get(key) ?? 0;
|
|
57
|
+
if (count > 0) {
|
|
58
|
+
remaining.set(key, count - 1);
|
|
59
|
+
demoted.push({ ...e, severity: 'warning' });
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
introduced.push(e);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return { introduced, demoted };
|
|
66
|
+
}
|
|
67
|
+
const sessionBaselineDiagnostics = new WeakMap();
|
|
68
|
+
/**
|
|
69
|
+
* Error-fingerprint counts already present in the originally-loaded file.
|
|
70
|
+
* Documents arrive from the wild with anomalies (unbalanced fields, odd
|
|
71
|
+
* foreign markup) that no AI operation introduced; those must never
|
|
72
|
+
* hard-fail a write or save.
|
|
73
|
+
*/
|
|
74
|
+
export function getAiRevisionBaseline(session) {
|
|
75
|
+
let promise = sessionBaselineDiagnostics.get(session);
|
|
76
|
+
if (!promise) {
|
|
77
|
+
promise = (async () => {
|
|
78
|
+
const originalDoc = await DocxDocument.load(session.originalBuffer);
|
|
79
|
+
const validation = await originalDoc.validateAiRevisions(session.aiAuthor ?? '');
|
|
80
|
+
return diagnosticCountMap(validation.errors);
|
|
81
|
+
})();
|
|
82
|
+
sessionBaselineDiagnostics.set(session, promise);
|
|
83
|
+
}
|
|
84
|
+
return promise;
|
|
85
|
+
}
|
|
86
|
+
export async function preflightAiRevisionMutation(session, ctx, mutatePreview, touched) {
|
|
87
|
+
if (!session.aiAuthor)
|
|
88
|
+
return null;
|
|
89
|
+
const snapshot = await session.doc.toBuffer({ cleanBookmarks: false });
|
|
90
|
+
const previewDoc = await DocxDocument.load(snapshot.buffer);
|
|
91
|
+
await mutatePreview(previewDoc, cloneRevisionContext(ctx));
|
|
92
|
+
const validation = await previewDoc.validateAiRevisions(session.aiAuthor, touched);
|
|
93
|
+
if (validation.errors.length === 0)
|
|
94
|
+
return null;
|
|
95
|
+
// AI-attributed errors always fail. Unattributable errors (field structure,
|
|
96
|
+
// package invariants — no w:author to classify by) fail only when this
|
|
97
|
+
// mutation introduced them: documents arrive from the wild with anomalies
|
|
98
|
+
// no AI operation created, and those must not brick every write.
|
|
99
|
+
const attributed = validation.errors.filter((e) => e.author === session.aiAuthor);
|
|
100
|
+
const unattributed = validation.errors.filter((e) => e.author !== session.aiAuthor);
|
|
101
|
+
let introduced = unattributed;
|
|
102
|
+
let demoted = [];
|
|
103
|
+
if (unattributed.length > 0) {
|
|
104
|
+
const preMutation = await session.doc.validateAiRevisions(session.aiAuthor, touched);
|
|
105
|
+
({ introduced, demoted } = splitIntroducedDiagnostics(unattributed, diagnosticCountMap(preMutation.errors)));
|
|
106
|
+
}
|
|
107
|
+
const failing = [...attributed, ...introduced];
|
|
108
|
+
if (failing.length === 0)
|
|
109
|
+
return null;
|
|
110
|
+
return aiRevisionValidationFailure({
|
|
111
|
+
errors: failing,
|
|
112
|
+
warnings: [...validation.warnings, ...demoted],
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=ai_revision_guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai_revision_guard.js","sourceRoot":"","sources":["../../src/tools/ai_revision_guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { SessionManager } from '../session/manager.js';
|
|
2
2
|
import { type ToolResponse } from './types.js';
|
|
3
|
-
export declare function
|
|
3
|
+
export declare function batchEdit(manager: SessionManager, params: {
|
|
4
4
|
file_path?: string;
|
|
5
5
|
steps?: unknown[];
|
|
6
6
|
plan_file_path?: string;
|
|
7
7
|
}): Promise<ToolResponse>;
|
|
8
|
-
//# sourceMappingURL=
|
|
8
|
+
//# sourceMappingURL=batch_edit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch_edit.d.ts","sourceRoot":"","sources":["../../src/tools/batch_edit.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAgC,MAAM,uBAAuB,CAAC;AAErF,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AA4dxD,wBAAsB,SAAS,CAC7B,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE;IACN,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GACA,OAAO,CAAC,YAAY,CAAC,CA8GvB"}
|