@opentabs-dev/browser-extension 0.0.51 → 0.0.53

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.
Files changed (74) hide show
  1. package/dist/background-message-handlers.d.ts +24 -3
  2. package/dist/background-message-handlers.d.ts.map +1 -1
  3. package/dist/background-message-handlers.js +251 -9
  4. package/dist/background-message-handlers.js.map +1 -1
  5. package/dist/background.js +593 -117
  6. package/dist/background.js.map +1 -1
  7. package/dist/confirmation-badge.d.ts +2 -2
  8. package/dist/confirmation-badge.d.ts.map +1 -1
  9. package/dist/confirmation-badge.js +49 -17
  10. package/dist/confirmation-badge.js.map +1 -1
  11. package/dist/constants.d.ts +8 -0
  12. package/dist/constants.d.ts.map +1 -1
  13. package/dist/constants.js +8 -0
  14. package/dist/constants.js.map +1 -1
  15. package/dist/extension-messages.d.ts +49 -6
  16. package/dist/extension-messages.d.ts.map +1 -1
  17. package/dist/known-methods.d.ts +2 -2
  18. package/dist/known-methods.d.ts.map +1 -1
  19. package/dist/known-methods.js +1 -0
  20. package/dist/known-methods.js.map +1 -1
  21. package/dist/message-router.d.ts.map +1 -1
  22. package/dist/message-router.js +119 -11
  23. package/dist/message-router.js.map +1 -1
  24. package/dist/offscreen/index.js +11 -2
  25. package/dist/offscreen/index.js.map +1 -1
  26. package/dist/server-request.d.ts +19 -0
  27. package/dist/server-request.d.ts.map +1 -0
  28. package/dist/server-request.js +79 -0
  29. package/dist/server-request.js.map +1 -0
  30. package/dist/server-state-cache.d.ts +41 -0
  31. package/dist/server-state-cache.d.ts.map +1 -0
  32. package/dist/server-state-cache.js +75 -0
  33. package/dist/server-state-cache.js.map +1 -0
  34. package/dist/side-panel/App.d.ts.map +1 -1
  35. package/dist/side-panel/App.js +28 -59
  36. package/dist/side-panel/App.js.map +1 -1
  37. package/dist/side-panel/bridge.d.ts +19 -33
  38. package/dist/side-panel/bridge.d.ts.map +1 -1
  39. package/dist/side-panel/bridge.js +27 -91
  40. package/dist/side-panel/bridge.js.map +1 -1
  41. package/dist/side-panel/components/BrowserToolsCard.d.ts.map +1 -1
  42. package/dist/side-panel/components/BrowserToolsCard.js +2 -1
  43. package/dist/side-panel/components/BrowserToolsCard.js.map +1 -1
  44. package/dist/side-panel/components/PluginCard.d.ts.map +1 -1
  45. package/dist/side-panel/components/PluginCard.js +2 -1
  46. package/dist/side-panel/components/PluginCard.js.map +1 -1
  47. package/dist/side-panel/components/PluginIcon.d.ts +2 -1
  48. package/dist/side-panel/components/PluginIcon.d.ts.map +1 -1
  49. package/dist/side-panel/components/PluginIcon.js +23 -5
  50. package/dist/side-panel/components/PluginIcon.js.map +1 -1
  51. package/dist/side-panel/components/ToolIcon.d.ts +2 -1
  52. package/dist/side-panel/components/ToolIcon.d.ts.map +1 -1
  53. package/dist/side-panel/components/ToolIcon.js +17 -3
  54. package/dist/side-panel/components/ToolIcon.js.map +1 -1
  55. package/dist/side-panel/components/ToolRow.d.ts.map +1 -1
  56. package/dist/side-panel/components/ToolRow.js +1 -2
  57. package/dist/side-panel/components/ToolRow.js.map +1 -1
  58. package/dist/side-panel/components/retro/Button.d.ts +1 -1
  59. package/dist/side-panel/hooks/useServerNotifications.d.ts +1 -3
  60. package/dist/side-panel/hooks/useServerNotifications.d.ts.map +1 -1
  61. package/dist/side-panel/hooks/useServerNotifications.js +2 -8
  62. package/dist/side-panel/hooks/useServerNotifications.js.map +1 -1
  63. package/dist/side-panel/side-panel.js +1201 -1210
  64. package/dist/side-panel/styles.css +1 -1
  65. package/dist/side-panel-toggle.d.ts +6 -0
  66. package/dist/side-panel-toggle.d.ts.map +1 -1
  67. package/dist/side-panel-toggle.js +6 -0
  68. package/dist/side-panel-toggle.js.map +1 -1
  69. package/dist/tab-state.d.ts +19 -1
  70. package/dist/tab-state.d.ts.map +1 -1
  71. package/dist/tab-state.js +128 -3
  72. package/dist/tab-state.js.map +1 -1
  73. package/manifest.json +1 -1
  74. package/package.json +1 -1
