@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/state.d.ts
CHANGED
|
@@ -4,12 +4,18 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Fields that must survive hot reload (file watcher handles, timers) are stored
|
|
6
6
|
* here rather than at module scope, because module-level variables reset to
|
|
7
|
-
* fresh empty instances on each
|
|
7
|
+
* fresh empty instances on each hot reload re-evaluation.
|
|
8
8
|
*/
|
|
9
9
|
import type { BrowserToolDefinition } from './browser-tools/definition.js';
|
|
10
10
|
import type { PermissionsConfig } from './config.js';
|
|
11
11
|
import type { TabState, TrustTier, ManifestTool, ManifestResource, ManifestPrompt, WsHandle } from '@opentabs-dev/shared';
|
|
12
12
|
import type { FSWatcher } from 'node:fs';
|
|
13
|
+
/**
|
|
14
|
+
* Overrides the mutating methods of an existing Map to throw TypeError, preventing
|
|
15
|
+
* accidental mutation after the registry is built.
|
|
16
|
+
* Object.freeze alone does not block Map.prototype.set (it accesses internal slots).
|
|
17
|
+
*/
|
|
18
|
+
export declare const freezeRegistryMap: <K, V>(map: Map<K, V>) => ReadonlyMap<K, V>;
|
|
13
19
|
/** Timeout for tool dispatch and browser command requests (ms) */
|
|
14
20
|
export declare const DISPATCH_TIMEOUT_MS = 30000;
|
|
15
21
|
/** Absolute upper bound for a single dispatch, even with continuous progress (5 minutes) */
|
|
@@ -19,8 +25,9 @@ export interface FileWatcherEntry {
|
|
|
19
25
|
pluginDir: string;
|
|
20
26
|
pluginName: string;
|
|
21
27
|
watchers: FSWatcher[];
|
|
22
|
-
/** Last-seen mtime (ms) for each watched file path — used by mtime polling fallback
|
|
23
|
-
|
|
28
|
+
/** Last-seen mtime (ms) for each watched file path — used by mtime polling fallback.
|
|
29
|
+
* null means the file did not exist when last recorded (sentinel for detecting creation). */
|
|
30
|
+
lastSeenMtimes: Map<string, number | null>;
|
|
24
31
|
}
|
|
25
32
|
/** Grouped state for file watching (plugin watchers, config watcher, mtime polling) */
|
|
26
33
|
export interface FileWatchingState {
|
|
@@ -270,6 +277,8 @@ export interface ServerState {
|
|
|
270
277
|
endpointCallTimestamps: Map<string, number[]>;
|
|
271
278
|
/** Whether the extension adapters/ directory has been created (cached to avoid repeated mkdir calls) */
|
|
272
279
|
adaptersDirReady: boolean;
|
|
280
|
+
/** Set of tab IDs that currently have active network capture (browser_enable_network_capture called, not yet disabled) */
|
|
281
|
+
activeNetworkCaptures: Set<number>;
|
|
273
282
|
}
|
|
274
283
|
/** Increment when changing the type of an existing ServerState field */
|
|
275
284
|
export declare const STATE_SCHEMA_VERSION = 4;
|
package/dist/state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EACV,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,kEAAkE;AAClE,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAE1C,4FAA4F;AAC5F,eAAO,MAAM,uBAAuB,SAAU,CAAC;AAE/C,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
|
package/dist/state.js
CHANGED
|
@@ -4,9 +4,23 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Fields that must survive hot reload (file watcher handles, timers) are stored
|
|
6
6
|
* here rather than at module scope, because module-level variables reset to
|
|
7
|
-
* fresh empty instances on each
|
|
7
|
+
* fresh empty instances on each hot reload re-evaluation.
|
|
8
8
|
*/
|
|
9
9
|
import { appendAuditEntryToDisk } from './audit-disk.js';
|
|
10
|
+
/**
|
|
11
|
+
* Overrides the mutating methods of an existing Map to throw TypeError, preventing
|
|
12
|
+
* accidental mutation after the registry is built.
|
|
13
|
+
* Object.freeze alone does not block Map.prototype.set (it accesses internal slots).
|
|
14
|
+
*/
|
|
15
|
+
export const freezeRegistryMap = (map) => {
|
|
16
|
+
const throwFn = () => {
|
|
17
|
+
throw new TypeError('Cannot mutate a frozen registry map');
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(map, 'set', { value: throwFn, writable: false, configurable: false });
|
|
20
|
+
Object.defineProperty(map, 'delete', { value: throwFn, writable: false, configurable: false });
|
|
21
|
+
Object.defineProperty(map, 'clear', { value: throwFn, writable: false, configurable: false });
|
|
22
|
+
return Object.freeze(map);
|
|
23
|
+
};
|
|
10
24
|
/** Timeout for tool dispatch and browser command requests (ms) */
|
|
11
25
|
export const DISPATCH_TIMEOUT_MS = 30_000;
|
|
12
26
|
/** Absolute upper bound for a single dispatch, even with continuous progress (5 minutes) */
|
|
@@ -21,7 +35,7 @@ export const isSessionAllowed = (rules, toolName, domain) => rules.some(rule =>
|
|
|
21
35
|
case 'tool_all':
|
|
22
36
|
return rule.tool === toolName;
|
|
23
37
|
case 'domain_all':
|
|
24
|
-
return rule.domain
|
|
38
|
+
return rule.domain === null || rule.domain === domain;
|
|
25
39
|
default:
|
|
26
40
|
return false;
|
|
27
41
|
}
|
|
@@ -42,11 +56,11 @@ export const appendAuditEntry = (state, entry) => {
|
|
|
42
56
|
export const STATE_SCHEMA_VERSION = 4;
|
|
43
57
|
/** Frozen empty registry for initializing ServerState */
|
|
44
58
|
export const EMPTY_REGISTRY = Object.freeze({
|
|
45
|
-
plugins: new Map(),
|
|
46
|
-
toolLookup: new Map(),
|
|
47
|
-
resourceLookup: new Map(),
|
|
48
|
-
promptLookup: new Map(),
|
|
49
|
-
failures: [],
|
|
59
|
+
plugins: freezeRegistryMap(new Map()),
|
|
60
|
+
toolLookup: freezeRegistryMap(new Map()),
|
|
61
|
+
resourceLookup: freezeRegistryMap(new Map()),
|
|
62
|
+
promptLookup: freezeRegistryMap(new Map()),
|
|
63
|
+
failures: Object.freeze([]),
|
|
50
64
|
});
|
|
51
65
|
/**
|
|
52
66
|
* Creates a fresh ServerState with all fields initialized to their defaults.
|
|
@@ -97,6 +111,7 @@ export const createState = () => ({
|
|
|
97
111
|
pendingExtensionReload: false,
|
|
98
112
|
endpointCallTimestamps: new Map(),
|
|
99
113
|
adaptersDirReady: false,
|
|
114
|
+
activeNetworkCaptures: new Set(),
|
|
100
115
|
});
|
|
101
116
|
/** Generate a cryptographically random JSON-RPC request ID */
|
|
102
117
|
export const getNextRequestId = () => crypto.randomUUID();
|
package/dist/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAazD,kEAAkE;AAClE,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAE1C,4FAA4F;AAC5F,MAAM,CAAC,MAAM,uBAAuB,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
|
package/dist/version-check.d.ts
CHANGED
|
@@ -10,11 +10,12 @@ import type { ServerState } from './state.js';
|
|
|
10
10
|
* Query the latest published version of a package via `npm view`.
|
|
11
11
|
* Delegates auth to npm itself, which reads ~/.npmrc for tokens —
|
|
12
12
|
* this handles private/scoped packages without manual token management.
|
|
13
|
+
* Uses async `spawn` to avoid blocking the event loop.
|
|
13
14
|
*
|
|
14
15
|
* @param packageName - npm package name (e.g., 'opentabs-plugin-slack' or '@scope/opentabs-plugin-foo')
|
|
15
16
|
* @returns The latest version string, or null on failure
|
|
16
17
|
*/
|
|
17
|
-
export declare const fetchLatestVersion: (packageName: string) => string | null
|
|
18
|
+
export declare const fetchLatestVersion: (packageName: string) => Promise<string | null>;
|
|
18
19
|
/**
|
|
19
20
|
* Compare two semver version strings (major.minor.patch only).
|
|
20
21
|
* Strips prerelease suffixes (e.g., "1.0.0-beta.1" → [1, 0, 0]) and leading 'v'
|
|
@@ -27,10 +28,11 @@ export declare const fetchLatestVersion: (packageName: string) => string | null;
|
|
|
27
28
|
export declare const isNewer: (current: string, latest: string) => boolean;
|
|
28
29
|
/**
|
|
29
30
|
* Check all npm-installed plugins for newer versions on the registry.
|
|
30
|
-
* Runs `npm view`
|
|
31
|
-
* and stores results in `state.outdatedPlugins`.
|
|
31
|
+
* Runs `npm view` queries concurrently via Promise.allSettled, logs
|
|
32
|
+
* outdated entries, and stores results in `state.outdatedPlugins`.
|
|
33
|
+
* Skips local plugins.
|
|
32
34
|
*
|
|
33
35
|
* @param state - Server state containing the plugin registry and outdatedPlugins target
|
|
34
36
|
*/
|
|
35
|
-
export declare const checkForUpdates: (state: ServerState) => void
|
|
37
|
+
export declare const checkForUpdates: (state: ServerState) => Promise<void>;
|
|
36
38
|
//# sourceMappingURL=version-check.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../src/version-check.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../src/version-check.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,YAAY,CAAC;AAQ9D;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAyCnF,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,KAAG,OAqBzD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAU,OAAO,WAAW,KAAG,OAAO,CAAC,IAAI,CA4DtE,CAAC"}
|
package/dist/version-check.js
CHANGED
|
@@ -6,24 +6,51 @@
|
|
|
6
6
|
* the background and stores results in server state.
|
|
7
7
|
*/
|
|
8
8
|
import { log } from './logger.js';
|
|
9
|
-
import { toErrorMessage } from '@opentabs-dev/shared';
|
|
10
|
-
import {
|
|
9
|
+
import { platformExec, toErrorMessage } from '@opentabs-dev/shared';
|
|
10
|
+
import { spawn } from 'node:child_process';
|
|
11
|
+
/** Timeout for a single `npm view` query (10 seconds). */
|
|
12
|
+
const NPM_VIEW_TIMEOUT_MS = 10_000;
|
|
11
13
|
/**
|
|
12
14
|
* Query the latest published version of a package via `npm view`.
|
|
13
15
|
* Delegates auth to npm itself, which reads ~/.npmrc for tokens —
|
|
14
16
|
* this handles private/scoped packages without manual token management.
|
|
17
|
+
* Uses async `spawn` to avoid blocking the event loop.
|
|
15
18
|
*
|
|
16
19
|
* @param packageName - npm package name (e.g., 'opentabs-plugin-slack' or '@scope/opentabs-plugin-foo')
|
|
17
20
|
* @returns The latest version string, or null on failure
|
|
18
21
|
*/
|
|
19
|
-
export const fetchLatestVersion = (packageName) => {
|
|
22
|
+
export const fetchLatestVersion = async (packageName) => {
|
|
20
23
|
try {
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
const child = spawn(platformExec('npm'), ['view', packageName, 'version'], {
|
|
25
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
26
|
+
});
|
|
27
|
+
const stdoutChunks = [];
|
|
28
|
+
const stderrChunks = [];
|
|
29
|
+
child.stdout.on('data', (chunk) => stdoutChunks.push(chunk));
|
|
30
|
+
child.stderr.on('data', (chunk) => stderrChunks.push(chunk));
|
|
31
|
+
const result = await new Promise((resolve, reject) => {
|
|
32
|
+
const timer = setTimeout(() => {
|
|
33
|
+
child.kill();
|
|
34
|
+
reject(new Error(`npm view timed out for ${packageName}`));
|
|
35
|
+
}, NPM_VIEW_TIMEOUT_MS);
|
|
36
|
+
child.on('error', err => {
|
|
37
|
+
clearTimeout(timer);
|
|
38
|
+
reject(err);
|
|
39
|
+
});
|
|
40
|
+
child.on('close', code => {
|
|
41
|
+
clearTimeout(timer);
|
|
42
|
+
resolve({
|
|
43
|
+
exitCode: code ?? 1,
|
|
44
|
+
stdout: Buffer.concat(stdoutChunks).toString(),
|
|
45
|
+
stderr: Buffer.concat(stderrChunks).toString(),
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
if (result.exitCode !== 0) {
|
|
50
|
+
log.debug(`npm view failed for ${packageName}: ${result.stderr.trim()}`);
|
|
24
51
|
return null;
|
|
25
52
|
}
|
|
26
|
-
const version =
|
|
53
|
+
const version = result.stdout.trim();
|
|
27
54
|
return version || null;
|
|
28
55
|
}
|
|
29
56
|
catch (e) {
|
|
@@ -63,21 +90,22 @@ export const isNewer = (current, latest) => {
|
|
|
63
90
|
};
|
|
64
91
|
/**
|
|
65
92
|
* Check all npm-installed plugins for newer versions on the registry.
|
|
66
|
-
* Runs `npm view`
|
|
67
|
-
* and stores results in `state.outdatedPlugins`.
|
|
93
|
+
* Runs `npm view` queries concurrently via Promise.allSettled, logs
|
|
94
|
+
* outdated entries, and stores results in `state.outdatedPlugins`.
|
|
95
|
+
* Skips local plugins.
|
|
68
96
|
*
|
|
69
97
|
* @param state - Server state containing the plugin registry and outdatedPlugins target
|
|
70
98
|
*/
|
|
71
|
-
export const checkForUpdates = (state) => {
|
|
99
|
+
export const checkForUpdates = async (state) => {
|
|
72
100
|
const npmPlugins = Array.from(state.registry.plugins.values()).filter(p => p.trustTier !== 'local' && p.npmPackageName);
|
|
73
101
|
if (npmPlugins.length === 0)
|
|
74
102
|
return;
|
|
75
103
|
log.info(`Checking ${npmPlugins.length} npm plugin(s) for updates...`);
|
|
76
|
-
const
|
|
104
|
+
const settled = await Promise.allSettled(npmPlugins.map(async (plugin) => {
|
|
77
105
|
const pkgName = plugin.npmPackageName;
|
|
78
106
|
if (!pkgName)
|
|
79
107
|
return { kind: 'unreachable' };
|
|
80
|
-
const latest = fetchLatestVersion(pkgName);
|
|
108
|
+
const latest = await fetchLatestVersion(pkgName);
|
|
81
109
|
if (!latest)
|
|
82
110
|
return { kind: 'unreachable' };
|
|
83
111
|
if (isNewer(plugin.version, latest)) {
|
|
@@ -92,7 +120,8 @@ export const checkForUpdates = (state) => {
|
|
|
92
120
|
};
|
|
93
121
|
}
|
|
94
122
|
return { kind: 'up-to-date' };
|
|
95
|
-
});
|
|
123
|
+
}));
|
|
124
|
+
const results = settled.map(s => (s.status === 'fulfilled' ? s.value : { kind: 'unreachable' }));
|
|
96
125
|
const outdated = [];
|
|
97
126
|
let unreachableCount = 0;
|
|
98
127
|
for (const result of results) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../src/version-check.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../src/version-check.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opentabs-dev/mcp-server",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.36",
|
|
4
4
|
"engines": {
|
|
5
|
-
"node": ">=
|
|
5
|
+
"node": ">= 22.0.0"
|
|
6
6
|
},
|
|
7
7
|
"type": "module",
|
|
8
8
|
"exports": {
|
|
@@ -16,16 +16,15 @@
|
|
|
16
16
|
},
|
|
17
17
|
"scripts": {
|
|
18
18
|
"build": "tsc --build",
|
|
19
|
-
"dev": "
|
|
19
|
+
"dev": "node dist/dev-proxy.js",
|
|
20
20
|
"start": "node dist/index.js"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@types/ws": "^8.18.1"
|
|
24
|
-
"bun-types": "^1.3.9"
|
|
23
|
+
"@types/ws": "^8.18.1"
|
|
25
24
|
},
|
|
26
25
|
"dependencies": {
|
|
27
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
28
|
-
"@opentabs-dev/shared": "
|
|
26
|
+
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
27
|
+
"@opentabs-dev/shared": "*",
|
|
29
28
|
"ajv": "^8.18.0",
|
|
30
29
|
"ws": "^8.19.0",
|
|
31
30
|
"zod": "^4.3.6"
|