@opentabs-dev/mcp-server 0.0.60 → 0.0.62

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 (184) hide show
  1. package/dist/adapter-files.js +1 -1
  2. package/dist/adapter-files.js.map +1 -1
  3. package/dist/browser-tools/analyze-site.d.ts.map +1 -1
  4. package/dist/browser-tools/analyze-site.js +2 -0
  5. package/dist/browser-tools/analyze-site.js.map +1 -1
  6. package/dist/browser-tools/clear-console-logs.d.ts.map +1 -1
  7. package/dist/browser-tools/clear-console-logs.js +2 -0
  8. package/dist/browser-tools/clear-console-logs.js.map +1 -1
  9. package/dist/browser-tools/click-element.d.ts.map +1 -1
  10. package/dist/browser-tools/click-element.js +2 -0
  11. package/dist/browser-tools/click-element.js.map +1 -1
  12. package/dist/browser-tools/close-tab.d.ts.map +1 -1
  13. package/dist/browser-tools/close-tab.js +2 -0
  14. package/dist/browser-tools/close-tab.js.map +1 -1
  15. package/dist/browser-tools/definition.d.ts +4 -0
  16. package/dist/browser-tools/definition.d.ts.map +1 -1
  17. package/dist/browser-tools/definition.js.map +1 -1
  18. package/dist/browser-tools/delete-cookies.d.ts.map +1 -1
  19. package/dist/browser-tools/delete-cookies.js +2 -0
  20. package/dist/browser-tools/delete-cookies.js.map +1 -1
  21. package/dist/browser-tools/disable-network-capture.d.ts.map +1 -1
  22. package/dist/browser-tools/disable-network-capture.js +2 -0
  23. package/dist/browser-tools/disable-network-capture.js.map +1 -1
  24. package/dist/browser-tools/enable-network-capture.d.ts.map +1 -1
  25. package/dist/browser-tools/enable-network-capture.js +2 -0
  26. package/dist/browser-tools/enable-network-capture.js.map +1 -1
  27. package/dist/browser-tools/execute-script.d.ts.map +1 -1
  28. package/dist/browser-tools/execute-script.js +2 -0
  29. package/dist/browser-tools/execute-script.js.map +1 -1
  30. package/dist/browser-tools/export-har.d.ts.map +1 -1
  31. package/dist/browser-tools/export-har.js +2 -0
  32. package/dist/browser-tools/export-har.js.map +1 -1
  33. package/dist/browser-tools/extension-check-adapter.d.ts.map +1 -1
  34. package/dist/browser-tools/extension-check-adapter.js +2 -0
  35. package/dist/browser-tools/extension-check-adapter.js.map +1 -1
  36. package/dist/browser-tools/extension-force-reconnect.d.ts.map +1 -1
  37. package/dist/browser-tools/extension-force-reconnect.js +2 -0
  38. package/dist/browser-tools/extension-force-reconnect.js.map +1 -1
  39. package/dist/browser-tools/extension-get-logs.d.ts +1 -1
  40. package/dist/browser-tools/extension-get-logs.d.ts.map +1 -1
  41. package/dist/browser-tools/extension-get-logs.js +2 -0
  42. package/dist/browser-tools/extension-get-logs.js.map +1 -1
  43. package/dist/browser-tools/extension-get-side-panel.d.ts.map +1 -1
  44. package/dist/browser-tools/extension-get-side-panel.js +2 -0
  45. package/dist/browser-tools/extension-get-side-panel.js.map +1 -1
  46. package/dist/browser-tools/extension-get-state.d.ts.map +1 -1
  47. package/dist/browser-tools/extension-get-state.js +2 -0
  48. package/dist/browser-tools/extension-get-state.js.map +1 -1
  49. package/dist/browser-tools/focus-tab.d.ts.map +1 -1
  50. package/dist/browser-tools/focus-tab.js +2 -0
  51. package/dist/browser-tools/focus-tab.js.map +1 -1
  52. package/dist/browser-tools/get-console-logs.d.ts +1 -1
  53. package/dist/browser-tools/get-console-logs.d.ts.map +1 -1
  54. package/dist/browser-tools/get-console-logs.js +2 -0
  55. package/dist/browser-tools/get-console-logs.js.map +1 -1
  56. package/dist/browser-tools/get-cookies.d.ts.map +1 -1
  57. package/dist/browser-tools/get-cookies.js +2 -0
  58. package/dist/browser-tools/get-cookies.js.map +1 -1
  59. package/dist/browser-tools/get-network-requests.d.ts.map +1 -1
  60. package/dist/browser-tools/get-network-requests.js +2 -0
  61. package/dist/browser-tools/get-network-requests.js.map +1 -1
  62. package/dist/browser-tools/get-page-html.d.ts.map +1 -1
  63. package/dist/browser-tools/get-page-html.js +2 -0
  64. package/dist/browser-tools/get-page-html.js.map +1 -1
  65. package/dist/browser-tools/get-resource-content.d.ts.map +1 -1
  66. package/dist/browser-tools/get-resource-content.js +2 -0
  67. package/dist/browser-tools/get-resource-content.js.map +1 -1
  68. package/dist/browser-tools/get-storage.d.ts.map +1 -1
  69. package/dist/browser-tools/get-storage.js +2 -0
  70. package/dist/browser-tools/get-storage.js.map +1 -1
  71. package/dist/browser-tools/get-tab-content.d.ts.map +1 -1
  72. package/dist/browser-tools/get-tab-content.js +2 -0
  73. package/dist/browser-tools/get-tab-content.js.map +1 -1
  74. package/dist/browser-tools/get-tab-info.d.ts.map +1 -1
  75. package/dist/browser-tools/get-tab-info.js +2 -0
  76. package/dist/browser-tools/get-tab-info.js.map +1 -1
  77. package/dist/browser-tools/get-websocket-frames.d.ts.map +1 -1
  78. package/dist/browser-tools/get-websocket-frames.js +2 -0
  79. package/dist/browser-tools/get-websocket-frames.js.map +1 -1
  80. package/dist/browser-tools/handle-dialog.d.ts.map +1 -1
  81. package/dist/browser-tools/handle-dialog.js +2 -0
  82. package/dist/browser-tools/handle-dialog.js.map +1 -1
  83. package/dist/browser-tools/hover-element.d.ts.map +1 -1
  84. package/dist/browser-tools/hover-element.js +2 -0
  85. package/dist/browser-tools/hover-element.js.map +1 -1
  86. package/dist/browser-tools/index.d.ts.map +1 -1
  87. package/dist/browser-tools/index.js +5 -0
  88. package/dist/browser-tools/index.js.map +1 -1
  89. package/dist/browser-tools/list-resources.d.ts.map +1 -1
  90. package/dist/browser-tools/list-resources.js +2 -0
  91. package/dist/browser-tools/list-resources.js.map +1 -1
  92. package/dist/browser-tools/list-tabs.d.ts.map +1 -1
  93. package/dist/browser-tools/list-tabs.js +2 -0
  94. package/dist/browser-tools/list-tabs.js.map +1 -1
  95. package/dist/browser-tools/navigate-tab.d.ts.map +1 -1
  96. package/dist/browser-tools/navigate-tab.js +2 -0
  97. package/dist/browser-tools/navigate-tab.js.map +1 -1
  98. package/dist/browser-tools/open-tab.d.ts.map +1 -1
  99. package/dist/browser-tools/open-tab.js +2 -0
  100. package/dist/browser-tools/open-tab.js.map +1 -1
  101. package/dist/browser-tools/plugin-list-tabs.d.ts.map +1 -1
  102. package/dist/browser-tools/plugin-list-tabs.js +2 -0
  103. package/dist/browser-tools/plugin-list-tabs.js.map +1 -1
  104. package/dist/browser-tools/press-key.d.ts.map +1 -1
  105. package/dist/browser-tools/press-key.js +2 -0
  106. package/dist/browser-tools/press-key.js.map +1 -1
  107. package/dist/browser-tools/query-elements.d.ts.map +1 -1
  108. package/dist/browser-tools/query-elements.js +2 -0
  109. package/dist/browser-tools/query-elements.js.map +1 -1
  110. package/dist/browser-tools/reload-extension.d.ts.map +1 -1
  111. package/dist/browser-tools/reload-extension.js +2 -0
  112. package/dist/browser-tools/reload-extension.js.map +1 -1
  113. package/dist/browser-tools/screenshot-tab.d.ts.map +1 -1
  114. package/dist/browser-tools/screenshot-tab.js +2 -0
  115. package/dist/browser-tools/screenshot-tab.js.map +1 -1
  116. package/dist/browser-tools/scroll.d.ts.map +1 -1
  117. package/dist/browser-tools/scroll.js +2 -0
  118. package/dist/browser-tools/scroll.js.map +1 -1
  119. package/dist/browser-tools/select-option.d.ts.map +1 -1
  120. package/dist/browser-tools/select-option.js +2 -0
  121. package/dist/browser-tools/select-option.js.map +1 -1
  122. package/dist/browser-tools/set-cookie.d.ts.map +1 -1
  123. package/dist/browser-tools/set-cookie.js +2 -0
  124. package/dist/browser-tools/set-cookie.js.map +1 -1
  125. package/dist/browser-tools/type-text.d.ts.map +1 -1
  126. package/dist/browser-tools/type-text.js +2 -0
  127. package/dist/browser-tools/type-text.js.map +1 -1
  128. package/dist/browser-tools/wait-for-element.d.ts.map +1 -1
  129. package/dist/browser-tools/wait-for-element.js +2 -0
  130. package/dist/browser-tools/wait-for-element.js.map +1 -1
  131. package/dist/config.d.ts +16 -41
  132. package/dist/config.d.ts.map +1 -1
  133. package/dist/config.js +56 -111
  134. package/dist/config.js.map +1 -1
  135. package/dist/dev-proxy.js +101 -39
  136. package/dist/dev-proxy.js.map +1 -1
  137. package/dist/discovery.d.ts +1 -4
  138. package/dist/discovery.d.ts.map +1 -1
  139. package/dist/discovery.js +5 -17
  140. package/dist/discovery.js.map +1 -1
  141. package/dist/extension-handlers.d.ts +21 -14
  142. package/dist/extension-handlers.d.ts.map +1 -1
  143. package/dist/extension-handlers.js +108 -188
  144. package/dist/extension-handlers.js.map +1 -1
  145. package/dist/extension-protocol.d.ts +4 -9
  146. package/dist/extension-protocol.d.ts.map +1 -1
  147. package/dist/extension-protocol.js +16 -45
  148. package/dist/extension-protocol.js.map +1 -1
  149. package/dist/file-watcher.js +2 -2
  150. package/dist/file-watcher.js.map +1 -1
  151. package/dist/http-routes.d.ts.map +1 -1
  152. package/dist/http-routes.js +5 -9
  153. package/dist/http-routes.js.map +1 -1
  154. package/dist/loader.d.ts +2 -4
  155. package/dist/loader.d.ts.map +1 -1
  156. package/dist/loader.js +6 -5
  157. package/dist/loader.js.map +1 -1
  158. package/dist/mcp-setup.d.ts +9 -9
  159. package/dist/mcp-setup.d.ts.map +1 -1
  160. package/dist/mcp-setup.js +39 -26
  161. package/dist/mcp-setup.js.map +1 -1
  162. package/dist/mcp-tool-dispatch.d.ts +11 -12
  163. package/dist/mcp-tool-dispatch.d.ts.map +1 -1
  164. package/dist/mcp-tool-dispatch.js +86 -125
  165. package/dist/mcp-tool-dispatch.js.map +1 -1
  166. package/dist/plugin-management.d.ts +0 -1
  167. package/dist/plugin-management.d.ts.map +1 -1
  168. package/dist/plugin-management.js +1 -2
  169. package/dist/plugin-management.js.map +1 -1
  170. package/dist/registry.d.ts +2 -4
  171. package/dist/registry.d.ts.map +1 -1
  172. package/dist/registry.js +1 -12
  173. package/dist/registry.js.map +1 -1
  174. package/dist/reload.d.ts.map +1 -1
  175. package/dist/reload.js +40 -35
  176. package/dist/reload.js.map +1 -1
  177. package/dist/state.d.ts +18 -44
  178. package/dist/state.d.ts.map +1 -1
  179. package/dist/state.js +14 -43
  180. package/dist/state.js.map +1 -1
  181. package/dist/version-check.d.ts.map +1 -1
  182. package/dist/version-check.js +1 -1
  183. package/dist/version-check.js.map +1 -1
  184. package/package.json +1 -1