@@ -8,10 +8,15 @@ declare const handleOffscreenGetUrl: MessageHandler;
8
8
  declare const handleWsState: MessageHandler;
9
9
  /** Handle ws:message — relay a JSON-RPC message from the MCP server */
10
10
  declare const handleWsMessage: MessageHandler;
11
- /** Handle bg:send — send a JSON-RPC message to the MCP server */
12
- declare const handleBgSend: MessageHandler;
13
11
  /** Handle bg:getConnectionState — query WebSocket connection state */
14
12
  declare const handleBgGetConnectionState: MessageHandler;
13
+ /**
14
+ * Handle bg:getFullState — return merged state from all local caches.
15
+ * Combines plugin metadata (chrome.storage.local), server state cache
16
+ * (tool enabled states, browserTools, failedPlugins, serverVersion),
17
+ * and tab state cache (per-plugin tab state) into a single response.
18
+ */
19
+ declare const handleBgGetFullState: MessageHandler;
15
20
  /**
16
21
  * Handle plugin:logs — forward batched plugin log entries to the MCP server.
17
22
  * Validates the entries array at runtime because this message originates from
@@ -28,6 +33,22 @@ declare const handleToolProgress: MessageHandler;
28
33
  declare const handleSpConfirmationResponse: MessageHandler;
29
34
  /** Handle sp:confirmationTimeout — confirmation timed out without user response */
30
35
  declare const handleSpConfirmationTimeout: MessageHandler;
36
+ /** Handle bg:setToolEnabled — toggle a single tool's enabled state via the MCP server */
37
+ declare const handleBgSetToolEnabled: MessageHandler;
38
+ /** Handle bg:setAllToolsEnabled — toggle all tools for a plugin via the MCP server */
39
+ declare const handleBgSetAllToolsEnabled: MessageHandler;
40
+ /** Handle bg:setBrowserToolEnabled — toggle a browser tool's enabled state via the MCP server */
41
+ declare const handleBgSetBrowserToolEnabled: MessageHandler;
42
+ /** Handle bg:setAllBrowserToolsEnabled — toggle all browser tools via the MCP server */
43
+ declare const handleBgSetAllBrowserToolsEnabled: MessageHandler;
44
+ /** Handle bg:searchPlugins — search npm registry for plugins */
45
+ declare const handleBgSearchPlugins: MessageHandler;
46
+ /** Handle bg:installPlugin — install a plugin by package name */
47
+ declare const handleBgInstallPlugin: MessageHandler;
48
+ /** Handle bg:removePlugin — remove an installed plugin */
49
+ declare const handleBgRemovePlugin: MessageHandler;
50
+ /** Handle bg:updatePlugin — update a plugin to the latest registry version */
51
+ declare const handleBgUpdatePlugin: MessageHandler;
31
52
  /** Handle port-changed — relay port change to offscreen document for reconnect */
32
53
  declare const handlePortChanged: MessageHandler;
