@usejunior/docx-mcp 0.1.2 → 0.3.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.
Files changed (84) hide show
  1. package/README.md +4 -4
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/cli/commands/edit.d.ts +24 -0
  4. package/dist/cli/commands/edit.d.ts.map +1 -0
  5. package/dist/cli/commands/edit.js +145 -0
  6. package/dist/cli/commands/edit.js.map +1 -0
  7. package/dist/cli/flag_parser.d.ts +7 -0
  8. package/dist/cli/flag_parser.d.ts.map +1 -0
  9. package/dist/cli/flag_parser.js +235 -0
  10. package/dist/cli/flag_parser.js.map +1 -0
  11. package/dist/cli/help.d.ts +3 -0
  12. package/dist/cli/help.d.ts.map +1 -0
  13. package/dist/cli/help.js +62 -0
  14. package/dist/cli/help.js.map +1 -0
  15. package/dist/cli/index.d.ts +2 -2
  16. package/dist/cli/index.d.ts.map +1 -1
  17. package/dist/cli/index.js +29 -32
  18. package/dist/cli/index.js.map +1 -1
  19. package/dist/cli/parse_utils.d.ts +7 -0
  20. package/dist/cli/parse_utils.d.ts.map +1 -0
  21. package/dist/cli/parse_utils.js +18 -0
  22. package/dist/cli/parse_utils.js.map +1 -0
  23. package/dist/cli/tool_runner.d.ts +6 -0
  24. package/dist/cli/tool_runner.d.ts.map +1 -0
  25. package/dist/cli/tool_runner.js +17 -0
  26. package/dist/cli/tool_runner.js.map +1 -0
  27. package/dist/conformance/harness.js +7 -7
  28. package/dist/conformance/harness.js.map +1 -1
  29. package/dist/server.d.ts +5 -5
  30. package/dist/server.js +8 -8
  31. package/dist/server.js.map +1 -1
  32. package/dist/session/manager.d.ts +20 -6
  33. package/dist/session/manager.d.ts.map +1 -1
  34. package/dist/session/manager.js +28 -6
  35. package/dist/session/manager.js.map +1 -1
  36. package/dist/tool_catalog.d.ts +29 -22
  37. package/dist/tool_catalog.d.ts.map +1 -1
  38. package/dist/tool_catalog.js +23 -17
  39. package/dist/tool_catalog.js.map +1 -1
  40. package/dist/tools/clear_formatting.d.ts +14 -0
  41. package/dist/tools/clear_formatting.d.ts.map +1 -0
  42. package/dist/tools/clear_formatting.js +94 -0
  43. package/dist/tools/clear_formatting.js.map +1 -0
  44. package/dist/tools/get_session_status.js +3 -3
  45. package/dist/tools/get_session_status.js.map +1 -1
  46. package/dist/tools/grep.d.ts.map +1 -1
  47. package/dist/tools/grep.js +8 -1
  48. package/dist/tools/grep.js.map +1 -1
  49. package/dist/tools/insert_paragraph.d.ts +1 -0
  50. package/dist/tools/insert_paragraph.d.ts.map +1 -1
  51. package/dist/tools/insert_paragraph.js +61 -397
  52. package/dist/tools/insert_paragraph.js.map +1 -1
  53. package/dist/tools/open_document.d.ts.map +1 -1
  54. package/dist/tools/open_document.js +9 -22
  55. package/dist/tools/open_document.js.map +1 -1
  56. package/dist/tools/pagination.d.ts +9 -0
  57. package/dist/tools/pagination.d.ts.map +1 -0
  58. package/dist/tools/pagination.js +16 -0
  59. package/dist/tools/pagination.js.map +1 -0
  60. package/dist/tools/read_file.d.ts.map +1 -1
  61. package/dist/tools/read_file.js +96 -17
  62. package/dist/tools/read_file.js.map +1 -1
  63. package/dist/tools/replace_text.d.ts +18 -0
  64. package/dist/tools/replace_text.d.ts.map +1 -1
  65. package/dist/tools/replace_text.js +129 -517
  66. package/dist/tools/replace_text.js.map +1 -1
  67. package/dist/tools/{download.d.ts → save.d.ts} +4 -4
  68. package/dist/tools/save.d.ts.map +1 -0
  69. package/dist/tools/{download.js → save.js} +21 -20
  70. package/dist/tools/save.js.map +1 -0
  71. package/dist/tools/session_resolution.d.ts.map +1 -1
  72. package/dist/tools/session_resolution.js +68 -18
  73. package/dist/tools/session_resolution.js.map +1 -1
  74. package/dist/tools/tag_parser.d.ts +28 -0
  75. package/dist/tools/tag_parser.d.ts.map +1 -0
  76. package/dist/tools/tag_parser.js +327 -0
  77. package/dist/tools/tag_parser.js.map +1 -0
  78. package/package.json +2 -2
  79. package/dist/tools/download.d.ts.map +0 -1
  80. package/dist/tools/download.js.map +0 -1
  81. package/dist/tools/duplicate_document.d.ts +0 -8
  82. package/dist/tools/duplicate_document.d.ts.map +0 -1
  83. package/dist/tools/duplicate_document.js +0 -90
  84. package/dist/tools/duplicate_document.js.map +0 -1
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Shared parsing utilities for the CLI layer.
3
+ */
4
+ export function parseBoolean(raw, flagName) {
5
+ const normalized = raw.trim().toLowerCase();
6
+ if (['1', 'true', 'yes', 'on'].includes(normalized))
7
+ return true;
8
+ if (['0', 'false', 'no', 'off'].includes(normalized))
9
+ return false;
10
+ throw new Error(`Invalid value for ${flagName}: ${raw}. Use true or false.`);
11
+ }
12
+ export function toSnakeCase(kebab) {
13
+ return kebab.replace(/-/g, '_');
14
+ }
15
+ export function toKebabCase(snake) {
16
+ return snake.replace(/_/g, '-');
17
+ }
18
+ //# sourceMappingURL=parse_utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse_utils.js","sourceRoot":"","sources":["../../src/cli/parse_utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,QAAgB;IACxD,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACjE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACnE,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,KAAK,GAAG,sBAAsB,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export interface ToolRunnerIO {
2
+ write: (line: string) => void;
3
+ writeError: (line: string) => void;
4
+ }
5
+ export declare function runToolCommand(toolName: string, args: Record<string, unknown>, opts: ToolRunnerIO): Promise<void>;
6
+ //# sourceMappingURL=tool_runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool_runner.d.ts","sourceRoot":"","sources":["../../src/cli/tool_runner.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CAaf"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Thin wrapper: creates SessionManager, calls dispatchToolCall, handles output routing.
3
+ */
4
+ import { SessionManager } from '../session/manager.js';
5
+ import { dispatchToolCall } from '../server.js';
6
+ export async function runToolCommand(toolName, args, opts) {
7
+ const mgr = new SessionManager();
8
+ const result = await dispatchToolCall(mgr, toolName, args);
9
+ const json = JSON.stringify(result, null, 2);
10
+ const success = result.success;
11
+ if (success === false) {
12
+ opts.writeError(json);
13
+ throw new Error(`Tool "${toolName}" failed`);
14
+ }
15
+ opts.write(json);
16
+ }
17
+ //# sourceMappingURL=tool_runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool_runner.js","sourceRoot":"","sources":["../../src/cli/tool_runner.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAOhD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,IAA6B,EAC7B,IAAkB;IAElB,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAE3D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAI,MAAgC,CAAC,OAAO,CAAC;IAE1D,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnB,CAAC"}
@@ -8,7 +8,7 @@ import { SessionManager } from '../session/manager.js';
8
8
  import { openDocument } from '../tools/open_document.js';
