@adeu/mcp-server 1.18.2 → 1.18.4
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/dist/index.js +4 -4
- package/package.json +2 -2
- package/src/parity_live.test.ts +8 -3
package/dist/index.js
CHANGED
|
@@ -1289,8 +1289,8 @@ var READ_DOCX_TAIL = "Modes:\n- 'full' (default): paginated body content. Use pa
|
|
|
1289
1289
|
var PROCESS_BATCH_COMMON_DESC = "Applies a batch of edits and review actions to a DOCX.\n\nAll changes evaluate against the ORIGINAL document state \u2014 do not chain dependent edits within one batch (e.g. rename X to Y, then modify Y). Apply the rename first, then send a second batch.\n\n";
|
|
1290
1290
|
var PROCESS_BATCH_OPERATIONS_DESC = "Each item in `changes` must specify a `type`:\n1. 'modify': Search-and-replace. By default `target_text` must match uniquely (`match_mode`:'strict') \u2014 add surrounding context to disambiguate, or set `match_mode`:'first'/'all' to edit the first or every occurrence. Set `regex`:true to treat `target_text` as a regular expression (capture groups available in `new_text` as $1, $2\u2026). `new_text` supports Markdown: '# Heading 1' through '###### Heading 6', '**bold**', '_italic_', and '\\n\\n' to split into multiple paragraphs. Empty `new_text` deletes. Do NOT write CriticMarkup tags ({++, {--, {>>) manually \u2014 use the `comment` parameter for comments.\n \u2022 EMPTY/FORM TABLE CELLS: a blank cell has no text to match. `read_docx` renders each cell with a trailing `{#cell:<id>}` anchor \u2014 to fill a blank cell, set `target_text` to that exact anchor (e.g. '{#cell:0000005E}') and put the value in `new_text`. Do NOT try to match the pipe layout ('Date | | |'); the pipes are display separators, not editable text.\n2. 'accept' / 'reject': Finalize or revert a tracked change by `target_id` (e.g. 'Chg:12').\n3. 'reply': Reply to a comment by `target_id` (e.g. 'Com:5') with `text`.\n4. 'insert_row' / 'delete_row': Table edits. Disk mode only \u2014 not supported on Live Word canvas.\n\nID VOLATILITY: 'Chg:N' and 'Com:N' shift between document states. Always call `read_docx` immediately before any accept/reject/reply \u2014 do not reuse IDs from earlier in the conversation. The `{#cell:<id>}` anchors are stable (Word-assigned) and safe to reuse across reads.\n\n`author_name` is used for attribution on all tracked changes and comments, in both disk and Live Word modes.";
|
|
1291
1291
|
var DIFF_DOCX_DESC = "Compares two DOCX files and returns a compact `@@ Word Patch @@` diff \u2014 Adeu's token-level, sub-word patch format \u2014 of their text content. Useful for analyzing differences between versions before editing.";
|
|
1292
|
-
var gitSha = "
|
|
1293
|
-
var packageVersion = "1.18.
|
|
1292
|
+
var gitSha = "dc59148";
|
|
1293
|
+
var packageVersion = "1.18.4";
|
|
1294
1294
|
var buildTag = ` [Adeu v${packageVersion}+${gitSha}]`;
|
|
1295
1295
|
var args = process.argv.slice(2);
|
|
1296
1296
|
var scopeIdx = args.indexOf("--scope");
|
|
@@ -1971,8 +1971,8 @@ ${stats.skipped_details.join("\n")}`;
|
|
|
1971
1971
|
async function main() {
|
|
1972
1972
|
const transport = new StdioServerTransport();
|
|
1973
1973
|
await server.connect(transport);
|
|
1974
|
-
const gitSha2 = "
|
|
1975
|
-
const buildTs = "2026-07-
|
|
1974
|
+
const gitSha2 = "dc59148";
|
|
1975
|
+
const buildTs = "2026-07-05T06:17:14.425Z";
|
|
1976
1976
|
console.error(
|
|
1977
1977
|
`Adeu MCP Server (Node.js Engine: ${identifyEngine()}) running on stdio build=${gitSha2}@${buildTs}`
|
|
1978
1978
|
);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adeu/mcp-server",
|
|
3
|
-
"version": "1.18.
|
|
3
|
+
"version": "1.18.4",
|
|
4
4
|
"description": "",
|
|
5
5
|
"mcpName": "ai.adeu/adeu",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"type": "module",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@adeu/core": "^1.18.
|
|
34
|
+
"@adeu/core": "^1.18.4",
|
|
35
35
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
36
36
|
"@modelcontextprotocol/ext-apps": "^1.0.0",
|
|
37
37
|
"zod": "^3.23.8"
|
package/src/parity_live.test.ts
CHANGED
|
@@ -4,6 +4,11 @@ import { spawn, ChildProcess } from "node:child_process";
|
|
|
4
4
|
import { resolve, join } from "node:path";
|
|
5
5
|
import { existsSync, readFileSync } from "node:fs";
|
|
6
6
|
|
|
7
|
+
// Each Python CLI invocation spawns a fresh interpreter costing ~3-5s on
|
|
8
|
+
// Windows even when warm, so tests that shell out to Python need more than
|
|
9
|
+
// vitest's 5s default timeout.
|
|
10
|
+
const PYTHON_PARITY_TIMEOUT_MS = 60_000;
|
|
11
|
+
|
|
7
12
|
describe("Parity Live Server Integration Verification", () => {
|
|
8
13
|
let serverProc: ChildProcess;
|
|
9
14
|
const fixturePath = resolve(
|
|
@@ -112,7 +117,7 @@ describe("Parity Live Server Integration Verification", () => {
|
|
|
112
117
|
expect(res.result.content[0].text).not.toContain("[Debug] build=");
|
|
113
118
|
});
|
|
114
119
|
|
|
115
|
-
it("GAP 2 (Live): process_document_batch modify straddling deleted text returns actionable deletion error", async () => {
|
|
120
|
+
it("GAP 2 (Live): process_document_batch modify straddling deleted text returns actionable deletion error", { timeout: PYTHON_PARITY_TIMEOUT_MS }, async () => {
|
|
116
121
|
const outPath = join(
|
|
117
122
|
resolve(__dirname, "../../../../tmp"),
|
|
118
123
|
`live_gap2_out_${Date.now()}.docx`,
|
|
@@ -197,7 +202,7 @@ describe("Parity Live Server Integration Verification", () => {
|
|
|
197
202
|
}
|
|
198
203
|
});
|
|
199
204
|
|
|
200
|
-
it("GAP 1 (Live): read_docx mode=outline heading count and content parity with Python", async () => {
|
|
205
|
+
it("GAP 1 (Live): read_docx mode=outline heading count and content parity with Python", { timeout: PYTHON_PARITY_TIMEOUT_MS }, async () => {
|
|
201
206
|
const gap1FixturePath = resolve(
|
|
202
207
|
__dirname,
|
|
203
208
|
"../tests/fixtures/gap1_deleted_row_repro.docx",
|
|
@@ -288,7 +293,7 @@ describe("Parity Live Server Integration Verification", () => {
|
|
|
288
293
|
expect(nodeHeadingsDirty).toEqual(pythonHeadingsDirty);
|
|
289
294
|
});
|
|
290
295
|
|
|
291
|
-
it("GAP 1 - Style Def (Live): style-definition outlineLvl on non-heading style classification parity", async () => {
|
|
296
|
+
it("GAP 1 - Style Def (Live): style-definition outlineLvl on non-heading style classification parity", { timeout: PYTHON_PARITY_TIMEOUT_MS }, async () => {
|
|
292
297
|
const gap1FixturePath = resolve(
|
|
293
298
|
__dirname,
|
|
294
299
|
"../tests/fixtures/gap1_minimal_repro.docx",
|