@opentabs-dev/browser-extension 0.0.52 → 0.0.54
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/background-message-handlers.d.ts +33 -6
- package/dist/background-message-handlers.d.ts.map +1 -1
- package/dist/background-message-handlers.js +335 -20
- package/dist/background-message-handlers.js.map +1 -1
- package/dist/background.js +859 -365
- package/dist/background.js.map +1 -1
- package/dist/browser-commands/extension-commands.d.ts.map +1 -1
- package/dist/browser-commands/extension-commands.js +5 -2
- package/dist/browser-commands/extension-commands.js.map +1 -1
- package/dist/browser-commands/key-press-command.d.ts +2 -0
- package/dist/browser-commands/key-press-command.d.ts.map +1 -1
- package/dist/browser-commands/key-press-command.js +42 -4
- package/dist/browser-commands/key-press-command.js.map +1 -1
- package/dist/confirmation-badge.d.ts +17 -3
- package/dist/confirmation-badge.d.ts.map +1 -1
- package/dist/confirmation-badge.js +55 -18
- package/dist/confirmation-badge.js.map +1 -1
- package/dist/constants.d.ts +8 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -1
- package/dist/dispatch-helpers.d.ts +1 -1
- package/dist/extension-messages.d.ts +48 -21
- package/dist/extension-messages.d.ts.map +1 -1
- package/dist/known-methods.d.ts +2 -2
- package/dist/known-methods.d.ts.map +1 -1
- package/dist/known-methods.js +1 -2
- package/dist/known-methods.js.map +1 -1
- package/dist/message-router.d.ts.map +1 -1
- package/dist/message-router.js +163 -24
- package/dist/message-router.js.map +1 -1
- package/dist/offscreen/index.js +17 -7
- package/dist/offscreen/index.js.map +1 -1
- package/dist/server-request.d.ts +19 -0
- package/dist/server-request.d.ts.map +1 -0
- package/dist/server-request.js +79 -0
- package/dist/server-request.js.map +1 -0
- package/dist/server-state-cache.d.ts +68 -0
- package/dist/server-state-cache.d.ts.map +1 -0
- package/dist/server-state-cache.js +208 -0
- package/dist/server-state-cache.js.map +1 -0
- package/dist/side-panel/App.d.ts.map +1 -1
- package/dist/side-panel/App.js +60 -58
- package/dist/side-panel/App.js.map +1 -1
- package/dist/side-panel/bridge.d.ts +31 -34
- package/dist/side-panel/bridge.d.ts.map +1 -1
- package/dist/side-panel/bridge.js +27 -91
- package/dist/side-panel/bridge.js.map +1 -1
- package/dist/side-panel/components/BrowserToolsCard.d.ts.map +1 -1
- package/dist/side-panel/components/BrowserToolsCard.js +2 -1
- package/dist/side-panel/components/BrowserToolsCard.js.map +1 -1
- package/dist/side-panel/components/ConfirmationDialog.d.ts +7 -2
- package/dist/side-panel/components/ConfirmationDialog.d.ts.map +1 -1
- package/dist/side-panel/components/ConfirmationDialog.js.map +1 -1
- package/dist/side-panel/components/PluginCard.d.ts.map +1 -1
- package/dist/side-panel/components/PluginCard.js +2 -1
- package/dist/side-panel/components/PluginCard.js.map +1 -1
- package/dist/side-panel/components/PluginIcon.d.ts +2 -1
- package/dist/side-panel/components/PluginIcon.d.ts.map +1 -1
- package/dist/side-panel/components/PluginIcon.js +23 -5
- package/dist/side-panel/components/PluginIcon.js.map +1 -1
- package/dist/side-panel/components/ToolIcon.d.ts +2 -1
- package/dist/side-panel/components/ToolIcon.d.ts.map +1 -1
- package/dist/side-panel/components/ToolIcon.js +17 -3
- package/dist/side-panel/components/ToolIcon.js.map +1 -1
- package/dist/side-panel/components/ToolRow.d.ts.map +1 -1
- package/dist/side-panel/components/ToolRow.js +1 -2
- package/dist/side-panel/components/ToolRow.js.map +1 -1
- package/dist/side-panel/components/retro/Button.d.ts +1 -1
- package/dist/side-panel/hooks/useServerNotifications.d.ts +1 -3
- package/dist/side-panel/hooks/useServerNotifications.d.ts.map +1 -1
- package/dist/side-panel/hooks/useServerNotifications.js +15 -11
- package/dist/side-panel/hooks/useServerNotifications.js.map +1 -1
- package/dist/side-panel/side-panel.js +1254 -1218
- package/dist/side-panel/styles.css +1 -1
- package/dist/side-panel-toggle.d.ts +6 -0
- package/dist/side-panel-toggle.d.ts.map +1 -1
- package/dist/side-panel-toggle.js +6 -0
- package/dist/side-panel-toggle.js.map +1 -1
- package/dist/tab-state.d.ts +26 -1
- package/dist/tab-state.d.ts.map +1 -1
- package/dist/tab-state.js +163 -11
- package/dist/tab-state.js.map +1 -1
- package/dist/tool-dispatch.d.ts.map +1 -1
- package/dist/tool-dispatch.js +3 -2
- package/dist/tool-dispatch.js.map +1 -1
- package/manifest.json +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Restore wsConnected from chrome.storage.session on service worker wake.
|
|
3
|
+
* Idempotent: only reads from storage once per service worker lifecycle.
|
|
4
|
+
*/
|
|
2
5
|
declare const restoreWsConnectedState: () => void;
|
|
6
|
+
/**
|
|
7
|
+
* Await the wsConnected restore from session storage.
|
|
8
|
+
* Returns immediately if restoreWsConnectedState has not been called yet.
|
|
9
|
+
*/
|
|
10
|
+
declare const waitForWsConnectedRestore: () => Promise<void>;
|
|
3
11
|
/** Handler signature for background message dispatch */
|
|
4
12
|
type MessageHandler = (message: Record<string, unknown>, sendResponse: (response: unknown) => void) => void;
|
|
5
13
|
/** Handle offscreen:getUrl — return the WebSocket URL derived from user-configured port */
|
|
@@ -8,10 +16,13 @@ declare const handleOffscreenGetUrl: MessageHandler;
|
|
|
8
16
|
declare const handleWsState: MessageHandler;
|
|
9
17
|
/** Handle ws:message — relay a JSON-RPC message from the MCP server */
|
|
10
18
|
declare const handleWsMessage: MessageHandler;
|
|
11
|
-
/**
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Handle bg:getFullState — return merged state from all local caches.
|
|
21
|
+
* Combines plugin metadata (chrome.storage.local), server state cache
|
|
22
|
+
* (tool enabled states, browserTools, failedPlugins, serverVersion),
|
|
23
|
+
* and tab state cache (per-plugin tab state) into a single response.
|
|
24
|
+
*/
|
|
25
|
+
declare const handleBgGetFullState: MessageHandler;
|
|
15
26
|
/**
|
|
16
27
|
* Handle plugin:logs — forward batched plugin log entries to the MCP server.
|
|
17
28
|
* Validates the entries array at runtime because this message originates from
|
|
@@ -28,6 +39,22 @@ declare const handleToolProgress: MessageHandler;
|
|
|
28
39
|
declare const handleSpConfirmationResponse: MessageHandler;
|
|
29
40
|
/** Handle sp:confirmationTimeout — confirmation timed out without user response */
|
|
30
41
|
declare const handleSpConfirmationTimeout: MessageHandler;
|
|
42
|
+
/** Handle bg:setToolEnabled — toggle a single tool's enabled state via the MCP server */
|
|
43
|
+
declare const handleBgSetToolEnabled: MessageHandler;
|
|
44
|
+
/** Handle bg:setAllToolsEnabled — toggle all tools for a plugin via the MCP server */
|
|
45
|
+
declare const handleBgSetAllToolsEnabled: MessageHandler;
|
|
46
|
+
/** Handle bg:setBrowserToolEnabled — toggle a browser tool's enabled state via the MCP server */
|
|
47
|
+
declare const handleBgSetBrowserToolEnabled: MessageHandler;
|
|
48
|
+
/** Handle bg:setAllBrowserToolsEnabled — toggle all browser tools via the MCP server */
|
|
49
|
+
declare const handleBgSetAllBrowserToolsEnabled: MessageHandler;
|
|
50
|
+
/** Handle bg:searchPlugins — search npm registry for plugins */
|
|
51
|
+
declare const handleBgSearchPlugins: MessageHandler;
|
|
52
|
+
/** Handle bg:installPlugin — install a plugin by package name */
|
|
53
|
+
declare const handleBgInstallPlugin: MessageHandler;
|
|
54
|
+
/** Handle bg:removePlugin — remove an installed plugin */
|
|
55
|
+
declare const handleBgRemovePlugin: MessageHandler;
|
|
56
|
+
/** Handle bg:updatePlugin — update a plugin to the latest registry version */
|
|
57
|
+
declare const handleBgUpdatePlugin: MessageHandler;
|
|
31
58
|
/** Handle port-changed — relay port change to offscreen document for reconnect */
|
|
32
59
|
declare const handlePortChanged: MessageHandler;
|
|
33
60
|
/**
|
|
@@ -37,5 +64,5 @@ declare const handlePortChanged: MessageHandler;
|
|
|
37
64
|
declare const initBackgroundMessageHandlers: () => void;
|
|
38
65
|
/** Exported handler names for testing (mirrors methodHandlerNames in message-router.ts) */
|
|
39
66
|
declare const backgroundHandlerNames: readonly string[];
|
|
40
|
-
export { backgroundHandlerNames,
|
|
67
|
+
export { backgroundHandlerNames, handleBgGetFullState, handleBgInstallPlugin, handleBgRemovePlugin, handleBgSearchPlugins, handleBgSetAllBrowserToolsEnabled, handleBgSetAllToolsEnabled, handleBgSetBrowserToolEnabled, handleBgSetToolEnabled, handleBgUpdatePlugin, handleOffscreenGetUrl, handlePluginLogs, handlePortChanged, handleSpConfirmationResponse, handleSpConfirmationTimeout, handleToolProgress, handleWsMessage, handleWsState, initBackgroundMessageHandlers, restoreWsConnectedState, waitForWsConnectedRestore, };
|
|
41
68
|
//# sourceMappingURL=background-message-handlers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"background-message-handlers.d.ts","sourceRoot":"","sources":["../src/background-message-handlers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"background-message-handlers.d.ts","sourceRoot":"","sources":["../src/background-message-handlers.ts"],"names":[],"mappings":"AAoDA;;;GAGG;AACH,QAAA,MAAM,uBAAuB,QAAO,IAYnC,CAAC;AAEF;;;GAGG;AACH,QAAA,MAAM,yBAAyB,QAAO,OAAO,CAAC,IAAI,CAAmD,CAAC;AActG,wDAAwD;AACxD,KAAK,cAAc,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;AAE5G,2FAA2F;AAC3F,QAAA,MAAM,qBAAqB,EAAE,cAY5B,CAAC;AAEF,2DAA2D;AAC3D,QAAA,MAAM,aAAa,EAAE,cAmBpB,CAAC;AAEF,uEAAuE;AACvE,QAAA,MAAM,eAAe,EAAE,cAOtB,CAAC;AAEF;;;;;GAKG;AACH,QAAA,MAAM,oBAAoB,EAAE,cAiG3B,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,gBAAgB,EAAE,cAqBvB,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,kBAAkB,EAAE,cAoBzB,CAAC;AAEF,uFAAuF;AACvF,QAAA,MAAM,4BAA4B,EAAE,cAenC,CAAC;AAEF,mFAAmF;AACnF,QAAA,MAAM,2BAA2B,EAAE,cAOlC,CAAC;AAEF,yFAAyF;AACzF,QAAA,MAAM,sBAAsB,EAAE,cAyC7B,CAAC;AAEF,sFAAsF;AACtF,QAAA,MAAM,0BAA0B,EAAE,cAiDjC,CAAC;AAEF,iGAAiG;AACjG,QAAA,MAAM,6BAA6B,EAAE,cA6BpC,CAAC;AAEF,wFAAwF;AACxF,QAAA,MAAM,iCAAiC,EAAE,cAiCxC,CAAC;AAEF,gEAAgE;AAChE,QAAA,MAAM,qBAAqB,EAAE,cAS5B,CAAC;AAEF,iEAAiE;AACjE,QAAA,MAAM,qBAAqB,EAAE,cAS5B,CAAC;AAEF,0DAA0D;AAC1D,QAAA,MAAM,oBAAoB,EAAE,cAS3B,CAAC;AAEF,8EAA8E;AAC9E,QAAA,MAAM,oBAAoB,EAAE,cAS3B,CAAC;AAEF,kFAAkF;AAClF,QAAA,MAAM,iBAAiB,EAAE,cAKxB,CAAC;AA+CF;;;GAGG;AACH,QAAA,MAAM,6BAA6B,QAAO,IAoBzC,CAAC;AAEF,2FAA2F;AAC3F,QAAA,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAAmC,CAAC;AAEjF,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,iCAAiC,EACjC,0BAA0B,EAC1B,6BAA6B,EAC7B,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,4BAA4B,EAC5B,2BAA2B,EAC3B,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,6BAA6B,EAC7B,uBAAuB,EACvB,yBAAyB,GAC1B,CAAC"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { clearAllConfirmationBadges, clearConfirmationBackgroundTimeout, clearConfirmationBadge, } from './confirmation-badge.js';
|
|
1
|
+
import { clearAllConfirmationBadges, clearConfirmationBackgroundTimeout, clearConfirmationBadge, getPendingConfirmations, } from './confirmation-badge.js';
|
|
2
2
|
import { buildWsUrl, SERVER_PORT_KEY, WS_CONNECTED_KEY } from './constants.js';
|
|
3
3
|
import { handleServerMessage } from './message-router.js';
|
|
4
4
|
import { forwardToSidePanel, sendToServer } from './messaging.js';
|
|
5
|
-
import {
|
|
5
|
+
import { getAllPluginMeta } from './plugin-storage.js';
|
|
6
|
+
import { rejectAllPendingServerRequests, sendServerRequest } from './server-request.js';
|
|
7
|
+
import { addPendingAllBrowserToolsUpdate, addPendingBrowserToolUpdate, addPendingPluginAllToolsUpdate, addPendingPluginToolUpdate, clearServerStateCache, getCachesInitialized, getServerStateCache, loadServerStateCacheFromSession, removePendingAllBrowserToolsUpdate, removePendingBrowserToolUpdate, removePendingPluginAllToolsUpdate, removePendingPluginToolUpdate, updateServerStateCache, } from './server-state-cache.js';
|
|
8
|
+
import { clearTabStateCache, getLastKnownStates, loadLastKnownStateFromSession, stopReadinessPoll, } from './tab-state.js';
|
|
6
9
|
import { notifyDispatchProgress } from './tool-dispatch.js';
|
|
7
10
|
// ---------------------------------------------------------------------------
|
|
8
11
|
// WebSocket connection state
|
|
@@ -15,9 +18,16 @@ import { notifyDispatchProgress } from './tool-dispatch.js';
|
|
|
15
18
|
let wsConnected = false;
|
|
16
19
|
/** Tracks the reason for the last WebSocket disconnection */
|
|
17
20
|
let lastDisconnectReason;
|
|
18
|
-
/**
|
|
21
|
+
/** Promise tracking the in-flight or completed wsConnected restore from session storage */
|
|
22
|
+
let wsConnectedRestorePromise;
|
|
23
|
+
/**
|
|
24
|
+
* Restore wsConnected from chrome.storage.session on service worker wake.
|
|
25
|
+
* Idempotent: only reads from storage once per service worker lifecycle.
|
|
26
|
+
*/
|
|
19
27
|
const restoreWsConnectedState = () => {
|
|
20
|
-
|
|
28
|
+
if (wsConnectedRestorePromise !== undefined)
|
|
29
|
+
return;
|
|
30
|
+
wsConnectedRestorePromise = chrome.storage.session
|
|
21
31
|
.get(WS_CONNECTED_KEY)
|
|
22
32
|
.then(data => {
|
|
23
33
|
if (typeof data[WS_CONNECTED_KEY] === 'boolean') {
|
|
@@ -28,6 +38,11 @@ const restoreWsConnectedState = () => {
|
|
|
28
38
|
// storage.session may not be available in all contexts
|
|
29
39
|
});
|
|
30
40
|
};
|
|
41
|
+
/**
|
|
42
|
+
* Await the wsConnected restore from session storage.
|
|
43
|
+
* Returns immediately if restoreWsConnectedState has not been called yet.
|
|
44
|
+
*/
|
|
45
|
+
const waitForWsConnectedRestore = () => wsConnectedRestorePromise ?? Promise.resolve();
|
|
31
46
|
/** Persist wsConnected to chrome.storage.session */
|
|
32
47
|
const persistWsConnected = (connected) => {
|
|
33
48
|
wsConnected = connected;
|
|
@@ -61,26 +76,118 @@ const handleWsState = (message, sendResponse) => {
|
|
|
61
76
|
},
|
|
62
77
|
});
|
|
63
78
|
if (!nowConnected) {
|
|
79
|
+
stopReadinessPoll();
|
|
64
80
|
clearTabStateCache();
|
|
81
|
+
clearServerStateCache();
|
|
82
|
+
rejectAllPendingServerRequests();
|
|
65
83
|
clearAllConfirmationBadges();
|
|
66
84
|
}
|
|
67
85
|
sendResponse({ ok: true });
|
|
68
86
|
};
|
|
69
87
|
/** Handle ws:message — relay a JSON-RPC message from the MCP server */
|
|
70
88
|
const handleWsMessage = (message, sendResponse) => {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
89
|
+
try {
|
|
90
|
+
handleServerMessage(message.data);
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
console.error('[opentabs:background] handleServerMessage threw:', err);
|
|
94
|
+
}
|
|
77
95
|
sendResponse({ ok: true });
|
|
78
96
|
};
|
|
79
|
-
/**
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
97
|
+
/**
|
|
98
|
+
* Handle bg:getFullState — return merged state from all local caches.
|
|
99
|
+
* Combines plugin metadata (chrome.storage.local), server state cache
|
|
100
|
+
* (tool enabled states, browserTools, failedPlugins, serverVersion),
|
|
101
|
+
* and tab state cache (per-plugin tab state) into a single response.
|
|
102
|
+
*/
|
|
103
|
+
const handleBgGetFullState = (_message, sendResponse) => {
|
|
104
|
+
(async () => {
|
|
105
|
+
// Await wsConnected restoration before reading it. On service worker wake,
|
|
106
|
+
// restoreWsConnectedState() may still be pending when the first bg:getFullState
|
|
107
|
+
// arrives. Without this await, wsConnected would be false even though session
|
|
108
|
+
// storage has true, causing the side panel to show a false disconnected state.
|
|
109
|
+
await waitForWsConnectedRestore();
|
|
110
|
+
// Read caches once for the wake detection check
|
|
111
|
+
let tabStates = getLastKnownStates();
|
|
112
|
+
let serverCache = getServerStateCache();
|
|
113
|
+
// Wake detection: if the service worker was suspended, in-memory caches
|
|
114
|
+
// are empty but wsConnected may still be true (restored from session storage).
|
|
115
|
+
// Restore server state from session first — this also restores cachesInitialized,
|
|
116
|
+
// which distinguishes "woke from suspension after sync.full" (true) from
|
|
117
|
+
// "connected but sync.full has not arrived yet" (false). Tab state is only
|
|
118
|
+
// restored when cachesInitialized is true, preventing stale session data
|
|
119
|
+
// from being used during the connect-to-sync.full gap.
|
|
120
|
+
if (wsConnected && tabStates.size === 0 && serverCache.plugins.length === 0) {
|
|
121
|
+
await loadServerStateCacheFromSession();
|
|
122
|
+
if (getCachesInitialized()) {
|
|
123
|
+
await loadLastKnownStateFromSession();
|
|
124
|
+
tabStates = getLastKnownStates();
|
|
125
|
+
}
|
|
126
|
+
serverCache = getServerStateCache();
|
|
127
|
+
}
|
|
128
|
+
const metaIndex = await getAllPluginMeta();
|
|
129
|
+
// Build a lookup from server cache plugins by name for O(1) merge
|
|
130
|
+
const serverPluginMap = new Map();
|
|
131
|
+
for (const sp of serverCache.plugins) {
|
|
132
|
+
serverPluginMap.set(sp.name, sp);
|
|
133
|
+
}
|
|
134
|
+
// Merge each plugin from metaCache with server state and tab state
|
|
135
|
+
const plugins = Object.values(metaIndex).map(meta => {
|
|
136
|
+
const serverPlugin = serverPluginMap.get(meta.name);
|
|
137
|
+
// Tab state from lastKnownState cache (serialized JSON)
|
|
138
|
+
let tabState = 'closed';
|
|
139
|
+
const serialized = tabStates.get(meta.name);
|
|
140
|
+
if (serialized) {
|
|
141
|
+
try {
|
|
142
|
+
const parsed = JSON.parse(serialized);
|
|
143
|
+
tabState = parsed.state;
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
// Fall back to 'closed' on parse error
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// Tool enabled states: prefer server cache, default to enabled=true
|
|
150
|
+
const tools = meta.tools.map(metaTool => {
|
|
151
|
+
const serverTool = serverPlugin?.tools.find(st => st.name === metaTool.name);
|
|
152
|
+
return {
|
|
153
|
+
...metaTool,
|
|
154
|
+
enabled: serverTool?.enabled ?? true,
|
|
155
|
+
};
|
|
156
|
+
});
|
|
157
|
+
return {
|
|
158
|
+
name: meta.name,
|
|
159
|
+
displayName: meta.displayName,
|
|
160
|
+
version: meta.version,
|
|
161
|
+
trustTier: meta.trustTier,
|
|
162
|
+
urlPatterns: meta.urlPatterns,
|
|
163
|
+
iconSvg: meta.iconSvg,
|
|
164
|
+
iconInactiveSvg: meta.iconInactiveSvg,
|
|
165
|
+
tools,
|
|
166
|
+
tabState,
|
|
167
|
+
source: serverPlugin?.source ?? 'local',
|
|
168
|
+
sdkVersion: serverPlugin?.sdkVersion,
|
|
169
|
+
update: serverPlugin?.update,
|
|
170
|
+
};
|
|
171
|
+
});
|
|
172
|
+
sendResponse({
|
|
173
|
+
connected: wsConnected,
|
|
174
|
+
disconnectReason: wsConnected ? undefined : lastDisconnectReason,
|
|
175
|
+
plugins,
|
|
176
|
+
failedPlugins: serverCache.failedPlugins,
|
|
177
|
+
browserTools: serverCache.browserTools,
|
|
178
|
+
serverVersion: serverCache.serverVersion,
|
|
179
|
+
pendingConfirmations: getPendingConfirmations(),
|
|
180
|
+
});
|
|
181
|
+
})().catch(() => {
|
|
182
|
+
sendResponse({
|
|
183
|
+
connected: wsConnected,
|
|
184
|
+
disconnectReason: wsConnected ? undefined : lastDisconnectReason,
|
|
185
|
+
plugins: [],
|
|
186
|
+
failedPlugins: [],
|
|
187
|
+
browserTools: [],
|
|
188
|
+
serverVersion: undefined,
|
|
189
|
+
pendingConfirmations: [],
|
|
190
|
+
});
|
|
84
191
|
});
|
|
85
192
|
};
|
|
86
193
|
/**
|
|
@@ -163,6 +270,200 @@ const handleSpConfirmationTimeout = (message, sendResponse) => {
|
|
|
163
270
|
clearConfirmationBadge(id);
|
|
164
271
|
sendResponse({ ok: true });
|
|
165
272
|
};
|
|
273
|
+
/** Handle bg:setToolEnabled — toggle a single tool's enabled state via the MCP server */
|
|
274
|
+
const handleBgSetToolEnabled = (message, sendResponse) => {
|
|
275
|
+
const plugin = message.plugin;
|
|
276
|
+
const tool = message.tool;
|
|
277
|
+
const enabled = message.enabled;
|
|
278
|
+
// Capture the original enabled value for surgical rollback
|
|
279
|
+
const cache = getServerStateCache();
|
|
280
|
+
const pluginEntry = cache.plugins.find(p => p.name === plugin);
|
|
281
|
+
const originalEnabled = pluginEntry?.tools.find(t => t.name === tool)?.enabled ?? !enabled;
|
|
282
|
+
// Optimistically update the local server state cache
|
|
283
|
+
const updatedPlugins = cache.plugins.map(p => {
|
|
284
|
+
if (p.name !== plugin)
|
|
285
|
+
return p;
|
|
286
|
+
return {
|
|
287
|
+
...p,
|
|
288
|
+
tools: p.tools.map(t => (t.name === tool ? { ...t, enabled } : t)),
|
|
289
|
+
};
|
|
290
|
+
});
|
|
291
|
+
addPendingPluginToolUpdate(plugin, tool, enabled);
|
|
292
|
+
updateServerStateCache({ plugins: updatedPlugins });
|
|
293
|
+
sendServerRequest('config.setToolEnabled', { plugin, tool, enabled })
|
|
294
|
+
.then((result) => {
|
|
295
|
+
removePendingPluginToolUpdate(plugin, tool);
|
|
296
|
+
sendResponse(result);
|
|
297
|
+
})
|
|
298
|
+
.catch((err) => {
|
|
299
|
+
removePendingPluginToolUpdate(plugin, tool);
|
|
300
|
+
// Surgically revert only the target tool in the current cache, preserving
|
|
301
|
+
// any concurrent plugins.changed updates that arrived during the request.
|
|
302
|
+
const currentCache = getServerStateCache();
|
|
303
|
+
const revertedPlugins = currentCache.plugins.map(p => {
|
|
304
|
+
if (p.name !== plugin)
|
|
305
|
+
return p;
|
|
306
|
+
return {
|
|
307
|
+
...p,
|
|
308
|
+
tools: p.tools.map(t => (t.name === tool ? { ...t, enabled: originalEnabled } : t)),
|
|
309
|
+
};
|
|
310
|
+
});
|
|
311
|
+
updateServerStateCache({ plugins: revertedPlugins });
|
|
312
|
+
sendResponse({ error: err instanceof Error ? err.message : String(err) });
|
|
313
|
+
});
|
|
314
|
+
};
|
|
315
|
+
/** Handle bg:setAllToolsEnabled — toggle all tools for a plugin via the MCP server */
|
|
316
|
+
const handleBgSetAllToolsEnabled = (message, sendResponse) => {
|
|
317
|
+
const plugin = message.plugin;
|
|
318
|
+
const enabled = message.enabled;
|
|
319
|
+
// Capture original enabled values for surgical rollback
|
|
320
|
+
const cache = getServerStateCache();
|
|
321
|
+
const pluginEntry = cache.plugins.find(p => p.name === plugin);
|
|
322
|
+
const toolNames = pluginEntry ? pluginEntry.tools.map(t => t.name) : [];
|
|
323
|
+
const originalToolStates = new Map();
|
|
324
|
+
if (pluginEntry) {
|
|
325
|
+
for (const t of pluginEntry.tools) {
|
|
326
|
+
originalToolStates.set(t.name, t.enabled);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
// Optimistically update the local server state cache
|
|
330
|
+
const updatedPlugins = cache.plugins.map(p => {
|
|
331
|
+
if (p.name !== plugin)
|
|
332
|
+
return p;
|
|
333
|
+
return {
|
|
334
|
+
...p,
|
|
335
|
+
tools: p.tools.map(t => ({ ...t, enabled })),
|
|
336
|
+
};
|
|
337
|
+
});
|
|
338
|
+
addPendingPluginAllToolsUpdate(plugin, toolNames, enabled);
|
|
339
|
+
updateServerStateCache({ plugins: updatedPlugins });
|
|
340
|
+
sendServerRequest('config.setAllToolsEnabled', { plugin, enabled })
|
|
341
|
+
.then((result) => {
|
|
342
|
+
removePendingPluginAllToolsUpdate(plugin, toolNames);
|
|
343
|
+
sendResponse(result);
|
|
344
|
+
})
|
|
345
|
+
.catch((err) => {
|
|
346
|
+
removePendingPluginAllToolsUpdate(plugin, toolNames);
|
|
347
|
+
// Surgically revert only the target plugin's tools in the current cache,
|
|
348
|
+
// preserving any concurrent plugins.changed updates that arrived during the request.
|
|
349
|
+
const currentCache = getServerStateCache();
|
|
350
|
+
const revertedPlugins = currentCache.plugins.map(p => {
|
|
351
|
+
if (p.name !== plugin)
|
|
352
|
+
return p;
|
|
353
|
+
return {
|
|
354
|
+
...p,
|
|
355
|
+
tools: p.tools.map(t => ({
|
|
356
|
+
...t,
|
|
357
|
+
enabled: originalToolStates.get(t.name) ?? t.enabled,
|
|
358
|
+
})),
|
|
359
|
+
};
|
|
360
|
+
});
|
|
361
|
+
updateServerStateCache({ plugins: revertedPlugins });
|
|
362
|
+
sendResponse({ error: err instanceof Error ? err.message : String(err) });
|
|
363
|
+
});
|
|
364
|
+
};
|
|
365
|
+
/** Handle bg:setBrowserToolEnabled — toggle a browser tool's enabled state via the MCP server */
|
|
366
|
+
const handleBgSetBrowserToolEnabled = (message, sendResponse) => {
|
|
367
|
+
const tool = message.tool;
|
|
368
|
+
const enabled = message.enabled;
|
|
369
|
+
// Capture the original enabled value for surgical rollback
|
|
370
|
+
const cache = getServerStateCache();
|
|
371
|
+
const originalEnabled = cache.browserTools.find(bt => bt.name === tool)?.enabled ?? !enabled;
|
|
372
|
+
// Optimistically update the local server state cache
|
|
373
|
+
const updatedBrowserTools = cache.browserTools.map(bt => (bt.name === tool ? { ...bt, enabled } : bt));
|
|
374
|
+
addPendingBrowserToolUpdate(tool, enabled);
|
|
375
|
+
updateServerStateCache({ browserTools: updatedBrowserTools });
|
|
376
|
+
sendServerRequest('config.setBrowserToolEnabled', { tool, enabled })
|
|
377
|
+
.then((result) => {
|
|
378
|
+
removePendingBrowserToolUpdate(tool);
|
|
379
|
+
sendResponse(result);
|
|
380
|
+
})
|
|
381
|
+
.catch((err) => {
|
|
382
|
+
removePendingBrowserToolUpdate(tool);
|
|
383
|
+
// Surgically revert only the target browser tool in the current cache,
|
|
384
|
+
// preserving any concurrent plugins.changed updates that arrived during the request.
|
|
385
|
+
const currentCache = getServerStateCache();
|
|
386
|
+
const revertedBrowserTools = currentCache.browserTools.map(bt => bt.name === tool ? { ...bt, enabled: originalEnabled } : bt);
|
|
387
|
+
updateServerStateCache({ browserTools: revertedBrowserTools });
|
|
388
|
+
sendResponse({ error: err instanceof Error ? err.message : String(err) });
|
|
389
|
+
});
|
|
390
|
+
};
|
|
391
|
+
/** Handle bg:setAllBrowserToolsEnabled — toggle all browser tools via the MCP server */
|
|
392
|
+
const handleBgSetAllBrowserToolsEnabled = (message, sendResponse) => {
|
|
393
|
+
const enabled = message.enabled;
|
|
394
|
+
// Capture original enabled values for surgical rollback
|
|
395
|
+
const cache = getServerStateCache();
|
|
396
|
+
const toolNames = cache.browserTools.map(bt => bt.name);
|
|
397
|
+
const originalToolStates = new Map();
|
|
398
|
+
for (const bt of cache.browserTools) {
|
|
399
|
+
originalToolStates.set(bt.name, bt.enabled);
|
|
400
|
+
}
|
|
401
|
+
// Optimistically update the local server state cache
|
|
402
|
+
const updatedBrowserTools = cache.browserTools.map(bt => ({ ...bt, enabled }));
|
|
403
|
+
addPendingAllBrowserToolsUpdate(toolNames, enabled);
|
|
404
|
+
updateServerStateCache({ browserTools: updatedBrowserTools });
|
|
405
|
+
sendServerRequest('config.setAllBrowserToolsEnabled', { enabled })
|
|
406
|
+
.then((result) => {
|
|
407
|
+
removePendingAllBrowserToolsUpdate(toolNames);
|
|
408
|
+
sendResponse(result);
|
|
409
|
+
})
|
|
410
|
+
.catch((err) => {
|
|
411
|
+
removePendingAllBrowserToolsUpdate(toolNames);
|
|
412
|
+
// Surgically revert only the browser tools' enabled states in the current cache,
|
|
413
|
+
// preserving any concurrent plugins.changed updates that arrived during the request.
|
|
414
|
+
const currentCache = getServerStateCache();
|
|
415
|
+
const revertedBrowserTools = currentCache.browserTools.map(bt => ({
|
|
416
|
+
...bt,
|
|
417
|
+
enabled: originalToolStates.get(bt.name) ?? bt.enabled,
|
|
418
|
+
}));
|
|
419
|
+
updateServerStateCache({ browserTools: revertedBrowserTools });
|
|
420
|
+
sendResponse({ error: err instanceof Error ? err.message : String(err) });
|
|
421
|
+
});
|
|
422
|
+
};
|
|
423
|
+
/** Handle bg:searchPlugins — search npm registry for plugins */
|
|
424
|
+
const handleBgSearchPlugins = (message, sendResponse) => {
|
|
425
|
+
const query = message.query;
|
|
426
|
+
sendServerRequest('plugin.search', { query })
|
|
427
|
+
.then((result) => {
|
|
428
|
+
sendResponse(result);
|
|
429
|
+
})
|
|
430
|
+
.catch((err) => {
|
|
431
|
+
sendResponse({ error: err instanceof Error ? err.message : String(err) });
|
|
432
|
+
});
|
|
433
|
+
};
|
|
434
|
+
/** Handle bg:installPlugin — install a plugin by package name */
|
|
435
|
+
const handleBgInstallPlugin = (message, sendResponse) => {
|
|
436
|
+
const name = message.name;
|
|
437
|
+
sendServerRequest('plugin.install', { name })
|
|
438
|
+
.then((result) => {
|
|
439
|
+
sendResponse(result);
|
|
440
|
+
})
|
|
441
|
+
.catch((err) => {
|
|
442
|
+
sendResponse({ error: err instanceof Error ? err.message : String(err) });
|
|
443
|
+
});
|
|
444
|
+
};
|
|
445
|
+
/** Handle bg:removePlugin — remove an installed plugin */
|
|
446
|
+
const handleBgRemovePlugin = (message, sendResponse) => {
|
|
447
|
+
const name = message.name;
|
|
448
|
+
sendServerRequest('plugin.remove', { name })
|
|
449
|
+
.then((result) => {
|
|
450
|
+
sendResponse(result);
|
|
451
|
+
})
|
|
452
|
+
.catch((err) => {
|
|
453
|
+
sendResponse({ error: err instanceof Error ? err.message : String(err) });
|
|
454
|
+
});
|
|
455
|
+
};
|
|
456
|
+
/** Handle bg:updatePlugin — update a plugin to the latest registry version */
|
|
457
|
+
const handleBgUpdatePlugin = (message, sendResponse) => {
|
|
458
|
+
const name = message.name;
|
|
459
|
+
sendServerRequest('plugin.updateFromRegistry', { name })
|
|
460
|
+
.then((result) => {
|
|
461
|
+
sendResponse(result);
|
|
462
|
+
})
|
|
463
|
+
.catch((err) => {
|
|
464
|
+
sendResponse({ error: err instanceof Error ? err.message : String(err) });
|
|
465
|
+
});
|
|
466
|
+
};
|
|
166
467
|
/** Handle port-changed — relay port change to offscreen document for reconnect */
|
|
167
468
|
const handlePortChanged = (message, sendResponse) => {
|
|
168
469
|
chrome.runtime.sendMessage(message).catch(() => {
|
|
@@ -177,8 +478,15 @@ const backgroundHandlers = new Map([
|
|
|
177
478
|
['offscreen:getUrl', handleOffscreenGetUrl],
|
|
178
479
|
['ws:state', handleWsState],
|
|
179
480
|
['ws:message', handleWsMessage],
|
|
180
|
-
['bg:
|
|
181
|
-
['bg:
|
|
481
|
+
['bg:getFullState', handleBgGetFullState],
|
|
482
|
+
['bg:setToolEnabled', handleBgSetToolEnabled],
|
|
483
|
+
['bg:setAllToolsEnabled', handleBgSetAllToolsEnabled],
|
|
484
|
+
['bg:setBrowserToolEnabled', handleBgSetBrowserToolEnabled],
|
|
485
|
+
['bg:setAllBrowserToolsEnabled', handleBgSetAllBrowserToolsEnabled],
|
|
486
|
+
['bg:searchPlugins', handleBgSearchPlugins],
|
|
487
|
+
['bg:installPlugin', handleBgInstallPlugin],
|
|
488
|
+
['bg:removePlugin', handleBgRemovePlugin],
|
|
489
|
+
['bg:updatePlugin', handleBgUpdatePlugin],
|
|
182
490
|
['plugin:logs', handlePluginLogs],
|
|
183
491
|
['tool:progress', handleToolProgress],
|
|
184
492
|
['sp:confirmationResponse', handleSpConfirmationResponse],
|
|
@@ -191,8 +499,15 @@ const EXTENSION_ONLY_TYPES = new Set([
|
|
|
191
499
|
'offscreen:getUrl',
|
|
192
500
|
'ws:state',
|
|
193
501
|
'ws:message',
|
|
194
|
-
'bg:
|
|
195
|
-
'bg:
|
|
502
|
+
'bg:getFullState',
|
|
503
|
+
'bg:setToolEnabled',
|
|
504
|
+
'bg:setAllToolsEnabled',
|
|
505
|
+
'bg:setBrowserToolEnabled',
|
|
506
|
+
'bg:setAllBrowserToolsEnabled',
|
|
507
|
+
'bg:searchPlugins',
|
|
508
|
+
'bg:installPlugin',
|
|
509
|
+
'bg:removePlugin',
|
|
510
|
+
'bg:updatePlugin',
|
|
196
511
|
'offscreen:getLogs',
|
|
197
512
|
'sp:confirmationResponse',
|
|
198
513
|
'sp:confirmationTimeout',
|
|
@@ -221,5 +536,5 @@ const initBackgroundMessageHandlers = () => {
|
|
|
221
536
|
};
|
|
222
537
|
/** Exported handler names for testing (mirrors methodHandlerNames in message-router.ts) */
|
|
223
538
|
const backgroundHandlerNames = [...backgroundHandlers.keys()];
|
|
224
|
-
export { backgroundHandlerNames,
|
|
539
|
+
export { backgroundHandlerNames, handleBgGetFullState, handleBgInstallPlugin, handleBgRemovePlugin, handleBgSearchPlugins, handleBgSetAllBrowserToolsEnabled, handleBgSetAllToolsEnabled, handleBgSetBrowserToolEnabled, handleBgSetToolEnabled, handleBgUpdatePlugin, handleOffscreenGetUrl, handlePluginLogs, handlePortChanged, handleSpConfirmationResponse, handleSpConfirmationTimeout, handleToolProgress, handleWsMessage, handleWsState, initBackgroundMessageHandlers, restoreWsConnectedState, waitForWsConnectedRestore, };
|
|
225
540
|
//# sourceMappingURL=background-message-handlers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"background-message-handlers.js","sourceRoot":"","sources":["../src/background-message-handlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"background-message-handlers.js","sourceRoot":"","sources":["../src/background-message-handlers.ts"],"names":[],"mappings":"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"}
|