9
9
  import { readFile } from '../tools/read_file.js';
10
10
  import { replaceText } from '../tools/replace_text.js';
11
- import { download } from '../tools/download.js';
11
+ import { save } from '../tools/save.js';
12
12
  export const CONFORMANCE_REPORT_SCHEMA_VERSION = 'safe-docx-conformance-report/v1';
13
13
  export const FIXTURE_MANIFEST_SCHEMA_VERSION = 'safe-docx-fixture-manifest/v1';
14
14
  function isToolSuccess(response) {
@@ -184,10 +184,10 @@ async function runToonRoundtripCheck(absPath) {
184
184
  }
185
185
  const after = await withTempDir('safe-docx-conformance-roundtrip-', async (outDir) => {
186
186
  const cleanPath = path.join(outDir, 'clean.docx');
187
- const saved = await download(mgr, {
187
+ const saved = await save(mgr, {
188
188
  session_id: String(opened.session_id),
189
189
  save_to_local_path: cleanPath,
190
- download_format: 'clean',
190
+ save_format: 'clean',
191
191
  clean_bookmarks: true,
192
192
  });
193
193
  if (!isToolSuccess(saved)) {
@@ -265,10 +265,10 @@ async function runDeterministicReplaceTextOnce(absPath, edit) {
265
265
  }
266
266
  return withTempDir('safe-docx-conformance-edit-', async (outDir) => {
267
267
  const cleanPath = path.join(outDir, 'edited.docx');
268
- const saved = await download(mgr, {
268
+ const saved = await save(mgr, {
269
269
  session_id: sessionId,
270
270
  save_to_local_path: cleanPath,
271
- download_format: 'clean',
271
+ save_format: 'clean',
272
272
  clean_bookmarks: true,
273
273
  });
274
274
  if (!isToolSuccess(saved)) {
@@ -375,10 +375,10 @@ async function runTrackedChangesCheck(absPath, edit) {
375
375
  }
376
376
  return withTempDir('safe-docx-conformance-tracked-', async (outDir) => {
377
377
  const trackedPath = path.join(outDir, 'tracked.docx');
378
- const tracked = await download(mgr, {
378
+ const tracked = await save(mgr, {
379
379
  session_id: sessionId,
380
380
  save_to_local_path: trackedPath,
381
- download_format: 'tracked',
381
+ save_format: 'tracked',
382
382
  clean_bookmarks: true,
383
383
  tracked_changes_engine: 'atomizer',
384
384
  });
@@ -1 +1 @@
1
- {"version":3,"file":"harness.js","sourceRoot":"","sources":["../../src/conformance/harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harness.js","sourceRoot":"","sources":["../../src/conformance/harness.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { SessionManager } from './session/manager.js';
2
2
  export declare const MCP_TRANSPORT: "stdio";
3
3
  export declare const MCP_TOOLS: {
4
- name: "read_file" | "grep" | "init_plan" | "merge_plans" | "apply_plan" | "replace_text" | "insert_paragraph" | "download" | "format_layout" | "accept_changes" | "has_tracked_changes" | "get_session_status" | "clear_session" | "duplicate_document" | "add_comment" | "get_comments" | "delete_comment" | "compare_documents" | "get_footnotes" | "add_footnote" | "update_footnote" | "delete_footnote" | "extract_revisions";
5
- description: "Read document content with paragraph IDs. Accepts session_id or file_path." | "Search paragraphs with regex. Accepts session_id or file_path." | "Initialize revision-bound context metadata for coordinated multi-agent planning. Accepts session_id or file_path." | "Deterministically merge multiple sub-agent plans and detect hard conflicts before apply." | "Validate and apply a batch of edit steps (replace_text, insert_paragraph) to a session document in one call. Validates all steps first; applies only if all pass. Accepts inline steps or a plan_file_path. Compatible with merge_plans output." | "Replace text in a paragraph by _bk_* id, preserving formatting. Accepts session_id or file_path." | "Insert a paragraph before/after an anchor paragraph by _bk_* id. Accepts session_id or file_path." | "Save clean and/or tracked changes output back to the user filesystem. Defaults to both clean and tracked outputs when no format override is provided. Accepts session_id or file_path." | "Apply deterministic OOXML layout controls (paragraph spacing, table row height, cell padding). Accepts session_id or file_path." | "Accept all tracked changes in the document body, producing a clean document with no revision markup. Returns acceptance stats." | "Check whether the document body contains tracked-change markers (insertions, deletions, moves, and property-change records). Read-only." | "Get session metadata. Accepts session_id or file_path." | "Clear one session, all sessions for a file path, or all sessions with explicit confirmation." | "Duplicate a source .docx and auto-open a fresh editing session for the duplicate." | "Add a comment or threaded reply to a document. Provide target_paragraph_id + anchor_text for root comments, or parent_comment_id for replies." | "Get all comments from the document with IDs, authors, dates, text, and anchored paragraph IDs. Includes threaded replies. Read-only." | "Delete a comment and all its threaded replies from the document. Cascade-deletes all descendants." | "Compare two DOCX documents and produce a tracked-changes output document. Provide original_file_path + revised_file_path for standalone comparison, or session_id/file_path to compare session edits against the original." | "Get all footnotes from the document with IDs, display numbers, text, and anchored paragraph IDs. Read-only." | "Add a footnote anchored to a paragraph. Optionally position the reference after specific text using after_text. Note: [^N] markers in read_file output are display-only and not part of the editable text used by replace_text." | "Update the text content of an existing footnote." | "Delete a footnote and its reference from the document." | "Extract tracked changes as structured JSON with before/after text per paragraph, revision details, and comments. Supports pagination via offset and limit. Read-only - does not modify the document.";
4
+ name: "read_file" | "grep" | "init_plan" | "merge_plans" | "apply_plan" | "replace_text" | "insert_paragraph" | "save" | "format_layout" | "accept_changes" | "has_tracked_changes" | "get_session_status" | "clear_session" | "add_comment" | "get_comments" | "delete_comment" | "compare_documents" | "get_footnotes" | "add_footnote" | "update_footnote" | "delete_footnote" | "clear_formatting" | "extract_revisions";
5
+ description: "Read document content. Output is token-limited (~14k tokens) by default with pagination metadata (has_more, next_offset). Use offset/limit to paginate. Accepts session_id or file_path." | "Search paragraphs with regex. Accepts session_id or file_path." | "Initialize revision-bound context metadata for coordinated multi-agent planning. Accepts session_id or file_path." | "Deterministically merge multiple sub-agent plans and detect hard conflicts before apply." | "Validate and apply a batch of edit steps (replace_text, insert_paragraph) to a session document in one call. Validates all steps first; applies only if all pass. Accepts inline steps or a plan_file_path. Compatible with merge_plans output." | "Replace text in a paragraph by _bk_* id, preserving formatting. Accepts session_id or file_path." | "Insert a paragraph before/after an anchor paragraph by _bk_* id. Accepts session_id or file_path." | "Save clean and/or tracked changes output back to the local filesystem. Defaults to both clean and tracked outputs when no format override is provided. Accepts session_id or file_path." | "Apply deterministic OOXML layout controls (paragraph spacing, table row height, cell padding). Accepts session_id or file_path." | "Accept all tracked changes in the document body, producing a clean document with no revision markup. Returns acceptance stats." | "Check whether the document body contains tracked-change markers (insertions, deletions, moves, and property-change records). Read-only." | "Get session metadata. Accepts session_id or file_path." | "Clear one session, all sessions for a file path, or all sessions with explicit confirmation." | "Add a comment or threaded reply to a document. Provide target_paragraph_id + anchor_text for root comments, or parent_comment_id for replies." | "Get all comments from the document with IDs, authors, dates, text, and anchored paragraph IDs. Includes threaded replies. Read-only." | "Delete a comment and all its threaded replies from the document. Cascade-deletes all descendants." | "Compare two DOCX documents and produce a tracked-changes output document. Provide original_file_path + revised_file_path for standalone comparison, or session_id/file_path to compare session edits against the original." | "Get all footnotes from the document with IDs, display numbers, text, and anchored paragraph IDs. Read-only." | "Add a footnote anchored to a paragraph. Optionally position the reference after specific text using after_text. Note: [^N] markers in read_file output are display-only and not part of the editable text used by replace_text." | "Update the text content of an existing footnote." | "Delete a footnote and its reference from the document." | "Clear specific run-level formatting (bold, italic, underline, highlight, color, font) from paragraphs. Accepts session_id or file_path." | "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.";
6
6
  inputSchema: Record<string, unknown>;
7
7
  annotations: {
8
8
  readonly readOnlyHint: true;
@@ -46,9 +46,6 @@ export declare const MCP_TOOLS: {
46
46
  } | {
47
47
  readonly readOnlyHint: false;
48
48
  readonly destructiveHint: true;
49
- } | {
50
- readonly readOnlyHint: false;
51
- readonly destructiveHint: true;
52
49
  } | {
53
50
  readonly readOnlyHint: true;
54
51
  readonly destructiveHint: false;
@@ -70,6 +67,9 @@ export declare const MCP_TOOLS: {
70
67
  } | {
71
68
  readonly readOnlyHint: false;
72
69
  readonly destructiveHint: true;
70
+ } | {
71
+ readonly readOnlyHint: false;
72
+ readonly destructiveHint: true;
73
73
  } | {
74
74
  readonly readOnlyHint: true;
75
75
  readonly destructiveHint: false;
package/dist/server.js CHANGED
@@ -10,11 +10,10 @@ import { replaceText } from './tools/replace_text.js';
10
10
  import { insertParagraph } from './tools/insert_paragraph.js';
11
11
  import { mergePlans } from './tools/merge_plans.js';
12
12
  import { applyPlan } from './tools/apply_plan.js';
13
- import { download } from './tools/download.js';
13
+ import { save } from './tools/save.js';
14
14
  import { getSessionStatus } from './tools/get_session_status.js';
15
15
  import { hasTrackedChanges_tool } from './tools/has_tracked_changes.js';
16
16
  import { clearSession } from './tools/clear_session.js';
17
- import { duplicateDocument } from './tools/duplicate_document.js';
18
17
  import { formatLayout } from './tools/format_layout.js';
19
18
  import { acceptChanges } from './tools/accept_changes.js';
20
19
  import { addComment } from './tools/add_comment.js';
@@ -26,6 +25,7 @@ import { updateFootnote } from './tools/update_footnote.js';
26
25
  import { deleteFootnote } from './tools/delete_footnote.js';
27
26
  import { compareDocuments_tool } from './tools/compare_documents.js';
28
27
  import { extractRevisions_tool } from './tools/extract_revisions.js';
28
+ import { clearFormatting } from './tools/clear_formatting.js';
29
29
  export const MCP_TRANSPORT = 'stdio';
30
30
  export const MCP_TOOLS = SAFE_DOCX_MCP_TOOLS;
31
31
  export async function dispatchToolCall(sessions, name, args) {
@@ -44,8 +44,8 @@ export async function dispatchToolCall(sessions, name, args) {
44
44
  return await replaceText(sessions, args);
45
45
  case 'insert_paragraph':
46
46
  return await insertParagraph(sessions, args);
47
- case 'download':
48
- return await download(sessions, args);
47
+ case 'save':
48
+ return await save(sessions, args);
49
49
  case 'format_layout':
50
50
  return await formatLayout(sessions, args);
51
51
  case 'accept_changes':
@@ -56,8 +56,6 @@ export async function dispatchToolCall(sessions, name, args) {
56
56
  return await getSessionStatus(sessions, args);
57
57
  case 'clear_session':
58
58
  return await clearSession(sessions, args);
59
- case 'duplicate_document':
60
- return await duplicateDocument(sessions, args);
61
59
  case 'add_comment':
62
60
  return await addComment(sessions, args);
63
61
  case 'get_comments':
@@ -74,6 +72,8 @@ export async function dispatchToolCall(sessions, name, args) {
74
72
  return await updateFootnote(sessions, args);
75
73
  case 'delete_footnote':
76
74
  return await deleteFootnote(sessions, args);
75
+ case 'clear_formatting':
76
+ return await clearFormatting(sessions, args);
77
77
  case 'extract_revisions':
78
78
  return await extractRevisions_tool(sessions, args);
79
79
  default:
@@ -82,13 +82,13 @@ export async function dispatchToolCall(sessions, name, args) {
82
82
  error: {
83
83
  code: 'UNKNOWN_TOOL',
84
84
  message: `Unknown tool: ${name}`,
85
- hint: 'Use file-first tools: read_file, grep, replace_text, insert_paragraph, download, get_session_status.',
85
+ hint: 'Use file-first tools: read_file, grep, replace_text, insert_paragraph, save, get_session_status.',
86
86
  },
87
87
  };
88
88
  }
89
89
  }
90
90
  export async function runServer() {
91
- const server = new Server({ name: 'safe-docx', version: '0.1.0' }, {
91
+ const server = new Server({ name: 'safe-docx', version: '0.2.0' }, {
92
92
  capabilities: {
93
93
  tools: {},
94
94
  },
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import { DocxDocument, type NormalizationResult, type ParagraphRevision, type ReconstructionMode, type ReconstructionFallbackReason, type ReconstructionFallbackDiagnostics } from '@usejunior/docx-core';
2
- export type DownloadFormat = 'clean' | 'tracked' | 'both';
2
+ export type SaveFormat = 'clean' | 'tracked' | 'both';
3
3
  export type TrackedChangesStats = {
4
4
  insertions: number;
5
5
  deletions: number;
6
6
  modifications: number;
7
7
  };
8
- export type DownloadCacheEntry = {
8
+ export type SaveCacheEntry = {
9
9
  cacheKey: string;
10
10
  revision: number;
11
- format: DownloadFormat;
11
+ format: SaveFormat;
12
12
  cleanBookmarks: boolean;
13
13
  trackedEngine: 'auto' | 'atomizer' | 'diffmatch';
14
14
  trackedAuthor: string;
@@ -46,7 +46,7 @@ export type Session = {
46
46
  doc: DocxDocument;
47
47
  editCount: number;
48
48
  editRevision: number;
49
- downloadCache: Map<string, DownloadCacheEntry>;
49
+ saveCache: Map<string, SaveCacheEntry>;
50
50
  extractionCache: ExtractionCacheEntry | null;
51
51
  createdAt: Date;
52
52
  lastAccessedAt: Date;
@@ -64,6 +64,20 @@ export declare class SessionManager {
64
64
  normalizePath(inputPath: string): string;
65
65
  private newSessionId;
66
66
  createSession(documentContent: Buffer, filename: string, originalPath: string): Promise<Session>;
67
+ /**
68
+ * Finalize a newly created session by normalizing the document, inserting
69
+ * paragraph bookmarks, and capturing post-normalization comparison baselines.
70
+ *
71
+ * INVARIANT: All production session creation paths must call
72
+ * `finalizeNewSession` before returning a session. `createSession` alone
73
+ * leaves baselines null and is incomplete for tool use.
74
+ */
75
+ finalizeNewSession(session: Session, opts?: {
76
+ skipNormalization?: boolean;
77
+ }): Promise<{
78
+ normalizationStats: NormalizationResult | null;
79
+ paragraphCount: number;
80
+ }>;
67
81
  getSession(sessionId: string): Session;
68
82
  private listActiveSessionsForPath;
69
83
  getMostRecentlyUsedSessionForPath(normalizedPath: string): Session | null;
@@ -73,8 +87,8 @@ export declare class SessionManager {
73
87
  clearAllSessions(): Promise<string[]>;
74
88
  touch(session: Session): void;
75
89
  markEdited(session: Session): void;
76
- getDownloadCache(session: Session, cacheKey: string): DownloadCacheEntry | null;
77
- setDownloadCache(session: Session, entry: DownloadCacheEntry): void;
90
+ getSaveCache(session: Session, cacheKey: string): SaveCacheEntry | null;
91
+ setSaveCache(session: Session, entry: SaveCacheEntry): void;
78
92
  getExtractionCache(session: Session): ExtractionCacheEntry | null;
79
93
  setExtractionCache(session: Session, changes: ParagraphRevision[]): void;
80
94
  saveTo(session: Session, savePath: string, opts?: {
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"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"}
@@ -48,7 +48,7 @@ export class SessionManager {
48
48
  doc,
49
49
  editCount: 0,
50
50
  editRevision: 0,
51
- downloadCache: new Map(),
51
+ saveCache: new Map(),
52
52
  extractionCache: null,
53
53
  createdAt: now,
54
54
  lastAccessedAt: now,
@@ -58,6 +58,28 @@ export class SessionManager {
58
58
  this.sessions.set(sessionId, session);
59
59
  return session;
60
60
  }
61
+ /**
62
+ * Finalize a newly created session by normalizing the document, inserting
63
+ * paragraph bookmarks, and capturing post-normalization comparison baselines.
64
+ *
65
+ * INVARIANT: All production session creation paths must call
66
+ * `finalizeNewSession` before returning a session. `createSession` alone
67
+ * leaves baselines null and is incomplete for tool use.
68
+ */
69
+ async finalizeNewSession(session, opts) {
70
+ if (!opts?.skipNormalization) {
71
+ session.normalizationStats = session.doc.normalize();
72
+ }
73
+ const info = session.doc.insertParagraphBookmarks(`mcp_${session.sessionId}`);
74
+ const [cleanBaseline, bookmarkedBaseline] = await Promise.all([
75
+ session.doc.toBuffer({ cleanBookmarks: true }),
76
+ session.doc.toBuffer({ cleanBookmarks: false }),
77
+ ]);
78
+ session.comparisonBaseline = cleanBaseline.buffer;
79
+ session.comparisonBaselineWithBookmarks = bookmarkedBaseline.buffer;
80
+ this.touch(session);
81
+ return { normalizationStats: session.normalizationStats, paragraphCount: info.paragraphCount };
82
+ }
61
83
  getSession(sessionId) {
62
84
  if (!SessionManager.SESSION_ID_PATTERN.test(sessionId)) {
63
85
  throw new Error(`INVALID_SESSION_ID:${sessionId}`);
@@ -126,14 +148,14 @@ export class SessionManager {
126
148
  session.editRevision += 1;
127
149
  // Any edit creates a new canonical revision; previously generated artifacts
128
150
  // are no longer current and should not be reused by default.
129
- session.downloadCache.clear();
151
+ session.saveCache.clear();
130
152
  session.extractionCache = null;
131
153
  }
132
- getDownloadCache(session, cacheKey) {
133
- return session.downloadCache.get(cacheKey) ?? null;
154
+ getSaveCache(session, cacheKey) {
155
+ return session.saveCache.get(cacheKey) ?? null;
134
156
  }
135
- setDownloadCache(session, entry) {
136
- session.downloadCache.set(entry.cacheKey, entry);
157
+ setSaveCache(session, entry) {
158
+ session.saveCache.set(entry.cacheKey, entry);
137
159
  }
138
160
  getExtractionCache(session) {
139
161
  if (!session.extractionCache)
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  export declare const SAFE_DOCX_TOOL_CATALOG: readonly [{
3
3
  readonly name: "read_file";
4
- readonly description: "Read document content with paragraph IDs. Accepts session_id or file_path.";
4
+ readonly description: "Read document content. Output is token-limited (~14k tokens) by default with pagination metadata (has_more, next_offset). Use offset/limit to paginate. Accepts session_id or file_path.";
5
5
  readonly input: z.ZodObject<{
6
6
  offset: z.ZodOptional<z.ZodNumber>;
7
7
  limit: z.ZodOptional<z.ZodNumber>;
@@ -23,7 +23,8 @@ export declare const SAFE_DOCX_TOOL_CATALOG: readonly [{
23
23
  readonly name: "grep";
24
24
  readonly description: "Search paragraphs with regex. Accepts session_id or file_path.";
25
25
  readonly input: z.ZodObject<{
26
- patterns: z.ZodArray<z.ZodString>;
26
+ patterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
27
+ pattern: z.ZodOptional<z.ZodString>;
27
28
  case_sensitive: z.ZodOptional<z.ZodBoolean>;
28
29
  whole_word: z.ZodOptional<z.ZodBoolean>;
29
30
  max_results: z.ZodOptional<z.ZodNumber>;
@@ -110,12 +111,12 @@ export declare const SAFE_DOCX_TOOL_CATALOG: readonly [{
110
111
  readonly destructiveHint: true;
111
112
  };
112
113
  }, {
113
- readonly name: "download";
114
- readonly description: "Save clean and/or tracked changes output back to the user filesystem. Defaults to both clean and tracked outputs when no format override is provided. Accepts session_id or file_path.";
114
+ readonly name: "save";
115
+ readonly description: "Save clean and/or tracked changes output back to the local filesystem. Defaults to both clean and tracked outputs when no format override is provided. Accepts session_id or file_path.";
115
116
  readonly input: z.ZodObject<{
116
117
  save_to_local_path: z.ZodString;
117
118
  clean_bookmarks: z.ZodOptional<z.ZodBoolean>;
118
- download_format: z.ZodOptional<z.ZodEnum<{
119
+ save_format: z.ZodOptional<z.ZodEnum<{
119
120
  clean: "clean";
120
121
  tracked: "tracked";
121
122
  both: "both";
@@ -224,18 +225,6 @@ export declare const SAFE_DOCX_TOOL_CATALOG: readonly [{
224
225
  readonly readOnlyHint: false;
225
226
  readonly destructiveHint: true;
226
227
  };
227
- }, {
228
- readonly name: "duplicate_document";
229
- readonly description: "Duplicate a source .docx and auto-open a fresh editing session for the duplicate.";
230
- readonly input: z.ZodObject<{
231
- source_file_path: z.ZodString;
232
- destination_file_path: z.ZodOptional<z.ZodString>;
233
- overwrite: z.ZodOptional<z.ZodBoolean>;
234
- }, z.core.$strip>;
235
- readonly annotations: {
236
- readonly readOnlyHint: false;
237
- readonly destructiveHint: true;
238
- };
239
228
  }, {
240
229
  readonly name: "add_comment";
241
230
  readonly description: "Add a comment or threaded reply to a document. Provide target_paragraph_id + anchor_text for root comments, or parent_comment_id for replies.";
@@ -346,6 +335,24 @@ export declare const SAFE_DOCX_TOOL_CATALOG: readonly [{
346
335
  readonly readOnlyHint: false;
347
336
  readonly destructiveHint: true;
348
337
  };
338
+ }, {
339
+ readonly name: "clear_formatting";
340
+ readonly description: "Clear specific run-level formatting (bold, italic, underline, highlight, color, font) from paragraphs. Accepts session_id or file_path.";
341
+ readonly input: z.ZodObject<{
342
+ paragraph_ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
343
+ clear_highlight: z.ZodOptional<z.ZodBoolean>;
344
+ clear_bold: z.ZodOptional<z.ZodBoolean>;
345
+ clear_italic: z.ZodOptional<z.ZodBoolean>;
346
+ clear_underline: z.ZodOptional<z.ZodBoolean>;
347
+ clear_color: z.ZodOptional<z.ZodBoolean>;
348
+ clear_font: z.ZodOptional<z.ZodBoolean>;
349
+ session_id: z.ZodOptional<z.ZodString>;
350
+ file_path: z.ZodOptional<z.ZodString>;
351
+ }, z.core.$strip>;
352
+ readonly annotations: {
353
+ readonly readOnlyHint: false;
354
+ readonly destructiveHint: true;
355
+ };
349
356
  }, {
350
357
  readonly name: "extract_revisions";
351
358
  readonly description: "Extract tracked changes as structured JSON with before/after text per paragraph, revision details, and comments. Supports pagination via offset and limit. Read-only - does not modify the document.";
@@ -361,8 +368,8 @@ export declare const SAFE_DOCX_TOOL_CATALOG: readonly [{
361
368
  };
362
369
  }];
363
370
  export declare const SAFE_DOCX_MCP_TOOLS: {
364
- name: "read_file" | "grep" | "init_plan" | "merge_plans" | "apply_plan" | "replace_text" | "insert_paragraph" | "download" | "format_layout" | "accept_changes" | "has_tracked_changes" | "get_session_status" | "clear_session" | "duplicate_document" | "add_comment" | "get_comments" | "delete_comment" | "compare_documents" | "get_footnotes" | "add_footnote" | "update_footnote" | "delete_footnote" | "extract_revisions";
365
- description: "Read document content with paragraph IDs. Accepts session_id or file_path." | "Search paragraphs with regex. Accepts session_id or file_path." | "Initialize revision-bound context metadata for coordinated multi-agent planning. Accepts session_id or file_path." | "Deterministically merge multiple sub-agent plans and detect hard conflicts before apply." | "Validate and apply a batch of edit steps (replace_text, insert_paragraph) to a session document in one call. Validates all steps first; applies only if all pass. Accepts inline steps or a plan_file_path. Compatible with merge_plans output." | "Replace text in a paragraph by _bk_* id, preserving formatting. Accepts session_id or file_path." | "Insert a paragraph before/after an anchor paragraph by _bk_* id. Accepts session_id or file_path." | "Save clean and/or tracked changes output back to the user filesystem. Defaults to both clean and tracked outputs when no format override is provided. Accepts session_id or file_path." | "Apply deterministic OOXML layout controls (paragraph spacing, table row height, cell padding). Accepts session_id or file_path." | "Accept all tracked changes in the document body, producing a clean document with no revision markup. Returns acceptance stats." | "Check whether the document body contains tracked-change markers (insertions, deletions, moves, and property-change records). Read-only." | "Get session metadata. Accepts session_id or file_path." | "Clear one session, all sessions for a file path, or all sessions with explicit confirmation." | "Duplicate a source .docx and auto-open a fresh editing session for the duplicate." | "Add a comment or threaded reply to a document. Provide target_paragraph_id + anchor_text for root comments, or parent_comment_id for replies." | "Get all comments from the document with IDs, authors, dates, text, and anchored paragraph IDs. Includes threaded replies. Read-only." | "Delete a comment and all its threaded replies from the document. Cascade-deletes all descendants." | "Compare two DOCX documents and produce a tracked-changes output document. Provide original_file_path + revised_file_path for standalone comparison, or session_id/file_path to compare session edits against the original." | "Get all footnotes from the document with IDs, display numbers, text, and anchored paragraph IDs. Read-only." | "Add a footnote anchored to a paragraph. Optionally position the reference after specific text using after_text. Note: [^N] markers in read_file output are display-only and not part of the editable text used by replace_text." | "Update the text content of an existing footnote." | "Delete a footnote and its reference from the document." | "Extract tracked changes as structured JSON with before/after text per paragraph, revision details, and comments. Supports pagination via offset and limit. Read-only - does not modify the document.";
371
+ name: "read_file" | "grep" | "init_plan" | "merge_plans" | "apply_plan" | "replace_text" | "insert_paragraph" | "save" | "format_layout" | "accept_changes" | "has_tracked_changes" | "get_session_status" | "clear_session" | "add_comment" | "get_comments" | "delete_comment" | "compare_documents" | "get_footnotes" | "add_footnote" | "update_footnote" | "delete_footnote" | "clear_formatting" | "extract_revisions";
372
+ description: "Read document content. Output is token-limited (~14k tokens) by default with pagination metadata (has_more, next_offset). Use offset/limit to paginate. Accepts session_id or file_path." | "Search paragraphs with regex. Accepts session_id or file_path." | "Initialize revision-bound context metadata for coordinated multi-agent planning. Accepts session_id or file_path." | "Deterministically merge multiple sub-agent plans and detect hard conflicts before apply." | "Validate and apply a batch of edit steps (replace_text, insert_paragraph) to a session document in one call. Validates all steps first; applies only if all pass. Accepts inline steps or a plan_file_path. Compatible with merge_plans output." | "Replace text in a paragraph by _bk_* id, preserving formatting. Accepts session_id or file_path." | "Insert a paragraph before/after an anchor paragraph by _bk_* id. Accepts session_id or file_path." | "Save clean and/or tracked changes output back to the local filesystem. Defaults to both clean and tracked outputs when no format override is provided. Accepts session_id or file_path." | "Apply deterministic OOXML layout controls (paragraph spacing, table row height, cell padding). Accepts session_id or file_path." | "Accept all tracked changes in the document body, producing a clean document with no revision markup. Returns acceptance stats." | "Check whether the document body contains tracked-change markers (insertions, deletions, moves, and property-change records). Read-only." | "Get session metadata. Accepts session_id or file_path." | "Clear one session, all sessions for a file path, or all sessions with explicit confirmation." | "Add a comment or threaded reply to a document. Provide target_paragraph_id + anchor_text for root comments, or parent_comment_id for replies." | "Get all comments from the document with IDs, authors, dates, text, and anchored paragraph IDs. Includes threaded replies. Read-only." | "Delete a comment and all its threaded replies from the document. Cascade-deletes all descendants." | "Compare two DOCX documents and produce a tracked-changes output document. Provide original_file_path + revised_file_path for standalone comparison, or session_id/file_path to compare session edits against the original." | "Get all footnotes from the document with IDs, display numbers, text, and anchored paragraph IDs. Read-only." | "Add a footnote anchored to a paragraph. Optionally position the reference after specific text using after_text. Note: [^N] markers in read_file output are display-only and not part of the editable text used by replace_text." | "Update the text content of an existing footnote." | "Delete a footnote and its reference from the document." | "Clear specific run-level formatting (bold, italic, underline, highlight, color, font) from paragraphs. Accepts session_id or file_path." | "Extract tracked changes as structured JSON with before/after text per paragraph, revision details, and comments. Supports pagination via offset and limit. Read-only - does not modify the document.";
366
373
  inputSchema: Record<string, unknown>;
367
374
  annotations: {
368
375
  readonly readOnlyHint: true;
@@ -406,9 +413,6 @@ export declare const SAFE_DOCX_MCP_TOOLS: {
406
413
  } | {
407
414
  readonly readOnlyHint: false;
408
415
  readonly destructiveHint: true;
409
- } | {
410
- readonly readOnlyHint: false;
411
- readonly destructiveHint: true;
412
416
  } | {
413
417
  readonly readOnlyHint: true;
414
418
  readonly destructiveHint: false;
@@ -430,6 +434,9 @@ export declare const SAFE_DOCX_MCP_TOOLS: {
430
434
  } | {
431
435
  readonly readOnlyHint: false;
432
436
  readonly destructiveHint: true;
437
+ } | {
438
+ readonly readOnlyHint: false;
439
+ readonly destructiveHint: true;
433
440
  } | {
434
441
  readonly readOnlyHint: true;
435
442
  readonly destructiveHint: false;