@opentabs-dev/mcp-server 0.0.34 → 0.0.36
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/adapter-files.d.ts +4 -2
- package/dist/adapter-files.d.ts.map +1 -1
- package/dist/adapter-files.js +39 -24
- package/dist/adapter-files.js.map +1 -1
- package/dist/audit-disk.d.ts +2 -2
- package/dist/audit-disk.d.ts.map +1 -1
- package/dist/audit-disk.js +19 -8
- package/dist/audit-disk.js.map +1 -1
- package/dist/browser-tool-names.d.ts.map +1 -1
- package/dist/browser-tool-names.js +2 -0
- package/dist/browser-tool-names.js.map +1 -1
- package/dist/browser-tools/analyze-site/detect-apis.d.ts +16 -4
- package/dist/browser-tools/analyze-site/detect-apis.d.ts.map +1 -1
- package/dist/browser-tools/analyze-site/detect-apis.js +65 -8
- package/dist/browser-tools/analyze-site/detect-apis.js.map +1 -1
- package/dist/browser-tools/analyze-site/detect-auth.d.ts.map +1 -1
- package/dist/browser-tools/analyze-site/detect-auth.js +10 -5
- package/dist/browser-tools/analyze-site/detect-auth.js.map +1 -1
- package/dist/browser-tools/analyze-site/detect-framework.d.ts +10 -1
- package/dist/browser-tools/analyze-site/detect-framework.d.ts.map +1 -1
- package/dist/browser-tools/analyze-site/detect-framework.js +19 -1
- package/dist/browser-tools/analyze-site/detect-framework.js.map +1 -1
- package/dist/browser-tools/analyze-site/index.d.ts +37 -8
- package/dist/browser-tools/analyze-site/index.d.ts.map +1 -1
- package/dist/browser-tools/analyze-site/index.js +79 -43
- package/dist/browser-tools/analyze-site/index.js.map +1 -1
- package/dist/browser-tools/analyze-site.d.ts.map +1 -1
- package/dist/browser-tools/analyze-site.js +9 -8
- package/dist/browser-tools/analyze-site.js.map +1 -1
- package/dist/browser-tools/disable-network-capture.d.ts.map +1 -1
- package/dist/browser-tools/disable-network-capture.js +8 -1
- package/dist/browser-tools/disable-network-capture.js.map +1 -1
- package/dist/browser-tools/enable-network-capture.d.ts +1 -0
- package/dist/browser-tools/enable-network-capture.d.ts.map +1 -1
- package/dist/browser-tools/enable-network-capture.js +20 -8
- package/dist/browser-tools/enable-network-capture.js.map +1 -1
- package/dist/browser-tools/execute-script.d.ts +3 -3
- package/dist/browser-tools/execute-script.d.ts.map +1 -1
- package/dist/browser-tools/execute-script.js +9 -4
- package/dist/browser-tools/execute-script.js.map +1 -1
- package/dist/browser-tools/export-har.d.ts +15 -0
- package/dist/browser-tools/export-har.d.ts.map +1 -0
- package/dist/browser-tools/export-har.js +196 -0
- package/dist/browser-tools/export-har.js.map +1 -0
- package/dist/browser-tools/extension-get-logs.d.ts +2 -2
- package/dist/browser-tools/get-console-logs.d.ts +2 -2
- package/dist/browser-tools/get-websocket-frames.d.ts +10 -0
- package/dist/browser-tools/get-websocket-frames.d.ts.map +1 -0
- package/dist/browser-tools/get-websocket-frames.js +27 -0
- package/dist/browser-tools/get-websocket-frames.js.map +1 -0
- package/dist/browser-tools/index.d.ts.map +1 -1
- package/dist/browser-tools/index.js +4 -0
- package/dist/browser-tools/index.js.map +1 -1
- package/dist/browser-tools/reload-extension.d.ts.map +1 -1
- package/dist/browser-tools/reload-extension.js +1 -3
- package/dist/browser-tools/reload-extension.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +13 -18
- package/dist/config.js.map +1 -1
- package/dist/dev-proxy.d.ts +12 -0
- package/dist/dev-proxy.d.ts.map +1 -0
- package/dist/dev-proxy.js +229 -0
- package/dist/dev-proxy.js.map +1 -0
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +6 -1
- package/dist/discovery.js.map +1 -1
- package/dist/extension-handlers.d.ts +1 -1
- package/dist/extension-handlers.d.ts.map +1 -1
- package/dist/extension-handlers.js +3 -4
- package/dist/extension-handlers.js.map +1 -1
- package/dist/extension-protocol.d.ts +4 -2
- package/dist/extension-protocol.d.ts.map +1 -1
- package/dist/extension-protocol.js +16 -15
- package/dist/extension-protocol.js.map +1 -1
- package/dist/file-watcher.d.ts +1 -1
- package/dist/file-watcher.d.ts.map +1 -1
- package/dist/file-watcher.js +48 -16
- package/dist/file-watcher.js.map +1 -1
- package/dist/http-routes.d.ts +3 -2
- package/dist/http-routes.d.ts.map +1 -1
- package/dist/http-routes.js +34 -13
- package/dist/http-routes.js.map +1 -1
- package/dist/index.d.ts +12 -22
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -54
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +12 -10
- package/dist/loader.js.map +1 -1
- package/dist/log-buffer.d.ts +3 -1
- package/dist/log-buffer.d.ts.map +1 -1
- package/dist/log-buffer.js +12 -3
- package/dist/log-buffer.js.map +1 -1
- package/dist/logger.js +1 -1
- package/dist/logger.js.map +1 -1
- package/dist/mcp-setup.d.ts +1 -1
- package/dist/mcp-setup.js +2 -2
- package/dist/mcp-tool-dispatch.d.ts +14 -1
- package/dist/mcp-tool-dispatch.d.ts.map +1 -1
- package/dist/mcp-tool-dispatch.js +4 -2
- package/dist/mcp-tool-dispatch.js.map +1 -1
- package/dist/permissions.d.ts.map +1 -1
- package/dist/permissions.js +5 -3
- package/dist/permissions.js.map +1 -1
- package/dist/plugin-management.d.ts +1 -1
- package/dist/plugin-management.d.ts.map +1 -1
- package/dist/plugin-management.js +46 -29
- package/dist/plugin-management.js.map +1 -1
- package/dist/registry.js +5 -5
- package/dist/registry.js.map +1 -1
- package/dist/reload.d.ts +7 -8
- package/dist/reload.d.ts.map +1 -1
- package/dist/reload.js +83 -40
- package/dist/reload.js.map +1 -1
- package/dist/resolver.d.ts +3 -3
- package/dist/resolver.d.ts.map +1 -1
- package/dist/resolver.js +11 -26
- package/dist/resolver.js.map +1 -1
- package/dist/sanitize-error.d.ts.map +1 -1
- package/dist/sanitize-error.js +12 -6
- package/dist/sanitize-error.js.map +1 -1
- package/dist/sdk-version.d.ts.map +1 -1
- package/dist/sdk-version.js +2 -2
- package/dist/sdk-version.js.map +1 -1
- package/dist/server-node.d.ts +9 -13
- package/dist/server-node.d.ts.map +1 -1
- package/dist/server-node.js +55 -18
- package/dist/server-node.js.map +1 -1
- package/dist/shutdown.d.ts +7 -6
- package/dist/shutdown.d.ts.map +1 -1
- package/dist/shutdown.js +14 -10
- package/dist/shutdown.js.map +1 -1
- package/dist/state.d.ts +12 -3
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +22 -7
- package/dist/state.js.map +1 -1
- package/dist/version-check.d.ts +6 -4
- package/dist/version-check.d.ts.map +1 -1
- package/dist/version-check.js +42 -13
- package/dist/version-check.js.map +1 -1
- package/package.json +6 -7
package/dist/permissions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH;;;;;;GAMG;AACH,MAAM,UAAU,GAA6B;IAC3C,qCAAqC;IACrC,iBAAiB,EAAE,SAAS;IAC5B,oBAAoB,EAAE,SAAS;IAC/B,sBAAsB,EAAE,SAAS;IACjC,wBAAwB,EAAE,SAAS;IACnC,uBAAuB,EAAE,SAAS;IAClC,wBAAwB,EAAE,SAAS;IACnC,
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,7 +30,7 @@ interface PluginInstallResult {
|
|
|
30
30
|
* @throws Error with `code` property for structured JSON-RPC error handling:
|
|
31
31
|
* - code -32603: npm search failed
|
|
32
32
|
*/
|
|
33
|
-
declare const searchNpmPlugins: (query?: string) => PluginSearchResult[]
|
|
33
|
+
declare const searchNpmPlugins: (query?: string) => Promise<PluginSearchResult[]>;
|
|
34
34
|
/**
|
|
35
35
|
* Install a plugin from npm globally and trigger server rediscovery.
|
|
36
36
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-management.d.ts","sourceRoot":"","sources":["../src/plugin-management.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAKL,mBAAmB,EACnB,wBAAwB,EAGzB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMhE,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;CACrB;AAMD,UAAU,mBAAmB;IAC3B,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;
|
|
1
|
+
{"version":3,"file":"plugin-management.d.ts","sourceRoot":"","sources":["../src/plugin-management.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAKL,mBAAmB,EACnB,wBAAwB,EAGzB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMhE,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;CACrB;AAMD,UAAU,mBAAmB;IAC3B,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AA6FD;;;;;;GAMG;AACH,QAAA,MAAM,gBAAgB,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,kBAAkB,EAAE,CA0C5E,CAAC;AAMF;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,aAAa,GACjB,MAAM,MAAM,EACZ,OAAO,WAAW,EAClB,UAAU,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,KAC/D,OAAO,CAAC,mBAAmB,CA4C7B,CAAC;AAMF;;GAEG;AACH,UAAU,kBAAkB;IAC1B,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;;;;;GAMG;AACH,QAAA,MAAM,UAAU,GAAI,OAAO,WAAW,EAAE,MAAM,MAAM,KAAG,gBAAgB,GAAG,SAYzE,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,YAAY,GAChB,MAAM,MAAM,EACZ,OAAO,WAAW,EAClB,UAAU,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,KAC/D,OAAO,CAAC,kBAAkB,CAkC5B,CAAC;AA6FF;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,YAAY,GAChB,MAAM,MAAM,EACZ,OAAO,WAAW,EAClB,UAAU,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,KAC/D,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CA8BtB,CAAC;AAMF;;GAEG;AACH,UAAU,kBAAkB;IAC1B,eAAe,EAAE,KAAK,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;CACJ;AAED;;;GAGG;AACH,QAAA,MAAM,kBAAkB,GAAU,OAAO,WAAW,KAAG,OAAO,CAAC,kBAAkB,CAIhF,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;AAChG,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,UAAU,GACX,CAAC"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import { pluginNameFromPackage } from './loader.js';
|
|
9
9
|
import { log } from './logger.js';
|
|
10
10
|
import { atomicWrite, getConfigDir, getConfigPath, OFFICIAL_SCOPE, normalizePluginName, isValidPluginPackageName, resolvePluginPackageCandidates, platformExec, } from '@opentabs-dev/shared';
|
|
11
|
-
import { spawn
|
|
11
|
+
import { spawn } from 'node:child_process';
|
|
12
12
|
import { mkdir, readFile } from 'node:fs/promises';
|
|
13
13
|
import { homedir } from 'node:os';
|
|
14
14
|
import { join, resolve } from 'node:path';
|
|
@@ -19,22 +19,30 @@ import { join, resolve } from 'node:path';
|
|
|
19
19
|
// npm subprocess timeout
|
|
20
20
|
// ---------------------------------------------------------------------------
|
|
21
21
|
const NPM_SUBPROCESS_TIMEOUT_MS = 60_000;
|
|
22
|
-
/** Spawn a process asynchronously and return
|
|
23
|
-
const spawnAsync = (cmd, args) =>
|
|
22
|
+
/** Spawn a process asynchronously and return a result promise and a kill handle. */
|
|
23
|
+
const spawnAsync = (cmd, args) => {
|
|
24
24
|
const child = spawn(cmd, args, { stdio: ['ignore', 'pipe', 'pipe'] });
|
|
25
25
|
const stdoutChunks = [];
|
|
26
26
|
const stderrChunks = [];
|
|
27
27
|
child.stdout.on('data', (chunk) => stdoutChunks.push(chunk));
|
|
28
28
|
child.stderr.on('data', (chunk) => stderrChunks.push(chunk));
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
const promise = new Promise((resolve, reject) => {
|
|
30
|
+
child.on('error', reject);
|
|
31
|
+
child.on('close', code => {
|
|
32
|
+
resolve({
|
|
33
|
+
exitCode: code ?? 1,
|
|
34
|
+
stdout: Buffer.concat(stdoutChunks).toString(),
|
|
35
|
+
stderr: Buffer.concat(stderrChunks).toString(),
|
|
36
|
+
});
|
|
35
37
|
});
|
|
36
38
|
});
|
|
37
|
-
|
|
39
|
+
return {
|
|
40
|
+
promise,
|
|
41
|
+
kill: () => {
|
|
42
|
+
child.kill();
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
};
|
|
38
46
|
/**
|
|
39
47
|
* Run an npm command globally with the given package name.
|
|
40
48
|
* Applies a 60s timeout via Promise.race against the spawnAsync result.
|
|
@@ -42,7 +50,7 @@ const spawnAsync = (cmd, args) => new Promise((resolve, reject) => {
|
|
|
42
50
|
* @throws Error with code -32603 and data { stderr, stdout } on non-zero exit or timeout
|
|
43
51
|
*/
|
|
44
52
|
const runNpmGlobal = async (command, packageName) => {
|
|
45
|
-
const resultPromise = spawnAsync(platformExec('npm'), [command, '-g', packageName]);
|
|
53
|
+
const { promise: resultPromise, kill } = spawnAsync(platformExec('npm'), [command, '-g', packageName]);
|
|
46
54
|
let rejectTimeout;
|
|
47
55
|
const timeoutPromise = new Promise((_, reject) => {
|
|
48
56
|
rejectTimeout = reject;
|
|
@@ -54,6 +62,7 @@ const runNpmGlobal = async (command, packageName) => {
|
|
|
54
62
|
}
|
|
55
63
|
finally {
|
|
56
64
|
clearTimeout(timerId);
|
|
65
|
+
kill();
|
|
57
66
|
}
|
|
58
67
|
if (result.exitCode !== 0) {
|
|
59
68
|
log.error(`npm ${command} failed for ${packageName}: exit code ${result.exitCode}, stderr: ${result.stderr}`);
|
|
@@ -71,14 +80,22 @@ const runNpmGlobal = async (command, packageName) => {
|
|
|
71
80
|
* @throws Error with `code` property for structured JSON-RPC error handling:
|
|
72
81
|
* - code -32603: npm search failed
|
|
73
82
|
*/
|
|
74
|
-
const searchNpmPlugins = (query) => {
|
|
83
|
+
const searchNpmPlugins = async (query) => {
|
|
75
84
|
const searchTerm = query ? `keywords:opentabs-plugin ${query}` : 'keywords:opentabs-plugin';
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
};
|
|
85
|
+
const { promise: resultPromise, kill } = spawnAsync(platformExec('npm'), ['search', searchTerm, '--json']);
|
|
86
|
+
let rejectTimeout;
|
|
87
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
88
|
+
rejectTimeout = reject;
|
|
89
|
+
});
|
|
90
|
+
const timerId = setTimeout(() => rejectTimeout(new Error(`npm search timed out after ${NPM_SUBPROCESS_TIMEOUT_MS}ms`)), NPM_SUBPROCESS_TIMEOUT_MS);
|
|
91
|
+
let result;
|
|
92
|
+
try {
|
|
93
|
+
result = await Promise.race([resultPromise, timeoutPromise]);
|
|
94
|
+
}
|
|
95
|
+
finally {
|
|
96
|
+
clearTimeout(timerId);
|
|
97
|
+
kill();
|
|
98
|
+
}
|
|
82
99
|
if (result.exitCode !== 0) {
|
|
83
100
|
const stderr = result.stderr.trim();
|
|
84
101
|
const error = new Error(stderr || 'npm search failed');
|
|
@@ -224,7 +241,7 @@ const removeLocalPlugin = async (state, pluginName) => {
|
|
|
224
241
|
const configPath = getConfigPath();
|
|
225
242
|
let removed = false;
|
|
226
243
|
const prev = state.configWriteMutex;
|
|
227
|
-
|
|
244
|
+
const writePromise = (async () => {
|
|
228
245
|
await prev;
|
|
229
246
|
await mkdir(configDir, { recursive: true, mode: 0o700 });
|
|
230
247
|
let raw;
|
|
@@ -255,6 +272,7 @@ const removeLocalPlugin = async (state, pluginName) => {
|
|
|
255
272
|
// We try multiple matching strategies:
|
|
256
273
|
// 1. Path ends with the plugin name directory
|
|
257
274
|
// 2. The resolved path's package.json has a matching name
|
|
275
|
+
let found = false;
|
|
258
276
|
const updatedPlugins = [];
|
|
259
277
|
for (const pluginPath of localPlugins) {
|
|
260
278
|
const resolvedPath = pluginPath.startsWith('~/')
|
|
@@ -263,7 +281,7 @@ const removeLocalPlugin = async (state, pluginName) => {
|
|
|
263
281
|
const dirName = resolvedPath.split('/').pop() ?? '';
|
|
264
282
|
// Check if the directory name matches the plugin name
|
|
265
283
|
if (dirName === pluginName || dirName === `opentabs-plugin-${pluginName}`) {
|
|
266
|
-
|
|
284
|
+
found = true;
|
|
267
285
|
continue;
|
|
268
286
|
}
|
|
269
287
|
// Check if the package.json name matches
|
|
@@ -272,7 +290,7 @@ const removeLocalPlugin = async (state, pluginName) => {
|
|
|
272
290
|
const pkgName = typeof pkg.name === 'string' ? pkg.name : '';
|
|
273
291
|
const derivedPkgName = pluginNameFromPackage(pkgName);
|
|
274
292
|
if (derivedPkgName === pluginName || pkgName === pluginName) {
|
|
275
|
-
|
|
293
|
+
found = true;
|
|
276
294
|
continue;
|
|
277
295
|
}
|
|
278
296
|
}
|
|
@@ -281,16 +299,15 @@ const removeLocalPlugin = async (state, pluginName) => {
|
|
|
281
299
|
}
|
|
282
300
|
updatedPlugins.push(pluginPath);
|
|
283
301
|
}
|
|
284
|
-
if (
|
|
302
|
+
if (found) {
|
|
285
303
|
record.localPlugins = updatedPlugins;
|
|
286
304
|
await atomicWrite(configPath, JSON.stringify(record, null, 2) + '\n', 0o600);
|
|
305
|
+
removed = true;
|
|
287
306
|
}
|
|
288
|
-
})()
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
});
|
|
293
|
-
await state.configWriteMutex;
|
|
307
|
+
})();
|
|
308
|
+
// The mutex chain always fulfills so subsequent writes proceed even after a failure.
|
|
309
|
+
state.configWriteMutex = writePromise.catch(() => { });
|
|
310
|
+
await writePromise;
|
|
294
311
|
return removed;
|
|
295
312
|
};
|
|
296
313
|
/**
|
|
@@ -339,7 +356,7 @@ const removePlugin = async (name, state, onReload) => {
|
|
|
339
356
|
*/
|
|
340
357
|
const checkPluginUpdates = async (state) => {
|
|
341
358
|
const { checkForUpdates } = await import('./version-check.js');
|
|
342
|
-
checkForUpdates(state);
|
|
359
|
+
await checkForUpdates(state);
|
|
343
360
|
return { outdatedPlugins: state.outdatedPlugins };
|
|
344
361
|
};
|
|
345
362
|
export { normalizePluginName, isValidPluginPackageName, searchNpmPlugins, installPlugin, updatePlugin, removePlugin, checkPluginUpdates, findPlugin, };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-management.js","sourceRoot":"","sources":["../src/plugin-management.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin-management.js","sourceRoot":"","sources":["../src/plugin-management.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* is constructed and swapped atomically on ServerState.
|
|
8
8
|
*/
|
|
9
9
|
import { log } from './logger.js';
|
|
10
|
-
import { prefixedToolName, prefixedResourceUri, prefixedPromptName } from './state.js';
|
|
10
|
+
import { prefixedToolName, prefixedResourceUri, prefixedPromptName, freezeRegistryMap } from './state.js';
|
|
11
11
|
import AjvValidator from 'ajv';
|
|
12
12
|
/** Map trust tier to a human-readable prefix for MCP tool descriptions */
|
|
13
13
|
const trustTierPrefix = (tier) => {
|
|
@@ -81,10 +81,10 @@ const buildRegistry = (loadedPlugins, failures) => {
|
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
const registry = {
|
|
84
|
-
plugins,
|
|
85
|
-
toolLookup,
|
|
86
|
-
resourceLookup,
|
|
87
|
-
promptLookup,
|
|
84
|
+
plugins: freezeRegistryMap(plugins),
|
|
85
|
+
toolLookup: freezeRegistryMap(toolLookup),
|
|
86
|
+
resourceLookup: freezeRegistryMap(resourceLookup),
|
|
87
|
+
promptLookup: freezeRegistryMap(promptLookup),
|
|
88
88
|
failures,
|
|
89
89
|
};
|
|
90
90
|
return Object.freeze(registry);
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/reload.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* restart, extension re-sync, client notification, and version check.
|
|
7
7
|
*
|
|
8
8
|
* Called on every module evaluation (both first load and hot reload). This
|
|
9
|
-
* separation keeps index.ts as a thin frozen shell (
|
|
9
|
+
* separation keeps index.ts as a thin frozen shell (HTTP server delegate,
|
|
10
10
|
* HotState management, handler definitions) that rarely needs to change,
|
|
11
11
|
* while all reload logic lives here and is freely editable.
|
|
12
12
|
*/
|
|
@@ -30,16 +30,15 @@ interface ReloadResult {
|
|
|
30
30
|
* If discovery fails, the server continues with whatever plugins were in state
|
|
31
31
|
* before the reload attempt.
|
|
32
32
|
*
|
|
33
|
-
* A globalThis-based
|
|
34
|
-
*
|
|
35
|
-
* call waits for it to finish before proceeding.
|
|
33
|
+
* A globalThis-based serialization chain prevents concurrent reloads: each
|
|
34
|
+
* call appends to the chain synchronously, then awaits its predecessor.
|
|
36
35
|
*/
|
|
37
36
|
declare const performReload: (state: ServerState, sessionServers: McpServerInstance[], transports: Map<string, WebStandardStreamableHTTPServerTransport>, isHotReload: boolean) => Promise<ReloadResult>;
|
|
38
37
|
/**
|
|
39
|
-
* Reload config and rediscover plugins at runtime
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
38
|
+
* Reload config and rediscover plugins at runtime via the POST /reload endpoint.
|
|
39
|
+
* Performs the same config/plugin rediscovery as performReload but without the
|
|
40
|
+
* hot reload module re-evaluation aspects (browser tools refresh, session
|
|
41
|
+
* handler re-registration).
|
|
43
42
|
*
|
|
44
43
|
* Returns the number of plugins discovered and the duration in milliseconds.
|
|
45
44
|
*/
|
package/dist/reload.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reload.d.ts","sourceRoot":"","sources":["../src/reload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"reload.d.ts","sourceRoot":"","sources":["../src/reload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAuBH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,+DAA+D,CAAC;AAE9H,oFAAoF;AACpF,UAAU,YAAY;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AA0PD;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,aAAa,GACjB,OAAO,WAAW,EAClB,gBAAgB,iBAAiB,EAAE,EACnC,YAAY,GAAG,CAAC,MAAM,EAAE,wCAAwC,CAAC,EACjE,aAAa,OAAO,KACnB,OAAO,CAAC,YAAY,CAoGtB,CAAC;AAEF;;;;;;;GAOG;AACH,QAAA,MAAM,mBAAmB,GACvB,OAAO,WAAW,EAClB,gBAAgB,iBAAiB,EAAE,EACnC,YAAY,GAAG,CAAC,MAAM,EAAE,wCAAwC,CAAC,KAChE,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAiCjD,CAAC;AAEF,YAAY,EAAE,YAAY,EAAE,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,CAAC"}
|
package/dist/reload.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* restart, extension re-sync, client notification, and version check.
|
|
7
7
|
*
|
|
8
8
|
* Called on every module evaluation (both first load and hot reload). This
|
|
9
|
-
* separation keeps index.ts as a thin frozen shell (
|
|
9
|
+
* separation keeps index.ts as a thin frozen shell (HTTP server delegate,
|
|
10
10
|
* HotState management, handler definitions) that rarely needs to change,
|
|
11
11
|
* while all reload logic lives here and is freely editable.
|
|
12
12
|
*/
|
|
@@ -18,6 +18,7 @@ import { ensureExtensionInstalled } from './extension-install.js';
|
|
|
18
18
|
import { sendSyncFull, sendPluginUpdate, sendExtensionReload, cleanupStaleExecFiles } from './extension-protocol.js';
|
|
19
19
|
import { startConfigWatching, startFileWatching, stopFileWatching } from './file-watcher.js';
|
|
20
20
|
import { sweepStaleSessions } from './http-routes.js';
|
|
21
|
+
import { pruneStaleBuffers } from './log-buffer.js';
|
|
21
22
|
import { log } from './logger.js';
|
|
22
23
|
import { registerMcpHandlers, rebuildCachedBrowserTools, notifyToolListChanged, notifyResourceListChanged, notifyPromptListChanged, } from './mcp-setup.js';
|
|
23
24
|
import { buildRegistry } from './registry.js';
|
|
@@ -25,15 +26,19 @@ import { isCliSkipConfirmation } from './skip-confirmation.js';
|
|
|
25
26
|
import { prefixedToolName } from './state.js';
|
|
26
27
|
import { checkForUpdates } from './version-check.js';
|
|
27
28
|
/**
|
|
28
|
-
* globalThis key for the
|
|
29
|
-
* Stored on globalThis so it survives across
|
|
30
|
-
*
|
|
31
|
-
*
|
|
29
|
+
* globalThis key for the reload serialization chain.
|
|
30
|
+
* Stored on globalThis so it survives across hot reload re-evaluations.
|
|
31
|
+
*
|
|
32
|
+
* Each reload appends to the chain synchronously (before any await), then
|
|
33
|
+
* awaits the previous link. This guarantees serial execution: even if
|
|
34
|
+
* multiple callers enter the function in the same microtask, each one sees
|
|
35
|
+
* the predecessor that was set by the previous synchronous frame, so the
|
|
36
|
+
* await graph forms a strict sequence with no concurrent window.
|
|
32
37
|
*/
|
|
33
|
-
const
|
|
34
|
-
const
|
|
35
|
-
const
|
|
36
|
-
globalThis[
|
|
38
|
+
const RELOAD_CHAIN_KEY = '__opentabs_reload_chain__';
|
|
39
|
+
const getReloadChain = () => globalThis[RELOAD_CHAIN_KEY] ?? Promise.resolve();
|
|
40
|
+
const setReloadChain = (promise) => {
|
|
41
|
+
globalThis[RELOAD_CHAIN_KEY] = promise;
|
|
37
42
|
};
|
|
38
43
|
/**
|
|
39
44
|
* Remove stale entries from state maps after a registry swap.
|
|
@@ -68,6 +73,8 @@ const pruneStaleState = (state) => {
|
|
|
68
73
|
if (prunedToolConfigCount > 0) {
|
|
69
74
|
log.info(`Pruned ${prunedToolConfigCount} stale tool config entry/entries`);
|
|
70
75
|
}
|
|
76
|
+
// Prune stale log buffers for removed plugins
|
|
77
|
+
pruneStaleBuffers(new Set(state.registry.plugins.keys()));
|
|
71
78
|
// Keep only outdatedPlugins entries for still-present plugins
|
|
72
79
|
const npmPkgNames = new Set(Array.from(state.registry.plugins.values())
|
|
73
80
|
.map(p => p.npmPackageName)
|
|
@@ -130,6 +137,12 @@ const reloadCore = async ({ state, sessionServers, transports }) => {
|
|
|
130
137
|
// Always stop existing watchers (cleans up handles from previous hot reload iteration)
|
|
131
138
|
stopFileWatching(state);
|
|
132
139
|
sweepStaleSessions(state, transports, sessionServers);
|
|
140
|
+
// Capture the config.json mtime that was current when the watcher last fired.
|
|
141
|
+
// stopFileWatching() cancels any pending debounce timers, so a config.json write
|
|
142
|
+
// that arrives during the async reload work below (while discoverPlugins runs) will
|
|
143
|
+
// not trigger a follow-up reload via the file watcher. After startConfigWatching()
|
|
144
|
+
// records the current mtime, we compare against this value to detect missed writes.
|
|
145
|
+
const prevConfigMtime = state.fileWatching.configLastSeenMtime;
|
|
133
146
|
let secretChanged = false;
|
|
134
147
|
try {
|
|
135
148
|
const config = await loadConfig();
|
|
@@ -151,13 +164,20 @@ const reloadCore = async ({ state, sessionServers, transports }) => {
|
|
|
151
164
|
log.info(`Config loaded: ${config.localPlugins.length} local plugin path(s), ${Object.keys(config.tools).length} tool setting(s)`);
|
|
152
165
|
rebuildCachedBrowserTools(state);
|
|
153
166
|
pruneStaleState(state);
|
|
154
|
-
|
|
155
|
-
|
|
167
|
+
}
|
|
168
|
+
catch (err) {
|
|
169
|
+
log.error('Reload failed, keeping previous state:', err);
|
|
170
|
+
}
|
|
171
|
+
// Re-read the auth secret so secret rotation takes effect without a restart.
|
|
172
|
+
// Independent of config/plugin discovery — a secret load failure keeps the
|
|
173
|
+
// previous secret without rolling back the config/registry updates above.
|
|
174
|
+
const previousSecret = state.wsSecret;
|
|
175
|
+
try {
|
|
156
176
|
state.wsSecret = await loadSecret();
|
|
157
177
|
secretChanged = previousSecret !== null && state.wsSecret !== previousSecret;
|
|
158
178
|
}
|
|
159
179
|
catch (err) {
|
|
160
|
-
log.error('
|
|
180
|
+
log.error('Failed to load auth secret, keeping previous secret:', err);
|
|
161
181
|
}
|
|
162
182
|
// File watchers, config watching, and mtime polling are dev-only features.
|
|
163
183
|
// Production mode discovers plugins once at startup; restart to reload.
|
|
@@ -166,6 +186,19 @@ const reloadCore = async ({ state, sessionServers, transports }) => {
|
|
|
166
186
|
const failedPaths = state.registry.failures.map(f => f.path);
|
|
167
187
|
startFileWatching(state, callbacks, failedPaths);
|
|
168
188
|
startConfigWatching(state, callbacks);
|
|
189
|
+
// Detect config.json writes that occurred during the async reload above.
|
|
190
|
+
// stopFileWatching() cancelled any pending debounce timers, so those writes
|
|
191
|
+
// never triggered a follow-up reload. startConfigWatching() records the current
|
|
192
|
+
// file mtime, so the mtime poll also cannot detect them (it only sees future changes).
|
|
193
|
+
// Compare the mtime startConfigWatching() just recorded with the pre-reload mtime:
|
|
194
|
+
// if it advanced, config.json was written during the reload and state.toolConfig
|
|
195
|
+
// reflects stale data — trigger a follow-up reload to apply the latest config.
|
|
196
|
+
if (prevConfigMtime !== null &&
|
|
197
|
+
state.fileWatching.configLastSeenMtime !== null &&
|
|
198
|
+
state.fileWatching.configLastSeenMtime > prevConfigMtime) {
|
|
199
|
+
log.info('Config changed during reload — triggering follow-up reload to apply latest changes');
|
|
200
|
+
callbacks.onConfigChanged();
|
|
201
|
+
}
|
|
169
202
|
}
|
|
170
203
|
if (state.extensionWs) {
|
|
171
204
|
await sendSyncFull(state);
|
|
@@ -174,7 +207,14 @@ const reloadCore = async ({ state, sessionServers, transports }) => {
|
|
|
174
207
|
// The 500ms delay lets sync.full flush before the extension restarts.
|
|
175
208
|
if (secretChanged) {
|
|
176
209
|
log.info('Auth secret changed — sending reload signal to extension');
|
|
177
|
-
setTimeout(() =>
|
|
210
|
+
setTimeout(() => {
|
|
211
|
+
try {
|
|
212
|
+
sendExtensionReload(state);
|
|
213
|
+
}
|
|
214
|
+
catch (err) {
|
|
215
|
+
log.warn('Failed to send extension reload signal:', err);
|
|
216
|
+
}
|
|
217
|
+
}, 500);
|
|
178
218
|
}
|
|
179
219
|
}
|
|
180
220
|
};
|
|
@@ -203,23 +243,21 @@ const restartSweepTimer = (state, transports, sessionServers) => {
|
|
|
203
243
|
* If discovery fails, the server continues with whatever plugins were in state
|
|
204
244
|
* before the reload attempt.
|
|
205
245
|
*
|
|
206
|
-
* A globalThis-based
|
|
207
|
-
*
|
|
208
|
-
* call waits for it to finish before proceeding.
|
|
246
|
+
* A globalThis-based serialization chain prevents concurrent reloads: each
|
|
247
|
+
* call appends to the chain synchronously, then awaits its predecessor.
|
|
209
248
|
*/
|
|
210
249
|
const performReload = async (state, sessionServers, transports, isHotReload) => {
|
|
211
|
-
//
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
await existingGuard;
|
|
216
|
-
}
|
|
217
|
-
// Create a deferred promise that other callers can await
|
|
250
|
+
// Serialize reloads: capture the current chain and replace it with a new
|
|
251
|
+
// link before any await. Because getReloadChain() and setReloadChain() run
|
|
252
|
+
// synchronously, concurrent callers each see the previous link and chain
|
|
253
|
+
// after it — no two reloads can run in parallel.
|
|
218
254
|
let resolveGuard;
|
|
219
255
|
const guard = new Promise(resolve => {
|
|
220
256
|
resolveGuard = resolve;
|
|
221
257
|
});
|
|
222
|
-
|
|
258
|
+
const previousLink = getReloadChain();
|
|
259
|
+
setReloadChain(guard);
|
|
260
|
+
await previousLink;
|
|
223
261
|
const startTs = Date.now();
|
|
224
262
|
try {
|
|
225
263
|
// Clear the previous periodic sweep timer — it closes over stale references
|
|
@@ -236,7 +274,14 @@ const performReload = async (state, sessionServers, transports, isHotReload) =>
|
|
|
236
274
|
// sync.full flush first (the extension handles extension.reload by
|
|
237
275
|
// calling chrome.runtime.reload() after its own flush delay).
|
|
238
276
|
log.info('Extension version changed — sending reload signal to connected extension');
|
|
239
|
-
setTimeout(() =>
|
|
277
|
+
setTimeout(() => {
|
|
278
|
+
try {
|
|
279
|
+
sendExtensionReload(state);
|
|
280
|
+
}
|
|
281
|
+
catch (err) {
|
|
282
|
+
log.warn('Failed to send extension reload signal:', err);
|
|
283
|
+
}
|
|
284
|
+
}, 500);
|
|
240
285
|
}
|
|
241
286
|
else {
|
|
242
287
|
// Extension not connected — flag for reload on next connect
|
|
@@ -255,7 +300,7 @@ const performReload = async (state, sessionServers, transports, isHotReload) =>
|
|
|
255
300
|
catch (err) {
|
|
256
301
|
log.warn('Exec file cleanup failed:', err);
|
|
257
302
|
}
|
|
258
|
-
// Update browser tools from the fresh module import (
|
|
303
|
+
// Update browser tools from the fresh module import (hot reload re-evaluates
|
|
259
304
|
// the import chain so browserTools contains the latest definitions)
|
|
260
305
|
state.browserTools = browserTools;
|
|
261
306
|
await reloadCore({ state, sessionServers, transports });
|
|
@@ -281,9 +326,9 @@ const performReload = async (state, sessionServers, transports, isHotReload) =>
|
|
|
281
326
|
notifyPromptListChanged(srv);
|
|
282
327
|
}
|
|
283
328
|
}
|
|
284
|
-
// Version check:
|
|
329
|
+
// Version check: async via `npm view`, best-effort on every reload
|
|
285
330
|
try {
|
|
286
|
-
checkForUpdates(state);
|
|
331
|
+
await checkForUpdates(state);
|
|
287
332
|
}
|
|
288
333
|
catch {
|
|
289
334
|
// Update check is best-effort — failures are not actionable
|
|
@@ -295,29 +340,27 @@ const performReload = async (state, sessionServers, transports, isHotReload) =>
|
|
|
295
340
|
};
|
|
296
341
|
}
|
|
297
342
|
finally {
|
|
298
|
-
//
|
|
343
|
+
// Resolve this link so the next chained reload can proceed
|
|
299
344
|
resolveGuard();
|
|
300
|
-
setReloadGuard(undefined);
|
|
301
345
|
}
|
|
302
346
|
};
|
|
303
347
|
/**
|
|
304
|
-
* Reload config and rediscover plugins at runtime
|
|
305
|
-
*
|
|
306
|
-
*
|
|
307
|
-
*
|
|
348
|
+
* Reload config and rediscover plugins at runtime via the POST /reload endpoint.
|
|
349
|
+
* Performs the same config/plugin rediscovery as performReload but without the
|
|
350
|
+
* hot reload module re-evaluation aspects (browser tools refresh, session
|
|
351
|
+
* handler re-registration).
|
|
308
352
|
*
|
|
309
353
|
* Returns the number of plugins discovered and the duration in milliseconds.
|
|
310
354
|
*/
|
|
311
355
|
const performConfigReload = async (state, sessionServers, transports) => {
|
|
312
|
-
|
|
313
|
-
if (existingGuard) {
|
|
314
|
-
await existingGuard;
|
|
315
|
-
}
|
|
356
|
+
// Serialize reloads using the same chain as performReload (see comment there)
|
|
316
357
|
let resolveGuard;
|
|
317
358
|
const guard = new Promise(resolve => {
|
|
318
359
|
resolveGuard = resolve;
|
|
319
360
|
});
|
|
320
|
-
|
|
361
|
+
const previousLink = getReloadChain();
|
|
362
|
+
setReloadChain(guard);
|
|
363
|
+
await previousLink;
|
|
321
364
|
const startTs = Date.now();
|
|
322
365
|
try {
|
|
323
366
|
// Clear and restart the sweep timer so it uses fresh references
|
|
@@ -335,8 +378,8 @@ const performConfigReload = async (state, sessionServers, transports) => {
|
|
|
335
378
|
return { plugins: state.registry.plugins.size, durationMs: Date.now() - startTs };
|
|
336
379
|
}
|
|
337
380
|
finally {
|
|
381
|
+
// Resolve this link so the next chained reload can proceed
|
|
338
382
|
resolveGuard();
|
|
339
|
-
setReloadGuard(undefined);
|
|
340
383
|
}
|
|
341
384
|
};
|
|
342
385
|
export { performReload, performConfigReload };
|