@usejunior/docx-mcp 0.3.1 → 0.6.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/dist/.tsbuildinfo +1 -1
- package/dist/cli/commands/grep.d.ts +15 -0
- package/dist/cli/commands/grep.d.ts.map +1 -0
- package/dist/cli/commands/grep.js +128 -0
- package/dist/cli/commands/grep.js.map +1 -0
- package/dist/cli/flag_parser.js +1 -1
- package/dist/cli/flag_parser.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.d.ts.map +1 -1
- package/dist/cli/index.js +7 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/conformance/harness.d.ts.map +1 -1
- package/dist/conformance/harness.js +10 -11
- package/dist/conformance/harness.js.map +1 -1
- package/dist/gdocs_loader.d.ts +2 -0
- package/dist/gdocs_loader.d.ts.map +1 -0
- package/dist/gdocs_loader.js +14 -0
- package/dist/gdocs_loader.js.map +1 -0
- package/dist/server.d.ts +2 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +68 -7
- package/dist/server.js.map +1 -1
- package/dist/session/manager.d.ts +52 -16
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +140 -56
- package/dist/session/manager.js.map +1 -1
- package/dist/tool_catalog.d.ts +44 -55
- package/dist/tool_catalog.d.ts.map +1 -1
- package/dist/tool_catalog.js +56 -41
- package/dist/tool_catalog.js.map +1 -1
- package/dist/tools/accept_changes.d.ts +0 -1
- package/dist/tools/accept_changes.d.ts.map +1 -1
- package/dist/tools/accept_changes.js +1 -1
- package/dist/tools/accept_changes.js.map +1 -1
- package/dist/tools/add_comment.d.ts +0 -1
- package/dist/tools/add_comment.d.ts.map +1 -1
- package/dist/tools/add_comment.js +2 -2
- package/dist/tools/add_comment.js.map +1 -1
- package/dist/tools/add_footnote.d.ts +0 -1
- package/dist/tools/add_footnote.d.ts.map +1 -1
- package/dist/tools/add_footnote.js +1 -1
- package/dist/tools/add_footnote.js.map +1 -1
- package/dist/tools/apply_plan.d.ts +0 -1
- package/dist/tools/apply_plan.d.ts.map +1 -1
- package/dist/tools/apply_plan.js +6 -6
- package/dist/tools/apply_plan.js.map +1 -1
- package/dist/tools/clear_formatting.d.ts +0 -1
- package/dist/tools/clear_formatting.d.ts.map +1 -1
- package/dist/tools/clear_formatting.js +1 -1
- package/dist/tools/clear_formatting.js.map +1 -1
- package/dist/tools/{clear_session.d.ts → close_file.d.ts} +2 -3
- package/dist/tools/close_file.d.ts.map +1 -0
- package/dist/tools/close_file.js +46 -0
- package/dist/tools/close_file.js.map +1 -0
- package/dist/tools/compare_documents.d.ts +0 -1
- package/dist/tools/compare_documents.d.ts.map +1 -1
- package/dist/tools/compare_documents.js +4 -5
- package/dist/tools/compare_documents.js.map +1 -1
- package/dist/tools/delete_comment.d.ts +0 -1
- package/dist/tools/delete_comment.d.ts.map +1 -1
- package/dist/tools/delete_comment.js +1 -1
- package/dist/tools/delete_comment.js.map +1 -1
- package/dist/tools/delete_footnote.d.ts +0 -1
- package/dist/tools/delete_footnote.d.ts.map +1 -1
- package/dist/tools/delete_footnote.js +1 -1
- package/dist/tools/delete_footnote.js.map +1 -1
- package/dist/tools/extract_revisions.d.ts +0 -1
- package/dist/tools/extract_revisions.d.ts.map +1 -1
- package/dist/tools/extract_revisions.js +1 -1
- package/dist/tools/extract_revisions.js.map +1 -1
- package/dist/tools/format_layout.d.ts +0 -1
- package/dist/tools/format_layout.d.ts.map +1 -1
- package/dist/tools/format_layout.js +1 -1
- package/dist/tools/format_layout.js.map +1 -1
- package/dist/tools/gdocs/close_file.d.ts +4 -0
- package/dist/tools/gdocs/close_file.d.ts.map +1 -0
- package/dist/tools/gdocs/close_file.js +15 -0
- package/dist/tools/gdocs/close_file.js.map +1 -0
- package/dist/tools/gdocs/format_layout.d.ts +14 -0
- package/dist/tools/gdocs/format_layout.d.ts.map +1 -0
- package/dist/tools/gdocs/format_layout.js +88 -0
- package/dist/tools/gdocs/format_layout.js.map +1 -0
- package/dist/tools/gdocs/get_file_status.d.ts +4 -0
- package/dist/tools/gdocs/get_file_status.d.ts.map +1 -0
- package/dist/tools/gdocs/get_file_status.js +22 -0
- package/dist/tools/gdocs/get_file_status.js.map +1 -0
- package/dist/tools/gdocs/grep.d.ts +13 -0
- package/dist/tools/gdocs/grep.d.ts.map +1 -0
- package/dist/tools/gdocs/grep.js +113 -0
- package/dist/tools/gdocs/grep.js.map +1 -0
- package/dist/tools/gdocs/insert_paragraph.d.ts +9 -0
- package/dist/tools/gdocs/insert_paragraph.d.ts.map +1 -0
- package/dist/tools/gdocs/insert_paragraph.js +35 -0
- package/dist/tools/gdocs/insert_paragraph.js.map +1 -0
- package/dist/tools/gdocs/read_file.d.ts +9 -0
- package/dist/tools/gdocs/read_file.d.ts.map +1 -0
- package/dist/tools/gdocs/read_file.js +116 -0
- package/dist/tools/gdocs/read_file.js.map +1 -0
- package/dist/tools/gdocs/replace_text.d.ts +9 -0
- package/dist/tools/gdocs/replace_text.d.ts.map +1 -0
- package/dist/tools/gdocs/replace_text.js +35 -0
- package/dist/tools/gdocs/replace_text.js.map +1 -0
- package/dist/tools/gdocs/save.d.ts +7 -0
- package/dist/tools/gdocs/save.d.ts.map +1 -0
- package/dist/tools/gdocs/save.js +46 -0
- package/dist/tools/gdocs/save.js.map +1 -0
- package/dist/tools/get_comments.d.ts +0 -1
- package/dist/tools/get_comments.d.ts.map +1 -1
- package/dist/tools/get_comments.js +1 -1
- package/dist/tools/get_comments.js.map +1 -1
- package/dist/tools/get_file_status.d.ts +6 -0
- package/dist/tools/get_file_status.d.ts.map +1 -0
- package/dist/tools/get_file_status.js +40 -0
- package/dist/tools/get_file_status.js.map +1 -0
- package/dist/tools/get_footnotes.d.ts +0 -1
- package/dist/tools/get_footnotes.d.ts.map +1 -1
- package/dist/tools/get_footnotes.js +1 -1
- package/dist/tools/get_footnotes.js.map +1 -1
- package/dist/tools/grep.d.ts +5 -2
- package/dist/tools/grep.d.ts.map +1 -1
- package/dist/tools/grep.js +236 -90
- package/dist/tools/grep.js.map +1 -1
- package/dist/tools/has_tracked_changes.d.ts +0 -1
- package/dist/tools/has_tracked_changes.d.ts.map +1 -1
- package/dist/tools/has_tracked_changes.js +1 -1
- package/dist/tools/has_tracked_changes.js.map +1 -1
- package/dist/tools/init_plan.d.ts +0 -1
- package/dist/tools/init_plan.d.ts.map +1 -1
- package/dist/tools/init_plan.js +2 -1
- package/dist/tools/init_plan.js.map +1 -1
- package/dist/tools/insert_paragraph.d.ts +0 -1
- package/dist/tools/insert_paragraph.d.ts.map +1 -1
- package/dist/tools/insert_paragraph.js +1 -1
- package/dist/tools/insert_paragraph.js.map +1 -1
- package/dist/tools/open_document.d.ts.map +1 -1
- package/dist/tools/open_document.js +1 -2
- package/dist/tools/open_document.js.map +1 -1
- package/dist/tools/provider_guard.d.ts +3 -0
- package/dist/tools/provider_guard.d.ts.map +1 -0
- package/dist/tools/provider_guard.js +12 -0
- package/dist/tools/provider_guard.js.map +1 -0
- package/dist/tools/read_file.d.ts +0 -1
- package/dist/tools/read_file.d.ts.map +1 -1
- package/dist/tools/read_file.js +89 -17
- package/dist/tools/read_file.js.map +1 -1
- package/dist/tools/replace_text.d.ts +0 -1
- package/dist/tools/replace_text.d.ts.map +1 -1
- package/dist/tools/replace_text.js +1 -1
- package/dist/tools/replace_text.js.map +1 -1
- package/dist/tools/save.d.ts +0 -1
- package/dist/tools/save.d.ts.map +1 -1
- package/dist/tools/save.js +3 -4
- package/dist/tools/save.js.map +1 -1
- package/dist/tools/session_resolution.d.ts +16 -4
- package/dist/tools/session_resolution.d.ts.map +1 -1
- package/dist/tools/session_resolution.js +132 -67
- package/dist/tools/session_resolution.js.map +1 -1
- package/dist/tools/update_footnote.d.ts +0 -1
- package/dist/tools/update_footnote.d.ts.map +1 -1
- package/dist/tools/update_footnote.js +1 -1
- package/dist/tools/update_footnote.js.map +1 -1
- package/package.json +11 -3
- package/dist/tools/clear_session.d.ts.map +0 -1
- package/dist/tools/clear_session.js +0 -66
- package/dist/tools/clear_session.js.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import fs from 'node:fs/promises';
|
|
2
|
-
import { errorMessage } from "../error_utils.js";
|
|
3
2
|
import path from 'node:path';
|
|
4
3
|
import { err } from './types.js';
|
|
5
4
|
import { enforceReadPathPolicy } from './path_policy.js';
|
|
6
5
|
import { validateDocxArchiveSafety } from './docx_archive_guard.js';
|
|
6
|
+
import { loadGDocsCore } from '../gdocs_loader.js';
|
|
7
7
|
const MAX_DOCX_BYTES = 50 * 1024 * 1024;
|
|
8
8
|
// ---------------------------------------------------------------------------
|
|
9
9
|
// Concurrent auto-open deduplication
|
|
@@ -17,18 +17,6 @@ function getPendingMap(manager) {
|
|
|
17
17
|
}
|
|
18
18
|
return map;
|
|
19
19
|
}
|
|
20
|
-
function mapSessionLookupError(message, sessionId) {
|
|
21
|
-
if (message.startsWith('INVALID_SESSION_ID:')) {
|
|
22
|
-
return err('INVALID_SESSION_ID', message.replace(/^INVALID_SESSION_ID:/, 'Invalid session id: '), 'Session IDs must match format: ses_[12 alphanumeric chars]');
|
|
23
|
-
}
|
|
24
|
-
if (message.startsWith('SESSION_NOT_FOUND:')) {
|
|
25
|
-
return err('SESSION_NOT_FOUND', `Session not found: ${sessionId}`);
|
|
26
|
-
}
|
|
27
|
-
if (message.startsWith('SESSION_EXPIRED:')) {
|
|
28
|
-
return err('SESSION_EXPIRED', `Session expired: ${sessionId}`);
|
|
29
|
-
}
|
|
30
|
-
return err('SESSION_RESOLUTION_ERROR', `Failed to resolve session: ${message}`);
|
|
31
|
-
}
|
|
32
20
|
export async function validateAndLoadDocxFromPath(manager, filePath) {
|
|
33
21
|
const normalizedPath = manager.normalizePath(filePath);
|
|
34
22
|
const stat = await fs.stat(normalizedPath).catch(() => null);
|
|
@@ -83,61 +71,43 @@ export async function validateAndLoadDocxFromPath(manager, filePath) {
|
|
|
83
71
|
export function mergeSessionResolutionMetadata(extra, metadata) {
|
|
84
72
|
return { ...extra, ...metadata };
|
|
85
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Check if file has been modified externally since the session was opened.
|
|
76
|
+
*/
|
|
77
|
+
async function checkStaleness(session, canonicalPath) {
|
|
78
|
+
try {
|
|
79
|
+
const stat = await fs.stat(canonicalPath);
|
|
80
|
+
if (stat.mtime > session.createdAt) {
|
|
81
|
+
return `File was modified externally at ${stat.mtime.toISOString()} (session opened at ${session.createdAt.toISOString()}). Consider closing and reopening the file.`;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// File may have been deleted — we'll let downstream tool handle that
|
|
86
|
+
}
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
86
89
|
export async function resolveSessionForTool(manager, params, opts) {
|
|
87
|
-
const sessionId = typeof params.session_id === 'string' ? params.session_id.trim() : '';
|
|
88
90
|
const filePath = typeof params.file_path === 'string' ? params.file_path.trim() : '';
|
|
89
|
-
if (!
|
|
91
|
+
if (!filePath) {
|
|
90
92
|
return {
|
|
91
93
|
ok: false,
|
|
92
|
-
response: err('
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
if (sessionId) {
|
|
96
|
-
let session;
|
|
97
|
-
try {
|
|
98
|
-
session = manager.getSession(sessionId);
|
|
99
|
-
}
|
|
100
|
-
catch (e) {
|
|
101
|
-
return {
|
|
102
|
-
ok: false,
|
|
103
|
-
response: mapSessionLookupError(errorMessage(e), sessionId),
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
if (filePath) {
|
|
107
|
-
const requestedPath = manager.normalizePath(filePath);
|
|
108
|
-
const sessionPath = manager.normalizePath(session.originalPath);
|
|
109
|
-
if (requestedPath !== sessionPath) {
|
|
110
|
-
return {
|
|
111
|
-
ok: false,
|
|
112
|
-
response: err('SESSION_FILE_CONFLICT', `session_id '${sessionId}' is bound to '${sessionPath}', but file_path resolves to '${requestedPath}'.`, 'Use either session_id alone, or provide a file_path that matches the same session document.'),
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
manager.touch(session);
|
|
117
|
-
return {
|
|
118
|
-
ok: true,
|
|
119
|
-
session,
|
|
120
|
-
metadata: {
|
|
121
|
-
session_resolution: 'explicit_session',
|
|
122
|
-
resolved_session_id: session.sessionId,
|
|
123
|
-
resolved_file_path: manager.normalizePath(session.originalPath),
|
|
124
|
-
},
|
|
94
|
+
response: err('MISSING_FILE_PATH', `Tool '${opts.toolName}' requires file_path.`, "Provide the path to a .docx file in ~/Downloads/ or ~/Documents/."),
|
|
125
95
|
};
|
|
126
96
|
}
|
|
127
|
-
const
|
|
128
|
-
|
|
97
|
+
const canonicalPath = await manager.canonicalizePath(filePath);
|
|
98
|
+
// Check for existing session (file-path keyed sessions are always DocxSession)
|
|
99
|
+
const existing = manager.getSessionByPath(canonicalPath);
|
|
129
100
|
if (existing) {
|
|
130
101
|
const reuseLastUsed = existing.lastAccessedAt.toISOString();
|
|
131
102
|
manager.touch(existing);
|
|
103
|
+
const staleWarning = await checkStaleness(existing, canonicalPath);
|
|
132
104
|
return {
|
|
133
105
|
ok: true,
|
|
134
106
|
session: existing,
|
|
135
107
|
metadata: {
|
|
136
|
-
session_resolution: '
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
resolved_session_id: existing.sessionId,
|
|
140
|
-
resolved_file_path: normalizedPath,
|
|
108
|
+
session_resolution: 'reused',
|
|
109
|
+
resolved_file_path: canonicalPath,
|
|
110
|
+
...(staleWarning ? { stale_warning: staleWarning } : {}),
|
|
141
111
|
reused_session_context: {
|
|
142
112
|
edit_revision: existing.editRevision,
|
|
143
113
|
edit_count: existing.editCount,
|
|
@@ -149,7 +119,7 @@ export async function resolveSessionForTool(manager, params, opts) {
|
|
|
149
119
|
}
|
|
150
120
|
// --- Concurrent auto-open deduplication ---
|
|
151
121
|
const pendingMap = getPendingMap(manager);
|
|
152
|
-
const pending = pendingMap.get(
|
|
122
|
+
const pending = pendingMap.get(canonicalPath);
|
|
153
123
|
if (pending) {
|
|
154
124
|
// Waiter: another request is already creating a session for this path
|
|
155
125
|
const outcome = await pending;
|
|
@@ -160,12 +130,9 @@ export async function resolveSessionForTool(manager, params, opts) {
|
|
|
160
130
|
session: outcome.session,
|
|
161
131
|
metadata: {
|
|
162
132
|
...outcome.metadata,
|
|
163
|
-
session_resolution: '
|
|
164
|
-
reused_existing_session: true,
|
|
133
|
+
session_resolution: 'reused',
|
|
165
134
|
session_resolution_detail: 'awaited_concurrent_open',
|
|
166
|
-
|
|
167
|
-
resolved_session_id: outcome.session.sessionId,
|
|
168
|
-
resolved_file_path: normalizedPath,
|
|
135
|
+
resolved_file_path: canonicalPath,
|
|
169
136
|
},
|
|
170
137
|
};
|
|
171
138
|
}
|
|
@@ -186,23 +153,121 @@ export async function resolveSessionForTool(manager, params, opts) {
|
|
|
186
153
|
ok: true,
|
|
187
154
|
session,
|
|
188
155
|
metadata: {
|
|
189
|
-
session_resolution: '
|
|
190
|
-
|
|
191
|
-
resolved_file_path: loaded.normalizedPath,
|
|
156
|
+
session_resolution: 'opened',
|
|
157
|
+
resolved_file_path: canonicalPath,
|
|
192
158
|
},
|
|
193
159
|
};
|
|
194
160
|
}
|
|
195
161
|
finally {
|
|
196
162
|
// Identity-guarded cleanup
|
|
197
|
-
if (pendingMap.get(
|
|
198
|
-
pendingMap.delete(
|
|
163
|
+
if (pendingMap.get(canonicalPath) === storedPromise) {
|
|
164
|
+
pendingMap.delete(canonicalPath);
|
|
199
165
|
}
|
|
200
166
|
}
|
|
201
167
|
})();
|
|
202
168
|
storedPromise = outcomePromise;
|
|
203
169
|
// Prevent unhandled rejection warnings for exceptional throws
|
|
204
170
|
outcomePromise.catch(() => { });
|
|
205
|
-
pendingMap.set(
|
|
171
|
+
pendingMap.set(canonicalPath, outcomePromise);
|
|
172
|
+
return await outcomePromise;
|
|
173
|
+
}
|
|
174
|
+
// ---------------------------------------------------------------------------
|
|
175
|
+
// Google Docs session resolution
|
|
176
|
+
// ---------------------------------------------------------------------------
|
|
177
|
+
function extractGoogleDocId(input) {
|
|
178
|
+
const urlMatch = input.match(/\/document\/d\/([a-zA-Z0-9_-]+)/);
|
|
179
|
+
if (urlMatch)
|
|
180
|
+
return urlMatch[1];
|
|
181
|
+
return input.trim();
|
|
182
|
+
}
|
|
183
|
+
const gdocsPendingByManager = new WeakMap();
|
|
184
|
+
function getGDocsPendingMap(manager) {
|
|
185
|
+
let map = gdocsPendingByManager.get(manager);
|
|
186
|
+
if (!map) {
|
|
187
|
+
map = new Map();
|
|
188
|
+
gdocsPendingByManager.set(manager, map);
|
|
189
|
+
}
|
|
190
|
+
return map;
|
|
191
|
+
}
|
|
192
|
+
export async function resolveGDocsSessionForTool(manager, params, opts) {
|
|
193
|
+
const rawId = typeof params.google_doc_id === 'string' ? params.google_doc_id.trim() : '';
|
|
194
|
+
if (!rawId) {
|
|
195
|
+
return {
|
|
196
|
+
ok: false,
|
|
197
|
+
response: err('MISSING_GOOGLE_DOC_ID', `Tool '${opts.toolName}' requires google_doc_id.`, 'Provide a Google Doc ID or URL.'),
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
const docId = extractGoogleDocId(rawId);
|
|
201
|
+
const sessionKey = `gdocs:${docId}`;
|
|
202
|
+
// Check existing session
|
|
203
|
+
const existing = manager.getSessionByPath(sessionKey);
|
|
204
|
+
if (existing && existing.provider === 'gdocs') {
|
|
205
|
+
manager.touch(existing);
|
|
206
|
+
return {
|
|
207
|
+
ok: true,
|
|
208
|
+
session: existing,
|
|
209
|
+
metadata: {
|
|
210
|
+
session_resolution: 'reused',
|
|
211
|
+
google_doc_id: docId,
|
|
212
|
+
reused_session_context: {
|
|
213
|
+
edit_revision: existing.editRevision,
|
|
214
|
+
edit_count: existing.editCount,
|
|
215
|
+
created_at: existing.createdAt.toISOString(),
|
|
216
|
+
last_used_at: existing.lastAccessedAt.toISOString(),
|
|
217
|
+
},
|
|
218
|
+
},
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
// Concurrent dedup
|
|
222
|
+
const pendingMap = getGDocsPendingMap(manager);
|
|
223
|
+
const pending = pendingMap.get(sessionKey);
|
|
224
|
+
if (pending) {
|
|
225
|
+
const outcome = await pending;
|
|
226
|
+
if (outcome.ok) {
|
|
227
|
+
manager.touch(outcome.session);
|
|
228
|
+
return {
|
|
229
|
+
ok: true,
|
|
230
|
+
session: outcome.session,
|
|
231
|
+
metadata: {
|
|
232
|
+
...outcome.metadata,
|
|
233
|
+
session_resolution: 'reused',
|
|
234
|
+
session_resolution_detail: 'awaited_concurrent_open',
|
|
235
|
+
},
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
return outcome;
|
|
239
|
+
}
|
|
240
|
+
let storedPromise;
|
|
241
|
+
const outcomePromise = (async () => {
|
|
242
|
+
try {
|
|
243
|
+
const gdocsCore = await loadGDocsCore();
|
|
244
|
+
if (!gdocsCore) {
|
|
245
|
+
return {
|
|
246
|
+
ok: false,
|
|
247
|
+
response: err('MISSING_DEPENDENCY', 'Google Docs support requires @usejunior/google-docs-core.', 'Run: npm install @usejunior/google-docs-core'),
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
const doc = await gdocsCore.GoogleDocsDocument.load(docId);
|
|
251
|
+
await doc.injectAnchors();
|
|
252
|
+
const session = manager.createGDocsSession(docId, doc);
|
|
253
|
+
return {
|
|
254
|
+
ok: true,
|
|
255
|
+
session,
|
|
256
|
+
metadata: {
|
|
257
|
+
session_resolution: 'opened',
|
|
258
|
+
google_doc_id: docId,
|
|
259
|
+
},
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
finally {
|
|
263
|
+
if (pendingMap.get(sessionKey) === storedPromise) {
|
|
264
|
+
pendingMap.delete(sessionKey);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
})();
|
|
268
|
+
storedPromise = outcomePromise;
|
|
269
|
+
outcomePromise.catch(() => { });
|
|
270
|
+
pendingMap.set(sessionKey, outcomePromise);
|
|
206
271
|
return await outcomePromise;
|
|
207
272
|
}
|
|
208
273
|
//# sourceMappingURL=session_resolution.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session_resolution.js","sourceRoot":"","sources":["../../src/tools/session_resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"session_resolution.js","sourceRoot":"","sources":["../../src/tools/session_resolution.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update_footnote.d.ts","sourceRoot":"","sources":["../../src/tools/update_footnote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAExD,wBAAsB,cAAc,CAClC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE;IACN,
|
|
1
|
+
{"version":3,"file":"update_footnote.d.ts","sourceRoot":"","sources":["../../src/tools/update_footnote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAExD,wBAAsB,cAAc,CAClC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE;IACN,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,OAAO,CAAC,YAAY,CAAC,CAoCvB"}
|
|
@@ -25,7 +25,7 @@ export async function updateFootnote(manager, params) {
|
|
|
25
25
|
manager.markEdited(session);
|
|
26
26
|
return ok(mergeSessionResolutionMetadata({
|
|
27
27
|
note_id: params.note_id,
|
|
28
|
-
|
|
28
|
+
file_path: manager.normalizePath(session.originalPath),
|
|
29
29
|
}, metadata));
|
|
30
30
|
}
|
|
31
31
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update_footnote.js","sourceRoot":"","sources":["../../src/tools/update_footnote.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAE,EAAE,EAAE,GAAG,EAAqB,MAAM,YAAY,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAuB,EACvB,
|
|
1
|
+
{"version":3,"file":"update_footnote.js","sourceRoot":"","sources":["../../src/tools/update_footnote.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAE,EAAE,EAAE,GAAG,EAAqB,MAAM,YAAY,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAuB,EACvB,MAIC;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,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,OAAO,GAAG,CAAC,mBAAmB,EAAE,sBAAsB,EAAE,oCAAoC,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,gCAAgC,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,CAAC;QACH,yCAAyC;QACzC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,GAAG,CAAC,gBAAgB,EAAE,eAAe,MAAM,CAAC,OAAO,YAAY,EAAE,gDAAgD,CAAC,CAAC;QAC5H,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;YACnC,MAAM,EAAE,MAAM,CAAC,OAAO;YACtB,OAAO,EAAE,MAAM,CAAC,QAAQ;SACzB,CAAC,CAAC;QAEH,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,EAAE,CAAC,8BAA8B,CAAC;YACvC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC;SACvD,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChB,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9B,OAAO,GAAG,CAAC,gBAAgB,EAAE,GAAG,EAAE,gDAAgD,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,GAAG,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@usejunior/docx-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Safe Docx MCP server (TypeScript)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
},
|
|
12
12
|
"scripts": {
|
|
13
13
|
"clean:dist": "node -e \"const { rmSync } = require('node:fs'); rmSync('dist', { recursive: true, force: true });\"",
|
|
14
|
-
"build": "npm run build -w @usejunior/docx-core &&npm run clean:dist && tsc -p tsconfig.build.json",
|
|
14
|
+
"build": "npm run build -w @usejunior/docx-core && npm run build -w @usejunior/google-docs-core --if-present &&npm run clean:dist && tsc -p tsconfig.build.json",
|
|
15
15
|
"dev": "tsx watch src/cli.ts",
|
|
16
16
|
"check:spec-coverage": "node scripts/validate_openspec_coverage.mjs",
|
|
17
17
|
"conformance:discover": "tsx scripts/discover_docx_fixtures.ts --out conformance/discovery.report.json",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"lint": "tsc -b --pretty false"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@usejunior/docx-core": "^0.
|
|
29
|
+
"@usejunior/docx-core": "^0.6.0",
|
|
30
30
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
31
31
|
"zod": "^4.3.6"
|
|
32
32
|
},
|
|
@@ -52,6 +52,14 @@
|
|
|
52
52
|
"files": [
|
|
53
53
|
"dist"
|
|
54
54
|
],
|
|
55
|
+
"peerDependencies": {
|
|
56
|
+
"@usejunior/google-docs-core": "^0.6.0"
|
|
57
|
+
},
|
|
58
|
+
"peerDependenciesMeta": {
|
|
59
|
+
"@usejunior/google-docs-core": {
|
|
60
|
+
"optional": true
|
|
61
|
+
}
|
|
62
|
+
},
|
|
55
63
|
"license": "MIT",
|
|
56
64
|
"keywords": [
|
|
57
65
|
"mcp",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clear_session.d.ts","sourceRoot":"","sources":["../../src/tools/clear_session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAExD,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE;IACN,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,OAAO,CAAC,YAAY,CAAC,CAyFvB"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { errorMessage } from "../error_utils.js";
|
|
2
|
-
import { err, ok } from './types.js';
|
|
3
|
-
export async function clearSession(manager, params) {
|
|
4
|
-
try {
|
|
5
|
-
const clearAll = params.clear_all === true;
|
|
6
|
-
const sessionId = typeof params.session_id === 'string' ? params.session_id.trim() : '';
|
|
7
|
-
const filePath = typeof params.file_path === 'string' ? params.file_path.trim() : '';
|
|
8
|
-
const hasSessionId = sessionId.length > 0;
|
|
9
|
-
const hasFilePath = filePath.length > 0;
|
|
10
|
-
if (clearAll) {
|
|
11
|
-
if (params.confirm !== true) {
|
|
12
|
-
return err('CONFIRMATION_REQUIRED', 'clear_all=true requires confirm=true.', 'Re-run with confirm=true to clear every active session.');
|
|
13
|
-
}
|
|
14
|
-
if (hasSessionId || hasFilePath) {
|
|
15
|
-
return err('INVALID_CLEAR_TARGET', 'clear_all=true cannot be combined with session_id or file_path.', 'Use clear_all=true, confirm=true by itself, or remove clear_all and target a session_id/file_path.');
|
|
16
|
-
}
|
|
17
|
-
const clearedIds = await manager.clearAllSessions();
|
|
18
|
-
return ok({
|
|
19
|
-
clear_mode: 'all',
|
|
20
|
-
cleared_session_ids: clearedIds,
|
|
21
|
-
cleared_count: clearedIds.length,
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
if (hasSessionId && hasFilePath) {
|
|
25
|
-
return err('INVALID_CLEAR_TARGET', 'Provide either session_id or file_path, not both.', 'Use session_id to clear one session, or file_path to clear all sessions for one file.');
|
|
26
|
-
}
|
|
27
|
-
if (!hasSessionId && !hasFilePath) {
|
|
28
|
-
return err('INVALID_CLEAR_TARGET', 'clear_session requires session_id, file_path, or clear_all=true.', 'Provide session_id to clear one session, file_path to clear all sessions for a file, or clear_all=true with confirm=true.');
|
|
29
|
-
}
|
|
30
|
-
if (hasSessionId) {
|
|
31
|
-
try {
|
|
32
|
-
await manager.clearSessionById(sessionId);
|
|
33
|
-
}
|
|
34
|
-
catch (e) {
|
|
35
|
-
const msg = errorMessage(e);
|
|
36
|
-
if (msg.startsWith('INVALID_SESSION_ID:')) {
|
|
37
|
-
return err('INVALID_SESSION_ID', msg.replace(/^INVALID_SESSION_ID:/, 'Invalid session id: '), 'Session IDs must match format: ses_[12 alphanumeric chars]');
|
|
38
|
-
}
|
|
39
|
-
if (msg.startsWith('SESSION_NOT_FOUND:')) {
|
|
40
|
-
return err('SESSION_NOT_FOUND', `Session not found: ${sessionId}`);
|
|
41
|
-
}
|
|
42
|
-
if (msg.startsWith('SESSION_EXPIRED:')) {
|
|
43
|
-
return err('SESSION_EXPIRED', `Session expired: ${sessionId}`);
|
|
44
|
-
}
|
|
45
|
-
return err('CLEAR_SESSION_ERROR', `Failed to clear session: ${msg}`);
|
|
46
|
-
}
|
|
47
|
-
return ok({
|
|
48
|
-
clear_mode: 'session_id',
|
|
49
|
-
cleared_session_ids: [sessionId],
|
|
50
|
-
cleared_count: 1,
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
const normalizedPath = manager.normalizePath(filePath);
|
|
54
|
-
const clearedIds = await manager.clearSessionsByPath(normalizedPath);
|
|
55
|
-
return ok({
|
|
56
|
-
clear_mode: 'file_path',
|
|
57
|
-
file_path: normalizedPath,
|
|
58
|
-
cleared_session_ids: clearedIds,
|
|
59
|
-
cleared_count: clearedIds.length,
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
catch (e) {
|
|
63
|
-
return err('CLEAR_SESSION_ERROR', `Failed to clear session(s): ${errorMessage(e)}`);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=clear_session.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clear_session.js","sourceRoot":"","sources":["../../src/tools/clear_session.ts"],"names":[],"mappings":"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"}
|