@flrande/browserctl 0.5.0-dev.22.1 → 0.6.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 (136) hide show
  1. package/dist/client.d.ts +34 -0
  2. package/dist/client.js +138 -0
  3. package/dist/commandRegistry.d.ts +16 -0
  4. package/dist/commandRegistry.js +21 -0
  5. package/dist/help.d.ts +4 -0
  6. package/dist/help.js +24 -0
  7. package/dist/index.d.ts +3 -0
  8. package/dist/index.js +23 -0
  9. package/dist/runCli.d.ts +5 -0
  10. package/dist/runCli.js +170 -0
  11. package/package.json +32 -59
  12. package/INSTALL-CN.md +0 -92
  13. package/INSTALL.md +0 -92
  14. package/LICENSE +0 -21
  15. package/README-CN.md +0 -69
  16. package/README.md +0 -69
  17. package/apps/browserctl/src/commands/a11y-snapshot.ts +0 -20
  18. package/apps/browserctl/src/commands/act.test.ts +0 -71
  19. package/apps/browserctl/src/commands/act.ts +0 -64
  20. package/apps/browserctl/src/commands/command-wrappers.test.ts +0 -688
  21. package/apps/browserctl/src/commands/common.test.ts +0 -87
  22. package/apps/browserctl/src/commands/common.ts +0 -191
  23. package/apps/browserctl/src/commands/console-list.test.ts +0 -102
  24. package/apps/browserctl/src/commands/console-list.ts +0 -108
  25. package/apps/browserctl/src/commands/cookie-clear.ts +0 -18
  26. package/apps/browserctl/src/commands/cookie-get.ts +0 -18
  27. package/apps/browserctl/src/commands/cookie-set.ts +0 -22
  28. package/apps/browserctl/src/commands/dialog-arm.ts +0 -20
  29. package/apps/browserctl/src/commands/dom-query-all.ts +0 -18
  30. package/apps/browserctl/src/commands/dom-query.ts +0 -18
  31. package/apps/browserctl/src/commands/download-trigger.ts +0 -22
  32. package/apps/browserctl/src/commands/download-wait.test.ts +0 -67
  33. package/apps/browserctl/src/commands/download-wait.ts +0 -27
  34. package/apps/browserctl/src/commands/element-screenshot.ts +0 -20
  35. package/apps/browserctl/src/commands/frame-list.ts +0 -16
  36. package/apps/browserctl/src/commands/frame-snapshot.ts +0 -18
  37. package/apps/browserctl/src/commands/har-export.test.ts +0 -112
  38. package/apps/browserctl/src/commands/har-export.ts +0 -120
  39. package/apps/browserctl/src/commands/memory-delete.ts +0 -20
  40. package/apps/browserctl/src/commands/memory-inspect.ts +0 -20
  41. package/apps/browserctl/src/commands/memory-list.ts +0 -90
  42. package/apps/browserctl/src/commands/memory-mode-set.ts +0 -29
  43. package/apps/browserctl/src/commands/memory-purge.ts +0 -16
  44. package/apps/browserctl/src/commands/memory-resolve.ts +0 -56
  45. package/apps/browserctl/src/commands/memory-status.ts +0 -16
  46. package/apps/browserctl/src/commands/memory-ttl-set.ts +0 -28
  47. package/apps/browserctl/src/commands/memory-upsert.ts +0 -142
  48. package/apps/browserctl/src/commands/network-list.test.ts +0 -110
  49. package/apps/browserctl/src/commands/network-list.ts +0 -112
  50. package/apps/browserctl/src/commands/network-wait-for.test.ts +0 -90
  51. package/apps/browserctl/src/commands/network-wait-for.ts +0 -100
  52. package/apps/browserctl/src/commands/profile-list.ts +0 -16
  53. package/apps/browserctl/src/commands/profile-use.ts +0 -18
  54. package/apps/browserctl/src/commands/response-body.ts +0 -24
  55. package/apps/browserctl/src/commands/screenshot.ts +0 -16
  56. package/apps/browserctl/src/commands/session-drop.test.ts +0 -36
  57. package/apps/browserctl/src/commands/session-drop.ts +0 -16
  58. package/apps/browserctl/src/commands/session-list.test.ts +0 -81
  59. package/apps/browserctl/src/commands/session-list.ts +0 -70
  60. package/apps/browserctl/src/commands/snapshot.ts +0 -16
  61. package/apps/browserctl/src/commands/status.ts +0 -10
  62. package/apps/browserctl/src/commands/storage-get.ts +0 -20
  63. package/apps/browserctl/src/commands/storage-set.ts +0 -22
  64. package/apps/browserctl/src/commands/tab-close.ts +0 -20
  65. package/apps/browserctl/src/commands/tab-focus.ts +0 -20
  66. package/apps/browserctl/src/commands/tab-open.ts +0 -19
  67. package/apps/browserctl/src/commands/tabs.ts +0 -13
  68. package/apps/browserctl/src/commands/trace-get.test.ts +0 -61
  69. package/apps/browserctl/src/commands/trace-get.ts +0 -62
  70. package/apps/browserctl/src/commands/upload-arm.ts +0 -26
  71. package/apps/browserctl/src/commands/wait-element.test.ts +0 -80
  72. package/apps/browserctl/src/commands/wait-element.ts +0 -76
  73. package/apps/browserctl/src/commands/wait-text.test.ts +0 -110
  74. package/apps/browserctl/src/commands/wait-text.ts +0 -93
  75. package/apps/browserctl/src/commands/wait-url.test.ts +0 -80
  76. package/apps/browserctl/src/commands/wait-url.ts +0 -76
  77. package/apps/browserctl/src/daemon-client.test.ts +0 -512
  78. package/apps/browserctl/src/daemon-client.ts +0 -632
  79. package/apps/browserctl/src/e2e.test.ts +0 -103
  80. package/apps/browserctl/src/main.dispatch.test.ts +0 -461
  81. package/apps/browserctl/src/main.test.ts +0 -334
  82. package/apps/browserctl/src/main.ts +0 -957
  83. package/apps/browserctl/src/smoke.e2e.test.ts +0 -97
  84. package/apps/browserctl/src/test-port.ts +0 -26
  85. package/apps/browserd/src/bootstrap.ts +0 -432
  86. package/apps/browserd/src/chrome-relay-extension-bridge.test.ts +0 -250
  87. package/apps/browserd/src/chrome-relay-extension-bridge.ts +0 -506
  88. package/apps/browserd/src/container.ts +0 -3088
  89. package/apps/browserd/src/main.test.ts +0 -1522
  90. package/apps/browserd/src/main.ts +0 -7
  91. package/apps/browserd/src/test-port.ts +0 -26
  92. package/apps/browserd/src/tool-matrix.test.ts +0 -887
  93. package/bin/browserctl.cjs +0 -21
  94. package/bin/browserd.cjs +0 -21
  95. package/extensions/chrome-relay/README-CN.md +0 -39
  96. package/extensions/chrome-relay/README.md +0 -39
  97. package/extensions/chrome-relay/background.js +0 -1687
  98. package/extensions/chrome-relay/manifest.json +0 -15
  99. package/extensions/chrome-relay/popup.html +0 -369
  100. package/extensions/chrome-relay/popup.js +0 -972
  101. package/packages/core/src/bootstrap.test.ts +0 -10
  102. package/packages/core/src/driver-registry.test.ts +0 -45
  103. package/packages/core/src/driver-registry.ts +0 -22
  104. package/packages/core/src/driver.ts +0 -47
  105. package/packages/core/src/index.ts +0 -6
  106. package/packages/core/src/navigation-memory.test.ts +0 -259
  107. package/packages/core/src/navigation-memory.ts +0 -360
  108. package/packages/core/src/ref-cache.test.ts +0 -61
  109. package/packages/core/src/ref-cache.ts +0 -28
  110. package/packages/core/src/session-store.test.ts +0 -82
  111. package/packages/core/src/session-store.ts +0 -138
  112. package/packages/core/src/types.ts +0 -9
  113. package/packages/driver-chrome-relay/src/chrome-relay-driver.test.ts +0 -744
  114. package/packages/driver-chrome-relay/src/chrome-relay-driver.ts +0 -2429
  115. package/packages/driver-chrome-relay/src/chrome-relay-extension-runtime.test.ts +0 -264
  116. package/packages/driver-chrome-relay/src/chrome-relay-extension-runtime.ts +0 -521
  117. package/packages/driver-chrome-relay/src/index.ts +0 -26
  118. package/packages/driver-managed/src/index.ts +0 -22
  119. package/packages/driver-managed/src/managed-driver.test.ts +0 -183
  120. package/packages/driver-managed/src/managed-driver.ts +0 -341
  121. package/packages/driver-managed/src/managed-local-driver.test.ts +0 -608
  122. package/packages/driver-managed/src/managed-local-driver.ts +0 -2243
  123. package/packages/driver-remote-cdp/src/index.ts +0 -19
  124. package/packages/driver-remote-cdp/src/remote-cdp-driver.test.ts +0 -727
  125. package/packages/driver-remote-cdp/src/remote-cdp-driver.ts +0 -2264
  126. package/packages/protocol/src/envelope.test.ts +0 -25
  127. package/packages/protocol/src/envelope.ts +0 -31
  128. package/packages/protocol/src/errors.test.ts +0 -17
  129. package/packages/protocol/src/errors.ts +0 -11
  130. package/packages/protocol/src/index.ts +0 -3
  131. package/packages/protocol/src/tools.ts +0 -3
  132. package/packages/transport-mcp-stdio/src/index.ts +0 -3
  133. package/packages/transport-mcp-stdio/src/sdk-server.ts +0 -139
  134. package/packages/transport-mcp-stdio/src/server.test.ts +0 -281
  135. package/packages/transport-mcp-stdio/src/server.ts +0 -183
  136. package/packages/transport-mcp-stdio/src/tool-map.ts +0 -84
