@browsers-cli/se-cli 0.1.0 → 0.2.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.
- package/README.md +91 -6
- package/dist/daemon/backend.js +18 -0
- package/dist/daemon/backend.js.map +1 -1
- package/dist/daemon/server.js +9 -1
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon/tools/index.js +21 -0
- package/dist/daemon/tools/index.js.map +1 -1
- package/dist/daemon/tools/state.d.ts +7 -0
- package/dist/daemon/tools/state.js +136 -0
- package/dist/daemon/tools/state.js.map +1 -0
- package/dist/daemon/tools/storage.d.ts +38 -0
- package/dist/daemon/tools/storage.js +128 -0
- package/dist/daemon/tools/storage.js.map +1 -0
- package/dist/daemon/tools/tab.d.ts +9 -0
- package/dist/daemon/tools/tab.js +58 -0
- package/dist/daemon/tools/tab.js.map +1 -0
- package/dist/program.js +41 -3
- package/dist/program.js.map +1 -1
- package/dist/session.d.ts +2 -0
- package/dist/session.js +4 -0
- package/dist/session.js.map +1 -1
- package/package.json +2 -1
- package/skill/SKILL.md +123 -0
package/README.md
CHANGED
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
</p>
|
|
9
9
|
|
|
10
10
|
<p align="center">
|
|
11
|
-
<a href="https://www.npmjs.com/package/se-cli"><img src="https://img.shields.io/npm/v/se-cli?color=22C55E&label=npm" alt="npm version" /></a>
|
|
11
|
+
<a href="https://www.npmjs.com/package/@browsers-cli/se-cli"><img src="https://img.shields.io/npm/v/@browsers-cli/se-cli?color=22C55E&label=npm" alt="npm version" /></a>
|
|
12
12
|
<a href="https://github.com/se-cli/se-cli/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/se-cli/se-cli/ci.yml?branch=main&label=CI&color=22C55E" alt="CI" /></a>
|
|
13
|
-
<a href="https://www.npmjs.com/package/se-cli"><img src="https://img.shields.io/node/v/se-cli?color=22C55E" alt="Node.js" /></a>
|
|
13
|
+
<a href="https://www.npmjs.com/package/@browsers-cli/se-cli"><img src="https://img.shields.io/node/v/@browsers-cli/se-cli?color=22C55E" alt="Node.js" /></a>
|
|
14
14
|
<a href="https://github.com/se-cli/se-cli/blob/main/LICENSE"><img src="https://img.shields.io/github/license/se-cli/se-cli?color=22C55E" alt="License" /></a>
|
|
15
15
|
<a href="https://github.com/se-cli/se-cli"><img src="https://img.shields.io/github/stars/se-cli/se-cli?style=social" alt="Stars" /></a>
|
|
16
16
|
</p>
|
|
@@ -51,13 +51,13 @@ Current Selenium MCP implementations consume too many tokens — large tool sche
|
|
|
51
51
|
## Installation
|
|
52
52
|
|
|
53
53
|
```bash
|
|
54
|
-
npm install -g se-cli
|
|
54
|
+
npm install -g @browsers-cli/se-cli
|
|
55
55
|
```
|
|
56
56
|
|
|
57
57
|
Or use directly with npx:
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
|
-
npx se-cli open https://example.com
|
|
60
|
+
npx @browsers-cli/se-cli open https://example.com
|
|
61
61
|
```
|
|
62
62
|
|
|
63
63
|
After installation, the following commands are available (all aliased to the same binary):
|
|
@@ -157,6 +157,39 @@ se-cli close
|
|
|
157
157
|
| `title` | Get page title |
|
|
158
158
|
| `url` | Get current URL |
|
|
159
159
|
|
|
160
|
+
### Storage Management
|
|
161
|
+
|
|
162
|
+
| Command | Description |
|
|
163
|
+
|---------|-------------|
|
|
164
|
+
| `cookie-list` | List all cookies |
|
|
165
|
+
| `cookie-get <name>` | Get a specific cookie |
|
|
166
|
+
| `cookie-set <name> <value>` | Set a cookie |
|
|
167
|
+
| `cookie-delete [name]` | Delete a cookie (or all if name omitted) |
|
|
168
|
+
| `localstorage-get <key>` | Get a localStorage item |
|
|
169
|
+
| `localstorage-set <key> <value>` | Set a localStorage item |
|
|
170
|
+
| `localstorage-delete [key]` | Delete a localStorage item (or clear all) |
|
|
171
|
+
| `localstorage-list` | List all localStorage items |
|
|
172
|
+
| `sessionstorage-get <key>` | Get a sessionStorage item |
|
|
173
|
+
| `sessionstorage-set <key> <value>` | Set a sessionStorage item |
|
|
174
|
+
| `sessionstorage-delete [key]` | Delete a sessionStorage item (or clear all) |
|
|
175
|
+
| `sessionstorage-list` | List all sessionStorage items |
|
|
176
|
+
|
|
177
|
+
### Tab Management
|
|
178
|
+
|
|
179
|
+
| Command | Description |
|
|
180
|
+
|---------|-------------|
|
|
181
|
+
| `tab-list` | List all open tabs (handle, title, url) |
|
|
182
|
+
| `tab-new [url]` | Open a new tab (optionally navigate to url) |
|
|
183
|
+
| `tab-close` | Close current tab and switch to remaining |
|
|
184
|
+
| `tab-select <index>` | Switch to tab by index (0-based) |
|
|
185
|
+
|
|
186
|
+
### State Management
|
|
187
|
+
|
|
188
|
+
| Command | Description |
|
|
189
|
+
|---------|-------------|
|
|
190
|
+
| `state-save [--filename=f.json]` | Save cookies, localStorage, sessionStorage to file |
|
|
191
|
+
| `state-load [--filename=f.json]` | Load state from file (restores all storage) |
|
|
192
|
+
|
|
160
193
|
### Flags
|
|
161
194
|
|
|
162
195
|
| Flag | Description |
|
|
@@ -167,6 +200,8 @@ se-cli close
|
|
|
167
200
|
| `--browser=chrome\|edge\|firefox` | Browser selection (default: chrome) |
|
|
168
201
|
| `--headed` | Show browser window (default: headless) |
|
|
169
202
|
| `--cdp=<url>` | Attach to running Chrome via CDP |
|
|
203
|
+
| `--profile=<path>` | Use a persistent browser profile directory |
|
|
204
|
+
| `--persistent` | Keep browser profile across sessions (auto-assigns path) |
|
|
170
205
|
|
|
171
206
|
## Usage Examples
|
|
172
207
|
|
|
@@ -220,6 +255,56 @@ COUNT=$(se-cli --raw eval "document.querySelectorAll('.item').length")
|
|
|
220
255
|
echo "Found $COUNT items"
|
|
221
256
|
```
|
|
222
257
|
|
|
258
|
+
### Storage Management
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
# Set and verify a cookie
|
|
262
|
+
se-cli open https://example.com
|
|
263
|
+
se-cli cookie-set session_token abc123
|
|
264
|
+
se-cli cookie-get session_token
|
|
265
|
+
|
|
266
|
+
# Work with localStorage
|
|
267
|
+
se-cli localstorage-set theme dark
|
|
268
|
+
se-cli localstorage-get theme
|
|
269
|
+
se-cli localstorage-list
|
|
270
|
+
|
|
271
|
+
# Clear all cookies
|
|
272
|
+
se-cli cookie-delete
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### Tab Management
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
# Open multiple tabs
|
|
279
|
+
se-cli open https://example.com
|
|
280
|
+
se-cli tab-new https://example.com/login
|
|
281
|
+
|
|
282
|
+
# List all tabs
|
|
283
|
+
se-cli tab-list
|
|
284
|
+
|
|
285
|
+
# Switch between tabs
|
|
286
|
+
se-cli tab-select 0
|
|
287
|
+
se-cli tab-select 1
|
|
288
|
+
|
|
289
|
+
# Close current tab
|
|
290
|
+
se-cli tab-close
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### State Save & Restore
|
|
294
|
+
|
|
295
|
+
```bash
|
|
296
|
+
# Save browser state (cookies + storage)
|
|
297
|
+
se-cli open https://example.com
|
|
298
|
+
se-cli cookie-set auth_token secret123
|
|
299
|
+
se-cli localstorage-set pref_theme dark
|
|
300
|
+
se-cli state-save --filename=session.json
|
|
301
|
+
|
|
302
|
+
# Later: restore state in a new session
|
|
303
|
+
se-cli open
|
|
304
|
+
se-cli state-load --filename=session.json
|
|
305
|
+
se-cli cookie-get auth_token # → secret123
|
|
306
|
+
```
|
|
307
|
+
|
|
223
308
|
### Code Generation
|
|
224
309
|
|
|
225
310
|
Every interaction command outputs the equivalent Selenium code:
|
|
@@ -339,7 +424,7 @@ src/
|
|
|
339
424
|
└── daemon/
|
|
340
425
|
├── server.ts # Daemon socket server
|
|
341
426
|
├── backend.ts # Tool dispatcher
|
|
342
|
-
└── tools/ # Tool handlers (
|
|
427
|
+
└── tools/ # Tool handlers (35 tools)
|
|
343
428
|
```
|
|
344
429
|
|
|
345
430
|
## Browser Support
|
|
@@ -365,7 +450,7 @@ src/
|
|
|
365
450
|
|
|
366
451
|
## Roadmap
|
|
367
452
|
|
|
368
|
-
- **v0.2
|
|
453
|
+
- **v0.2** ✓: Storage management, tab management, state save/load, `install --skills`, `--profile`, `--persistent`
|
|
369
454
|
- **v0.3**: iframe recursive snapshot, Shadow DOM recursion
|
|
370
455
|
- **v0.4**: Network route mock, console logs, highlight
|
|
371
456
|
- **v0.5**: Code recording mode, role-based locators
|
package/dist/daemon/backend.js
CHANGED
|
@@ -43,6 +43,24 @@ function parseCommand(args) {
|
|
|
43
43
|
'find': () => ({ toolName: 'browser_find', toolParams: { text: positional[0], regex: parsed.regex } }),
|
|
44
44
|
'screenshot': () => ({ toolName: 'browser_screenshot', toolParams: { target: positional[0], filename: parsed.filename } }),
|
|
45
45
|
'eval': () => ({ toolName: 'browser_eval', toolParams: { script: positional[0], target: positional[1] } }),
|
|
46
|
+
'cookie-list': () => ({ toolName: 'browser_cookie_list', toolParams: {} }),
|
|
47
|
+
'cookie-get': () => ({ toolName: 'browser_cookie_get', toolParams: { name: positional[0] } }),
|
|
48
|
+
'cookie-set': () => ({ toolName: 'browser_cookie_set', toolParams: { name: positional[0], value: positional[1] } }),
|
|
49
|
+
'cookie-delete': () => ({ toolName: 'browser_cookie_delete', toolParams: { name: positional[0] } }),
|
|
50
|
+
'localstorage-get': () => ({ toolName: 'browser_localstorage_get', toolParams: { key: positional[0] } }),
|
|
51
|
+
'localstorage-set': () => ({ toolName: 'browser_localstorage_set', toolParams: { key: positional[0], value: positional[1] } }),
|
|
52
|
+
'localstorage-delete': () => ({ toolName: 'browser_localstorage_delete', toolParams: { key: positional[0] } }),
|
|
53
|
+
'localstorage-list': () => ({ toolName: 'browser_localstorage_list', toolParams: {} }),
|
|
54
|
+
'sessionstorage-get': () => ({ toolName: 'browser_sessionstorage_get', toolParams: { key: positional[0] } }),
|
|
55
|
+
'sessionstorage-set': () => ({ toolName: 'browser_sessionstorage_set', toolParams: { key: positional[0], value: positional[1] } }),
|
|
56
|
+
'sessionstorage-delete': () => ({ toolName: 'browser_sessionstorage_delete', toolParams: { key: positional[0] } }),
|
|
57
|
+
'sessionstorage-list': () => ({ toolName: 'browser_sessionstorage_list', toolParams: {} }),
|
|
58
|
+
'tab-list': () => ({ toolName: 'browser_tab_list', toolParams: {} }),
|
|
59
|
+
'tab-new': () => ({ toolName: 'browser_tab_new', toolParams: { url: positional[0] } }),
|
|
60
|
+
'tab-close': () => ({ toolName: 'browser_tab_close', toolParams: {} }),
|
|
61
|
+
'tab-select': () => ({ toolName: 'browser_tab_select', toolParams: { index: positional[0] ? parseInt(positional[0]) : 0 } }),
|
|
62
|
+
'state-save': () => ({ toolName: 'browser_state_save', toolParams: { filename: parsed.filename } }),
|
|
63
|
+
'state-load': () => ({ toolName: 'browser_state_load', toolParams: { filename: parsed.filename } }),
|
|
46
64
|
};
|
|
47
65
|
const factory = commands[cmd];
|
|
48
66
|
if (!factory)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/daemon/backend.ts"],"names":[],"mappings":";;AAIA,4BAeC;AAED,
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/daemon/backend.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/server.js
CHANGED
|
@@ -44,6 +44,8 @@ const workspaceDir = args[2];
|
|
|
44
44
|
const browserName = args[3] || 'chrome';
|
|
45
45
|
const headed = args.includes('--headed');
|
|
46
46
|
const cdpEndpoint = args.find(a => a.startsWith('--cdp='))?.slice('--cdp='.length);
|
|
47
|
+
const profilePath = args.find(a => a.startsWith('--profile='))?.slice('--profile='.length);
|
|
48
|
+
const persistent = args.includes('--persistent');
|
|
47
49
|
const version = require('../../package.json').version;
|
|
48
50
|
const ALLOWED_BROWSERS = new Set(['chrome', 'edge', 'firefox']);
|
|
49
51
|
if (!ALLOWED_BROWSERS.has(browserName)) {
|
|
@@ -106,6 +108,8 @@ async function buildDriver() {
|
|
|
106
108
|
if (!headed && !cdpEndpoint) {
|
|
107
109
|
chromeArgs.push('--headless=new', '--no-sandbox', '--disable-dev-shm-usage', '--disable-gpu');
|
|
108
110
|
}
|
|
111
|
+
if (profilePath)
|
|
112
|
+
chromeArgs.push(`--user-data-dir=${profilePath}`);
|
|
109
113
|
const chromeOpts = { args: chromeArgs };
|
|
110
114
|
if (cdpEndpoint)
|
|
111
115
|
chromeOpts.debuggerAddress = cdpEndpoint;
|
|
@@ -119,6 +123,8 @@ async function buildDriver() {
|
|
|
119
123
|
if (!headed) {
|
|
120
124
|
edgeArgs.push('--headless=new', '--no-sandbox', '--disable-dev-shm-usage', '--disable-gpu');
|
|
121
125
|
}
|
|
126
|
+
if (profilePath)
|
|
127
|
+
edgeArgs.push(`--user-data-dir=${profilePath}`);
|
|
122
128
|
const edgeOpts = { args: edgeArgs };
|
|
123
129
|
if (cdpEndpoint)
|
|
124
130
|
edgeOpts.debuggerAddress = cdpEndpoint;
|
|
@@ -131,6 +137,8 @@ async function buildDriver() {
|
|
|
131
137
|
if (!headed) {
|
|
132
138
|
firefoxOpts.args = ['-headless'];
|
|
133
139
|
}
|
|
140
|
+
if (profilePath)
|
|
141
|
+
firefoxOpts.profile = profilePath;
|
|
134
142
|
// Allow overriding the Firefox binary path via env var (useful in CI
|
|
135
143
|
// where browser-actions/setup-firefox installs to a non-standard path).
|
|
136
144
|
if (process.env.SE_FIREFOX_BINARY)
|
|
@@ -304,7 +312,7 @@ const config = {
|
|
|
304
312
|
timestamp: Date.now(),
|
|
305
313
|
socketPath,
|
|
306
314
|
workspaceDir,
|
|
307
|
-
persistent
|
|
315
|
+
persistent,
|
|
308
316
|
browserName,
|
|
309
317
|
pid: process.pid,
|
|
310
318
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,9 @@ const snapshot_1 = require("./snapshot");
|
|
|
15
15
|
const find_1 = require("./find");
|
|
16
16
|
const screenshot_1 = require("./screenshot");
|
|
17
17
|
const eval_1 = require("./eval");
|
|
18
|
+
const storage_1 = require("./storage");
|
|
19
|
+
const tab_1 = require("./tab");
|
|
20
|
+
const state_1 = require("./state");
|
|
18
21
|
exports.tools = {
|
|
19
22
|
browser_goto: goto_1.browser_goto,
|
|
20
23
|
browser_go_back: navigation_1.browser_go_back,
|
|
@@ -33,5 +36,23 @@ exports.tools = {
|
|
|
33
36
|
browser_find: find_1.browser_find,
|
|
34
37
|
browser_screenshot: screenshot_1.browser_screenshot,
|
|
35
38
|
browser_eval: eval_1.browser_eval,
|
|
39
|
+
browser_cookie_list: storage_1.browser_cookie_list,
|
|
40
|
+
browser_cookie_get: storage_1.browser_cookie_get,
|
|
41
|
+
browser_cookie_set: storage_1.browser_cookie_set,
|
|
42
|
+
browser_cookie_delete: storage_1.browser_cookie_delete,
|
|
43
|
+
browser_localstorage_get: storage_1.browser_localstorage_get,
|
|
44
|
+
browser_localstorage_set: storage_1.browser_localstorage_set,
|
|
45
|
+
browser_localstorage_delete: storage_1.browser_localstorage_delete,
|
|
46
|
+
browser_localstorage_list: storage_1.browser_localstorage_list,
|
|
47
|
+
browser_sessionstorage_get: storage_1.browser_sessionstorage_get,
|
|
48
|
+
browser_sessionstorage_set: storage_1.browser_sessionstorage_set,
|
|
49
|
+
browser_sessionstorage_delete: storage_1.browser_sessionstorage_delete,
|
|
50
|
+
browser_sessionstorage_list: storage_1.browser_sessionstorage_list,
|
|
51
|
+
browser_tab_list: tab_1.browser_tab_list,
|
|
52
|
+
browser_tab_new: tab_1.browser_tab_new,
|
|
53
|
+
browser_tab_close: tab_1.browser_tab_close,
|
|
54
|
+
browser_tab_select: tab_1.browser_tab_select,
|
|
55
|
+
browser_state_save: state_1.browser_state_save,
|
|
56
|
+
browser_state_load: state_1.browser_state_load,
|
|
36
57
|
};
|
|
37
58
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/daemon/tools/index.ts"],"names":[],"mappings":";;;AAAA,iCAAsC;AACtC,6CAAmF;AACnF,mCAAwC;AACxC,+BAAoC;AACpC,mCAAwC;AACxC,iCAAsC;AACtC,iCAAsC;AACtC,mCAAwC;AACxC,qCAA0C;AAC1C,mCAAyD;AACzD,yCAA8C;AAC9C,iCAAsC;AACtC,6CAAkD;AAClD,iCAAsC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/daemon/tools/index.ts"],"names":[],"mappings":";;;AAAA,iCAAsC;AACtC,6CAAmF;AACnF,mCAAwC;AACxC,+BAAoC;AACpC,mCAAwC;AACxC,iCAAsC;AACtC,iCAAsC;AACtC,mCAAwC;AACxC,qCAA0C;AAC1C,mCAAyD;AACzD,yCAA8C;AAC9C,iCAAsC;AACtC,6CAAkD;AAClD,iCAAsC;AACtC,uCAamB;AACnB,+BAKe;AACf,mCAGiB;AAEJ,QAAA,KAAK,GAA+E;IAC/F,YAAY,EAAZ,mBAAY;IACZ,eAAe,EAAf,4BAAe;IACf,kBAAkB,EAAlB,+BAAkB;IAClB,cAAc,EAAd,2BAAc;IACd,aAAa,EAAb,qBAAa;IACb,WAAW,EAAX,iBAAW;IACX,aAAa,EAAb,qBAAa;IACb,YAAY,EAAZ,mBAAY;IACZ,YAAY,EAAZ,mBAAY;IACZ,aAAa,EAAb,qBAAa;IACb,cAAc,EAAd,uBAAc;IACd,aAAa,EAAb,qBAAa;IACb,eAAe,EAAf,uBAAe;IACf,gBAAgB,EAAhB,2BAAgB;IAChB,YAAY,EAAZ,mBAAY;IACZ,kBAAkB,EAAlB,+BAAkB;IAClB,YAAY,EAAZ,mBAAY;IACZ,mBAAmB,EAAnB,6BAAmB;IACnB,kBAAkB,EAAlB,4BAAkB;IAClB,kBAAkB,EAAlB,4BAAkB;IAClB,qBAAqB,EAArB,+BAAqB;IACrB,wBAAwB,EAAxB,kCAAwB;IACxB,wBAAwB,EAAxB,kCAAwB;IACxB,2BAA2B,EAA3B,qCAA2B;IAC3B,yBAAyB,EAAzB,mCAAyB;IACzB,0BAA0B,EAA1B,oCAA0B;IAC1B,0BAA0B,EAA1B,oCAA0B;IAC1B,6BAA6B,EAA7B,uCAA6B;IAC7B,2BAA2B,EAA3B,qCAA2B;IAC3B,gBAAgB,EAAhB,sBAAgB;IAChB,eAAe,EAAf,qBAAe;IACf,iBAAiB,EAAjB,uBAAiB;IACjB,kBAAkB,EAAlB,wBAAkB;IAClB,kBAAkB,EAAlB,0BAAkB;IAClB,kBAAkB,EAAlB,0BAAkB;CACnB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Response } from '../../response';
|
|
2
|
+
export declare function browser_state_save(driver: any, params: {
|
|
3
|
+
filename?: string;
|
|
4
|
+
}, response: Response): Promise<void>;
|
|
5
|
+
export declare function browser_state_load(driver: any, params: {
|
|
6
|
+
filename?: string;
|
|
7
|
+
}, response: Response): Promise<void>;
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.browser_state_save = browser_state_save;
|
|
37
|
+
exports.browser_state_load = browser_state_load;
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
const shared_1 = require("./shared");
|
|
41
|
+
async function browser_state_save(driver, params, response) {
|
|
42
|
+
// 1. Collect cookies via the manage() API (httpOnly cookies are invisible to JS).
|
|
43
|
+
const cookies = await driver.manage().getCookies();
|
|
44
|
+
// 2. Collect localStorage.
|
|
45
|
+
const lsScript = 'return (() => { const o = {}; for (let i = 0; i < localStorage.length; i++) { const k = localStorage.key(i); o[k] = localStorage.getItem(k); } return o; })();';
|
|
46
|
+
const localStorageData = await driver.executeScript(lsScript);
|
|
47
|
+
// 3. Collect sessionStorage.
|
|
48
|
+
const ssScript = 'return (() => { const o = {}; for (let i = 0; i < sessionStorage.length; i++) { const k = sessionStorage.key(i); o[k] = sessionStorage.getItem(k); } return o; })();';
|
|
49
|
+
const sessionStorageData = await driver.executeScript(ssScript);
|
|
50
|
+
// 4. Capture the current URL so load() can navigate here first (cookies require
|
|
51
|
+
// the driver to be on a matching domain).
|
|
52
|
+
const url = await driver.getCurrentUrl();
|
|
53
|
+
// 5. Assemble the state object.
|
|
54
|
+
const state = {
|
|
55
|
+
url,
|
|
56
|
+
cookies,
|
|
57
|
+
localStorage: localStorageData || {},
|
|
58
|
+
sessionStorage: sessionStorageData || {},
|
|
59
|
+
savedAt: new Date().toISOString(),
|
|
60
|
+
};
|
|
61
|
+
// 6. Write to .se-cli/<filename> (same I/O pattern as screenshot.ts).
|
|
62
|
+
const outDir = path.join(process.cwd(), '.se-cli');
|
|
63
|
+
fs.mkdirSync(outDir, { recursive: true });
|
|
64
|
+
const filename = params.filename ? (0, shared_1.safeFilename)(params.filename) : `state-${Date.now()}.json`;
|
|
65
|
+
const file = path.join(outDir, filename);
|
|
66
|
+
fs.writeFileSync(file, JSON.stringify(state, null, 2));
|
|
67
|
+
response.addCode(`const cookies = await driver.manage().getCookies();\nconst localStorageData = await driver.executeScript('return (() => { const o = {}; for (let i = 0; i < localStorage.length; i++) { const k = localStorage.key(i); o[k] = localStorage.getItem(k); } return o; })();');\nconst sessionStorageData = await driver.executeScript('return (() => { const o = {}; for (let i = 0; i < sessionStorage.length; i++) { const k = sessionStorage.key(i); o[k] = sessionStorage.getItem(k); } return o; })();');\nconst url = await driver.getCurrentUrl();\nfs.writeFileSync('${filename}', JSON.stringify({ url, cookies, localStorage: localStorageData, sessionStorage: sessionStorageData, savedAt: new Date().toISOString() }, null, 2));`);
|
|
68
|
+
response.addResult(`[State](.se-cli/${filename}) (${cookies.length} cookies, ${Object.keys(state.localStorage).length} localStorage items, ${Object.keys(state.sessionStorage).length} sessionStorage items)`);
|
|
69
|
+
}
|
|
70
|
+
async function browser_state_load(driver, params, response) {
|
|
71
|
+
// 1. Resolve the file path.
|
|
72
|
+
const outDir = path.join(process.cwd(), '.se-cli');
|
|
73
|
+
let filename;
|
|
74
|
+
if (params.filename) {
|
|
75
|
+
filename = (0, shared_1.safeFilename)(params.filename);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
// Pick the most recent state-*.json file when no filename is given.
|
|
79
|
+
if (!fs.existsSync(outDir)) {
|
|
80
|
+
response.addError('No state file specified and .se-cli/ directory does not exist');
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const files = fs.readdirSync(outDir)
|
|
84
|
+
.filter(f => f.startsWith('state-') && f.endsWith('.json'))
|
|
85
|
+
.sort()
|
|
86
|
+
.reverse();
|
|
87
|
+
if (files.length === 0) {
|
|
88
|
+
response.addError('No state file specified and no state-*.json files found in .se-cli/');
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
filename = files[0];
|
|
92
|
+
}
|
|
93
|
+
const file = path.join(outDir, filename);
|
|
94
|
+
if (!fs.existsSync(file)) {
|
|
95
|
+
response.addError(`State file not found: ${file}`);
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
// 2. Read and parse the JSON.
|
|
99
|
+
const raw = fs.readFileSync(file, 'utf8');
|
|
100
|
+
let state;
|
|
101
|
+
try {
|
|
102
|
+
state = JSON.parse(raw);
|
|
103
|
+
}
|
|
104
|
+
catch (e) {
|
|
105
|
+
response.addError(`Failed to parse state file: ${e.message}`);
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
// 3. Navigate to the saved URL first — cookies can only be set when the
|
|
109
|
+
// driver is on a matching domain.
|
|
110
|
+
await driver.get(state.url);
|
|
111
|
+
// 4. Clear existing cookies before restoring.
|
|
112
|
+
await driver.manage().deleteAllCookies();
|
|
113
|
+
// 5. Restore cookies.
|
|
114
|
+
// Firefox enforces that SameSite=None cookies must also be Secure.
|
|
115
|
+
// Sanitize cookies before passing to addCookie to avoid driver errors.
|
|
116
|
+
for (const cookie of state.cookies) {
|
|
117
|
+
const sanitized = { ...cookie };
|
|
118
|
+
if (sanitized.sameSite === 'None' && !sanitized.secure) {
|
|
119
|
+
sanitized.secure = true;
|
|
120
|
+
}
|
|
121
|
+
await driver.manage().addCookie(sanitized);
|
|
122
|
+
}
|
|
123
|
+
// 6. Restore localStorage.
|
|
124
|
+
const lsKeys = Object.keys(state.localStorage);
|
|
125
|
+
for (const k of lsKeys) {
|
|
126
|
+
await driver.executeScript('localStorage.setItem(arguments[0], arguments[1]);', k, state.localStorage[k]);
|
|
127
|
+
}
|
|
128
|
+
// 7. Restore sessionStorage.
|
|
129
|
+
const ssKeys = Object.keys(state.sessionStorage);
|
|
130
|
+
for (const k of ssKeys) {
|
|
131
|
+
await driver.executeScript('sessionStorage.setItem(arguments[0], arguments[1]);', k, state.sessionStorage[k]);
|
|
132
|
+
}
|
|
133
|
+
response.addCode(`const state = JSON.parse(fs.readFileSync('${filename}', 'utf8'));\nawait driver.get(state.url);\nawait driver.manage().deleteAllCookies();\nfor (const cookie of state.cookies) { await driver.manage().addCookie(cookie); }\nfor (const k of Object.keys(state.localStorage)) { await driver.executeScript('localStorage.setItem(arguments[0], arguments[1]);', k, state.localStorage[k]); }\nfor (const k of Object.keys(state.sessionStorage)) { await driver.executeScript('sessionStorage.setItem(arguments[0], arguments[1]);', k, state.sessionStorage[k]); }`);
|
|
134
|
+
response.addResult(`loaded state from ${filename} (${state.cookies.length} cookies, ${lsKeys.length} localStorage items, ${ssKeys.length} sessionStorage items)`);
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/daemon/tools/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Response } from '../../response';
|
|
2
|
+
export declare function browser_cookie_list(driver: any, _params: any, response: Response): Promise<void>;
|
|
3
|
+
export declare function browser_cookie_get(driver: any, params: {
|
|
4
|
+
name: string;
|
|
5
|
+
}, response: Response): Promise<void>;
|
|
6
|
+
export declare function browser_cookie_set(driver: any, params: {
|
|
7
|
+
name: string;
|
|
8
|
+
value: string;
|
|
9
|
+
domain?: string;
|
|
10
|
+
path?: string;
|
|
11
|
+
httpOnly?: boolean;
|
|
12
|
+
secure?: boolean;
|
|
13
|
+
}, response: Response): Promise<void>;
|
|
14
|
+
export declare function browser_cookie_delete(driver: any, params: {
|
|
15
|
+
name?: string;
|
|
16
|
+
}, response: Response): Promise<void>;
|
|
17
|
+
export declare function browser_localstorage_get(driver: any, params: {
|
|
18
|
+
key: string;
|
|
19
|
+
}, response: Response): Promise<void>;
|
|
20
|
+
export declare function browser_localstorage_set(driver: any, params: {
|
|
21
|
+
key: string;
|
|
22
|
+
value: string;
|
|
23
|
+
}, response: Response): Promise<void>;
|
|
24
|
+
export declare function browser_localstorage_delete(driver: any, params: {
|
|
25
|
+
key?: string;
|
|
26
|
+
}, response: Response): Promise<void>;
|
|
27
|
+
export declare function browser_localstorage_list(driver: any, _params: any, response: Response): Promise<void>;
|
|
28
|
+
export declare function browser_sessionstorage_get(driver: any, params: {
|
|
29
|
+
key: string;
|
|
30
|
+
}, response: Response): Promise<void>;
|
|
31
|
+
export declare function browser_sessionstorage_set(driver: any, params: {
|
|
32
|
+
key: string;
|
|
33
|
+
value: string;
|
|
34
|
+
}, response: Response): Promise<void>;
|
|
35
|
+
export declare function browser_sessionstorage_delete(driver: any, params: {
|
|
36
|
+
key?: string;
|
|
37
|
+
}, response: Response): Promise<void>;
|
|
38
|
+
export declare function browser_sessionstorage_list(driver: any, _params: any, response: Response): Promise<void>;
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.browser_cookie_list = browser_cookie_list;
|
|
4
|
+
exports.browser_cookie_get = browser_cookie_get;
|
|
5
|
+
exports.browser_cookie_set = browser_cookie_set;
|
|
6
|
+
exports.browser_cookie_delete = browser_cookie_delete;
|
|
7
|
+
exports.browser_localstorage_get = browser_localstorage_get;
|
|
8
|
+
exports.browser_localstorage_set = browser_localstorage_set;
|
|
9
|
+
exports.browser_localstorage_delete = browser_localstorage_delete;
|
|
10
|
+
exports.browser_localstorage_list = browser_localstorage_list;
|
|
11
|
+
exports.browser_sessionstorage_get = browser_sessionstorage_get;
|
|
12
|
+
exports.browser_sessionstorage_set = browser_sessionstorage_set;
|
|
13
|
+
exports.browser_sessionstorage_delete = browser_sessionstorage_delete;
|
|
14
|
+
exports.browser_sessionstorage_list = browser_sessionstorage_list;
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
// Cookie management
|
|
17
|
+
//
|
|
18
|
+
// Uses driver.manage() API (not executeScript) because httpOnly cookies are
|
|
19
|
+
// not readable via document.cookie in JavaScript.
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
async function browser_cookie_list(driver, _params, response) {
|
|
22
|
+
const cookies = await driver.manage().getCookies();
|
|
23
|
+
response.addCode(`const cookies = await driver.manage().getCookies();`);
|
|
24
|
+
response.addResult(JSON.stringify(cookies, null, 2));
|
|
25
|
+
}
|
|
26
|
+
async function browser_cookie_get(driver, params, response) {
|
|
27
|
+
const cookie = await driver.manage().getCookie(params.name);
|
|
28
|
+
response.addCode(`const cookie = await driver.manage().getCookie('${params.name}');`);
|
|
29
|
+
response.addResult(JSON.stringify(cookie, null, 2));
|
|
30
|
+
}
|
|
31
|
+
async function browser_cookie_set(driver, params, response) {
|
|
32
|
+
const cookie = { name: params.name, value: params.value };
|
|
33
|
+
if (params.domain !== undefined)
|
|
34
|
+
cookie.domain = params.domain;
|
|
35
|
+
if (params.path !== undefined)
|
|
36
|
+
cookie.path = params.path;
|
|
37
|
+
if (params.httpOnly !== undefined)
|
|
38
|
+
cookie.httpOnly = params.httpOnly;
|
|
39
|
+
if (params.secure !== undefined)
|
|
40
|
+
cookie.secure = params.secure;
|
|
41
|
+
await driver.manage().addCookie(cookie);
|
|
42
|
+
const parts = [`name: '${params.name}'`, `value: '${params.value}'`];
|
|
43
|
+
if (params.domain !== undefined)
|
|
44
|
+
parts.push(`domain: '${params.domain}'`);
|
|
45
|
+
if (params.path !== undefined)
|
|
46
|
+
parts.push(`path: '${params.path}'`);
|
|
47
|
+
if (params.httpOnly !== undefined)
|
|
48
|
+
parts.push(`httpOnly: ${params.httpOnly}`);
|
|
49
|
+
if (params.secure !== undefined)
|
|
50
|
+
parts.push(`secure: ${params.secure}`);
|
|
51
|
+
response.addCode(`await driver.manage().addCookie({ ${parts.join(', ')} });`);
|
|
52
|
+
response.addResult(`cookie set: ${params.name}=${params.value}`);
|
|
53
|
+
}
|
|
54
|
+
async function browser_cookie_delete(driver, params, response) {
|
|
55
|
+
if (params.name) {
|
|
56
|
+
await driver.manage().deleteCookie(params.name);
|
|
57
|
+
response.addCode(`await driver.manage().deleteCookie('${params.name}');`);
|
|
58
|
+
response.addResult(`deleted cookie: ${params.name}`);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
await driver.manage().deleteAllCookies();
|
|
62
|
+
response.addCode(`await driver.manage().deleteAllCookies();`);
|
|
63
|
+
response.addResult('deleted all cookies');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// ---------------------------------------------------------------------------
|
|
67
|
+
// localStorage
|
|
68
|
+
// ---------------------------------------------------------------------------
|
|
69
|
+
async function browser_localstorage_get(driver, params, response) {
|
|
70
|
+
const value = await driver.executeScript('return localStorage.getItem(arguments[0]);', params.key);
|
|
71
|
+
response.addCode(`const value = await driver.executeScript('return localStorage.getItem(arguments[0]);', '${params.key}');`);
|
|
72
|
+
response.addResult(value === null ? 'null' : String(value));
|
|
73
|
+
}
|
|
74
|
+
async function browser_localstorage_set(driver, params, response) {
|
|
75
|
+
await driver.executeScript('localStorage.setItem(arguments[0], arguments[1]);', params.key, params.value);
|
|
76
|
+
response.addCode(`await driver.executeScript('localStorage.setItem(arguments[0], arguments[1]);', '${params.key}', '${params.value}');`);
|
|
77
|
+
response.addResult(`localStorage set: ${params.key}=${params.value}`);
|
|
78
|
+
}
|
|
79
|
+
async function browser_localstorage_delete(driver, params, response) {
|
|
80
|
+
if (params.key) {
|
|
81
|
+
await driver.executeScript('localStorage.removeItem(arguments[0]);', params.key);
|
|
82
|
+
response.addCode(`await driver.executeScript('localStorage.removeItem(arguments[0]);', '${params.key}');`);
|
|
83
|
+
response.addResult(`deleted localStorage key: ${params.key}`);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
await driver.executeScript('localStorage.clear();');
|
|
87
|
+
response.addCode(`await driver.executeScript('localStorage.clear();');`);
|
|
88
|
+
response.addResult('cleared all localStorage');
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
async function browser_localstorage_list(driver, _params, response) {
|
|
92
|
+
const script = 'return (() => { const o = {}; for (let i = 0; i < localStorage.length; i++) { const k = localStorage.key(i); o[k] = localStorage.getItem(k); } return o; })();';
|
|
93
|
+
const items = await driver.executeScript(script);
|
|
94
|
+
response.addCode(`const items = await driver.executeScript('return (() => { const o = {}; for (let i = 0; i < localStorage.length; i++) { const k = localStorage.key(i); o[k] = localStorage.getItem(k); } return o; })();');`);
|
|
95
|
+
response.addResult(JSON.stringify(items, null, 2));
|
|
96
|
+
}
|
|
97
|
+
// ---------------------------------------------------------------------------
|
|
98
|
+
// sessionStorage — same API as localStorage
|
|
99
|
+
// ---------------------------------------------------------------------------
|
|
100
|
+
async function browser_sessionstorage_get(driver, params, response) {
|
|
101
|
+
const value = await driver.executeScript('return sessionStorage.getItem(arguments[0]);', params.key);
|
|
102
|
+
response.addCode(`const value = await driver.executeScript('return sessionStorage.getItem(arguments[0]);', '${params.key}');`);
|
|
103
|
+
response.addResult(value === null ? 'null' : String(value));
|
|
104
|
+
}
|
|
105
|
+
async function browser_sessionstorage_set(driver, params, response) {
|
|
106
|
+
await driver.executeScript('sessionStorage.setItem(arguments[0], arguments[1]);', params.key, params.value);
|
|
107
|
+
response.addCode(`await driver.executeScript('sessionStorage.setItem(arguments[0], arguments[1]);', '${params.key}', '${params.value}');`);
|
|
108
|
+
response.addResult(`sessionStorage set: ${params.key}=${params.value}`);
|
|
109
|
+
}
|
|
110
|
+
async function browser_sessionstorage_delete(driver, params, response) {
|
|
111
|
+
if (params.key) {
|
|
112
|
+
await driver.executeScript('sessionStorage.removeItem(arguments[0]);', params.key);
|
|
113
|
+
response.addCode(`await driver.executeScript('sessionStorage.removeItem(arguments[0]);', '${params.key}');`);
|
|
114
|
+
response.addResult(`deleted sessionStorage key: ${params.key}`);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
await driver.executeScript('sessionStorage.clear();');
|
|
118
|
+
response.addCode(`await driver.executeScript('sessionStorage.clear();');`);
|
|
119
|
+
response.addResult('cleared all sessionStorage');
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
async function browser_sessionstorage_list(driver, _params, response) {
|
|
123
|
+
const script = 'return (() => { const o = {}; for (let i = 0; i < sessionStorage.length; i++) { const k = sessionStorage.key(i); o[k] = sessionStorage.getItem(k); } return o; })();';
|
|
124
|
+
const items = await driver.executeScript(script);
|
|
125
|
+
response.addCode(`const items = await driver.executeScript('return (() => { const o = {}; for (let i = 0; i < sessionStorage.length; i++) { const k = sessionStorage.key(i); o[k] = sessionStorage.getItem(k); } return o; })();');`);
|
|
126
|
+
response.addResult(JSON.stringify(items, null, 2));
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/daemon/tools/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Response } from '../../response';
|
|
2
|
+
export declare function browser_tab_list(driver: any, _params: any, response: Response): Promise<void>;
|
|
3
|
+
export declare function browser_tab_new(driver: any, params: {
|
|
4
|
+
url?: string;
|
|
5
|
+
}, response: Response): Promise<void>;
|
|
6
|
+
export declare function browser_tab_close(driver: any, _params: any, response: Response): Promise<void>;
|
|
7
|
+
export declare function browser_tab_select(driver: any, params: {
|
|
8
|
+
index: number;
|
|
9
|
+
}, response: Response): Promise<void>;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.browser_tab_list = browser_tab_list;
|
|
4
|
+
exports.browser_tab_new = browser_tab_new;
|
|
5
|
+
exports.browser_tab_close = browser_tab_close;
|
|
6
|
+
exports.browser_tab_select = browser_tab_select;
|
|
7
|
+
async function browser_tab_list(driver, _params, response) {
|
|
8
|
+
const originalHandle = await driver.getWindowHandle();
|
|
9
|
+
const handles = await driver.getAllWindowHandles();
|
|
10
|
+
const tabs = [];
|
|
11
|
+
for (const handle of handles) {
|
|
12
|
+
await driver.switchTo().window(handle);
|
|
13
|
+
const title = await driver.getTitle();
|
|
14
|
+
const url = await driver.getCurrentUrl();
|
|
15
|
+
tabs.push({ handle, title, url });
|
|
16
|
+
}
|
|
17
|
+
// Switch back to the original handle so the caller's context is preserved.
|
|
18
|
+
await driver.switchTo().window(originalHandle);
|
|
19
|
+
response.addCode(`const handles = await driver.getAllWindowHandles();`);
|
|
20
|
+
response.addResult(JSON.stringify(tabs, null, 2));
|
|
21
|
+
}
|
|
22
|
+
async function browser_tab_new(driver, params, response) {
|
|
23
|
+
await driver.switchTo().newWindow('tab');
|
|
24
|
+
if (params.url) {
|
|
25
|
+
await driver.get(params.url);
|
|
26
|
+
response.addCode(`await driver.switchTo().newWindow('tab');\nawait driver.get('${params.url}');`);
|
|
27
|
+
response.addResult(`opened new tab: ${params.url}`);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
response.addCode(`await driver.switchTo().newWindow('tab');`);
|
|
31
|
+
response.addResult('opened new tab');
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
async function browser_tab_close(driver, _params, response) {
|
|
35
|
+
await driver.close();
|
|
36
|
+
const handles = await driver.getAllWindowHandles();
|
|
37
|
+
if (handles.length === 0) {
|
|
38
|
+
response.addCode(`await driver.close();`);
|
|
39
|
+
response.addResult('closed tab; no remaining tabs');
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
// Switch to the first remaining handle so the driver has a valid window.
|
|
43
|
+
await driver.switchTo().window(handles[0]);
|
|
44
|
+
response.addCode(`await driver.close();\nawait driver.switchTo().window(handles[0]);`);
|
|
45
|
+
response.addResult('closed tab');
|
|
46
|
+
}
|
|
47
|
+
async function browser_tab_select(driver, params, response) {
|
|
48
|
+
const handles = await driver.getAllWindowHandles();
|
|
49
|
+
const index = params.index;
|
|
50
|
+
if (index < 0 || index >= handles.length) {
|
|
51
|
+
response.addError(`tab index ${index} out of range (0..${handles.length - 1})`);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
await driver.switchTo().window(handles[index]);
|
|
55
|
+
response.addCode(`const handles = await driver.getAllWindowHandles();\nawait driver.switchTo().window(handles[${index}]);`);
|
|
56
|
+
response.addResult(`switched to tab ${index}`);
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=tab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab.js","sourceRoot":"","sources":["../../../src/daemon/tools/tab.ts"],"names":[],"mappings":";;AAEA,4CAiBC;AAED,0CAcC;AAED,8CAcC;AAED,gDAgBC;AAnEM,KAAK,UAAU,gBAAgB,CAAC,MAAW,EAAE,OAAY,EAAE,QAAkB;IAClF,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAEnD,MAAM,IAAI,GAAqD,EAAE,CAAC;IAClE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,2EAA2E;IAC3E,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAE/C,QAAQ,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC;IACxE,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAEM,KAAK,UAAU,eAAe,CACnC,MAAW,EACX,MAAwB,EACxB,QAAkB;IAElB,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,QAAQ,CAAC,OAAO,CAAC,gEAAgE,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;QAClG,QAAQ,CAAC,SAAS,CAAC,mBAAmB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;QAC9D,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,MAAW,EAAE,OAAY,EAAE,QAAkB;IACnF,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IAErB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,mBAAmB,EAAE,CAAC;IACnD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,QAAQ,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC1C,QAAQ,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;QACpD,OAAO;IACT,CAAC;IAED,yEAAyE;IACzE,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,QAAQ,CAAC,OAAO,CAAC,oEAAoE,CAAC,CAAC;IACvF,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AACnC,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,MAAW,EACX,MAAyB,EACzB,QAAkB;IAElB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,mBAAmB,EAAE,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAE3B,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACzC,QAAQ,CAAC,QAAQ,CAAC,aAAa,KAAK,qBAAqB,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;QAChF,OAAO;IACT,CAAC;IAED,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,OAAO,CAAC,+FAA+F,KAAK,KAAK,CAAC,CAAC;IAC5H,QAAQ,CAAC,SAAS,CAAC,mBAAmB,KAAK,EAAE,CAAC,CAAC;AACjD,CAAC"}
|
package/dist/program.js
CHANGED
|
@@ -45,7 +45,7 @@ const fs = __importStar(require("fs"));
|
|
|
45
45
|
async function main(argv) {
|
|
46
46
|
const opts = {
|
|
47
47
|
boolean: ['headed', 'raw', 'json', 'persistent', 'help'],
|
|
48
|
-
string: ['browser', 'filename', 'depth', 's', 'session', 'cdp'],
|
|
48
|
+
string: ['browser', 'filename', 'depth', 's', 'session', 'cdp', 'profile'],
|
|
49
49
|
alias: { s: 'session' },
|
|
50
50
|
};
|
|
51
51
|
const args = (0, minimist_1.parseArgs)(argv, opts);
|
|
@@ -67,6 +67,14 @@ async function main(argv) {
|
|
|
67
67
|
openOpts.headed = true;
|
|
68
68
|
if (args.cdp)
|
|
69
69
|
openOpts.cdpEndpoint = args.cdp;
|
|
70
|
+
if (args.profile)
|
|
71
|
+
openOpts.profilePath = args.profile;
|
|
72
|
+
if (args.persistent) {
|
|
73
|
+
openOpts.persistent = true;
|
|
74
|
+
// Auto-assign profile path
|
|
75
|
+
const wsHash = (0, config_1.workspaceHash)(workspaceDir);
|
|
76
|
+
openOpts.profilePath = path.join((0, config_1.baseDaemonDir)(), 'profiles', wsHash, sessionName);
|
|
77
|
+
}
|
|
70
78
|
await session.startDaemon(openOpts);
|
|
71
79
|
if (url) {
|
|
72
80
|
const resp = await session.run(['goto', url], cwd, { raw: args.raw, json: args.json });
|
|
@@ -74,6 +82,28 @@ async function main(argv) {
|
|
|
74
82
|
}
|
|
75
83
|
return;
|
|
76
84
|
}
|
|
85
|
+
if (cmd === 'install') {
|
|
86
|
+
const target = args._[1] || 'claude'; // 默认 claude
|
|
87
|
+
const targetMap = {
|
|
88
|
+
'claude': path.join('.claude', 'skills', 'se-cli'),
|
|
89
|
+
'cursor': path.join('.cursor', 'skills', 'se-cli'),
|
|
90
|
+
'generic': path.join('.agents', 'skills', 'se-cli'),
|
|
91
|
+
};
|
|
92
|
+
const skillDir = targetMap[target];
|
|
93
|
+
if (!skillDir) {
|
|
94
|
+
console.error(`Unknown target: ${target}. Supported: claude, cursor, generic`);
|
|
95
|
+
process.exit(1);
|
|
96
|
+
}
|
|
97
|
+
const skillSource = path.join(__dirname, '..', 'skill', 'SKILL.md');
|
|
98
|
+
if (!fs.existsSync(skillSource)) {
|
|
99
|
+
console.error('SKILL.md not found in package. This may be a development installation.');
|
|
100
|
+
process.exit(1);
|
|
101
|
+
}
|
|
102
|
+
fs.mkdirSync(skillDir, { recursive: true });
|
|
103
|
+
fs.copyFileSync(skillSource, path.join(skillDir, 'SKILL.md'));
|
|
104
|
+
console.log(`Skill installed to ${skillDir}`);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
77
107
|
if (cmd === 'close') {
|
|
78
108
|
await session.stop();
|
|
79
109
|
return;
|
|
@@ -129,7 +159,7 @@ async function main(argv) {
|
|
|
129
159
|
// Strip CLI-level flags (--raw, --json, --headed, --browser, --cdp, -s, --session,
|
|
130
160
|
// --persistent, --help) so the daemon only sees the command and its tool-specific
|
|
131
161
|
// flags (e.g. --filename, --depth, --regex, --submit).
|
|
132
|
-
const cliFlags = new Set(['raw', 'json', 'headed', 'persistent', 'help', 'browser', 'cdp', 's', 'session']);
|
|
162
|
+
const cliFlags = new Set(['raw', 'json', 'headed', 'persistent', 'help', 'browser', 'cdp', 's', 'session', 'profile']);
|
|
133
163
|
const forwardArgs = argv.filter(arg => {
|
|
134
164
|
const m = arg.match(/^-{1,2}([\w-]+)(=.*)?$/);
|
|
135
165
|
if (!m)
|
|
@@ -166,7 +196,8 @@ function printHelp() {
|
|
|
166
196
|
console.log(`se-cli - token-efficient Selenium browser automation
|
|
167
197
|
|
|
168
198
|
Usage:
|
|
169
|
-
se-cli open [url] [--browser=chrome|edge|firefox] [--headed] [--cdp=url]
|
|
199
|
+
se-cli open [url] [--browser=chrome|edge|firefox] [--headed] [--cdp=url] [--profile=path] [--persistent]
|
|
200
|
+
se-cli install [claude|cursor|generic]
|
|
170
201
|
se-cli close
|
|
171
202
|
se-cli list
|
|
172
203
|
se-cli close-all
|
|
@@ -187,6 +218,11 @@ Commands:
|
|
|
187
218
|
screenshot [ref] [--filename=f]
|
|
188
219
|
eval "<js>" [ref]
|
|
189
220
|
title / url
|
|
221
|
+
cookie-list / cookie-get <name> / cookie-set <name> <val> / cookie-delete [name]
|
|
222
|
+
localstorage-get <key> / localstorage-set <key> <val> / localstorage-delete [key] / localstorage-list
|
|
223
|
+
sessionstorage-get <key> / sessionstorage-set <key> <val> / sessionstorage-delete [key] / sessionstorage-list
|
|
224
|
+
tab-list / tab-new [url] / tab-close / tab-select <index>
|
|
225
|
+
state-save [--filename=f] / state-load [--filename=f]
|
|
190
226
|
|
|
191
227
|
Flags:
|
|
192
228
|
--raw output only the result value
|
|
@@ -195,6 +231,8 @@ Flags:
|
|
|
195
231
|
--browser=chrome browser (default chrome)
|
|
196
232
|
--headed show browser window (default headless)
|
|
197
233
|
--cdp=<url> attach to running Chrome via CDP
|
|
234
|
+
--profile=<path> use a persistent browser profile directory
|
|
235
|
+
--persistent keep browser profile across sessions (auto-assigns profile path)
|
|
198
236
|
`);
|
|
199
237
|
}
|
|
200
238
|
//# sourceMappingURL=program.js.map
|
package/dist/program.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,oBAoIC;AAED,4CASC;AAxJD,yCAAuC;AACvC,uCAAoC;AACpC,yCAAsC;AACtC,qCAAwD;AACxD,qCAAkC;AAElC,2CAA6B;AAC7B,uCAAyB;AAElB,KAAK,UAAU,IAAI,CAAC,IAAc;IACvC,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC;QACxD,MAAM,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC;QAC1E,KAAK,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE;KACxB,CAAC;IACF,MAAM,IAAI,GAAG,IAAA,oBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,SAAS,CAAC;IAC5E,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAEvD,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtB,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,QAAQ,GAAQ,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO;YAAE,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;QACtD,IAAI,IAAI,CAAC,MAAM;YAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;QACxC,IAAI,IAAI,CAAC,GAAG;YAAE,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC;QAC9C,IAAI,IAAI,CAAC,OAAO;YAAE,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;QACtD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC;YAC3B,2BAA2B;YAC3B,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,YAAY,CAAC,CAAC;YAC3C,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAA,sBAAa,GAAE,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACvF,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC;QACf,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,YAAY;QAClD,MAAM,SAAS,GAA2B;YACxC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;YAClD,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;YAClD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;SACpD,CAAC;QACF,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,sCAAsC,CAAC,CAAC;YAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QACpE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;YACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACpB,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,IAAA,sBAAa,GAAE,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC/C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,MAAM,IAAI,iBAAO,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;YACnE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,KAAK,CAAC,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAChG,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,IAAA,sBAAa,GAAE,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC/C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,iBAAO,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC;gBAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACrC,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,IAAA,sBAAa,GAAE,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC/C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,6CAA6C;YAC7C,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;gBACnB,IAAI,CAAC;oBAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACpD,CAAC;YACD,wDAAwD;YACxD,MAAM,IAAI,GAAG,IAAI,iBAAO,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC;gBAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YACnC,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,OAAO;IACT,CAAC;IAED,qCAAqC;IACrC,mFAAmF;IACnF,kFAAkF;IAClF,uDAAuD;IACvD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACvH,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;QACpC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC,wBAAwB;QAC7C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IACH,IAAI,IAAmB,CAAC;IACxB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,qEAAqE;QACrE,MAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,IAAA,sBAAa,GAAE,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,YAAY,CAAC,CAAC;QAC3C,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,mCAAmC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,mDAAmD,CAAC,CAAC;QAC5H,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAgB,gBAAgB,CAAC,GAAW;IAC1C,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCb,CAAC,CAAC;AACH,CAAC"}
|
package/dist/session.d.ts
CHANGED
package/dist/session.js
CHANGED
|
@@ -91,6 +91,10 @@ class Session {
|
|
|
91
91
|
args.push('--headed');
|
|
92
92
|
if (opts.cdpEndpoint)
|
|
93
93
|
args.push(`--cdp=${opts.cdpEndpoint}`);
|
|
94
|
+
if (opts.profilePath)
|
|
95
|
+
args.push(`--profile=${opts.profilePath}`);
|
|
96
|
+
if (opts.persistent)
|
|
97
|
+
args.push('--persistent');
|
|
94
98
|
const child = (0, child_process_1.spawn)(process.execPath, args, {
|
|
95
99
|
detached: true,
|
|
96
100
|
stdio: ['ignore', 'pipe', 'pipe'],
|
package/dist/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA2B;AAC3B,2CAA6B;AAC7B,iDAAoD;AACpD,yCAAqD;AACrD,qCAAwE;AAGxE,MAAa,OAAO;IAMR;IACA;IANF,UAAU,CAAS;IACnB,MAAM,CAAS;IACf,QAAQ,CAAW;IAE3B,YACU,YAAoB,EACpB,cAAsB,SAAS;QAD/B,iBAAY,GAAZ,YAAY,CAAQ;QACpB,gBAAW,GAAX,WAAW,CAAoB;QAEvC,IAAI,CAAC,MAAM,GAAG,IAAA,sBAAa,EAAC,YAAY,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,IAAA,uBAAc,EAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,IAAA,sBAAa,GAAE,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC1E,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;gBACxB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@browsers-cli/se-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Selenium CLI with token-efficient browser automation for AI agents",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://se-cli.github.io/se-cli/",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
},
|
|
31
31
|
"files": [
|
|
32
32
|
"dist/",
|
|
33
|
+
"skill/",
|
|
33
34
|
"README.md",
|
|
34
35
|
"LICENSE"
|
|
35
36
|
],
|
package/skill/SKILL.md
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: se-cli
|
|
3
|
+
description: Automate browser interactions and test web pages using Selenium.
|
|
4
|
+
allowed-tools: Bash(se-cli:*) Bash(npx:*)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Browser Automation with se-cli
|
|
8
|
+
|
|
9
|
+
## Quick start
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
se-cli open
|
|
13
|
+
se-cli goto https://example.com
|
|
14
|
+
se-cli snapshot
|
|
15
|
+
se-cli click e3
|
|
16
|
+
se-cli close
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Commands
|
|
20
|
+
|
|
21
|
+
### Core
|
|
22
|
+
```bash
|
|
23
|
+
se-cli open [url]
|
|
24
|
+
se-cli goto <url>
|
|
25
|
+
se-cli close
|
|
26
|
+
se-cli snapshot [ref] [--depth=N]
|
|
27
|
+
se-cli find <text>
|
|
28
|
+
se-cli find --regex <pattern>
|
|
29
|
+
se-cli click <ref|selector>
|
|
30
|
+
se-cli fill <ref|selector> <text>
|
|
31
|
+
se-cli type <text>
|
|
32
|
+
se-cli press <key>
|
|
33
|
+
se-cli select <ref> <value>
|
|
34
|
+
se-cli check <ref>
|
|
35
|
+
se-cli uncheck <ref>
|
|
36
|
+
se-cli screenshot [ref] [--filename=f]
|
|
37
|
+
se-cli eval "<js>" [ref]
|
|
38
|
+
se-cli title
|
|
39
|
+
se-cli url
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Navigation
|
|
43
|
+
```bash
|
|
44
|
+
se-cli go-back
|
|
45
|
+
se-cli go-forward
|
|
46
|
+
se-cli reload
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Storage
|
|
50
|
+
```bash
|
|
51
|
+
se-cli cookie-list
|
|
52
|
+
se-cli cookie-get <name>
|
|
53
|
+
se-cli cookie-set <name> <value>
|
|
54
|
+
se-cli cookie-delete [name]
|
|
55
|
+
se-cli localstorage-get <key>
|
|
56
|
+
se-cli localstorage-set <key> <value>
|
|
57
|
+
se-cli localstorage-delete [key]
|
|
58
|
+
se-cli localstorage-list
|
|
59
|
+
se-cli sessionstorage-get <key>
|
|
60
|
+
se-cli sessionstorage-set <key> <value>
|
|
61
|
+
se-cli sessionstorage-delete [key]
|
|
62
|
+
se-cli sessionstorage-list
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Tabs
|
|
66
|
+
```bash
|
|
67
|
+
se-cli tab-list
|
|
68
|
+
se-cli tab-new [url]
|
|
69
|
+
se-cli tab-close
|
|
70
|
+
se-cli tab-select <index>
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### State
|
|
74
|
+
```bash
|
|
75
|
+
se-cli state-save [--filename=f.json]
|
|
76
|
+
se-cli state-load [--filename=f.json]
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Sessions
|
|
80
|
+
```bash
|
|
81
|
+
se-cli -s=<name> <cmd>
|
|
82
|
+
se-cli list
|
|
83
|
+
se-cli close-all
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Snapshots
|
|
87
|
+
|
|
88
|
+
After each command, se-cli provides an aria snapshot of the page.
|
|
89
|
+
Each interactive element has a `[ref=eN]` attribute. Use the ref to interact:
|
|
90
|
+
```bash
|
|
91
|
+
se-cli snapshot
|
|
92
|
+
# Output: - link "Home" [ref=e1]
|
|
93
|
+
se-cli click e1
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Refs are valid only until the page changes. Re-run `snapshot` after navigation or DOM updates.
|
|
97
|
+
|
|
98
|
+
## Example: Form submission
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
se-cli open https://example.com/login
|
|
102
|
+
se-cli snapshot
|
|
103
|
+
se-cli fill e1 "user@example.com"
|
|
104
|
+
se-cli fill e2 "password"
|
|
105
|
+
se-cli click e3
|
|
106
|
+
se-cli snapshot
|
|
107
|
+
se-cli close
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Example: Save and restore state
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
se-cli open https://example.com
|
|
114
|
+
se-cli cookie-set auth_token secret123
|
|
115
|
+
se-cli localstorage-set theme dark
|
|
116
|
+
se-cli state-save --filename=session.json
|
|
117
|
+
se-cli close
|
|
118
|
+
|
|
119
|
+
# Later: restore in a new session
|
|
120
|
+
se-cli open
|
|
121
|
+
se-cli state-load --filename=session.json
|
|
122
|
+
se-cli cookie-get auth_token
|
|
123
|
+
```
|