33
54
  /**
@@ -37,5 +58,5 @@ declare const handlePortChanged: MessageHandler;
37
58
  declare const initBackgroundMessageHandlers: () => void;
38
59
  /** Exported handler names for testing (mirrors methodHandlerNames in message-router.ts) */
39
60
  declare const backgroundHandlerNames: readonly string[];
40
- export { backgroundHandlerNames, handleBgGetConnectionState, handleBgSend, handleOffscreenGetUrl, handlePluginLogs, handlePortChanged, handleSpConfirmationResponse, handleSpConfirmationTimeout, handleToolProgress, handleWsMessage, handleWsState, initBackgroundMessageHandlers, restoreWsConnectedState, };
61
+ export { backgroundHandlerNames, handleBgGetConnectionState, handleBgGetFullState, handleBgInstallPlugin, handleBgRemovePlugin, handleBgSearchPlugins, handleBgSetAllBrowserToolsEnabled, handleBgSetAllToolsEnabled, handleBgSetBrowserToolEnabled, handleBgSetToolEnabled, handleBgUpdatePlugin, handleOffscreenGetUrl, handlePluginLogs, handlePortChanged, handleSpConfirmationResponse, handleSpConfirmationTimeout, handleToolProgress, handleWsMessage, handleWsState, initBackgroundMessageHandlers, restoreWsConnectedState, };
41
62
  //# 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":"AAyBA,6EAA6E;AAC7E,QAAA,MAAM,uBAAuB,QAAO,IAWnC,CAAC;AAcF,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,cAgBpB,CAAC;AAEF,uEAAuE;AACvE,QAAA,MAAM,eAAe,EAAE,cAGtB,CAAC;AAEF,iEAAiE;AACjE,QAAA,MAAM,YAAY,EAAE,cAGnB,CAAC;AAEF,sEAAsE;AACtE,QAAA,MAAM,0BAA0B,EAAE,cAKjC,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,kFAAkF;AAClF,QAAA,MAAM,iBAAiB,EAAE,cAKxB,CAAC;AAiCF;;;GAGG;AACH,QAAA,MAAM,6BAA6B,QAAO,IAoBzC,CAAC;AAEF,2FAA2F;AAC3F,QAAA,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAAmC,CAAC;AAEjF,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,YAAY,EACZ,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,4BAA4B,EAC5B,2BAA2B,EAC3B,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,6BAA6B,EAC7B,uBAAuB,GACxB,CAAC"}
1
+ {"version":3,"file":"background-message-handlers.d.ts","sourceRoot":"","sources":["../src/background-message-handlers.ts"],"names":[],"mappings":"AAuCA,6EAA6E;AAC7E,QAAA,MAAM,uBAAuB,QAAO,IAWnC,CAAC;AAcF,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,cAGtB,CAAC;AAEF,sEAAsE;AACtE,QAAA,MAAM,0BAA0B,EAAE,cAKjC,CAAC;AAEF;;;;;GAKG;AACH,QAAA,MAAM,oBAAoB,EAAE,cAkF3B,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,cAiC7B,CAAC;AAEF,sFAAsF;AACtF,QAAA,MAAM,0BAA0B,EAAE,cAyBjC,CAAC;AAEF,iGAAiG;AACjG,QAAA,MAAM,6BAA6B,EAAE,cAsBpC,CAAC;AAEF,wFAAwF;AACxF,QAAA,MAAM,iCAAiC,EAAE,cAkBxC,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;AAiDF;;;GAGG;AACH,QAAA,MAAM,6BAA6B,QAAO,IAoBzC,CAAC;AAEF,2FAA2F;AAC3F,QAAA,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAAmC,CAAC;AAEjF,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,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,GACxB,CAAC"}
@@ -2,7 +2,10 @@ import { clearAllConfirmationBadges, clearConfirmationBackgroundTimeout, clearCo
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 { clearTabStateCache } from './tab-state.js';
5
+ import { getAllPluginMeta } from './plugin-storage.js';
6
+ import { rejectAllPendingServerRequests, sendServerRequest } from './server-request.js';
7
+ import { clearServerStateCache, getServerStateCache, loadServerStateCacheFromSession, 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
@@ -61,7 +64,10 @@ const handleWsState = (message, sendResponse) => {
61
64
  },
62
65
  });