@@ -1,15 +0,0 @@
1
- {
2
- "manifest_version": 3,
3
- "name": "BrowserCtl Relay",
4
- "version": "0.1.0",
5
- "description": "BrowserCtl local relay extension for chrome-relay extension mode.",
6
- "permissions": ["tabs", "scripting", "storage", "debugger", "cookies"],
7
- "host_permissions": ["<all_urls>"],
8
- "background": {
9
- "service_worker": "background.js"
10
- },
11
- "action": {
12
- "default_title": "BrowserCtl Relay",
13
- "default_popup": "popup.html"
14
- }
15
- }
@@ -1,369 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <title>BrowserCtl Relay</title>
7
- <style>
8
- :root {
9
- --bg: #f3f6fa;
10
- --surface: #ffffff;
11
- --surface-muted: #f8fafc;
12
- --text: #1f2937;
13
- --text-muted: #6b7280;
14
- --border: #d1d9e6;
15
- --primary: #0f6fda;
16
- --primary-hover: #095ec1;
17
- --secondary: #4b5563;
18
- --secondary-hover: #374151;
19
- --ok: #1f8f3a;
20
- --ok-soft: #e8f6ec;
21
- --error: #b02a37;
22
- --error-soft: #fdecec;
23
- }
24
-
25
- body {
26
- margin: 0;
27
- padding: 12px 12px 14px;
28
- font-family: "Segoe UI", sans-serif;
29
- width: 360px;
30
- color: var(--text);
31
- background: radial-gradient(
32
- circle at top right,
33
- rgba(15, 111, 218, 0.15),
34
- transparent 50%
35
- ),
36
- var(--bg);
37
- }
38
-
39
- .layout {
40
- display: grid;
41
- gap: 12px;
42
- }
43
-
44
- .header {
45
- display: flex;
46
- justify-content: space-between;
47
- align-items: flex-start;
48
- gap: 10px;
49
- padding: 10px;
50
- border: 1px solid var(--border);
51
- border-radius: 10px;
52
- background: linear-gradient(180deg, #ffffff, #f8fbff);
53
- box-shadow: 0 6px 14px rgba(15, 23, 42, 0.06);
54
- }
55
-
56
- .header-title {
57
- display: grid;
58
- gap: 2px;
59
- }
60
-
61
- .title {
62
- font-size: 14px;
63
- font-weight: 700;
64
- }
65
-
66
- .subtitle {
67
- font-size: 11px;
68
- color: var(--text-muted);
69
- }
70
-
71
- .pill {
72
- align-self: center;
73
- padding: 4px 8px;
74
- border-radius: 999px;
75
- font-size: 11px;
76
- font-weight: 700;
77
- border: 1px solid var(--border);
78
- background: var(--surface-muted);
79
- color: var(--text-muted);
80
- }
81
-
82
- .pill.ok {
83
- border-color: #9ad5a9;
84
- color: var(--ok);
85
- background: var(--ok-soft);
86
- }
87
-
88
- .pill.error {
89
- border-color: #f0b7bf;
90
- color: var(--error);
91
- background: var(--error-soft);
92
- }
93
-
94
- .toolbar {
95
- display: flex;
96
- justify-content: flex-start;
97
- }
98
-
99
- .language-control {
100
- display: grid;
101
- gap: 4px;
102
- font-size: 11px;
103
- font-weight: 600;
104
- color: #555;
105
- }
106
-
107
- select {
108
- height: 28px;
109
- border: 1px solid var(--border);
110
- border-radius: 6px;
111
- padding: 0 8px;
112
- font-size: 12px;
113
- background: var(--surface);
114
- color: var(--text);
115
- }
116
-
117
- .section-title {
118
- font-size: 11px;
119
- font-weight: 700;
120
- color: var(--text-muted);
121
- letter-spacing: 0.02em;
122
- text-transform: uppercase;
123
- }
124
-
125
- .panel {
126
- display: grid;
127
- gap: 8px;
128
- border: 1px solid var(--border);
129
- border-radius: 10px;
130
- background: var(--surface);
131
- padding: 10px;
132
- }
133
-
134
- label {
135
- display: grid;
136
- gap: 4px;
137
- font-size: 12px;
138
- font-weight: 600;
139
- }
140
-
141
- input {
142
- height: 30px;
143
- border: 1px solid var(--border);
144
- border-radius: 6px;
145
- padding: 0 8px;
146
- font-size: 12px;
147
- background: var(--surface);
148
- color: var(--text);
149
- }
150
-
151
- .buttons {
152
- display: flex;
153
- gap: 8px;
154
- }
155
-
156
- button {
157
- flex: 1;
158
- height: 30px;
159
- border: 0;
160
- border-radius: 6px;
161
- background: var(--primary);
162
- color: #fff;
163
- font-size: 12px;
164
- font-weight: 600;
165
- cursor: pointer;
166
- transition: background-color 120ms ease;
167
- }
168
-
169
- button:hover:not(:disabled) {
170
- background: var(--primary-hover);
171
- }
172
-
173
- button.secondary {
174
- background: var(--secondary);
175
- }
176
-
177
- button.secondary:hover:not(:disabled) {
178
- background: var(--secondary-hover);
179
- }
180
-
181
- button:disabled {
182
- opacity: 0.6;
183
- cursor: not-allowed;
184
- }
185
-
186
- .metrics {
187
- display: grid;
188
- grid-template-columns: repeat(2, minmax(0, 1fr));
189
- gap: 8px;
190
- }
191
-
192
- .metric {
193
- border: 1px solid var(--border);
194
- border-radius: 8px;
195
- background: var(--surface-muted);
196
- padding: 8px;
197
- display: grid;
198
- gap: 4px;
199
- }
200
-
201
- .metric-label {
202
- font-size: 10px;
203
- letter-spacing: 0.02em;
204
- text-transform: uppercase;
205
- color: var(--text-muted);
206
- font-weight: 700;
207
- }
208
-
209
- .metric-value {
210
- font-size: 12px;
211
- font-weight: 700;
212
- color: var(--text);
213
- word-break: break-word;
214
- }
215
-
216
- .metric-value.ok {
217
- color: var(--ok);
218
- }
219
-
220
- .metric-value.error {
221
- color: var(--error);
222
- }
223
-
224
- .details-block {
225
- border: 1px solid var(--border);
226
- border-radius: 8px;
227
- background: var(--surface-muted);
228
- overflow: hidden;
229
- }
230
-
231
- .details-block summary {
232
- cursor: pointer;
233
- padding: 8px 10px;
234
- font-size: 12px;
235
- font-weight: 700;
236
- color: var(--text-muted);
237
- }
238
-
239
- .status {
240
- font-size: 12px;
241
- line-height: 1.4;
242
- background: #fff;
243
- border-top: 1px solid var(--border);
244
- padding: 8px 10px;
245
- white-space: pre-wrap;
246
- margin: 0;
247
- }
248
-
249
- .status.ok {
250
- background: var(--ok-soft);
251
- }
252
-
253
- .status.error {
254
- background: var(--error-soft);
255
- }
256
-
257
- .hint {
258
- font-size: 11px;
259
- color: var(--text-muted);
260
- }
261
-
262
- .guidance {
263
- margin: 0 0 0 2px;
264
- padding-left: 18px;
265
- display: grid;
266
- gap: 4px;
267
- font-size: 12px;
268
- }
269
-
270
- .guidance li {
271
- line-height: 1.35;
272
- }
273
-
274
- .feedback {
275
- font-size: 12px;
276
- border-radius: 7px;
277
- padding: 7px 9px;
278
- border: 1px solid var(--border);
279
- background: var(--surface-muted);
280
- }
281
-
282
- .feedback.ok {
283
- border-color: #9ad5a9;
284
- color: var(--ok);
285
- background: var(--ok-soft);
286
- }
287
-
288
- .feedback.error {
289
- border-color: #f0b7bf;
290
- color: var(--error);
291
- background: var(--error-soft);
292
- }
293
- </style>
294
- </head>
295
- <body>
296
- <div class="layout">
297
- <div class="header">
298
- <div class="header-title">
299
- <div id="headerTitle" class="title">BrowserCtl Relay</div>
300
- <div id="headerSubtitle" class="subtitle">Local browser bridge console</div>
301
- </div>
302
- <div id="headerConnectionPill" class="pill">Unknown</div>
303
- </div>
304
-
305
- <div class="panel">
306
- <div class="toolbar">
307
- <label class="language-control">
308
- <span id="languageLabel">Language</span>
309
- <select id="languageSelect">
310
- <option value="en">English</option>
311
- <option value="zh-CN">中文</option>
312
- </select>
313
- </label>
314
- </div>
315
- </div>
316
-
317
- <div class="panel">
318
- <div id="connectionSectionTitle" class="section-title">Connection</div>
319
- <label>
320
- <span id="bridgeUrlLabel">Bridge URL</span>
321
- <input id="bridgeUrl" type="text" placeholder="ws://127.0.0.1:9223/bridge" />
322
- </label>
323
-
324
- <label>
325
- <span id="tokenLabel">Token (required)</span>
326
- <input id="token" type="password" placeholder="BROWSERD_CHROME_RELAY_EXTENSION_TOKEN" />
327
- </label>
328
-
329
- <div class="buttons">
330
- <button id="saveButton" type="button">Save</button>
331
- <button id="reconnectButton" class="secondary" type="button">Reconnect</button>
332
- </div>
333
- </div>
334
-
335
- <div class="panel">
336
- <div id="statusSectionTitle" class="section-title">Live Status</div>
337
- <div id="statusSummary" class="metrics"></div>
338
- <details class="details-block">
339
- <summary id="statusDetailsLabel">Status details</summary>
340
- <div id="statusBox" class="status">Loading relay status...</div>
341
- </details>
342
- </div>
343
-
344
- <div class="panel">
345
- <div id="troubleshootingSectionTitle" class="section-title">Troubleshooting</div>
346
- <div id="diagnosticsHighlights" class="metrics"></div>
347
- <div class="buttons">
348
- <button id="diagnoseButton" class="secondary" type="button">Run Diagnostics</button>
349
- <button id="copyReportButton" class="secondary" type="button">Copy Report</button>
350
- </div>
351
- <details class="details-block">
352
- <summary id="diagnosticsDetailsLabel">Diagnostics details</summary>
353
- <div id="diagnosticsBox" class="status">No diagnostics yet.</div>
354
- </details>
355
- <ul id="guidanceList" class="guidance">
356
- <li>Run diagnostics when status and CLI result look inconsistent.</li>
357
- </ul>
358
- </div>
359
-
360
- <div id="actionFeedback" class="feedback" hidden></div>
361
-
362
- <div id="hintText" class="hint">
363
- Keep this extension enabled while using browserctl chrome-relay extension mode.
364
- </div>
365
- </div>
366
-
367
- <script src="popup.js"></script>
368
- </body>
369
- </html>