@opentabs-dev/mcp-server 0.0.61 → 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 (180) hide show
  1. package/dist/browser-tools/analyze-site.d.ts.map +1 -1
  2. package/dist/browser-tools/analyze-site.js +2 -0
  3. package/dist/browser-tools/analyze-site.js.map +1 -1
  4. package/dist/browser-tools/clear-console-logs.d.ts.map +1 -1
  5. package/dist/browser-tools/clear-console-logs.js +2 -0
  6. package/dist/browser-tools/clear-console-logs.js.map +1 -1
  7. package/dist/browser-tools/click-element.d.ts.map +1 -1
  8. package/dist/browser-tools/click-element.js +2 -0
  9. package/dist/browser-tools/click-element.js.map +1 -1
  10. package/dist/browser-tools/close-tab.d.ts.map +1 -1
  11. package/dist/browser-tools/close-tab.js +2 -0
  12. package/dist/browser-tools/close-tab.js.map +1 -1
  13. package/dist/browser-tools/definition.d.ts +4 -0
  14. package/dist/browser-tools/definition.d.ts.map +1 -1
  15. package/dist/browser-tools/definition.js.map +1 -1
  16. package/dist/browser-tools/delete-cookies.d.ts.map +1 -1
  17. package/dist/browser-tools/delete-cookies.js +2 -0
  18. package/dist/browser-tools/delete-cookies.js.map +1 -1
  19. package/dist/browser-tools/disable-network-capture.d.ts.map +1 -1
  20. package/dist/browser-tools/disable-network-capture.js +2 -0
  21. package/dist/browser-tools/disable-network-capture.js.map +1 -1
  22. package/dist/browser-tools/enable-network-capture.d.ts.map +1 -1
  23. package/dist/browser-tools/enable-network-capture.js +2 -0
  24. package/dist/browser-tools/enable-network-capture.js.map +1 -1
  25. package/dist/browser-tools/execute-script.d.ts.map +1 -1
  26. package/dist/browser-tools/execute-script.js +2 -0
  27. package/dist/browser-tools/execute-script.js.map +1 -1
  28. package/dist/browser-tools/export-har.d.ts.map +1 -1
  29. package/dist/browser-tools/export-har.js +2 -0
  30. package/dist/browser-tools/export-har.js.map +1 -1
  31. package/dist/browser-tools/extension-check-adapter.d.ts.map +1 -1
  32. package/dist/browser-tools/extension-check-adapter.js +2 -0
  33. package/dist/browser-tools/extension-check-adapter.js.map +1 -1
  34. package/dist/browser-tools/extension-force-reconnect.d.ts.map +1 -1
  35. package/dist/browser-tools/extension-force-reconnect.js +2 -0
  36. package/dist/browser-tools/extension-force-reconnect.js.map +1 -1
  37. package/dist/browser-tools/extension-get-logs.d.ts +1 -1
  38. package/dist/browser-tools/extension-get-logs.d.ts.map +1 -1
  39. package/dist/browser-tools/extension-get-logs.js +2 -0
  40. package/dist/browser-tools/extension-get-logs.js.map +1 -1
  41. package/dist/browser-tools/extension-get-side-panel.d.ts.map +1 -1
  42. package/dist/browser-tools/extension-get-side-panel.js +2 -0
  43. package/dist/browser-tools/extension-get-side-panel.js.map +1 -1
  44. package/dist/browser-tools/extension-get-state.d.ts.map +1 -1
  45. package/dist/browser-tools/extension-get-state.js +2 -0
  46. package/dist/browser-tools/extension-get-state.js.map +1 -1
  47. package/dist/browser-tools/focus-tab.d.ts.map +1 -1
  48. package/dist/browser-tools/focus-tab.js +2 -0
  49. package/dist/browser-tools/focus-tab.js.map +1 -1
  50. package/dist/browser-tools/get-console-logs.d.ts +1 -1
  51. package/dist/browser-tools/get-console-logs.d.ts.map +1 -1
  52. package/dist/browser-tools/get-console-logs.js +2 -0
  53. package/dist/browser-tools/get-console-logs.js.map +1 -1
  54. package/dist/browser-tools/get-cookies.d.ts.map +1 -1
  55. package/dist/browser-tools/get-cookies.js +2 -0
  56. package/dist/browser-tools/get-cookies.js.map +1 -1
  57. package/dist/browser-tools/get-network-requests.d.ts.map +1 -1
  58. package/dist/browser-tools/get-network-requests.js +2 -0
  59. package/dist/browser-tools/get-network-requests.js.map +1 -1
  60. package/dist/browser-tools/get-page-html.d.ts.map +1 -1
  61. package/dist/browser-tools/get-page-html.js +2 -0
  62. package/dist/browser-tools/get-page-html.js.map +1 -1
  63. package/dist/browser-tools/get-resource-content.d.ts.map +1 -1
  64. package/dist/browser-tools/get-resource-content.js +2 -0
  65. package/dist/browser-tools/get-resource-content.js.map +1 -1
  66. package/dist/browser-tools/get-storage.d.ts.map +1 -1
  67. package/dist/browser-tools/get-storage.js +2 -0
  68. package/dist/browser-tools/get-storage.js.map +1 -1
  69. package/dist/browser-tools/get-tab-content.d.ts.map +1 -1
  70. package/dist/browser-tools/get-tab-content.js +2 -0
  71. package/dist/browser-tools/get-tab-content.js.map +1 -1
  72. package/dist/browser-tools/get-tab-info.d.ts.map +1 -1
  73. package/dist/browser-tools/get-tab-info.js +2 -0
  74. package/dist/browser-tools/get-tab-info.js.map +1 -1
  75. package/dist/browser-tools/get-websocket-frames.d.ts.map +1 -1
  76. package/dist/browser-tools/get-websocket-frames.js +2 -0
  77. package/dist/browser-tools/get-websocket-frames.js.map +1 -1
  78. package/dist/browser-tools/handle-dialog.d.ts.map +1 -1
  79. package/dist/browser-tools/handle-dialog.js +2 -0
  80. package/dist/browser-tools/handle-dialog.js.map +1 -1
  81. package/dist/browser-tools/hover-element.d.ts.map +1 -1
  82. package/dist/browser-tools/hover-element.js +2 -0
  83. package/dist/browser-tools/hover-element.js.map +1 -1
  84. package/dist/browser-tools/index.d.ts.map +1 -1
  85. package/dist/browser-tools/index.js +5 -0
  86. package/dist/browser-tools/index.js.map +1 -1
  87. package/dist/browser-tools/list-resources.d.ts.map +1 -1
  88. package/dist/browser-tools/list-resources.js +2 -0
  89. package/dist/browser-tools/list-resources.js.map +1 -1
  90. package/dist/browser-tools/list-tabs.d.ts.map +1 -1
  91. package/dist/browser-tools/list-tabs.js +2 -0
  92. package/dist/browser-tools/list-tabs.js.map +1 -1
  93. package/dist/browser-tools/navigate-tab.d.ts.map +1 -1
  94. package/dist/browser-tools/navigate-tab.js +2 -0
  95. package/dist/browser-tools/navigate-tab.js.map +1 -1
  96. package/dist/browser-tools/open-tab.d.ts.map +1 -1
  97. package/dist/browser-tools/open-tab.js +2 -0
  98. package/dist/browser-tools/open-tab.js.map +1 -1
  99. package/dist/browser-tools/plugin-list-tabs.d.ts.map +1 -1
  100. package/dist/browser-tools/plugin-list-tabs.js +2 -0
  101. package/dist/browser-tools/plugin-list-tabs.js.map +1 -1
  102. package/dist/browser-tools/press-key.d.ts.map +1 -1
  103. package/dist/browser-tools/press-key.js +2 -0
  104. package/dist/browser-tools/press-key.js.map +1 -1
  105. package/dist/browser-tools/query-elements.d.ts.map +1 -1
  106. package/dist/browser-tools/query-elements.js +2 -0
  107. package/dist/browser-tools/query-elements.js.map +1 -1
  108. package/dist/browser-tools/reload-extension.d.ts.map +1 -1
  109. package/dist/browser-tools/reload-extension.js +2 -0
  110. package/dist/browser-tools/reload-extension.js.map +1 -1
  111. package/dist/browser-tools/screenshot-tab.d.ts.map +1 -1
  112. package/dist/browser-tools/screenshot-tab.js +2 -0
  113. package/dist/browser-tools/screenshot-tab.js.map +1 -1
  114. package/dist/browser-tools/scroll.d.ts.map +1 -1
  115. package/dist/browser-tools/scroll.js +2 -0
  116. package/dist/browser-tools/scroll.js.map +1 -1
  117. package/dist/browser-tools/select-option.d.ts.map +1 -1
  118. package/dist/browser-tools/select-option.js +2 -0
  119. package/dist/browser-tools/select-option.js.map +1 -1
  120. package/dist/browser-tools/set-cookie.d.ts.map +1 -1
  121. package/dist/browser-tools/set-cookie.js +2 -0
  122. package/dist/browser-tools/set-cookie.js.map +1 -1
  123. package/dist/browser-tools/type-text.d.ts.map +1 -1
  124. package/dist/browser-tools/type-text.js +2 -0
  125. package/dist/browser-tools/type-text.js.map +1 -1
  126. package/dist/browser-tools/wait-for-element.d.ts.map +1 -1
  127. package/dist/browser-tools/wait-for-element.js +2 -0
  128. package/dist/browser-tools/wait-for-element.js.map +1 -1
  129. package/dist/config.d.ts +16 -41
  130. package/dist/config.d.ts.map +1 -1
  131. package/dist/config.js +56 -111
  132. package/dist/config.js.map +1 -1
  133. package/dist/discovery.d.ts +1 -4
  134. package/dist/discovery.d.ts.map +1 -1
  135. package/dist/discovery.js +5 -17
  136. package/dist/discovery.js.map +1 -1
  137. package/dist/extension-handlers.d.ts +21 -14
  138. package/dist/extension-handlers.d.ts.map +1 -1
  139. package/dist/extension-handlers.js +108 -188
  140. package/dist/extension-handlers.js.map +1 -1
  141. package/dist/extension-protocol.d.ts +4 -9
  142. package/dist/extension-protocol.d.ts.map +1 -1
  143. package/dist/extension-protocol.js +16 -45
  144. package/dist/extension-protocol.js.map +1 -1
  145. package/dist/file-watcher.js +2 -2
  146. package/dist/file-watcher.js.map +1 -1
  147. package/dist/http-routes.d.ts.map +1 -1
  148. package/dist/http-routes.js +5 -9
  149. package/dist/http-routes.js.map +1 -1
  150. package/dist/loader.d.ts +2 -4
  151. package/dist/loader.d.ts.map +1 -1
  152. package/dist/loader.js +6 -5
  153. package/dist/loader.js.map +1 -1
  154. package/dist/mcp-setup.d.ts +9 -9
  155. package/dist/mcp-setup.d.ts.map +1 -1
  156. package/dist/mcp-setup.js +39 -26
  157. package/dist/mcp-setup.js.map +1 -1
  158. package/dist/mcp-tool-dispatch.d.ts +11 -12
  159. package/dist/mcp-tool-dispatch.d.ts.map +1 -1
  160. package/dist/mcp-tool-dispatch.js +86 -125
  161. package/dist/mcp-tool-dispatch.js.map +1 -1
  162. package/dist/plugin-management.d.ts +0 -1
  163. package/dist/plugin-management.d.ts.map +1 -1
  164. package/dist/plugin-management.js +1 -2
  165. package/dist/plugin-management.js.map +1 -1
  166. package/dist/registry.d.ts +2 -4
  167. package/dist/registry.d.ts.map +1 -1
  168. package/dist/registry.js +1 -12
  169. package/dist/registry.js.map +1 -1
  170. package/dist/reload.d.ts.map +1 -1
  171. package/dist/reload.js +40 -35
  172. package/dist/reload.js.map +1 -1
  173. package/dist/state.d.ts +18 -44
  174. package/dist/state.d.ts.map +1 -1
  175. package/dist/state.js +14 -43
  176. package/dist/state.js.map +1 -1
  177. package/dist/version-check.d.ts.map +1 -1
  178. package/dist/version-check.js +1 -1
  179. package/dist/version-check.js.map +1 -1
  180. package/package.json +1 -1