63
66
  if (!nowConnected) {
67
+ stopReadinessPoll();
64
68
  clearTabStateCache();
69
+ clearServerStateCache();
70
+ rejectAllPendingServerRequests();
65
71
  clearAllConfirmationBadges();
66
72
  }
67
73
  sendResponse({ ok: true });
@@ -71,11 +77,6 @@ const handleWsMessage = (message, sendResponse) => {
71
77
  handleServerMessage(message.data);
72
78
  sendResponse({ ok: true });
73
79
  };
74
- /** Handle bg:send — send a JSON-RPC message to the MCP server */
75
- const handleBgSend = (message, sendResponse) => {
76
- sendToServer(message.data);
77
- sendResponse({ ok: true });
78
- };
79
80
  /** Handle bg:getConnectionState — query WebSocket connection state */
80
81
  const handleBgGetConnectionState = (_message, sendResponse) => {
81
82
  sendResponse({
@@ -83,6 +84,88 @@ const handleBgGetConnectionState = (_message, sendResponse) => {
83
84
  disconnectReason: wsConnected ? undefined : lastDisconnectReason,
84
85
  });
85
86
  };
87
+ /**
88
+ * Handle bg:getFullState — return merged state from all local caches.
89
+ * Combines plugin metadata (chrome.storage.local), server state cache
90
+ * (tool enabled states, browserTools, failedPlugins, serverVersion),
91
+ * and tab state cache (per-plugin tab state) into a single response.
92
+ */
93
+ const handleBgGetFullState = (_message, sendResponse) => {
94
+ (async () => {
95
+ // Read caches once for the wake detection check
96
+ let tabStates = getLastKnownStates();
97
+ let serverCache = getServerStateCache();
98
+ // Wake detection: if the service worker was suspended, in-memory caches
99
+ // are empty but wsConnected may still be true (restored from session storage).
100
+ // Reload caches from session storage before merging.
101
+ if (wsConnected && tabStates.size === 0 && serverCache.plugins.length === 0) {
102
+ await Promise.all([loadLastKnownStateFromSession(), loadServerStateCacheFromSession()]);
103
+ tabStates = getLastKnownStates();
104
+ serverCache = getServerStateCache();
105
+ }
106
+ const metaIndex = await getAllPluginMeta();
107
+ // Build a lookup from server cache plugins by name for O(1) merge
108
+ const serverPluginMap = new Map();
109
+ for (const sp of serverCache.plugins) {
110
+ serverPluginMap.set(sp.name, sp);
111
+ }
112
+ // Merge each plugin from metaCache with server state and tab state
113
+ const plugins = Object.values(metaIndex).map(meta => {
114
+ const serverPlugin = serverPluginMap.get(meta.name);
115
+ // Tab state from lastKnownState cache (serialized JSON)
116
+ let tabState = 'closed';
117
+ const serialized = tabStates.get(meta.name);
118
+ if (serialized) {
119
+ try {
120
+ const parsed = JSON.parse(serialized);
121
+ tabState = parsed.state;
122
+ }
123
+ catch {
124
+ // Fall back to 'closed' on parse error
125
+ }
126
+ }
127
+ // Tool enabled states: prefer server cache, default to enabled=true
128
+ const tools = meta.tools.map(metaTool => {
129
+ const serverTool = serverPlugin?.tools.find(st => st.name === metaTool.name);
130
+ return {
131
+ ...metaTool,
132
+ enabled: serverTool?.enabled ?? true,
133
+ };
134
+ });
135
+ return {
136
+ name: meta.name,
137
+ displayName: meta.displayName,
138
+ version: meta.version,
139
+ trustTier: meta.trustTier,
140
+ urlPatterns: meta.urlPatterns,
141
+ iconSvg: meta.iconSvg,
142
+ iconInactiveSvg: meta.iconInactiveSvg,
143
+ tools,
144
+ tabState,
145
+ source: serverPlugin?.source ?? 'local',
146
+ sdkVersion: serverPlugin?.sdkVersion,
147
+ update: serverPlugin?.update,
148
+ };
149
+ });
150
+ sendResponse({
151
+ connected: wsConnected,
152
+ disconnectReason: wsConnected ? undefined : lastDisconnectReason,
153
+ plugins,
154
+ failedPlugins: serverCache.failedPlugins,
155
+ browserTools: serverCache.browserTools,
156
+ serverVersion: serverCache.serverVersion,
157
+ });
158
+ })().catch(() => {
159
+ sendResponse({
160
+ connected: wsConnected,
161
+ disconnectReason: wsConnected ? undefined : lastDisconnectReason,
162
+ plugins: [],
163
+ failedPlugins: [],
164
+ browserTools: [],
165
+ serverVersion: undefined,
166
+ });
167
+ });
168
+ };
86
169
  /**
87
170
  * Handle plugin:logs — forward batched plugin log entries to the MCP server.
88
171
  * Validates the entries array at runtime because this message originates from
@@ -163,6 +246,149 @@ const handleSpConfirmationTimeout = (message, sendResponse) => {
163
246
  clearConfirmationBadge(id);
164
247
  sendResponse({ ok: true });
165
248
  };
249
+ /** Handle bg:setToolEnabled — toggle a single tool's enabled state via the MCP server */
250
+ const handleBgSetToolEnabled = (message, sendResponse) => {
251
+ const plugin = message.plugin;
252
+ const tool = message.tool;
253
+ const enabled = message.enabled;
254
+ // Optimistically update the local server state cache
255
+ const cache = getServerStateCache();
256
+ const updatedPlugins = cache.plugins.map(p => {
257
+ if (p.name !== plugin)
258
+ return p;
259
+ return {
260
+ ...p,
261
+ tools: p.tools.map(t => (t.name === tool ? { ...t, enabled } : t)),
262
+ };
263
+ });
264
+ updateServerStateCache({ plugins: updatedPlugins });
265
+ sendServerRequest('config.setToolEnabled', { plugin, tool, enabled })
266
+ .then((result) => {
267
+ sendResponse(result);
268
+ })
269
+ .catch((err) => {
270
+ // Revert the optimistic update on failure
271
+ const revertCache = getServerStateCache();
272
+ const revertPlugins = revertCache.plugins.map(p => {
273
+ if (p.name !== plugin)
274
+ return p;
275
+ return {
276
+ ...p,
277
+ tools: p.tools.map(t => (t.name === tool ? { ...t, enabled: !enabled } : t)),
278
+ };
279
+ });
280
+ updateServerStateCache({ plugins: revertPlugins });
281
+ sendResponse({ error: err instanceof Error ? err.message : String(err) });
282
+ });
283
+ };
284
+ /** Handle bg:setAllToolsEnabled — toggle all tools for a plugin via the MCP server */
285
+ const handleBgSetAllToolsEnabled = (message, sendResponse) => {
286
+ const plugin = message.plugin;
287
+ const enabled = message.enabled;
288
+ // Optimistically update the local server state cache
289
+ const cache = getServerStateCache();
290
+ const originalPlugins = cache.plugins;
291
+ const updatedPlugins = cache.plugins.map(p => {
292
+ if (p.name !== plugin)
293
+ return p;
294
+ return {
295
+ ...p,
296
+ tools: p.tools.map(t => ({ ...t, enabled })),
297
+ };
298
+ });
299
+ updateServerStateCache({ plugins: updatedPlugins });
300
+ sendServerRequest('config.setAllToolsEnabled', { plugin, enabled })
301
+ .then((result) => {
302
+ sendResponse(result);
303
+ })
304
+ .catch((err) => {
305
+ // Revert to the original plugins on failure
306
+ updateServerStateCache({ plugins: originalPlugins });
307
+ sendResponse({ error: err instanceof Error ? err.message : String(err) });
308
+ });
309
+ };
310
+ /** Handle bg:setBrowserToolEnabled — toggle a browser tool's enabled state via the MCP server */
311
+ const handleBgSetBrowserToolEnabled = (message, sendResponse) => {
312
+ const tool = message.tool;
313
+ const enabled = message.enabled;
314
+ // Optimistically update the local server state cache
315
+ const cache = getServerStateCache();
316
+ const updatedBrowserTools = cache.browserTools.map(bt => (bt.name === tool ? { ...bt, enabled } : bt));
317
+ updateServerStateCache({ browserTools: updatedBrowserTools });
318
+ sendServerRequest('config.setBrowserToolEnabled', { tool, enabled })
319
+ .then((result) => {
320
+ sendResponse(result);
321
+ })
322
+ .catch((err) => {
323
+ // Revert the optimistic update on failure
324
+ const revertCache = getServerStateCache();
325
+ const revertBrowserTools = revertCache.browserTools.map(bt => bt.name === tool ? { ...bt, enabled: !enabled } : bt);
326
+ updateServerStateCache({ browserTools: revertBrowserTools });
327
+ sendResponse({ error: err instanceof Error ? err.message : String(err) });
328
+ });
329
+ };
330
+ /** Handle bg:setAllBrowserToolsEnabled — toggle all browser tools via the MCP server */
331
+ const handleBgSetAllBrowserToolsEnabled = (message, sendResponse) => {
332
+ const enabled = message.enabled;
333
+ // Optimistically update the local server state cache
334
+ const cache = getServerStateCache();
335
+ const originalBrowserTools = cache.browserTools;
336
+ const updatedBrowserTools = cache.browserTools.map(bt => ({ ...bt, enabled }));
337
+ updateServerStateCache({ browserTools: updatedBrowserTools });
338
+ sendServerRequest('config.setAllBrowserToolsEnabled', { enabled })
339
+ .then((result) => {
340
+ sendResponse(result);
341
+ })
342
+ .catch((err) => {
343
+ // Revert to the original browser tools on failure
344
+ updateServerStateCache({ browserTools: originalBrowserTools });
345
+ sendResponse({ error: err instanceof Error ? err.message : String(err) });
346
+ });
347
+ };
348
+ /** Handle bg:searchPlugins — search npm registry for plugins */
349
+ const handleBgSearchPlugins = (message, sendResponse) => {
350
+ const query = message.query;
351
+ sendServerRequest('plugin.search', { query })
352
+ .then((result) => {
353
+ sendResponse(result);
354
+ })
355
+ .catch((err) => {
356
+ sendResponse({ error: err instanceof Error ? err.message : String(err) });
357
+ });
358
+ };
359
+ /** Handle bg:installPlugin — install a plugin by package name */
360
+ const handleBgInstallPlugin = (message, sendResponse) => {
361
+ const name = message.name;
362
+ sendServerRequest('plugin.install', { name })
363
+ .then((result) => {
364
+ sendResponse(result);
365
+ })
366
+ .catch((err) => {
367
+ sendResponse({ error: err instanceof Error ? err.message : String(err) });
368
+ });
369
+ };
370
+ /** Handle bg:removePlugin — remove an installed plugin */
371
+ const handleBgRemovePlugin = (message, sendResponse) => {
372
+ const name = message.name;
373
+ sendServerRequest('plugin.remove', { name })
374
+ .then((result) => {
375
+ sendResponse(result);
376
+ })
377
+ .catch((err) => {
378
+ sendResponse({ error: err instanceof Error ? err.message : String(err) });
379
+ });
380
+ };
381
+ /** Handle bg:updatePlugin — update a plugin to the latest registry version */
382
+ const handleBgUpdatePlugin = (message, sendResponse) => {
383
+ const name = message.name;
384
+ sendServerRequest('plugin.updateFromRegistry', { name })
385
+ .then((result) => {
386
+ sendResponse(result);
387
+ })
388
+ .catch((err) => {
389
+ sendResponse({ error: err instanceof Error ? err.message : String(err) });
390
+ });
391
+ };
166
392
  /** Handle port-changed — relay port change to offscreen document for reconnect */
167
393
  const handlePortChanged = (message, sendResponse) => {
168
394
  chrome.runtime.sendMessage(message).catch(() => {
@@ -177,8 +403,16 @@ const backgroundHandlers = new Map([
177
403
  ['offscreen:getUrl', handleOffscreenGetUrl],
178
404
  ['ws:state', handleWsState],
179
405
  ['ws:message', handleWsMessage],
180
- ['bg:send', handleBgSend],
181
406
  ['bg:getConnectionState', handleBgGetConnectionState],
407
+ ['bg:getFullState', handleBgGetFullState],
408
+ ['bg:setToolEnabled', handleBgSetToolEnabled],
409
+ ['bg:setAllToolsEnabled', handleBgSetAllToolsEnabled],
410
+ ['bg:setBrowserToolEnabled', handleBgSetBrowserToolEnabled],
411
+ ['bg:setAllBrowserToolsEnabled', handleBgSetAllBrowserToolsEnabled],
412
+ ['bg:searchPlugins', handleBgSearchPlugins],
413
+ ['bg:installPlugin', handleBgInstallPlugin],
414
+ ['bg:removePlugin', handleBgRemovePlugin],
415
+ ['bg:updatePlugin', handleBgUpdatePlugin],
182
416
  ['plugin:logs', handlePluginLogs],
183
417
  ['tool:progress', handleToolProgress],
184
418
  ['sp:confirmationResponse', handleSpConfirmationResponse],
@@ -191,8 +425,16 @@ const EXTENSION_ONLY_TYPES = new Set([
191
425
  'offscreen:getUrl',
192
426
  'ws:state',
193
427
  'ws:message',
194
- 'bg:send',
195
428
  'bg:getConnectionState',
429
+ 'bg:getFullState',
430
+ 'bg:setToolEnabled',
431
+ 'bg:setAllToolsEnabled',
432
+ 'bg:setBrowserToolEnabled',
433
+ 'bg:setAllBrowserToolsEnabled',
434
+ 'bg:searchPlugins',
435
+ 'bg:installPlugin',
436
+ 'bg:removePlugin',
437
+ 'bg:updatePlugin',
196
438
  'offscreen:getLogs',
197
439
  'sp:confirmationResponse',
198
440
  'sp:confirmationTimeout',
@@ -221,5 +463,5 @@ const initBackgroundMessageHandlers = () => {
221
463
  };
222
464
  /** Exported handler names for testing (mirrors methodHandlerNames in message-router.ts) */
223
465
  const backgroundHandlerNames = [...backgroundHandlers.keys()];
224
- export { backgroundHandlerNames, handleBgGetConnectionState, handleBgSend, handleOffscreenGetUrl, handlePluginLogs, handlePortChanged, handleSpConfirmationResponse, handleSpConfirmationTimeout, handleToolProgress, handleWsMessage, handleWsState, initBackgroundMessageHandlers, restoreWsConnectedState, };
466
+ export { backgroundHandlerNames, handleBgGetConnectionState, handleBgGetFullState, handleBgInstallPlugin, handleBgRemovePlugin, handleBgSearchPlugins, handleBgSetAllBrowserToolsEnabled, handleBgSetAllToolsEnabled, handleBgSetBrowserToolEnabled, handleBgSetToolEnabled, handleBgUpdatePlugin, handleOffscreenGetUrl, handlePluginLogs, handlePortChanged, handleSpConfirmationResponse, handleSpConfirmationTimeout, handleToolProgress, handleWsMessage, handleWsState, initBackgroundMessageHandlers, restoreWsConnectedState, };
225
467
  //# 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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"}