@opentabs-dev/mcp-server 0.0.61 → 0.0.63

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/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 -43
  130. package/dist/config.d.ts.map +1 -1
  131. package/dist/config.js +48 -157
  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 +22 -14
  138. package/dist/extension-handlers.d.ts.map +1 -1
  139. package/dist/extension-handlers.js +114 -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 +11 -9
  155. package/dist/mcp-setup.d.ts.map +1 -1
  156. package/dist/mcp-setup.js +104 -27
  157. package/dist/mcp-setup.js.map +1 -1
  158. package/dist/mcp-tool-dispatch.d.ts +24 -12
  159. package/dist/mcp-tool-dispatch.d.ts.map +1 -1
  160. package/dist/mcp-tool-dispatch.js +325 -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 +73 -37
  172. package/dist/reload.js.map +1 -1
  173. package/dist/skip-permissions.d.ts +5 -12
  174. package/dist/skip-permissions.d.ts.map +1 -1
  175. package/dist/skip-permissions.js +7 -17
  176. package/dist/skip-permissions.js.map +1 -1
  177. package/dist/state.d.ts +42 -45
  178. package/dist/state.d.ts.map +1 -1
  179. package/dist/state.js +57 -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
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,38 +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
+ * `permissions` 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;
42
- /** Whether to skip all permission prompts (dangerous — disables human-in-the-loop) */
43
- skipPermissions?: boolean;
28
+ /** Per-plugin permission configuration: plugin name → { permission?, tools? } */
29
+ permissions: Record<string, PluginPermissionConfig>;
44
30
  }
45
31
  /** Version marker file for the managed extension install */
46
32
  declare const getExtensionVersionFile: () => string;
@@ -66,30 +52,17 @@ declare const saveConfig: (state: {
66
52
  configWriteMutex: Promise<void>;
67
53
  }, config: OpentabsConfig) => Promise<void>;
68
54
  /**
69
- * Persist only the tool enabled/disabled state to config.json.
55
+ * Persist plugin permissions to config.json.
70
56
  *
71
- * Reads the current config from disk, updates only the `tools` field,
57
+ * Reads the current config from disk, updates only the `permissions` field,
72
58
  * 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.
59
+ * paths from overwriting externally-added plugins.
87
60
  *
88
61
  * The read-modify-write is serialized via state.configWriteMutex.
89
62
  */
90
- declare const saveBrowserToolPolicy: (state: {
63
+ declare const savePluginPermissions: (state: {
91
64
  configWriteMutex: Promise<void>;
92
- }, browserToolPolicy: Record<string, boolean>) => Promise<void>;
65
+ }, plugins: Record<string, PluginPermissionConfig>) => Promise<void>;
93
66
  /**
94
67
  * Write auth.json to the managed extension directory so the Chrome extension
95
68
  * can bootstrap the shared secret without an unauthenticated HTTP request.
@@ -103,6 +76,6 @@ declare const writeAuthFile: (secret: string) => Promise<void>;
103
76
  * If auth.json exists with a valid secret, returns it without overwriting.
104
77
  */
105
78
  declare const loadSecret: () => Promise<string>;
106
- export type { OpentabsConfig, PermissionsConfig, ToolPermission };
107
- export { loadConfig, loadSecret, saveConfig, saveBrowserToolPolicy, saveToolConfig, writeAuthFile, generateSecret, getConfigDir, getExtensionDir, getExtensionVersionFile, getAdaptersDir, };
79
+ export type { OpentabsConfig };
80
+ export { loadConfig, loadSecret, saveConfig, savePluginPermissions, writeAuthFile, generateSecret, getConfigDir, getExtensionDir, getExtensionVersionFile, getAdaptersDir, };
108
81
  //# 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,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CACrD;AAED,4DAA4D;AAC5D,QAAA,MAAM,uBAAuB,QAAO,MAAsD,CAAC;AAE3F,sEAAsE;AACtE,QAAA,MAAM,cAAc,QAAO,MAA6C,CAAC;AAiHzE;;;;;;;;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,CAwBd,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 */
@@ -59,60 +61,47 @@ const readConfigWithRetry = async (configPath, maxRetries = 3, initialDelayMs =
59
61
  }