package/dist/config.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Config system — ~/.opentabs/config.json
3
3
  *
4
- * Single source of truth for local plugin paths and tool enabled/disabled state.
4
+ * Single source of truth for local plugin paths and per-plugin permission state.
5
5
  * Created automatically on first MCP server run with sensible defaults.
6
6
  *
7
7
  * The config directory defaults to ~/.opentabs but can be overridden via the
@@ -9,36 +9,24 @@
9
9
  * E2E test execution where each test worker needs its own isolated config
10
10
  * to avoid clobbering shared state.
11
11
  */
12
- import { generateSecret, getConfigDir, getExtensionDir } from '@opentabs-dev/shared';
12
+ import { generateSecret, getConfigDir, getExtensionDir, type PluginPermissionConfig } from '@opentabs-dev/shared';
13
13
  /**
14
14
  * Shape of ~/.opentabs/config.json
15
15
  *
16
16
  * `localPlugins` holds local filesystem paths to plugin directories. These paths
17
17
  * start with `./`, `../`, `/`, or `~/` and are resolved relative to the config
18
18
  * directory. npm plugins are auto-discovered from global node_modules.
19
+ *
20
+ * `plugins` is a map of plugin name → permission config. Each entry may have
21
+ * a top-level `permission` (default for all tools in that plugin) and a `tools`
22
+ * map of tool base name → per-tool override. Browser tools use the special key
23
+ * `__browser__`.
19
24
  */
