@opentabs-dev/mcp-server 0.0.22 → 0.0.24
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 +53 -0
- package/dist/adapter-files.d.ts.map +1 -0
- package/dist/adapter-files.js +176 -0
- package/dist/adapter-files.js.map +1 -0
- package/dist/audit-disk.d.ts.map +1 -1
- package/dist/audit-disk.js +5 -6
- package/dist/audit-disk.js.map +1 -1
- package/dist/browser-tool-names.d.ts +14 -0
- package/dist/browser-tool-names.d.ts.map +1 -0
- package/dist/browser-tool-names.js +52 -0
- package/dist/browser-tool-names.js.map +1 -0
- package/dist/browser-tools/analyze-site/detect-auth.d.ts.map +1 -1
- package/dist/browser-tools/analyze-site/detect-auth.js +2 -1
- package/dist/browser-tools/analyze-site/detect-auth.js.map +1 -1
- package/dist/browser-tools/analyze-site/index.d.ts.map +1 -1
- package/dist/browser-tools/analyze-site/index.js +111 -15
- package/dist/browser-tools/analyze-site/index.js.map +1 -1
- package/dist/browser-tools/execute-script.js +1 -1
- package/dist/browser-tools/execute-script.js.map +1 -1
- package/dist/browser-tools/extension-get-logs.d.ts +2 -2
- package/dist/browser-tools/focus-tab.js +1 -1
- package/dist/browser-tools/focus-tab.js.map +1 -1
- package/dist/browser-tools/get-console-logs.d.ts +2 -2
- package/dist/browser-tools/index.d.ts +4 -0
- package/dist/browser-tools/index.d.ts.map +1 -1
- package/dist/browser-tools/index.js +19 -0
- package/dist/browser-tools/index.js.map +1 -1
- package/dist/browser-tools/select-option.d.ts.map +1 -1
- package/dist/browser-tools/select-option.js +11 -6
- package/dist/browser-tools/select-option.js.map +1 -1
- package/dist/config.d.ts +13 -16
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +43 -109
- package/dist/config.js.map +1 -1
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +9 -12
- package/dist/discovery.js.map +1 -1
- package/dist/extension-handlers.d.ts +102 -0
- package/dist/extension-handlers.d.ts.map +1 -0
- package/dist/extension-handlers.js +443 -0
- package/dist/extension-handlers.js.map +1 -0
- package/dist/extension-protocol.d.ts +6 -38
- package/dist/extension-protocol.d.ts.map +1 -1
- package/dist/extension-protocol.js +47 -535
- package/dist/extension-protocol.js.map +1 -1
- package/dist/file-watcher.d.ts.map +1 -1
- package/dist/file-watcher.js +106 -104
- package/dist/file-watcher.js.map +1 -1
- package/dist/http-routes.d.ts +9 -7
- package/dist/http-routes.d.ts.map +1 -1
- package/dist/http-routes.js +275 -265
- package/dist/http-routes.js.map +1 -1
- package/dist/index.js +17 -10
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +14 -3
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +42 -22
- package/dist/loader.js.map +1 -1
- package/dist/log-buffer.d.ts.map +1 -1
- package/dist/log-buffer.js +17 -6
- package/dist/log-buffer.js.map +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +5 -2
- package/dist/logger.js.map +1 -1
- package/dist/mcp-setup.d.ts +3 -18
- package/dist/mcp-setup.d.ts.map +1 -1
- package/dist/mcp-setup.js +13 -407
- package/dist/mcp-setup.js.map +1 -1
- package/dist/mcp-tool-dispatch.d.ts +51 -0
- package/dist/mcp-tool-dispatch.d.ts.map +1 -0
- package/dist/mcp-tool-dispatch.js +410 -0
- package/dist/mcp-tool-dispatch.js.map +1 -0
- package/dist/plugin-management.d.ts +123 -0
- package/dist/plugin-management.d.ts.map +1 -0
- package/dist/plugin-management.js +340 -0
- package/dist/plugin-management.js.map +1 -0
- package/dist/registry.d.ts +2 -13
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +2 -24
- package/dist/registry.js.map +1 -1
- package/dist/reload.d.ts.map +1 -1
- package/dist/reload.js +13 -2
- package/dist/reload.js.map +1 -1
- package/dist/resolver.d.ts.map +1 -1
- package/dist/resolver.js +33 -25
- package/dist/resolver.js.map +1 -1
- package/dist/state.d.ts +30 -21
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +14 -10
- package/dist/state.js.map +1 -1
- package/dist/version-check.d.ts.map +1 -1
- package/dist/version-check.js +36 -14
- package/dist/version-check.js.map +1 -1
- package/package.json +2 -2
package/dist/resolver.js
CHANGED
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
* naming convention.
|
|
11
11
|
*/
|
|
12
12
|
import { log } from './logger.js';
|
|
13
|
-
import { ok, err } from '@opentabs-dev/shared';
|
|
13
|
+
import { ok, err, PLUGIN_PREFIX, platformExec, toErrorMessage } from '@opentabs-dev/shared';
|
|
14
14
|
import { readdir, realpath, stat } from 'node:fs/promises';
|
|
15
15
|
import { homedir, tmpdir } from 'node:os';
|
|
16
|
-
import { dirname, join, resolve } from 'node:path';
|
|
16
|
+
import { dirname, join, resolve, sep } from 'node:path';
|
|
17
17
|
/**
|
|
18
18
|
* Allowed root directories for local plugin paths.
|
|
19
19
|
* Plugins must reside under the user's home directory or the system temp directory.
|
|
@@ -45,7 +45,7 @@ const isAllowedPluginPath = async (resolvedPath) => {
|
|
|
45
45
|
const realRoots = await Promise.all(rawRoots.map(safeRealpath));
|
|
46
46
|
// Deduplicate: on macOS, raw /var/... and resolved /private/var/... differ
|
|
47
47
|
const allRoots = [...new Set([...rawRoots, ...realRoots])];
|
|
48
|
-
return allRoots.some(root => realPath.startsWith(root +
|
|
48
|
+
return allRoots.some(root => realPath.startsWith(root + sep) || realPath === root);
|
|
49
49
|
};
|
|
50
50
|
/**
|
|
51
51
|
* Check if a specifier is a local filesystem path.
|
|
@@ -120,32 +120,38 @@ const resolvePluginPath = async (specifier, configDir) => {
|
|
|
120
120
|
}
|
|
121
121
|
return resolveNpmPackage(specifier);
|
|
122
122
|
};
|
|
123
|
-
/**
|
|
124
|
-
|
|
123
|
+
/** globalThis key for persisting cached global paths across bun --hot reloads */
|
|
124
|
+
const GLOBAL_PATHS_KEY = '__opentabs_global_paths__';
|
|
125
|
+
/** Access the cached global paths from globalThis so the value survives bun --hot module re-evaluation */
|
|
126
|
+
const getCachedGlobalPaths = () => globalThis[GLOBAL_PATHS_KEY] ?? null;
|
|
127
|
+
const setCachedGlobalPaths = (paths) => {
|
|
128
|
+
globalThis[GLOBAL_PATHS_KEY] = paths;
|
|
129
|
+
};
|
|
125
130
|
/**
|
|
126
131
|
* Get global node_modules directories from both npm and bun.
|
|
127
|
-
* Results are cached
|
|
128
|
-
*
|
|
132
|
+
* Results are cached on globalThis so the shell commands run at most once
|
|
133
|
+
* per process lifetime, surviving bun --hot module re-evaluations.
|
|
129
134
|
*/
|
|
130
135
|
const getGlobalNodeModulesPaths = () => {
|
|
131
|
-
|
|
132
|
-
|
|
136
|
+
const cached = getCachedGlobalPaths();
|
|
137
|
+
if (cached !== null)
|
|
138
|
+
return cached;
|
|
133
139
|
const paths = [];
|
|
134
140
|
// npm global node_modules
|
|
135
141
|
try {
|
|
136
|
-
const result = Bun.spawnSync(['npm', 'root', '-g']);
|
|
142
|
+
const result = Bun.spawnSync([platformExec('npm'), 'root', '-g']);
|
|
137
143
|
if (result.exitCode === 0) {
|
|
138
144
|
const npmPath = result.stdout.toString().trim();
|
|
139
145
|
if (npmPath.length > 0)
|
|
140
146
|
paths.push(npmPath);
|
|
141
147
|
}
|
|
142
148
|
}
|
|
143
|
-
catch {
|
|
144
|
-
|
|
149
|
+
catch (e) {
|
|
150
|
+
log.debug(`npm root -g failed: ${toErrorMessage(e)}`);
|
|
145
151
|
}
|
|
146
152
|
// bun global node_modules (derive from bin path: .../bin → .../node_modules)
|
|
147
153
|
try {
|
|
148
|
-
const result = Bun.spawnSync(['bun', 'pm', '-g', 'bin']);
|
|
154
|
+
const result = Bun.spawnSync([platformExec('bun'), 'pm', '-g', 'bin']);
|
|
149
155
|
if (result.exitCode === 0) {
|
|
150
156
|
const bunBinPath = result.stdout.toString().trim();
|
|
151
157
|
if (bunBinPath.length > 0) {
|
|
@@ -156,10 +162,10 @@ const getGlobalNodeModulesPaths = () => {
|
|
|
156
162
|
}
|
|
157
163
|
}
|
|
158
164
|
}
|
|
159
|
-
catch {
|
|
160
|
-
|
|
165
|
+
catch (e) {
|
|
166
|
+
log.debug(`bun pm -g bin failed: ${toErrorMessage(e)}`);
|
|
161
167
|
}
|
|
162
|
-
|
|
168
|
+
setCachedGlobalPaths(paths);
|
|
163
169
|
return paths;
|
|
164
170
|
};
|
|
165
171
|
/**
|
|
@@ -171,7 +177,8 @@ const hasOpentabsField = async (dir) => {
|
|
|
171
177
|
const raw = (await Bun.file(join(dir, 'package.json')).json());
|
|
172
178
|
return typeof raw.opentabs === 'object' && raw.opentabs !== null && !Array.isArray(raw.opentabs);
|
|
173
179
|
}
|
|
174
|
-
catch {
|
|
180
|
+
catch (e) {
|
|
181
|
+
log.debug(`Failed to read package.json at ${join(dir, 'package.json')}: ${toErrorMessage(e)}`);
|
|
175
182
|
return false;
|
|
176
183
|
}
|
|
177
184
|
};
|
|
@@ -186,14 +193,15 @@ const scanGlobalDir = async (globalDir) => {
|
|
|
186
193
|
try {
|
|
187
194
|
entries = await readdir(globalDir);
|
|
188
195
|
}
|
|
189
|
-
catch {
|
|
196
|
+
catch (e) {
|
|
197
|
+
log.debug(`Could not read global node_modules directory ${globalDir}: ${toErrorMessage(e)}`);
|
|
190
198
|
return found;
|
|
191
199
|
}
|
|
192
200
|
// Collect unscoped matches and scoped directories to inspect
|
|
193
201
|
const unscopedChecks = [];
|
|
194
202
|
const scopeDirScans = [];
|
|
195
203
|
for (const entry of entries) {
|
|
196
|
-
if (entry.startsWith(
|
|
204
|
+
if (entry.startsWith(PLUGIN_PREFIX)) {
|
|
197
205
|
const fullPath = join(globalDir, entry);
|
|
198
206
|
unscopedChecks.push(hasOpentabsField(fullPath).then(valid => {
|
|
199
207
|
if (valid)
|
|
@@ -207,7 +215,7 @@ const scanGlobalDir = async (globalDir) => {
|
|
|
207
215
|
.then(async (scopeEntries) => {
|
|
208
216
|
const scopeChecks = [];
|
|
209
217
|
for (const scopeEntry of scopeEntries) {
|
|
210
|
-
if (scopeEntry.startsWith(
|
|
218
|
+
if (scopeEntry.startsWith(PLUGIN_PREFIX)) {
|
|
211
219
|
const fullPath = join(scopeDir, scopeEntry);
|
|
212
220
|
scopeChecks.push(hasOpentabsField(fullPath).then(valid => {
|
|
213
221
|
if (valid)
|
|
@@ -217,8 +225,8 @@ const scanGlobalDir = async (globalDir) => {
|
|
|
217
225
|
}
|
|
218
226
|
await Promise.all(scopeChecks);
|
|
219
227
|
})
|
|
220
|
-
.catch(() => {
|
|
221
|
-
|
|
228
|
+
.catch((e) => {
|
|
229
|
+
log.debug(`Could not read scoped directory ${scopeDir}: ${toErrorMessage(e)}`);
|
|
222
230
|
}));
|
|
223
231
|
}
|
|
224
232
|
}
|
|
@@ -239,7 +247,7 @@ const discoverGlobalNpmPlugins = async () => {
|
|
|
239
247
|
const globalPaths = getGlobalNodeModulesPaths();
|
|
240
248
|
const errors = [];
|
|
241
249
|
if (globalPaths.length === 0) {
|
|
242
|
-
log.
|
|
250
|
+
log.warn('No global node_modules paths found — skipping npm auto-discovery');
|
|
243
251
|
return { dirs: [], errors };
|
|
244
252
|
}
|
|
245
253
|
log.info(`Scanning global node_modules for plugins: ${globalPaths.join(', ')}`);
|
|
@@ -257,7 +265,7 @@ const discoverGlobalNpmPlugins = async () => {
|
|
|
257
265
|
}
|
|
258
266
|
}
|
|
259
267
|
catch (e) {
|
|
260
|
-
const msg =
|
|
268
|
+
const msg = toErrorMessage(e);
|
|
261
269
|
errors.push(`Error scanning ${globalDir}: ${msg}`);
|
|
262
270
|
}
|
|
263
271
|
}
|
|
@@ -266,7 +274,7 @@ const discoverGlobalNpmPlugins = async () => {
|
|
|
266
274
|
};
|
|
267
275
|
/** Reset the cached global paths (for testing). */
|
|
268
276
|
const resetGlobalPathsCache = () => {
|
|
269
|
-
|
|
277
|
+
setCachedGlobalPaths(null);
|
|
270
278
|
};
|
|
271
279
|
export { discoverGlobalNpmPlugins, isAllowedPluginPath, resetGlobalPathsCache, resolvePluginPath };
|
|
272
280
|
//# sourceMappingURL=resolver.js.map
|
package/dist/resolver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"}
|
package/dist/state.d.ts
CHANGED
|
@@ -22,6 +22,29 @@ export interface FileWatcherEntry {
|
|
|
22
22
|
/** Last-seen mtime (ms) for each watched file path — used by mtime polling fallback */
|
|
23
23
|
lastSeenMtimes: Map<string, number>;
|
|
24
24
|
}
|
|
25
|
+
/** Grouped state for file watching (plugin watchers, config watcher, mtime polling) */
|
|
26
|
+
export interface FileWatchingState {
|
|
27
|
+
/** Active file watcher entries — stored on state so hot reload can clean up the previous iteration's handles */
|
|
28
|
+
entries: FileWatcherEntry[];
|
|
29
|
+
/** File watcher debounce timers — stored on state so hot reload can clear them */
|
|
30
|
+
timers: Map<string, ReturnType<typeof setTimeout>>;
|
|
31
|
+
/** Generation counter for file watchers — incremented each time startFileWatching runs.
|
|
32
|
+
* Debounce callbacks capture the current generation and bail out if it has changed,
|
|
33
|
+
* preventing stale closures from the previous module evaluation from executing. */
|
|
34
|
+
generation: number;
|
|
35
|
+
/** FSWatcher for ~/.opentabs/ directory, detecting config.json changes */
|
|
36
|
+
configWatcher: FSWatcher | null;
|
|
37
|
+
/** Last-seen mtime (ms) of ~/.opentabs/config.json — used by mtime polling fallback */
|
|
38
|
+
configLastSeenMtime: number | null;
|
|
39
|
+
/** Timer ID for periodic mtime polling — cleared by stopFileWatching */
|
|
40
|
+
mtimePollTimerId: ReturnType<typeof setInterval> | null;
|
|
41
|
+
/** Timestamp (ms since epoch) of the last mtime polling tick, or null if polling hasn't run yet */
|
|
42
|
+
mtimeLastPollAt: number | null;
|
|
43
|
+
/** Running count of times mtime polling detected a change that fs.watch missed */
|
|
44
|
+
mtimePollDetections: number;
|
|
45
|
+
/** Timestamps (ms since epoch) of recent mtime poll detections — used for stale watcher warning */
|
|
46
|
+
mtimePollDetectionTimestamps: number[];
|
|
47
|
+
}
|
|
25
48
|
/** How a plugin was discovered: auto-discovered from global node_modules or explicitly listed in localPlugins */
|
|
26
49
|
export type PluginSource = 'npm' | 'local';
|
|
27
50
|
/** Plugin registered in the server */
|
|
@@ -210,10 +233,8 @@ export interface ServerState {
|
|
|
210
233
|
outdatedPlugins: OutdatedPlugin[];
|
|
211
234
|
/** Browser tools — updated on each hot reload so existing session handlers see fresh definitions */
|
|
212
235
|
browserTools: BrowserToolDefinition[];
|
|
213
|
-
/**
|
|
214
|
-
|
|
215
|
-
/** File watcher debounce timers — stored on state so hot reload can clear them */
|
|
216
|
-
fileWatcherTimers: Map<string, ReturnType<typeof setTimeout>>;
|
|
236
|
+
/** Grouped state for file watching (plugin watchers, config watcher, mtime polling) */
|
|
237
|
+
fileWatching: FileWatchingState;
|
|
217
238
|
/** Shared secret for WebSocket authentication (loaded from config) */
|
|
218
239
|
wsSecret: string | null;
|
|
219
240
|
/** Cached browser tools with pre-computed JSON Schema. Rebuilt on each reload. */
|
|
@@ -228,22 +249,6 @@ export interface ServerState {
|
|
|
228
249
|
sweepTimerId: ReturnType<typeof setInterval> | null;
|
|
229
250
|
/** Timestamp (ms since epoch) when the server process first started — survives hot reloads */
|
|
230
251
|
startedAt: number;
|
|
231
|
-
/** Generation counter for file watchers — incremented each time startFileWatching runs.
|
|
232
|
-
* Debounce callbacks capture the current generation and bail out if it has changed,
|
|
233
|
-
* preventing stale closures from the previous module evaluation from executing. */
|
|
234
|
-
fileWatcherGeneration: number;
|
|
235
|
-
/** FSWatcher for ~/.opentabs/ directory, detecting config.json changes */
|
|
236
|
-
configWatcher: FSWatcher | null;
|
|
237
|
-
/** Last-seen mtime (ms) of ~/.opentabs/config.json — used by mtime polling fallback */
|
|
238
|
-
configLastSeenMtime: number | null;
|
|
239
|
-
/** Timer ID for periodic mtime polling — cleared by stopFileWatching */
|
|
240
|
-
mtimePollTimerId: ReturnType<typeof setInterval> | null;
|
|
241
|
-
/** Timestamp (ms since epoch) of the last mtime polling tick, or null if polling hasn't run yet */
|
|
242
|
-
mtimeLastPollAt: number | null;
|
|
243
|
-
/** Running count of times mtime polling detected a change that fs.watch missed */
|
|
244
|
-
mtimePollDetections: number;
|
|
245
|
-
/** Timestamps (ms since epoch) of recent mtime poll detections — used for stale watcher warning */
|
|
246
|
-
mtimePollDetectionTimestamps: number[];
|
|
247
252
|
/** Discovery errors from the most recent reload — used by config.getState for the side panel */
|
|
248
253
|
discoveryErrors: ReadonlyArray<{
|
|
249
254
|
specifier: string;
|
|
@@ -261,9 +266,13 @@ export interface ServerState {
|
|
|
261
266
|
sessionPermissions: SessionPermissionRule[];
|
|
262
267
|
/** Whether an extension reload is pending (set when extension files are updated but extension is not connected) */
|
|
263
268
|
pendingExtensionReload: boolean;
|
|
269
|
+
/** Rate-limit timestamps for administrative endpoints — keyed by endpoint path, values are call timestamps (ms) */
|
|
270
|
+
endpointCallTimestamps: Map<string, number[]>;
|
|
271
|
+
/** Whether the extension adapters/ directory has been created (cached to avoid repeated mkdir calls) */
|
|
272
|
+
adaptersDirReady: boolean;
|
|
264
273
|
}
|
|
265
274
|
/** Increment when changing the type of an existing ServerState field */
|
|
266
|
-
export declare const STATE_SCHEMA_VERSION =
|
|
275
|
+
export declare const STATE_SCHEMA_VERSION = 4;
|
|
267
276
|
/** Frozen empty registry for initializing ServerState */
|
|
268
277
|
export declare const EMPTY_REGISTRY: PluginRegistry;
|
|
269
278
|
/**
|
package/dist/state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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
|
|
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,uFAAuF;IACvF,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,uFAAuF;AACvF,MAAM,WAAW,iBAAiB;IAChC,gHAAgH;IAChH,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,kFAAkF;IAClF,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC;IACnD;;wFAEoF;IACpF,UAAU,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,aAAa,EAAE,SAAS,GAAG,IAAI,CAAC;IAChC,uFAAuF;IACvF,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,wEAAwE;IACxE,gBAAgB,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,IAAI,CAAC;IACxD,mGAAmG;IACnG,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kFAAkF;IAClF,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mGAAmG;IACnG,4BAA4B,EAAE,MAAM,EAAE,CAAC;CACxC;AAED,iHAAiH;AACjH,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,OAAO,CAAC;AAE3C,sCAAsC;AACtC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,qGAAqG;IACrG,MAAM,EAAE,YAAY,CAAC;IACrB,mGAAmG;IACnG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0GAA0G;IAC1G,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iGAAiG;IACjG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2GAA2G;IAC3G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qCAAqC;AACrC,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/B,wGAAwG;IACxG,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,OAAO,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IACvC,qGAAqG;IACrG,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,qEAAqE;IACrE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzE,yGAAyG;IACzG,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,iEAAiE;AACjE,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,4FAA4F;IAC5F,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9C,qEAAqE;IACrE,gBAAgB,EAAE,MAAM,MAAM,CAAC;CAChC;AAED,8DAA8D;AAC9D,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,EAAE,qBAAqB,CAAC;CAC7B;AAED,6DAA6D;AAC7D,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,yEAAyE;AACzE,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACxD,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC1D,sEAAsE;IACtE,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAClE,sEAAsE;IACtE,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC9D,yCAAyC;IACzC,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;CAC5C;AAED,2DAA2D;AAC3D,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAE9C,mDAAmD;AACnD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAClD,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,uDAAuD;AACvD,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,cAAc,GAAG,MAAM,CAAC;AAE1E,mDAAmD;AACnD,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,UAAU,GAAG,YAAY,CAAC;AAE1E,+DAA+D;AAC/D,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,2EAA2E;AAC3E,eAAO,MAAM,gBAAgB,GAAI,OAAO,qBAAqB,EAAE,EAAE,UAAU,MAAM,EAAE,QAAQ,MAAM,GAAG,IAAI,KAAG,OAYvG,CAAC;AAEL,2DAA2D;AAC3D,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D;AAED,gEAAgE;AAChE,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC;oFACoF;AACpF,eAAO,MAAM,gBAAgB,GAAI,OAAO,WAAW,EAAE,OAAO,UAAU,KAAG,IAOxE,CAAC;AAEF,wEAAwE;AACxE,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,QAAQ,EAAE,cAAc,CAAC;IACzB,2CAA2C;IAC3C,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACpC,oFAAoF;IACpF,UAAU,EAAE,UAAU,CAAC;IACvB,4FAA4F;IAC5F,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,qCAAqC;IACrC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,mDAAmD;IACnD,iBAAiB,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,eAAe,CAAC,CAAC;IACzD,yDAAyD;IACzD,WAAW,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC7B,+CAA+C;IAC/C,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,oGAAoG;IACpG,YAAY,EAAE,qBAAqB,EAAE,CAAC;IACtC,uFAAuF;IACvF,YAAY,EAAE,iBAAiB,CAAC;IAChC,sEAAsE;IACtE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,kFAAkF;IAClF,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,2FAA2F;IAC3F,mBAAmB,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,oFAAoF;IACpF,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,gEAAgE;IAChE,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,yEAAyE;IACzE,YAAY,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,IAAI,CAAC;IACpD,8FAA8F;IAC9F,SAAS,EAAE,MAAM,CAAC;IAClB,gGAAgG;IAChG,eAAe,EAAE,aAAa,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE,gFAAgF;IAChF,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,oFAAoF;IACpF,gBAAgB,EAAE,OAAO,CAAC;IAE1B,qDAAqD;IACrD,WAAW,EAAE,iBAAiB,CAAC;IAC/B,8EAA8E;IAC9E,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACvD,gGAAgG;IAChG,kBAAkB,EAAE,qBAAqB,EAAE,CAAC;IAC5C,mHAAmH;IACnH,sBAAsB,EAAE,OAAO,CAAC;IAChC,mHAAmH;IACnH,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,wGAAwG;IACxG,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,wEAAwE;AACxE,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,yDAAyD;AACzD,eAAO,MAAM,cAAc,EAAE,cAM3B,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAO,WA4C7B,CAAC;AAEH,8DAA8D;AAC9D,eAAO,MAAM,gBAAgB,QAAO,MAA6B,CAAC;AAElE,8CAA8C;AAC9C,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,EAAE,MAAM,MAAM,KAAG,MAA6B,CAAC;AAE9F,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,EAAE,KAAK,MAAM,KAAG,MAAuC,CAAC;AAE1G,6EAA6E;AAC7E,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,EAAE,YAAY,MAAM,KAAG,MAAmC,CAAC;AAE5G;4EAC4E;AAC5E,eAAO,MAAM,aAAa,GAAI,OAAO,WAAW,EAAE,cAAc,MAAM,KAAG,OAC/B,CAAC;AAE3C;qFACqF;AACrF,eAAO,MAAM,oBAAoB,GAAI,OAAO,WAAW,EAAE,UAAU,MAAM,KAAG,OAC/B,CAAC"}
|
package/dist/state.js
CHANGED
|
@@ -39,7 +39,7 @@ export const appendAuditEntry = (state, entry) => {
|
|
|
39
39
|
void appendAuditEntryToDisk(entry);
|
|
40
40
|
};
|
|
41
41
|
/** Increment when changing the type of an existing ServerState field */
|
|
42
|
-
export const STATE_SCHEMA_VERSION =
|
|
42
|
+
export const STATE_SCHEMA_VERSION = 4;
|
|
43
43
|
/** Frozen empty registry for initializing ServerState */
|
|
44
44
|
export const EMPTY_REGISTRY = Object.freeze({
|
|
45
45
|
plugins: new Map(),
|
|
@@ -65,8 +65,17 @@ export const createState = () => ({
|
|
|
65
65
|
extensionWs: null,
|
|
66
66
|
outdatedPlugins: [],
|
|
67
67
|
browserTools: [],
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
fileWatching: {
|
|
69
|
+
entries: [],
|
|
70
|
+
timers: new Map(),
|
|
71
|
+
generation: 0,
|
|
72
|
+
configWatcher: null,
|
|
73
|
+
configLastSeenMtime: null,
|
|
74
|
+
mtimePollTimerId: null,
|
|
75
|
+
mtimeLastPollAt: null,
|
|
76
|
+
mtimePollDetections: 0,
|
|
77
|
+
mtimePollDetectionTimestamps: [],
|
|
78
|
+
},
|
|
70
79
|
wsSecret: null,
|
|
71
80
|
cachedBrowserTools: [],
|
|
72
81
|
sessionTransportIds: new WeakMap(),
|
|
@@ -74,13 +83,6 @@ export const createState = () => ({
|
|
|
74
83
|
activeDispatches: new Map(),
|
|
75
84
|
sweepTimerId: null,
|
|
76
85
|
startedAt: Date.now(),
|
|
77
|
-
fileWatcherGeneration: 0,
|
|
78
|
-
configWatcher: null,
|
|
79
|
-
configLastSeenMtime: null,
|
|
80
|
-
mtimePollTimerId: null,
|
|
81
|
-
mtimeLastPollAt: null,
|
|
82
|
-
mtimePollDetections: 0,
|
|
83
|
-
mtimePollDetectionTimestamps: [],
|
|
84
86
|
discoveryErrors: [],
|
|
85
87
|
auditLog: [],
|
|
86
88
|
skipConfirmation: false,
|
|
@@ -93,6 +95,8 @@ export const createState = () => ({
|
|
|
93
95
|
pendingConfirmations: new Map(),
|
|
94
96
|
sessionPermissions: [],
|
|
95
97
|
pendingExtensionReload: false,
|
|
98
|
+
endpointCallTimestamps: new Map(),
|
|
99
|
+
adaptersDirReady: false,
|
|
96
100
|
});
|
|
97
101
|
/** Generate a cryptographically random JSON-RPC request ID */
|
|
98
102
|
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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../src/version-check.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../src/version-check.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,YAAY,CAAC;AAY9D;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAwBnF,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,KAAG,OAqBzD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAU,OAAO,WAAW,KAAG,OAAO,CAAC,IAAI,CA8DtE,CAAC"}
|
package/dist/version-check.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
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';
|
|
9
10
|
/**
|
|
10
11
|
* Query the npm registry for the latest published version of a package.
|
|
11
12
|
* Uses the abbreviated install metadata endpoint with a 10s timeout.
|
|
@@ -25,12 +26,15 @@ export const fetchLatestVersion = async (packageName) => {
|
|
|
25
26
|
headers: { Accept: 'application/vnd.npm.install-v1+json' },
|
|
26
27
|
signal: AbortSignal.timeout(10_000),
|
|
27
28
|
});
|
|
28
|
-
if (!response.ok)
|
|
29
|
+
if (!response.ok) {
|
|
30
|
+
log.debug(`npm registry returned ${response.status} for ${packageName}`);
|
|
29
31
|
return null;
|
|
32
|
+
}
|
|
30
33
|
const registryResponse = (await response.json());
|
|
31
34
|
return registryResponse['dist-tags']?.latest ?? null;
|
|
32
35
|
}
|
|
33
|
-
catch {
|
|
36
|
+
catch (e) {
|
|
37
|
+
log.debug(`Failed to fetch latest version for ${packageName}: ${toErrorMessage(e)}`);
|
|
34
38
|
return null;
|
|
35
39
|
}
|
|
36
40
|
};
|
|
@@ -79,32 +83,50 @@ export const checkForUpdates = async (state) => {
|
|
|
79
83
|
const results = await Promise.allSettled(npmPlugins.map(async (plugin) => {
|
|
80
84
|
const pkgName = plugin.npmPackageName;
|
|
81
85
|
if (!pkgName)
|
|
82
|
-
return
|
|
86
|
+
return { kind: 'unreachable' };
|
|
83
87
|
const latest = await fetchLatestVersion(pkgName);
|
|
84
88
|
if (!latest)
|
|
85
|
-
return
|
|
89
|
+
return { kind: 'unreachable' };
|
|
86
90
|
if (isNewer(plugin.version, latest)) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
91
|
+
return {
|
|
92
|
+
kind: 'outdated',
|
|
93
|
+
entry: {
|
|
94
|
+
name: pkgName,
|
|
95
|
+
currentVersion: plugin.version,
|
|
96
|
+
latestVersion: latest,
|
|
97
|
+
updateCommand: `npm update -g ${pkgName}`,
|
|
98
|
+
},
|
|
92
99
|
};
|
|
93
|
-
return outdated;
|
|
94
100
|
}
|
|
95
|
-
return
|
|
101
|
+
return { kind: 'up-to-date' };
|
|
96
102
|
}));
|
|
97
103
|
const outdated = [];
|
|
104
|
+
let unreachableCount = 0;
|
|
98
105
|
for (const result of results) {
|
|
99
|
-
if (result.status === 'fulfilled'
|
|
100
|
-
|
|
106
|
+
if (result.status === 'fulfilled') {
|
|
107
|
+
if (result.value.kind === 'outdated') {
|
|
108
|
+
outdated.push(result.value.entry);
|
|
109
|
+
}
|
|
110
|
+
else if (result.value.kind === 'unreachable') {
|
|
111
|
+
unreachableCount++;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
unreachableCount++;
|
|
101
116
|
}
|
|
102
117
|
}
|
|
103
118
|
state.outdatedPlugins = outdated;
|
|
104
119
|
for (const entry of outdated) {
|
|
105
120
|
log.info(`${entry.name}: ${entry.currentVersion} → ${entry.latestVersion} (run: ${entry.updateCommand})`);
|
|
106
121
|
}
|
|
107
|
-
|
|
122
|
+
const total = npmPlugins.length;
|
|
123
|
+
if (unreachableCount === total) {
|
|
124
|
+
log.warn('Could not check for plugin updates — npm registry unreachable');
|
|
125
|
+
}
|
|
126
|
+
else if (unreachableCount > 0 && outdated.length === 0) {
|
|
127
|
+
log.info(`Checked ${total - unreachableCount} of ${total} npm plugins for updates (${unreachableCount} unreachable)`);
|
|
128
|
+
}
|
|
129
|
+
else if (outdated.length === 0) {
|
|
108
130
|
log.info('All npm plugins are up to date');
|
|
109
131
|
}
|
|
110
132
|
};
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../src/version-check.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opentabs-dev/mcp-server",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.24",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dist/index.js"
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
24
|
-
"@opentabs-dev/shared": "
|
|
24
|
+
"@opentabs-dev/shared": "0.0.23",
|
|
25
25
|
"ajv": "^8.18.0",
|
|
26
26
|
"zod": "^4.3.6"
|
|
27
27
|
}
|