@@ -7,8 +7,10 @@
7
7
  import { appendLog } from './log-buffer.js';
8
8
  import { log } from './logger.js';
9
9
  import { checkPluginUpdates, installPlugin, removePlugin, searchNpmPlugins, updatePlugin, } from './plugin-management.js';
10
- import { DISPATCH_TIMEOUT_MS, isBrowserToolEnabled, isToolEnabled, MAX_DISPATCH_TIMEOUT_MS, prefixedToolName, pushSessionPermission, } from './state.js';
10
+ import { DISPATCH_TIMEOUT_MS, getToolPermission, MAX_DISPATCH_TIMEOUT_MS } from './state.js';
11
11
  import { version } from './version.js';
12
+ /** Valid ToolPermission values for parameter validation */
13
+ const VALID_PERMISSIONS = new Set(['off', 'ask', 'auto']);
12
14
  /**
13
15
  * Send a JSON-serialized message to the extension WebSocket if connected.
14
16
  * Centralizes the null check on state.extensionWs so callers don't repeat it.
@@ -61,28 +63,36 @@ const sendPluginManagementError = (state, id, err) => {
61
63
  * Returns the common core shape shared by sync.full, plugin.update, and config.getState.
62
64
  * Callers can spread additional fields on top (e.g., sourcePath, adapterHash for sync messages,
63
65
  * or tabState, source, sdkVersion for config.getState).
66
+ *
67
+ * The plugin-level permission comes from pluginPermissions[plugin.name]?.permission ?? 'off'.
68
+ * Each tool's permission is resolved via getToolPermission() (per-tool override → plugin default → 'off').
64
69
  */
