@browserbridge/bbx 1.0.1 → 1.1.0

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 (63) hide show
  1. package/README.md +4 -4
  2. package/package.json +11 -13
  3. package/packages/agent-client/src/cli-helpers.js +33 -0
  4. package/packages/agent-client/src/cli.js +116 -41
  5. package/packages/agent-client/src/client.js +29 -4
  6. package/packages/agent-client/src/command-registry.js +3 -0
  7. package/packages/agent-client/src/detect.js +159 -48
  8. package/packages/agent-client/src/install.js +24 -1
  9. package/packages/agent-client/src/mcp-config.js +29 -10
  10. package/packages/agent-client/src/setup-status.js +12 -4
  11. package/packages/mcp-server/src/bin.js +57 -5
  12. package/packages/mcp-server/src/handlers.js +28 -7
  13. package/packages/mcp-server/src/server.js +12 -2
  14. package/packages/native-host/bin/bridge-daemon.js +33 -4
  15. package/packages/native-host/bin/install-manifest.js +24 -2
  16. package/packages/native-host/src/config.js +131 -6
  17. package/packages/native-host/src/daemon-process.js +396 -0
  18. package/packages/native-host/src/daemon.js +217 -68
  19. package/packages/native-host/src/framing.js +131 -11
  20. package/packages/native-host/src/install-manifest.js +121 -7
  21. package/packages/native-host/src/native-host.js +110 -73
  22. package/packages/protocol/src/capabilities.js +3 -0
  23. package/packages/protocol/src/defaults.js +1 -0
  24. package/packages/protocol/src/errors.js +4 -0
  25. package/packages/protocol/src/payload-cost.js +19 -6
  26. package/packages/protocol/src/protocol.js +143 -7
  27. package/packages/protocol/src/registry.js +11 -0
  28. package/packages/protocol/src/summary.js +18 -10
  29. package/packages/protocol/src/types.js +28 -3
  30. package/skills/browser-bridge/SKILL.md +2 -1
  31. package/skills/browser-bridge/references/interaction.md +1 -0
  32. package/skills/browser-bridge/references/protocol.md +2 -1
  33. package/CHANGELOG.md +0 -55
  34. package/assets/banner.jpg +0 -0
  35. package/assets/logo.png +0 -0
  36. package/assets/logo.svg +0 -65
  37. package/docs/api-reference.md +0 -157
  38. package/docs/cli-guide.md +0 -128
  39. package/docs/index.md +0 -25
  40. package/docs/manual-setup.md +0 -140
  41. package/docs/mcp-vs-cli.md +0 -258
  42. package/docs/publishing.md +0 -112
  43. package/docs/quickstart.md +0 -104
  44. package/docs/troubleshooting.md +0 -59
  45. package/docs/unpacked-extension.md +0 -72
  46. package/docs/usage-scenarios.md +0 -136
  47. package/manifest.json +0 -38
  48. package/packages/extension/assets/icon-128.png +0 -0
  49. package/packages/extension/assets/icon-16.png +0 -0
  50. package/packages/extension/assets/icon-32.png +0 -0
  51. package/packages/extension/assets/icon-48.png +0 -0
  52. package/packages/extension/src/background-helpers.js +0 -474
  53. package/packages/extension/src/background-routing.js +0 -89
  54. package/packages/extension/src/background.js +0 -3490
  55. package/packages/extension/src/content-script-helpers.js +0 -282
  56. package/packages/extension/src/content-script.js +0 -2043
  57. package/packages/extension/src/debugger-coordinator.js +0 -188
  58. package/packages/extension/src/sidepanel-helpers.js +0 -104
  59. package/packages/extension/ui/popup.html +0 -35
  60. package/packages/extension/ui/popup.js +0 -298
  61. package/packages/extension/ui/sidepanel.html +0 -102
  62. package/packages/extension/ui/sidepanel.js +0 -1771
  63. package/packages/extension/ui/ui.css +0 -1160
@@ -1,89 +0,0 @@
1
- // @ts-check
2
-
3
- import { ERROR_CODES } from '../../protocol/src/index.js';
4
-
5
- /**
6
- * @typedef {{
7
- * tabId: number,
8
- * windowId: number,
9
- * title: string,
10
- * url: string
11
- * }} ResolvedTabTarget
12
- */
13
-
14
- /**
15
- * @param {string} url
16
- * @returns {boolean}
17
- */
18
- export function isRestrictedAutomationUrl(url) {
19
- return /^(about:|chrome:|chrome-extension:|chrome-search:|devtools:|edge:|brave:|moz-extension:|view-source:)/i.test(
20
- url
21
- );
22
- }
23
-
24
- /**
25
- * @param {number | null | undefined} requestTabId
26
- * @param {chrome.tabs.Tab | null | undefined} explicitTab
27
- * @param {chrome.tabs.Tab | null | undefined} activeTab
28
- * @returns {chrome.tabs.Tab | null}
29
- */
30
- export function selectRequestTabCandidate(requestTabId, explicitTab, activeTab) {
31
- if (typeof requestTabId === 'number' && Number.isFinite(requestTabId)) {
32
- return explicitTab ?? null;
33
- }
34
- return activeTab ?? null;
35
- }
36
-
37
- /**
38
- * @param {chrome.tabs.Tab | null | undefined} tab
39
- * @param {number} enabledWindowId
40
- * @param {{ requireScriptable?: boolean }} [options]
41
- * @returns {ResolvedTabTarget}
42
- */
43
- export function resolveWindowScopedTab(tab, enabledWindowId, options = {}) {
44
- const requireScriptable = options.requireScriptable !== false;
45
- if (typeof tab?.id !== 'number' || !Number.isFinite(tab.id) || typeof tab.windowId !== 'number') {
46
- throw new Error(ERROR_CODES.TAB_MISMATCH);
47
- }
48
- if (tab.windowId !== enabledWindowId) {
49
- throw new Error(ERROR_CODES.ACCESS_DENIED);
50
- }
51
- if (typeof tab.url !== 'string' || !tab.url) {
52
- throw new Error(ERROR_CODES.TAB_MISMATCH);
53
- }
54
- if (requireScriptable && isRestrictedAutomationUrl(tab.url)) {
55
- throw new Error(ERROR_CODES.ACCESS_DENIED);
56
- }
57
-
58
- return {
59
- tabId: tab.id,
60
- windowId: tab.windowId,
61
- title: tab.title ?? '',
62
- url: tab.url,
63
- };
64
- }
65
-
66
- /**
67
- * @param {chrome.tabs.Tab | null | undefined} tab
68
- * @returns {ResolvedTabTarget | null}
69
- */
70
- export function normalizeRequestedAccessTab(tab) {
71
- if (
72
- typeof tab?.id !== 'number' ||
73
- !Number.isFinite(tab.id) ||
74
- typeof tab.windowId !== 'number' ||
75
- typeof tab.url !== 'string' ||
76
- !tab.url
77
- ) {
78
- return null;
79
- }
80
- if (isRestrictedAutomationUrl(tab.url)) {
81
- return null;
82
- }
83
- return {
84
- tabId: tab.id,
85
- windowId: tab.windowId,
86
- title: tab.title ?? '',
87
- url: tab.url,
88
- };
89
- }