20
- /** Permission policy for a tool: allow (no confirmation), ask (require confirmation), deny (block) */
21
- type ToolPermission = 'allow' | 'ask' | 'deny';
22
- /** Permission configuration for browser tool confirmation */
23
- interface PermissionsConfig {
24
- /** Domains where all tools are auto-allowed (supports glob patterns, e.g., '*.example.com') */
25
- trustedDomains: string[];
26
- /** Domains where all tools require confirmation regardless of tier (supports glob patterns) */
27
- sensitiveDomains: string[];
28
- /** Per-tool policy overrides: browser tool name → permission */
29
- toolPolicy: Record<string, ToolPermission>;
30
- /** Per-domain per-tool policy overrides: domain → { tool name → permission } */
31
- domainToolPolicy: Record<string, Record<string, ToolPermission>>;
32
- }
33
25
  interface OpentabsConfig {
34
26
  /** Local plugin directory paths (resolved relative to the config directory) */
35
27
  localPlugins: string[];
36
- /** Tool enabled/disabled state: prefixed tool name → boolean. Absent = enabled (default). */
37
- tools: Record<string, boolean>;
38
- /** Browser tool enabled/disabled state: browser tool name → boolean. Absent = enabled (default). */
39
- browserToolPolicy: Record<string, boolean>;
40
- /** Permission configuration for browser tool confirmation */
41
- permissions: PermissionsConfig;
28
+ /** Per-plugin permission configuration: plugin name → { permission?, tools? } */
29
+ plugins: Record<string, PluginPermissionConfig>;
42
30
  /** Whether to skip all permission prompts (dangerous — disables human-in-the-loop) */
43
31
  skipPermissions?: boolean;
44
32
  }
@@ -66,30 +54,17 @@ declare const saveConfig: (state: {
66
54
  configWriteMutex: Promise<void>;
67
55
  }, config: OpentabsConfig) => Promise<void>;
68
56
  /**
69
- * Persist only the tool enabled/disabled state to config.json.
57
+ * Persist plugin permissions to config.json.
70
58
  *
71
- * Reads the current config from disk, updates only the `tools` field,
59
+ * Reads the current config from disk, updates only the `plugins` field,
72
60
  * and writes it back atomically. This prevents stale in-memory plugin
73
- * paths from overwriting externally-added plugins — the root cause of
74
- * the "plugin disappears during development" bug.
75
- *
76
- * The read-modify-write is serialized via state.configWriteMutex.
77
- */
78
- declare const saveToolConfig: (state: {
79
- configWriteMutex: Promise<void>;
80
- }, tools: Record<string, boolean>) => Promise<void>;
81
- /**
82
- * Persist only the browser tool enabled/disabled policy to config.json.
83
- *
84
- * Reads the current config from disk, updates only the `browserToolPolicy`
85
- * field, and writes it back atomically. Follows the same read-modify-write
86
- * pattern as saveToolConfig to prevent overwriting externally-added data.
61
+ * paths from overwriting externally-added plugins.
87
62
  *
88
63
  * The read-modify-write is serialized via state.configWriteMutex.
89
64
  */
90
- declare const saveBrowserToolPolicy: (state: {
65
+ declare const savePluginPermissions: (state: {
91
66
  configWriteMutex: Promise<void>;
92
- }, browserToolPolicy: Record<string, boolean>) => Promise<void>;
67
+ }, plugins: Record<string, PluginPermissionConfig>) => Promise<void>;
93
68
  /**
94
69
  * Write auth.json to the managed extension directory so the Chrome extension
95
70
  * can bootstrap the shared secret without an unauthenticated HTTP request.
@@ -103,6 +78,6 @@ declare const writeAuthFile: (secret: string) => Promise<void>;
103
78
  * If auth.json exists with a valid secret, returns it without overwriting.
104
79
  */
105
80
  declare const loadSecret: () => Promise<string>;