65
- const serializePluginForExtension = (plugin, state) => ({
66
- name: plugin.name,
67
- version: plugin.version,
68
- displayName: plugin.displayName,
69
- urlPatterns: plugin.urlPatterns,
70
- trustTier: plugin.trustTier,
71
- ...(plugin.iconSvg ? { iconSvg: plugin.iconSvg } : {}),
72
- ...(plugin.iconInactiveSvg ? { iconInactiveSvg: plugin.iconInactiveSvg } : {}),
73
- ...(plugin.iconDarkSvg ? { iconDarkSvg: plugin.iconDarkSvg } : {}),
74
- ...(plugin.iconDarkInactiveSvg ? { iconDarkInactiveSvg: plugin.iconDarkInactiveSvg } : {}),
75
- tools: plugin.tools.map(t => ({
76
- name: t.name,
77
- displayName: t.displayName,
78
- description: t.description,
79
- icon: t.icon,
80
- ...(t.iconSvg ? { iconSvg: t.iconSvg } : {}),
81
- ...(t.iconInactiveSvg ? { iconInactiveSvg: t.iconInactiveSvg } : {}),
82
- ...(t.group ? { group: t.group } : {}),
83
- enabled: isToolEnabled(state, prefixedToolName(plugin.name, t.name)),
84
- })),
85
- });
70
+ const serializePluginForExtension = (state, plugin) => {
71
+ const pluginConfig = state.pluginPermissions[plugin.name];
72
+ const pluginPermission = pluginConfig?.permission ?? 'off';
73
+ return {
74
+ name: plugin.name,
75
+ version: plugin.version,
76
+ displayName: plugin.displayName,
77
+ urlPatterns: plugin.urlPatterns,
78
+ permission: pluginPermission,
79
+ ...(plugin.iconSvg ? { iconSvg: plugin.iconSvg } : {}),
80
+ ...(plugin.iconInactiveSvg ? { iconInactiveSvg: plugin.iconInactiveSvg } : {}),
81
+ ...(plugin.iconDarkSvg ? { iconDarkSvg: plugin.iconDarkSvg } : {}),
82
+ ...(plugin.iconDarkInactiveSvg ? { iconDarkInactiveSvg: plugin.iconDarkInactiveSvg } : {}),
83
+ tools: plugin.tools.map(t => ({
84
+ name: t.name,
85
+ displayName: t.displayName,
86
+ description: t.description,
87
+ ...(t.summary ? { summary: t.summary } : {}),
88
+ icon: t.icon,
89
+ ...(t.iconSvg ? { iconSvg: t.iconSvg } : {}),
90
+ ...(t.iconInactiveSvg ? { iconInactiveSvg: t.iconInactiveSvg } : {}),
91
+ ...(t.group ? { group: t.group } : {}),
92
+ permission: getToolPermission(state, plugin.name, t.name),
93
+ })),
94
+ };
95
+ };
86
96
  /** Parse a single wire tab info entry into a validated PluginTabInfo */