60
62
  return null;
61
63
  };
62
- /** Check whether a string looks like a local filesystem path. */
63
- const isLocalPathEntry = (s) => s.startsWith('./') ||
64
- s.startsWith('.\\') ||
65
- s.startsWith('../') ||
66
- s.startsWith('..\\') ||
67
- s.startsWith('/') ||
68
- s.startsWith('~/') ||
69
- /^[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
- }
64
+ /** Parse and validate a single PluginPermissionConfig entry from raw JSON */
65
+ const parsePluginPermissionEntry = (raw) => {
66
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw))
67
+ return null;
84
68
  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)) {
69
+ const result = {};
70
+ if (isToolPermission(obj.permission)) {
71
+ result.permission = obj.permission;
72
+ }
73
+ if (obj.tools && typeof obj.tools === 'object' && !Array.isArray(obj.tools)) {
74
+ const tools = {};
75
+ for (const [key, value] of Object.entries(obj.tools)) {
94
76
  if (isToolPermission(value)) {
95
- toolPolicy[key] = value;
77
+ tools[key] = value;
96
78
  }
97
79
  }
80
+ if (Object.keys(tools).length > 0) {
81
+ result.tools = tools;
82
+ }
98
83
  }
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
- }
84
+ if (typeof obj.reviewedVersion === 'string' && obj.reviewedVersion.length > 0) {
85
+ result.reviewedVersion = obj.reviewedVersion;
86
+ }
87
+ // Only return if at least one field was set
88
+ if (result.permission !== undefined || result.tools !== undefined || result.reviewedVersion !== undefined) {
89
+ return result;
90
+ }
91
+ return null;
92
+ };
93
+ /** Parse the plugins map from a raw config record */
94
+ const parsePluginsConfig = (raw) => {
95
+ const result = {};
96
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw))
97
+ return result;
98
+ for (const [pluginName, entry] of Object.entries(raw)) {
99
+ const parsed = parsePluginPermissionEntry(entry);
100
+ if (parsed) {
101
+ result[pluginName] = parsed;
113
102
  }
114
103
  }
115
- return { trustedDomains, sensitiveDomains, toolPolicy, domainToolPolicy };
104
+ return result;
116
105
  };
117
106
  /**
118
107
  * Parse a raw config record into an OpentabsConfig.
@@ -122,65 +111,8 @@ const parseConfigRecord = (record) => {
122
111
  const localPlugins = Array.isArray(record.localPlugins)
123
112
  ? record.localPlugins.filter((p) => typeof p === 'string')
124
113
  : [];
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 &&
135
- 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
- }
142
- }
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).
145
- if (Array.isArray(record.plugins)) {
146
- const legacyPlugins = record.plugins.filter((p) => typeof p === 'string');
147
- const localPaths = legacyPlugins.filter(isLocalPathEntry);
148
- const npmPackages = legacyPlugins.filter(p => !isLocalPathEntry(p));
149
- if (localPaths.length > 0) {
150
- // Merge into localPlugins, deduplicating
151
- const existing = new Set(localPlugins);
152
- for (const p of localPaths) {
153
- if (!existing.has(p)) {
154
- localPlugins.push(p);
155
- existing.add(p);
156
- }
157
- }
158
- log.info(`Migrating ${localPaths.length} local path(s) from "plugins" to "localPlugins". ` +
159
- 'Update your config.json to use "localPlugins" for local plugin paths.');
160
- }
161
- if (npmPackages.length > 0) {
162
- log.info(`Dropping ${npmPackages.length} npm package name(s) from legacy "plugins" array. ` +
163
- 'npm plugins are now auto-discovered from global node_modules.');
164
- }
165
- }
166
- // Migration: merge legacy npmPlugins — these are npm packages that will be auto-discovered,
167
- // so they are dropped with a notice.
168
- if (Array.isArray(record.npmPlugins)) {
169
- const legacyNpm = record.npmPlugins.filter((p) => typeof p === 'string');
170
- if (legacyNpm.length > 0) {
171
- log.info(`Dropping ${legacyNpm.length} npmPlugins entry/entries. ` +
172
- 'npm plugins are now auto-discovered from global node_modules.');
173
- }
174
- }
175
- // Parse permissions config with defensive validation
176
- const permissions = parsePermissionsConfig(record.permissions);
177
- // Read skipPermissions (new name); fall back to skipConfirmation (old name) for backward compatibility.
178
- const skipPermissions = typeof record.skipPermissions === 'boolean'
179
- ? record.skipPermissions
180
- : typeof record.skipConfirmation === 'boolean'
181
- ? record.skipConfirmation
182
- : undefined;
183
- return { localPlugins, tools, browserToolPolicy, permissions, skipPermissions };
114
+ const permissions = parsePluginsConfig(record.permissions);
115
+ return { localPlugins, permissions };
184
116
  };
185
117
  /**
186
118
  * Load config from ~/.opentabs/config.json.
@@ -198,9 +130,7 @@ const loadConfig = async () => {
198
130
  if (!(await access(configPath).then(() => true, () => false))) {
199
131
  const config = {
200
132
  localPlugins: [],
201
- tools: {},
202
- browserToolPolicy: {},
203
- permissions: defaultPermissions(),
133
+ permissions: {},
204
134
  };
205
135
  await atomicWriteConfig(configPath, `${JSON.stringify(config, null, 2)}\n`);
206
136
  log.info(`Created default config at ${configPath}`);
@@ -235,35 +165,30 @@ const saveConfig = async (state, config) => {
235
165
  await writePromise;
236
166
  };
237
167
  /**
238
- * Persist only the tool enabled/disabled state to config.json.
168
+ * Persist plugin permissions to config.json.
239
169
  *
240
- * Reads the current config from disk, updates only the `tools` field,
170
+ * Reads the current config from disk, updates only the `permissions` field,
241
171
  * 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.
172
+ * paths from overwriting externally-added plugins.
244
173
  *
245
174
  * The read-modify-write is serialized via state.configWriteMutex.
246
175
  */