106
- export type { OpentabsConfig, PermissionsConfig, ToolPermission };
107
- export { loadConfig, loadSecret, saveConfig, saveBrowserToolPolicy, saveToolConfig, writeAuthFile, generateSecret, getConfigDir, getExtensionDir, getExtensionVersionFile, getAdaptersDir, };
81
+ export type { OpentabsConfig };
82
+ export { loadConfig, loadSecret, saveConfig, savePluginPermissions, writeAuthFile, generateSecret, getConfigDir, getExtensionDir, getExtensionVersionFile, getAdaptersDir, };
108
83
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAe,cAAc,EAAE,YAAY,EAAiB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGjH;;;;;;GAMG;AACH,sGAAsG;AACtG,KAAK,cAAc,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAE/C,6DAA6D;AAC7D,UAAU,iBAAiB;IACzB,+FAA+F;IAC/F,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,+FAA+F;IAC/F,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC3C,gFAAgF;IAChF,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;CAClE;AAED,UAAU,cAAc;IACtB,+EAA+E;IAC/E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,6FAA6F;IAC7F,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,oGAAoG;IACpG,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,6DAA6D;IAC7D,WAAW,EAAE,iBAAiB,CAAC;IAC/B,sFAAsF;IACtF,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,4DAA4D;AAC5D,QAAA,MAAM,uBAAuB,QAAO,MAAsD,CAAC;AAE3F,sEAAsE;AACtE,QAAA,MAAM,cAAc,QAAO,MAA6C,CAAC;AA2MzE;;;;;;;;GAQG;AACH,QAAA,MAAM,UAAU,QAAa,OAAO,CAAC,cAAc,CAgClD,CAAC;AAEF;;;;;GAKG;AACH,QAAA,MAAM,UAAU,GAAU,OAAO;IAAE,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,EAAE,QAAQ,cAAc,KAAG,OAAO,CAAC,IAAI,CAY1G,CAAC;AAEF;;;;;;;;;GASG;AACH,QAAA,MAAM,cAAc,GAClB,OAAO;IAAE,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,EAC1C,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,OAAO,CAAC,IAAI,CA4Bd,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,qBAAqB,GACzB,OAAO;IAAE,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,EAC1C,mBAAmB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACzC,OAAO,CAAC,IAAI,CA0Bd,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,aAAa,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CAKzD,CAAC;AAEF;;;;;GAKG;AACH,QAAA,MAAM,UAAU,QAAa,OAAO,CAAC,MAAM,CA4B1C,CAAC;AAEF,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC;AAClE,OAAO,EACL,UAAU,EACV,UAAU,EACV,UAAU,EACV,qBAAqB,EACrB,cAAc,EACd,aAAa,EACb,cAAc,EACd,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,cAAc,GACf,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAEL,cAAc,EACd,YAAY,EAEZ,eAAe,EACf,KAAK,sBAAsB,EAE5B,MAAM,sBAAsB,CAAC;AAO9B;;;;;;;;;;;GAWG;AACH,UAAU,cAAc;IACtB,+EAA+E;IAC/E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAChD,sFAAsF;IACtF,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,4DAA4D;AAC5D,QAAA,MAAM,uBAAuB,QAAO,MAAsD,CAAC;AAE3F,sEAAsE;AACtE,QAAA,MAAM,cAAc,QAAO,MAA6C,CAAC;AAwLzE;;;;;;;;GAQG;AACH,QAAA,MAAM,UAAU,QAAa,OAAO,CAAC,cAAc,CA8BlD,CAAC;AAEF;;;;;GAKG;AACH,QAAA,MAAM,UAAU,GAAU,OAAO;IAAE,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,EAAE,QAAQ,cAAc,KAAG,OAAO,CAAC,IAAI,CAY1G,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,qBAAqB,GACzB,OAAO;IAAE,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,EAC1C,SAAS,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,KAC9C,OAAO,CAAC,IAAI,CAyBd,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,aAAa,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CAKzD,CAAC;AAEF;;;;;GAKG;AACH,QAAA,MAAM,UAAU,QAAa,OAAO,CAAC,MAAM,CA4B1C,CAAC;AAEF,YAAY,EAAE,cAAc,EAAE,CAAC;AAC/B,OAAO,EACL,UAAU,EACV,UAAU,EACV,UAAU,EACV,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,cAAc,GACf,CAAC"}
package/dist/config.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Config system — ~/.opentabs/config.json
3
3
  *
4
- * Single source of truth for local plugin paths and tool enabled/disabled state.
4
+ * Single source of truth for local plugin paths and per-plugin permission state.
5
5
  * Created automatically on first MCP server run with sensible defaults.
6
6
  *
7
7
  * The config directory defaults to ~/.opentabs but can be overridden via the
@@ -11,8 +11,10 @@
11
11
  */
12
12
  import { access, mkdir, readFile } from 'node:fs/promises';
13
13
  import { join } from 'node:path';
14
- import { atomicWrite, generateSecret, getConfigDir, getConfigPath, getExtensionDir } from '@opentabs-dev/shared';
14
+ import { atomicWrite, generateSecret, getConfigDir, getConfigPath, getExtensionDir, } from '@opentabs-dev/shared';
15
15
  import { log } from './logger.js';
16
+ const VALID_TOOL_PERMISSIONS = new Set(['off', 'ask', 'auto']);
17
+ const isToolPermission = (v) => typeof v === 'string' && VALID_TOOL_PERMISSIONS.has(v);
16
18
  /** Version marker file for the managed extension install */
17
19
  const getExtensionVersionFile = () => join(getExtensionDir(), '.opentabs-version');
18
20
  /** Directory for plugin adapter IIFEs inside the managed extension */
@@ -67,52 +69,44 @@ const isLocalPathEntry = (s) => s.startsWith('./') ||
67
69
  s.startsWith('/') ||
68
70
  s.startsWith('~/') ||
69
71
  /^[A-Za-z]:[/\\]/.test(s);
70
- const VALID_TOOL_PERMISSIONS = new Set(['allow', 'ask', 'deny']);
71
- const isToolPermission = (v) => typeof v === 'string' && VALID_TOOL_PERMISSIONS.has(v);
72
- /** Default permissions config: trust localhost, everything else uses tier defaults */
73
- const defaultPermissions = () => ({
74
- trustedDomains: ['localhost', '127.0.0.1'],
75
- sensitiveDomains: [],
76
- toolPolicy: {},
77
- domainToolPolicy: {},
78
- });
79
- /** Parse a raw permissions value from config.json into a validated PermissionsConfig */
80
- const parsePermissionsConfig = (raw) => {
81
- if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {
82
- return defaultPermissions();
83
- }
72
+ /** Parse and validate a single PluginPermissionConfig entry from raw JSON */
73
+ const parsePluginPermissionEntry = (raw) => {
74
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw))
75
+ return null;
84
76
  const obj = raw;
