@browsers-cli/se-cli 0.1.1 → 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 +87 -2
- 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
|
@@ -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":"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"}
|
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":"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"}
|
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
|
+
```
|