247
- const saveToolConfig = async (state, tools) => {
176
+ const savePluginPermissions = async (state, plugins) => {
248
177
  const configDir = getConfigDir();
249
178
  const configPath = getConfigPath();
250
179
  const prev = state.configWriteMutex;
251
180
  const writePromise = (async () => {
252
181
  await prev;
253
182
  await mkdir(configDir, { recursive: true, mode: 0o700 });
254
- // Read current config from disk to preserve localPlugins
255
183
  const record = await readConfigWithRetry(configPath, 2, 50);
256
184
  if (!record) {
257
- log.warn('Cannot persist tool config — config file unreadable');
185
+ log.warn('Cannot persist plugin permissions — config file unreadable');
258
186
  return;
259
187
  }
260
188
  const current = parseConfigRecord(record);
261
189
  const updated = {
262
190
  localPlugins: current.localPlugins,
263
- tools,
264
- browserToolPolicy: current.browserToolPolicy,
265
- permissions: current.permissions,
266
- skipPermissions: current.skipPermissions,
191
+ permissions: plugins,
267
192
  };
268
193
  await atomicWriteConfig(configPath, `${JSON.stringify(updated, null, 2)}\n`);
269
194
  })();
@@ -271,40 +196,6 @@ const saveToolConfig = async (state, tools) => {
271
196
  state.configWriteMutex = writePromise.catch(() => { });
272
197
  await writePromise;
273
198
  };
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
199
  /**
309
200
  * Write auth.json to the managed extension directory so the Chrome extension
310
201
  * can bootstrap the shared secret without an unauthenticated HTTP request.
@@ -346,5 +237,5 @@ const loadSecret = async () => {
346
237
  log.info(`Generated WebSocket authentication secret in ${authPath}`);
347
238
  return secret;
348
239
  };
349
- export { loadConfig, loadSecret, saveConfig, saveBrowserToolPolicy, saveToolConfig, writeAuthFile, generateSecret, getConfigDir, getExtensionDir, getExtensionVersionFile, getAdaptersDir, };
240
+ export { loadConfig, loadSecret, saveConfig, savePluginPermissions, writeAuthFile, generateSecret, getConfigDir, getExtensionDir, getExtensionVersionFile, getAdaptersDir, };
350
241
  //# 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":"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"}