85
- const trustedDomains = Array.isArray(obj.trustedDomains)
86
- ? obj.trustedDomains.filter((d) => typeof d === 'string')
87
- : ['localhost', '127.0.0.1'];
88
- const sensitiveDomains = Array.isArray(obj.sensitiveDomains)
89
- ? obj.sensitiveDomains.filter((d) => typeof d === 'string')
90
- : [];
91
- const toolPolicy = {};
92
- if (obj.toolPolicy && typeof obj.toolPolicy === 'object' && !Array.isArray(obj.toolPolicy)) {
93
- for (const [key, value] of Object.entries(obj.toolPolicy)) {
77
+ const result = {};
78
+ if (isToolPermission(obj.permission)) {
79
+ result.permission = obj.permission;
80
+ }
81
+ if (obj.tools && typeof obj.tools === 'object' && !Array.isArray(obj.tools)) {
82
+ const tools = {};
83
+ for (const [key, value] of Object.entries(obj.tools)) {
94
84
  if (isToolPermission(value)) {
95
- toolPolicy[key] = value;
85
+ tools[key] = value;
96
86
  }
97
87
  }
88
+ if (Object.keys(tools).length > 0) {
89
+ result.tools = tools;
90
+ }
98
91
  }
99
- const domainToolPolicy = {};
100
- if (obj.domainToolPolicy && typeof obj.domainToolPolicy === 'object' && !Array.isArray(obj.domainToolPolicy)) {
101
- for (const [domain, tools] of Object.entries(obj.domainToolPolicy)) {
102
- if (tools && typeof tools === 'object' && !Array.isArray(tools)) {
103
- const domainEntry = {};
104
- for (const [toolName, perm] of Object.entries(tools)) {
105
- if (isToolPermission(perm)) {
106
- domainEntry[toolName] = perm;
107
- }
108
- }
109
- if (Object.keys(domainEntry).length > 0) {
110
- domainToolPolicy[domain] = domainEntry;
111
- }
112
- }
92
+ // Only return if at least one field was set
93
+ if (result.permission !== undefined || result.tools !== undefined) {
94
+ return result;
95
+ }
96
+ return null;
97
+ };
98
+ /** Parse the plugins map from a raw config record */
99
+ const parsePluginsConfig = (raw) => {
100
+ const result = {};
101
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw))
102
+ return result;
103
+ for (const [pluginName, entry] of Object.entries(raw)) {
104
+ const parsed = parsePluginPermissionEntry(entry);
105
+ if (parsed) {
106
+ result[pluginName] = parsed;
113
107
  }
114
108
  }
115
- return { trustedDomains, sensitiveDomains, toolPolicy, domainToolPolicy };
109
+ return result;
116
110
  };
117
111
  /**
118
112
  * Parse a raw config record into an OpentabsConfig.
@@ -122,32 +116,25 @@ const parseConfigRecord = (record) => {
122
116
  const localPlugins = Array.isArray(record.localPlugins)
123
117
  ? record.localPlugins.filter((p) => typeof p === 'string')
124
118
  : [];
125
- const tools = {};
126
- if (record.tools && typeof record.tools === 'object' && !Array.isArray(record.tools)) {
127
- for (const [key, value] of Object.entries(record.tools)) {
128
- if (typeof value === 'boolean') {
129
- tools[key] = value;
130
- }
131
- }
132
- }
133
- const browserToolPolicy = {};
134
- if (record.browserToolPolicy &&
119
+ // Migration: detect old-format config with `tools: Record<string, boolean>` or `browserToolPolicy`
120
+ const hasOldToolsFormat = record.tools && typeof record.tools === 'object' && !Array.isArray(record.tools);
121
+ const hasOldBrowserToolPolicy = record.browserToolPolicy &&
135
122
  typeof record.browserToolPolicy === 'object' &&
136
- !Array.isArray(record.browserToolPolicy)) {
137
- for (const [key, value] of Object.entries(record.browserToolPolicy)) {
138
- if (typeof value === 'boolean') {
139
- browserToolPolicy[key] = value;
140
- }
141
- }
123
+ !Array.isArray(record.browserToolPolicy);
124
+ const hasOldPermissions = record.permissions && typeof record.permissions === 'object' && !Array.isArray(record.permissions);
125
+ if (hasOldToolsFormat || hasOldBrowserToolPolicy || hasOldPermissions) {
126
+ log.info('Migrating config from old format (tools/browserToolPolicy/permissions) to new plugin-centric model. ' +
127
+ 'Old permission settings have been discarded — please re-configure permissions in the side panel.');
142
128
  }
143
- // Migration: if the old `plugins` array exists, extract local paths into localPlugins
144
- // and drop npm package names (they will be auto-discovered from global node_modules).
129
+ // Parse the new-format plugins map (returns empty if old format or absent)
130
+ const plugins = parsePluginsConfig(record.plugins);
131
+ // Migration: if the old `plugins` array exists (legacy plugin list, not the new map),
132
+ // extract local paths into localPlugins and drop npm package names.
145
133
  if (Array.isArray(record.plugins)) {
146
134
  const legacyPlugins = record.plugins.filter((p) => typeof p === 'string');
147
135
  const localPaths = legacyPlugins.filter(isLocalPathEntry);
148
136
  const npmPackages = legacyPlugins.filter(p => !isLocalPathEntry(p));
149
137
  if (localPaths.length > 0) {
150
- // Merge into localPlugins, deduplicating
151
138
  const existing = new Set(localPlugins);
152
139
  for (const p of localPaths) {
153
140
  if (!existing.has(p)) {
@@ -172,15 +159,13 @@ const parseConfigRecord = (record) => {
172
159
  'npm plugins are now auto-discovered from global node_modules.');
173
160
  }
174
161
  }
175
- // Parse permissions config with defensive validation
176
- const permissions = parsePermissionsConfig(record.permissions);
177
162
  // Read skipPermissions (new name); fall back to skipConfirmation (old name) for backward compatibility.
178
163
  const skipPermissions = typeof record.skipPermissions === 'boolean'
179
164
  ? record.skipPermissions
180
165
  : typeof record.skipConfirmation === 'boolean'
181
166
  ? record.skipConfirmation
182
167
  : undefined;
183
- return { localPlugins, tools, browserToolPolicy, permissions, skipPermissions };
168
+ return { localPlugins, plugins, skipPermissions };
184
169
  };
185
170
  /**
186
171
  * Load config from ~/.opentabs/config.json.
@@ -198,9 +183,7 @@ const loadConfig = async () => {
198
183
  if (!(await access(configPath).then(() => true, () => false))) {
199
184
  const config = {
200
185
  localPlugins: [],
201
- tools: {},
202
- browserToolPolicy: {},
203
- permissions: defaultPermissions(),
186
+ plugins: {},
204
187
  };
205
188
  await atomicWriteConfig(configPath, `${JSON.stringify(config, null, 2)}\n`);
206
189
  log.info(`Created default config at ${configPath}`);
@@ -235,34 +218,30 @@ const saveConfig = async (state, config) => {
235
218
  await writePromise;
236
219
  };
237
220
  /**
238
- * Persist only the tool enabled/disabled state to config.json.
221
+ * Persist plugin permissions to config.json.
239
222
  *
240
- * Reads the current config from disk, updates only the `tools` field,
223
+ * Reads the current config from disk, updates only the `plugins` field,
241
224
  * and writes it back atomically. This prevents stale in-memory plugin
242
- * paths from overwriting externally-added plugins — the root cause of
243
- * the "plugin disappears during development" bug.
225
+ * paths from overwriting externally-added plugins.
244
226
  *
245
227
  * The read-modify-write is serialized via state.configWriteMutex.
246
228
  */
247
- const saveToolConfig = async (state, tools) => {
229
+ const savePluginPermissions = async (state, plugins) => {
248
230
  const configDir = getConfigDir();
249
231
  const configPath = getConfigPath();
250
232
  const prev = state.configWriteMutex;
251
233
  const writePromise = (async () => {
252
234
  await prev;
253
235
  await mkdir(configDir, { recursive: true, mode: 0o700 });
254
- // Read current config from disk to preserve localPlugins
255
236
  const record = await readConfigWithRetry(configPath, 2, 50);
256
237
  if (!record) {
257
- log.warn('Cannot persist tool config — config file unreadable');
238
+ log.warn('Cannot persist plugin permissions — config file unreadable');
258
239
  return;
259
240
  }
260
241
  const current = parseConfigRecord(record);
261
242
  const updated = {
262
243
  localPlugins: current.localPlugins,
263
- tools,
264
- browserToolPolicy: current.browserToolPolicy,
265
- permissions: current.permissions,
244
+ plugins,
266
245
  skipPermissions: current.skipPermissions,
267
246
  };
268
247
  await atomicWriteConfig(configPath, `${JSON.stringify(updated, null, 2)}\n`);
@@ -271,40 +250,6 @@ const saveToolConfig = async (state, tools) => {
271
250
  state.configWriteMutex = writePromise.catch(() => { });
272
251
  await writePromise;
273
252
  };
274
- /**
275
- * Persist only the browser tool enabled/disabled policy to config.json.
276
- *
277
- * Reads the current config from disk, updates only the `browserToolPolicy`
278
- * field, and writes it back atomically. Follows the same read-modify-write
279
- * pattern as saveToolConfig to prevent overwriting externally-added data.
280
- *
281
- * The read-modify-write is serialized via state.configWriteMutex.
282
- */
283
- const saveBrowserToolPolicy = async (state, browserToolPolicy) => {
284
- const configDir = getConfigDir();
285
- const configPath = getConfigPath();
286
- const prev = state.configWriteMutex;
287
- const writePromise = (async () => {
288
- await prev;
289
- await mkdir(configDir, { recursive: true, mode: 0o700 });
290
- const record = await readConfigWithRetry(configPath, 2, 50);
291
- if (!record) {
292
- log.warn('Cannot persist browser tool policy — config file unreadable');
293
- return;
294
- }
295
- const current = parseConfigRecord(record);
296
- const updated = {
297
- localPlugins: current.localPlugins,
298
- tools: current.tools,
299
- browserToolPolicy,
300
- permissions: current.permissions,
301
- skipPermissions: current.skipPermissions,
302
- };
303
- await atomicWriteConfig(configPath, `${JSON.stringify(updated, null, 2)}\n`);
304
- })();
305
- state.configWriteMutex = writePromise.catch(() => { });
306
- await writePromise;
307
- };
308
253
  /**
309
254
  * Write auth.json to the managed extension directory so the Chrome extension
310
255
  * can bootstrap the shared secret without an unauthenticated HTTP request.
@@ -346,5 +291,5 @@ const loadSecret = async () => {
346
291
  log.info(`Generated WebSocket authentication secret in ${authPath}`);
347
292
  return secret;
348
293
  };
349
- export { loadConfig, loadSecret, saveConfig, saveBrowserToolPolicy, saveToolConfig, writeAuthFile, generateSecret, getConfigDir, getExtensionDir, getExtensionVersionFile, getAdaptersDir, };
294
+ export { loadConfig, loadSecret, saveConfig, savePluginPermissions, writeAuthFile, generateSecret, getConfigDir, getExtensionDir, getExtensionVersionFile, getAdaptersDir, };
350
295
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  /** Plugin discovery orchestrator: resolve → load → register pipeline. */
2
- import type { TrustTier } from '@opentabs-dev/shared';
3
2
  import type { PluginRegistry } from './state.js';
4
3
  /** Outcome of plugin discovery: an immutable registry plus any errors from failed plugins. */
5
4
  interface DiscoveryResult {
@@ -11,8 +10,6 @@ interface DiscoveryError {
11
10
  readonly specifier: string;
12
11
  readonly error: string;
13
12
  }
14
- /** Determine trust tier for an npm plugin directory path based on its package name. */
15
- declare const npmTrustTier: (dir: string) => TrustTier;
16
13
  /**
17
14
  * Discover plugins from auto-discovered npm globals and explicit local paths.
18
15
  *
@@ -23,6 +20,6 @@ declare const npmTrustTier: (dir: string) => TrustTier;
23
20
  * Phase 5: Build immutable registry.
24
21
  */
25
22
  declare const discoverPlugins: (localPlugins: string[], configDir: string) => Promise<DiscoveryResult>;
26
- export { discoverPlugins, npmTrustTier };
23
+ export { discoverPlugins };
27
24
  export type { DiscoveryError, DiscoveryResult };
28
25
  //# sourceMappingURL=discovery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAGzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAQtD,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,YAAY,CAAC;AAE/D,8FAA8F;AAC9F,UAAU,eAAe;IACvB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;CAC5C;AAED,yFAAyF;AACzF,UAAU,cAAc;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,uFAAuF;AACvF,QAAA,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,SAOnC,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,eAAe,GAAU,cAAc,MAAM,EAAE,EAAE,WAAW,MAAM,KAAG,OAAO,CAAC,eAAe,CA8FjG,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA,yEAAyE;AASzE,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,YAAY,CAAC;AAE/D,8FAA8F;AAC9F,UAAU,eAAe;IACvB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;CAC5C;AAED,yFAAyF;AACzF,UAAU,cAAc;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,QAAA,MAAM,eAAe,GAAU,cAAc,MAAM,EAAE,EAAE,WAAW,MAAM,KAAG,OAAO,CAAC,eAAe,CA6FjG,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
package/dist/discovery.js CHANGED
@@ -1,21 +1,10 @@
1
1
  /** Plugin discovery orchestrator: resolve → load → register pipeline. */
2
- import path from 'node:path';
3
- import { isErr, OFFICIAL_SCOPE, toErrorMessage } from '@opentabs-dev/shared';
2
+ import { isErr, toErrorMessage } from '@opentabs-dev/shared';
4
3
  import { loadPlugin } from './loader.js';
5
4
  import { log } from './logger.js';
6
5
  import { buildRegistry } from './registry.js';
7
6
  import { discoverGlobalNpmPlugins, resolvePluginPath } from './resolver.js';
8
7
  import { isSkipNpmDiscovery } from './skip-npm-discovery.js';
9
- /** Determine trust tier for an npm plugin directory path based on its package name. */
10
- const npmTrustTier = (dir) => {
11
- // Extract the immediate parent directory name (e.g. "@opentabs-dev") from a path like
12
- // "/usr/lib/node_modules/@opentabs-dev/opentabs-plugin-slack". Using basename(dirname(dir))
13
- // avoids false-positives where /@opentabs-dev/ appears elsewhere in the path (e.g. a
14
- // user's home directory) but is not the package scope.
15
- if (path.basename(path.dirname(dir)) === OFFICIAL_SCOPE)
16
- return 'official';
17
- return 'community';
18
- };
19
8
  /**
20
9
  * Discover plugins from auto-discovered npm globals and explicit local paths.
21
10
  *
@@ -38,8 +27,7 @@ const discoverPlugins = async (localPlugins, configDir) => {
38
27
  }
39
28
  // Phase 2 + 3: Resolve and load all plugins in parallel
40
29
  const loadNpm = npmDirs.map(async (dir) => {
41
- const trustTier = npmTrustTier(dir);
42
- const loadResult = await loadPlugin(dir, trustTier, 'npm');
30
+ const loadResult = await loadPlugin(dir, 'npm');
43
31
  if (isErr(loadResult)) {
44
32
  errors.push({ specifier: dir, error: loadResult.error });
45
33
  failures.push({ path: dir, error: loadResult.error });
@@ -60,7 +48,7 @@ const discoverPlugins = async (localPlugins, configDir) => {
60
48
  return null;
61
49
  }
62
50
  const dir = resolveResult.value;
63
- const loadResult = await loadPlugin(dir, 'local', 'local');
51
+ const loadResult = await loadPlugin(dir, 'local');
64
52
  if (isErr(loadResult)) {
65
53
  errors.push({ specifier, error: loadResult.error });
66
54
  failures.push({ path: dir, error: loadResult.error });
@@ -100,10 +88,10 @@ const discoverPlugins = async (localPlugins, configDir) => {
100
88
  const registry = buildRegistry(Array.from(merged.values()), failures);
101
89
  for (const plugin of registry.plugins.values()) {
102
90
  const toolNames = plugin.tools.map(t => t.name).join(', ');
103
- log.info(`Discovered plugin: ${plugin.name} v${plugin.version} (${plugin.trustTier}, ${plugin.source}) from ${plugin.sourcePath ?? '(npm)'} — tools: [${toolNames}]`);
91
+ log.info(`Discovered plugin: ${plugin.name} v${plugin.version} (${plugin.source}) from ${plugin.sourcePath ?? '(npm)'} — tools: [${toolNames}]`);
104
92
  }
105
93
  log.info(`Plugin discovery complete: ${registry.plugins.size} plugin(s) loaded, ${errors.length} error(s)`);
106
94
  return { registry, errors };
107
95
  };
108
- export { discoverPlugins, npmTrustTier };
96
+ export { discoverPlugins };
109
97
  //# sourceMappingURL=discovery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAe7D;;;;;;;;GAQG;AACH,MAAM,eAAe,GAAG,KAAK,EAAE,YAAsB,EAAE,SAAiB,EAA4B,EAAE;IACpG,GAAG,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAEzC,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAmB,EAAE,CAAC;IAEpC,8DAA8D;IAC9D,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,kBAAkB,EAAE;QAC/D,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAC1B,CAAC,CAAC,MAAM,wBAAwB,EAAE,CAAC;IACrC,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,wDAAwD;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAgC,EAAE;QACtE,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;YACzD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,UAAU,CAAC,KAAK,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAgC,EAAE;QACnF,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACpE,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;YACzB,kFAAkF;YAClF,kEAAkE;YAClE,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC;QAChC,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;YACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,UAAU,CAAC,KAAK,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEnH,kBAAkB;IAClB,MAAM,aAAa,GAAG,CAAC,OAAoD,EAAkB,EAAE;QAC7F,MAAM,MAAM,GAAmB,EAAE,CAAC;QAClC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC3D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACxC,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/C,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IAEhD,uEAAuE;IACvE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC/C,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,IAAI,yCAAyC,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,oCAAoC;IACpC,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEtE,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,GAAG,CAAC,IAAI,CACN,sBAAsB,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,UAAU,MAAM,CAAC,UAAU,IAAI,OAAO,cAAc,SAAS,GAAG,CACvI,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,8BAA8B,QAAQ,CAAC,OAAO,CAAC,IAAI,sBAAsB,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC;IAE5G,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -4,14 +4,13 @@
4
4
  * Exported individually so they can be unit tested independently of the
5
5
  * handleExtensionMessage router in extension-protocol.ts.
6
6
  */
7
- import type { ConfigStateResult, JsonRpcError, JsonRpcNotification, JsonRpcRequest, JsonRpcResult, PluginTabInfo, TrustTier } from '@opentabs-dev/shared';
7
+ import type { ConfigStateResult, JsonRpcError, JsonRpcNotification, JsonRpcRequest, JsonRpcResult, PluginTabInfo, ToolPermission } from '@opentabs-dev/shared';
8
8
  import type { PluginLogEntry } from './log-buffer.js';
9
9
  import type { RegisteredPlugin, ServerState, TabMapping } from './state.js';
10
10
  /** Callbacks the extension protocol can invoke on the MCP side */
11
11
  interface McpCallbacks {
12
12
  onToolConfigChanged: () => void;
13
- onToolConfigPersist: () => void;
14
- onBrowserToolPolicyPersist: () => void;
13
+ onPluginPermissionsPersist: () => void;
15
14
  onPluginLog: (entry: PluginLogEntry) => void;
16
15
  onReload: () => Promise<{
17
16
  plugins: number;
@@ -41,13 +40,16 @@ declare const sendPluginManagementError: (state: ServerState, id: string | numbe
41
40
  * Returns the common core shape shared by sync.full, plugin.update, and config.getState.
42
41
  * Callers can spread additional fields on top (e.g., sourcePath, adapterHash for sync messages,
43
42
  * or tabState, source, sdkVersion for config.getState).
43
+ *
44
+ * The plugin-level permission comes from pluginPermissions[plugin.name]?.permission ?? 'off'.
45
+ * Each tool's permission is resolved via getToolPermission() (per-tool override → plugin default → 'off').
44
46
  */
45
- declare const serializePluginForExtension: (plugin: RegisteredPlugin, state: ServerState) => {
47
+ declare const serializePluginForExtension: (state: ServerState, plugin: RegisteredPlugin) => {
46
48
  name: string;
47
49
  version: string;
48
50
  displayName: string;
49
51
  urlPatterns: string[];
50
- trustTier: TrustTier;
52
+ permission: ToolPermission;
51
53
  iconSvg?: string;
52
54
  iconInactiveSvg?: string;
53
55
  iconDarkSvg?: string;
@@ -56,11 +58,12 @@ declare const serializePluginForExtension: (plugin: RegisteredPlugin, state: Ser
56
58
  name: string;
57
59
  displayName: string;
58
60
  description: string;
61
+ summary?: string;
59
62
  icon: string;
60
63
  iconSvg?: string;
61
64
  iconInactiveSvg?: string;
62
65
  group?: string;
63
- enabled: boolean;
66
+ permission: ToolPermission;
64
67
  }[];
65
68
  };
66
69
  /** Wire shape for a single tab info entry — all fields may be absent or wrong type */
@@ -86,11 +89,16 @@ declare const handleTabStateChanged: (state: ServerState, params: Record<string,
86
89
  */
87
90
  declare const buildConfigStatePayload: (state: ServerState) => ConfigStateResult;
88
91
  declare const handleConfigGetState: (state: ServerState, id: string | number) => void;
89
- declare const handleConfigSetToolEnabled: (state: ServerState, params: Record<string, unknown> | undefined, id: string | number, callbacks: McpCallbacks) => void;
90
- declare const handleConfigSetAllToolsEnabled: (state: ServerState, params: Record<string, unknown> | undefined, id: string | number, callbacks: McpCallbacks) => void;
91
- declare const handleConfigSetToolsEnabled: (state: ServerState, params: Record<string, unknown> | undefined, id: string | number, callbacks: McpCallbacks) => void;
92
- declare const handleConfigSetBrowserToolEnabled: (state: ServerState, params: Record<string, unknown> | undefined, id: string | number, callbacks: McpCallbacks) => void;
93
- declare const handleConfigSetAllBrowserToolsEnabled: (state: ServerState, params: Record<string, unknown> | undefined, id: string | number, callbacks: McpCallbacks) => void;
92
+ /**
93
+ * Handle config.setToolPermission: set a per-tool permission override.
94
+ * Works for both plugin tools (plugin=pluginName) and browser tools (plugin='browser').
95
+ */
96
+ declare const handleConfigSetToolPermission: (state: ServerState, params: Record<string, unknown> | undefined, id: string | number, callbacks: McpCallbacks) => void;
97
+ /**
98
+ * Handle config.setPluginPermission: set the plugin-level default permission.
99
+ * Works for both plugins (plugin=pluginName) and browser tools (plugin='browser').
100
+ */
101
+ declare const handleConfigSetPluginPermission: (state: ServerState, params: Record<string, unknown> | undefined, id: string | number, callbacks: McpCallbacks) => void;
94
102
  /**
95
103
  * Handle tool.progress notification from the extension.
96
104
  * Looks up the pending dispatch by dispatchId, invokes the onProgress callback
@@ -105,8 +113,7 @@ declare const VALID_LOG_LEVELS: Set<string>;
105
113
  declare const handlePluginLog: (params: Record<string, unknown> | undefined, callbacks: McpCallbacks) => void;
106
114
  /**
107
115
  * Handle a confirmation.response from the extension.
108
- * Resolves the pending confirmation promise with the user's decision.
109
- * For 'allow_always', also adds a session permission rule.
116
+ * Resolves the pending confirmation promise with the user's decision ('allow' or 'deny').
110
117
  */
111
118
  declare const handleConfirmationResponse: (state: ServerState, params: Record<string, unknown> | undefined) => void;
112
119
  /**
@@ -120,5 +127,5 @@ declare const handlePluginUpdateFromRegistry: (state: ServerState, params: Recor
120
127
  declare const handlePluginRemove: (state: ServerState, params: Record<string, unknown> | undefined, id: string | number, callbacks: McpCallbacks) => Promise<void>;
121
128
  declare const handlePluginCheckUpdates: (state: ServerState, id: string | number) => Promise<void>;
122
129
  export type { McpCallbacks, WireTabMapping, WirePluginTabInfo };
123
- 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, };
130
+ 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, };
124
131
  //# sourceMappingURL=extension-handlers.d.ts.map