87
97
  const parsePluginTabInfo = (wire) => {
88
98
  if (typeof wire.tabId !== 'number')
@@ -191,7 +201,7 @@ const buildConfigStatePayload = (state) => {
191
201
  const tabInfo = state.tabMapping.get(p.name);
192
202
  const update = p.npmPackageName ? outdatedByPkg.get(p.npmPackageName) : undefined;
193
203
  return {
194
- ...serializePluginForExtension(p, state),
204
+ ...serializePluginForExtension(state, p),
195
205
  source: p.source,
196
206
  tabState: tabInfo?.state ?? 'closed',
197
207
  ...(p.sdkVersion ? { sdkVersion: p.sdkVersion } : {}),
@@ -204,9 +214,12 @@ const buildConfigStatePayload = (state) => {
204
214
  .map(ct => ({
205
215
  name: ct.name,
206
216
  description: ct.description,
207
- enabled: isBrowserToolEnabled(state, ct.name),
217
+ ...(ct.summary ? { summary: ct.summary } : {}),
218
+ permission: getToolPermission(state, 'browser', ct.name),
208
219
  ...(ct.icon ? { icon: ct.icon } : {}),
220
+ ...(ct.group ? { group: ct.group } : {}),
209
221
  }));
222
+ const browserPermission = state.pluginPermissions.browser?.permission ?? 'off';
210
223
  return {
211
224
  plugins,
212
225
  failedPlugins: state.discoveryErrors.map(e => ({
@@ -214,7 +227,9 @@ const buildConfigStatePayload = (state) => {
214
227
  error: e.error,
215
228
  })),
216
229
  browserTools,
230
+ browserPermission,
217
231
  serverVersion: version,
232
+ skipPermissions: state.skipPermissions,
218
233
  };
219
234
  };
220
235
  const handleConfigGetState = (state, id) => {
@@ -224,138 +239,64 @@ const handleConfigGetState = (state, id) => {
224
239
  id,
225
240
  });
226
241
  };
227
- const handleConfigSetToolEnabled = (state, params, id, callbacks) => {
228
- if (!params) {
229
- sendJsonRpcError(state, id, -32602, 'Missing params');
230
- return;
231
- }
232
- const toolEnabledParams = params;
233
- const pluginName = toolEnabledParams.plugin;
234
- const tool = toolEnabledParams.tool;
235
- const enabled = toolEnabledParams.enabled;
236
- if (typeof pluginName !== 'string' || typeof tool !== 'string' || typeof enabled !== 'boolean') {
237
- sendJsonRpcError(state, id, -32602, 'Invalid params: expected plugin (string), tool (string), enabled (boolean)');
238
- return;
239
- }
240
- const plugin = state.registry.plugins.get(pluginName);
241
- if (!plugin) {
242
- sendJsonRpcError(state, id, -32602, `Plugin not found: ${pluginName}`);
243
- return;
244
- }
245
- if (!plugin.tools.some(t => t.name === tool)) {
246
- sendJsonRpcError(state, id, -32602, `Tool not found: ${tool} in plugin ${pluginName}`);
247
- return;
248
- }
249
- const prefixed = prefixedToolName(pluginName, tool);
250
- state.toolConfig[prefixed] = enabled;
251
- callbacks.onToolConfigChanged();
252
- callbacks.onToolConfigPersist();
253
- sendToExtension(state, {
254
- jsonrpc: '2.0',
255
- method: 'plugins.changed',
256
- params: { ...buildConfigStatePayload(state) },
257
- });
258
- sendToExtension(state, {
259
- jsonrpc: '2.0',
260
- result: { ok: true },
261
- id,
262
- });
263
- };
264
- const handleConfigSetAllToolsEnabled = (state, params, id, callbacks) => {
242
+ /**
243
+ * Handle config.setToolPermission: set a per-tool permission override.
244
+ * Works for both plugin tools (plugin=pluginName) and browser tools (plugin='browser').
245
+ */
246
+ const handleConfigSetToolPermission = (state, params, id, callbacks) => {
265
247
  if (!params) {
266
248
  sendJsonRpcError(state, id, -32602, 'Missing params');
267
249
  return;
268
250
  }
269
- const allToolsEnabledParams = params;
270
- const pluginName = allToolsEnabledParams.plugin;
271
- const enabled = allToolsEnabledParams.enabled;
272
- if (typeof pluginName !== 'string' || typeof enabled !== 'boolean') {
273
- sendJsonRpcError(state, id, -32602, 'Invalid params: expected plugin (string), enabled (boolean)');
274
- return;
275
- }
276
- const plugin = state.registry.plugins.get(pluginName);
277
- if (!plugin) {
278
- sendJsonRpcError(state, id, -32602, `Plugin not found: ${pluginName}`);
279
- return;
280
- }
281
- for (const tool of plugin.tools) {
282
- const prefixed = prefixedToolName(pluginName, tool.name);
283
- state.toolConfig[prefixed] = enabled;
284
- }
285
- callbacks.onToolConfigChanged();
286
- callbacks.onToolConfigPersist();
287
- sendToExtension(state, {
288
- jsonrpc: '2.0',
289
- method: 'plugins.changed',
290
- params: { ...buildConfigStatePayload(state) },
291
- });
292
- sendToExtension(state, {
293
- jsonrpc: '2.0',
294
- result: { ok: true },
295
- id,
296
- });
297
- };
298
- const handleConfigSetToolsEnabled = (state, params, id, callbacks) => {
299
- if (!params) {
300
- sendJsonRpcError(state, id, -32602, 'Missing params');
251
+ const toolPermissionParams = params;
252
+ const pluginName = toolPermissionParams.plugin;
253
+ const tool = toolPermissionParams.tool;
254
+ const permission = toolPermissionParams.permission;
255
+ if (typeof pluginName !== 'string' || typeof tool !== 'string' || typeof permission !== 'string') {
256
+ sendJsonRpcError(state, id, -32602, 'Invalid params: expected plugin (string), tool (string), permission (string)');
301
257
  return;
302
258
  }
303
- const toolsEnabledParams = params;
304
- const pluginName = toolsEnabledParams.plugin;
305
- const tools = toolsEnabledParams.tools;
306
- const enabled = toolsEnabledParams.enabled;
307
- if (typeof pluginName !== 'string' || !Array.isArray(tools) || typeof enabled !== 'boolean') {
308
- sendJsonRpcError(state, id, -32602, 'Invalid params: expected plugin (string), tools (string[]), enabled (boolean)');
259
+ if (!VALID_PERMISSIONS.has(permission)) {
260
+ sendJsonRpcError(state, id, -32602, `Invalid permission: ${permission} (expected off, ask, or auto)`);
309
261
  return;
310
262
  }
311
- const plugin = state.registry.plugins.get(pluginName);
312
- if (!plugin) {
313
- sendJsonRpcError(state, id, -32602, `Plugin not found: ${pluginName}`);
314
- return;
263
+ // Validate tool exists in the appropriate context
264
+ if (pluginName === 'browser') {
265
+ if (!state.cachedBrowserTools.some(c => c.name === tool)) {
266
+ sendJsonRpcError(state, id, -32602, `Browser tool not found: ${tool}`);
267
+ return;
268
+ }
315
269
  }
316
- const pluginToolNames = new Set(plugin.tools.map(t => t.name));
317
- for (const tool of tools) {
318
- if (typeof tool !== 'string' || !pluginToolNames.has(tool)) {
270
+ else {
271
+ const plugin = state.registry.plugins.get(pluginName);
272
+ if (!plugin) {
273
+ sendJsonRpcError(state, id, -32602, `Plugin not found: ${pluginName}`);
274
+ return;
275
+ }
276
+ if (!plugin.tools.some(t => t.name === tool)) {
319
277
  sendJsonRpcError(state, id, -32602, `Tool not found: ${tool} in plugin ${pluginName}`);
320
278
  return;
321
279
  }
322
280
  }
323
- for (const tool of tools) {
324
- const prefixed = prefixedToolName(pluginName, tool);
325
- state.toolConfig[prefixed] = enabled;
281
+ const pConfig = state.pluginPermissions[pluginName] ?? {};
282
+ const pluginDefault = pConfig.permission ?? 'off';
283
+ const tools = { ...(pConfig.tools ?? {}) };
284
+ if (permission === pluginDefault) {
285
+ delete tools[tool];
326
286
  }
327
- callbacks.onToolConfigChanged();
328
- callbacks.onToolConfigPersist();
329
- sendToExtension(state, {
330
- jsonrpc: '2.0',
331
- method: 'plugins.changed',
332
- params: { ...buildConfigStatePayload(state) },
333
- });
334
- sendToExtension(state, {
335
- jsonrpc: '2.0',
336
- result: { ok: true },
337
- id,
338
- });
339
- };
340
- const handleConfigSetBrowserToolEnabled = (state, params, id, callbacks) => {
341
- if (!params) {
342
- sendJsonRpcError(state, id, -32602, 'Missing params');
343
- return;
287
+ else {
288
+ tools[tool] = permission;
344
289
  }
345
- const browserToolParams = params;
346
- const tool = browserToolParams.tool;
347
- const enabled = browserToolParams.enabled;
348
- if (typeof tool !== 'string' || typeof enabled !== 'boolean') {
349
- sendJsonRpcError(state, id, -32602, 'Invalid params: expected tool (string), enabled (boolean)');
350
- return;
290
+ const updated = { ...pConfig };
291
+ if (Object.keys(tools).length > 0) {
292
+ updated.tools = tools;
351
293
  }
352
- if (!state.cachedBrowserTools.some(c => c.name === tool)) {
353
- sendJsonRpcError(state, id, -32602, `Browser tool not found: ${tool}`);
354
- return;
294
+ else {
295
+ delete updated.tools;
355
296
  }
356
- state.browserToolPolicy[tool] = enabled;
297
+ state.pluginPermissions[pluginName] = updated;
357
298
  callbacks.onToolConfigChanged();
358
- callbacks.onBrowserToolPolicyPersist();
299
+ callbacks.onPluginPermissionsPersist();
359
300
  sendToExtension(state, {
360
301
  jsonrpc: '2.0',
361
302
  method: 'plugins.changed',
@@ -367,22 +308,38 @@ const handleConfigSetBrowserToolEnabled = (state, params, id, callbacks) => {
367
308
  id,
368
309
  });
369
310
  };
370
- const handleConfigSetAllBrowserToolsEnabled = (state, params, id, callbacks) => {
311
+ /**
312
+ * Handle config.setPluginPermission: set the plugin-level default permission.
313
+ * Works for both plugins (plugin=pluginName) and browser tools (plugin='browser').
314
+ */
315
+ const handleConfigSetPluginPermission = (state, params, id, callbacks) => {
371
316
  if (!params) {
372
317
  sendJsonRpcError(state, id, -32602, 'Missing params');
373
318
  return;
374
319
  }
375
- const allBrowserToolsParams = params;
376
- const enabled = allBrowserToolsParams.enabled;
377
- if (typeof enabled !== 'boolean') {
378
- sendJsonRpcError(state, id, -32602, 'Invalid params: expected enabled (boolean)');
320
+ const allToolsPermissionParams = params;
321
+ const pluginName = allToolsPermissionParams.plugin;
322
+ const permission = allToolsPermissionParams.permission;
323
+ if (typeof pluginName !== 'string' || typeof permission !== 'string') {
324
+ sendJsonRpcError(state, id, -32602, 'Invalid params: expected plugin (string), permission (string)');
325
+ return;
326
+ }
327
+ if (!VALID_PERMISSIONS.has(permission)) {
328
+ sendJsonRpcError(state, id, -32602, `Invalid permission: ${permission} (expected off, ask, or auto)`);
379
329
  return;
380
330
  }
381
- for (const tool of state.cachedBrowserTools) {
382
- state.browserToolPolicy[tool.name] = enabled;
331
+ // Validate plugin exists (browser is always valid)
332
+ if (pluginName !== 'browser') {
333
+ const plugin = state.registry.plugins.get(pluginName);
334
+ if (!plugin) {
335
+ sendJsonRpcError(state, id, -32602, `Plugin not found: ${pluginName}`);
336
+ return;
337
+ }
383
338
  }
339
+ const pConfig = state.pluginPermissions[pluginName] ?? {};
340
+ state.pluginPermissions[pluginName] = { ...pConfig, permission: permission };
384
341
  callbacks.onToolConfigChanged();
385
- callbacks.onBrowserToolPolicyPersist();
342
+ callbacks.onPluginPermissionsPersist();
386
343
  sendToExtension(state, {
387
344
  jsonrpc: '2.0',
388
345
  method: 'plugins.changed',
@@ -473,12 +430,9 @@ const handlePluginLog = (params, callbacks) => {
473
430
  callbacks.onPluginLog(entry);
474
431
  };
475
432
  // --- Confirmation handler ---
476
- /** Valid values for ConfirmationScope — used to validate extension input */
477
- const VALID_CONFIRMATION_SCOPES = new Set(['tool_domain', 'tool_all', 'domain_all']);
478
433
  /**
479
434
  * Handle a confirmation.response from the extension.
480
- * Resolves the pending confirmation promise with the user's decision.
481
- * For 'allow_always', also adds a session permission rule.
435
+ * Resolves the pending confirmation promise with the user's decision ('allow' or 'deny').
482
436
  */
483
437
  const handleConfirmationResponse = (state, params) => {
484
438
  if (!params)
@@ -487,47 +441,14 @@ const handleConfirmationResponse = (state, params) => {
487
441
  if (typeof id !== 'string')
488
442
  return;
489
443
  const decision = params.decision;
490
- if (decision !== 'allow_once' && decision !== 'allow_always' && decision !== 'deny')
444
+ if (decision !== 'allow' && decision !== 'deny')
491
445
  return;
492
446
  const pending = state.pendingConfirmations.get(id);
493
447
  if (!pending)
494
448
  return;
495
- clearTimeout(pending.timerId);
449
+ const alwaysAllow = params.alwaysAllow === true;
496
450
  state.pendingConfirmations.delete(id);
497
- // For allow_always, add a session permission rule based on the scope
498
- if (decision === 'allow_always') {
499
- const rawScope = typeof params.scope === 'string' ? params.scope : '';
500
- if (rawScope && !VALID_CONFIRMATION_SCOPES.has(rawScope)) {
501
- log.warn(`Invalid confirmation scope '${rawScope}', falling back to 'tool_domain'`);
502
- }
503
- const scope = VALID_CONFIRMATION_SCOPES.has(rawScope)
504
- ? rawScope
505
- : 'tool_domain';
506
- const rule = {
507
- tool: pending.tool,
508
- domain: pending.domain,
509
- scope,
510
- };
511
- // Adjust rule fields based on scope
512
- if (scope === 'tool_all') {
513
- rule.domain = null;
514
- }
515
- else if (scope === 'domain_all') {
516
- if (pending.domain === null) {
517
- // domain_all without a domain context would match all domains — fall back to tool_domain
518
- log.warn(`domain_all scope requested for '${pending.tool}' but no domain context — falling back to tool_domain`);
519
- rule.scope = 'tool_domain';
520
- }
521
- else {
522
- rule.tool = null;
523
- }
524
- }
525
- const isDuplicate = state.sessionPermissions.some(r => r.tool === rule.tool && r.domain === rule.domain && r.scope === rule.scope);
526
- if (!isDuplicate) {
527
- pushSessionPermission(state, rule);
528
- }
529
- }
530
- pending.resolve(decision);
451
+ pending.resolve({ action: decision, alwaysAllow });
531
452
  };
532
453
  /**
533
454
  * Reject all pending confirmations. Called when the extension disconnects
@@ -535,7 +456,6 @@ const handleConfirmationResponse = (state, params) => {
535
456
  */
536
457
  const rejectAllPendingConfirmations = (state) => {
537
458
  for (const [id, pending] of state.pendingConfirmations) {
538
- clearTimeout(pending.timerId);
539
459
  pending.reject(new Error('Extension disconnected — confirmation cancelled'));
540
460
  state.pendingConfirmations.delete(id);
541
461
  }
@@ -645,5 +565,5 @@ const handlePluginCheckUpdates = async (state, id) => {
645
565
  sendPluginManagementError(state, id, err);
646
566
  }
647
567
  };
648
- export { buildConfigStatePayload, sendToExtension, sendJsonRpcError, sendPluginManagementError, serializePluginForExtension, parsePluginTabInfo, parseTabMapping, VALID_LOG_LEVELS, handleTabSyncAll, handleTabStateChanged, handleConfigGetState, handleConfigSetToolEnabled, handleConfigSetAllToolsEnabled, handleConfigSetToolsEnabled, handleConfigSetBrowserToolEnabled, handleConfigSetAllBrowserToolsEnabled, handlePluginSearch, handlePluginInstall, handlePluginUpdateFromRegistry, handlePluginRemove, handlePluginCheckUpdates, handleToolProgress, handlePluginLog, handleConfirmationResponse, rejectAllPendingConfirmations, };
568
+ export { buildConfigStatePayload, sendToExtension, sendJsonRpcError, sendPluginManagementError, serializePluginForExtension, parsePluginTabInfo, parseTabMapping, VALID_LOG_LEVELS, handleTabSyncAll, handleTabStateChanged, handleConfigGetState, handleConfigSetToolPermission, handleConfigSetPluginPermission, handlePluginSearch, handlePluginInstall, handlePluginUpdateFromRegistry, handlePluginRemove, handlePluginCheckUpdates, handleToolProgress, handlePluginLog, handleConfirmationResponse, rejectAllPendingConfirmations, };
649
569
  //# sourceMappingURL=extension-handlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extension-handlers.js","sourceRoot":"","sources":["../src/extension-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extension-handlers.js","sourceRoot":"","sources":["../src/extension-handlers.ts"],"names":[],"mappings":"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"}
@@ -42,16 +42,11 @@ declare const sendInvocationStart: (state: ServerState, plugin: string, tool: st
42
42
  declare const sendInvocationEnd: (state: ServerState, plugin: string, tool: string, durationMs: number, success: boolean) => void;
43
43
  /**
44
44
  * Send a confirmation request to the extension and return a promise that resolves
45
- * with the user's decision. The promise rejects on timeout (30s) or extension disconnect.
46
- *
47
- * @param state - Server state
48
- * @param tool - Browser tool name (e.g., 'browser_execute_script')
49
- * @param domain - Target domain (e.g., 'mail.google.com'), or null
50
- * @param tabId - Target tab ID, if applicable
51
- * @param paramsPreview - Truncated preview of tool parameters
52
- * @returns The user's decision: 'allow_once', 'allow_always', or 'deny'
45
+ * with the user's decision. The promise rejects on extension disconnect.
46
+ * There is no timeout — the request hangs until the user responds or the
47
+ * WebSocket disconnects (at which point rejectAllPendingConfirmations fires).
53
48
  */
54
- declare const sendConfirmationRequest: (state: ServerState, tool: string, domain: string | null, tabId: number | undefined, paramsPreview: string) => Promise<ConfirmationDecision>;
49
+ declare const sendConfirmationRequest: (state: ServerState, tool: string, plugin: string, params: Record<string, unknown>) => Promise<ConfirmationDecision>;
55
50
  /**
56
51
  * Send plugin.update notification to extension with updated plugin metadata.
57
52
  * Writes the adapter IIFE to the extension's adapters/ directory first,
@@ -1 +1 @@
1
- {"version":3,"file":"extension-protocol.d.ts","sourceRoot":"","sources":["../src/extension-protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extension-protocol.d.ts","sourceRoot":"","sources":["../src/extension-protocol.ts"],"names":[],"mappings":"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"}