camou 0.7.0 → 0.9.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 CHANGED
@@ -87,12 +87,12 @@ The skill teaches agents the recommended Camou workflow: `open -> snapshot -i ->
87
87
  ## Quick Start
88
88
 
89
89
  ```bash
90
- camou install
91
- camou open https://example.com
92
- camou snapshot -i
90
+ camou install # Install the default browser build
91
+ camou open https://example.com # Open the target page
92
+ camou snapshot -i # Capture interactive refs
93
93
  # @e1 a "Learn more"
94
- camou click @e1
95
- camou get title
94
+ camou click @e1 # Click the chosen ref
95
+ camou get title # Read the current page title
96
96
  ```
97
97
 
98
98
  What happens behind the scenes:
@@ -153,9 +153,9 @@ Example `.camou.json`:
153
153
  Then you can run commands like:
154
154
 
155
155
  ```bash
156
- camou open https://example.com
157
- camou snapshot -i
158
- camou click @e1
156
+ camou open https://example.com # Open the target page
157
+ camou snapshot -i # Capture interactive refs
158
+ camou click @e1 # Click the chosen ref
159
159
  ```
160
160
 
161
161
  and they automatically use the configured session, tab, browser version, headless mode, and presets unless you override them with flags.
@@ -222,11 +222,11 @@ Notes:
222
222
  For agents and automation loops, this is the happy path:
223
223
 
224
224
  ```bash
225
- camou open https://target.site
226
- camou snapshot -i --json
227
- camou click @e3
228
- camou fill @e5 "hello"
229
- camou snapshot -i --json
225
+ camou open https://target.site # Open the target page
226
+ camou snapshot -i --json # Capture JSON refs
227
+ camou click @e3 # Act on a chosen ref
228
+ camou fill @e5 "hello" # Fill the next field
229
+ camou snapshot -i --json # Refresh refs after changes
230
230
  ```
231
231
 
232
232
  Why this works well:
@@ -249,8 +249,8 @@ A session is a named browser workspace selected with `--session <name>`.
249
249
  Example:
250
250
 
251
251
  ```bash
252
- camou open https://github.com --session work
253
- camou open https://mail.google.com --session personal
252
+ camou open https://github.com --session work # Open the work session
253
+ camou open https://mail.google.com --session personal # Open a separate personal session
254
254
  ```
255
255
 
256
256
  ### Tab
@@ -264,8 +264,8 @@ A tab is a named page binding inside a session selected with `--tabname <name>`.
264
264
  Example:
265
265
 
266
266
  ```bash
267
- camou open https://reddit.com --session work --tabname reddit
268
- camou open https://news.ycombinator.com --session work --tabname hn
267
+ camou open https://reddit.com --session work --tabname reddit # First named tab
268
+ camou open https://news.ycombinator.com --session work --tabname hn # Second named tab
269
269
  ```
270
270
 
271
271
  ### Ref
@@ -288,9 +288,9 @@ Camou keeps an active Camoufox version, but you can also pick a version per comm
288
288
  ### Persistent login session
289
289
 
290
290
  ```bash
291
- camou open https://github.com/login --session work --tabname github
291
+ camou open https://github.com/login --session work --tabname github # Start a named session
292
292
  # log in once in the browser
293
- camou open https://github.com/settings/profile --session work --tabname github
293
+ camou open https://github.com/settings/profile --session work --tabname github # Reuse saved login
294
294
  ```
295
295
 
296
296
  Use the same `--session` name later and the login state is still there.
@@ -298,11 +298,11 @@ Use the same `--session` name later and the login state is still there.
298
298
  ### Multi-tab parallel-safe browsing
299
299
 
300
300
  ```bash
301
- camou open https://reddit.com --session research --tabname reddit
302
- camou open https://news.ycombinator.com --session research --tabname hn
301
+ camou open https://reddit.com --session research --tabname reddit # Shared session, first tab
302
+ camou open https://news.ycombinator.com --session research --tabname hn # Shared session, second tab
303
303
 
304
- camou snapshot -i --session research --tabname reddit
305
- camou snapshot -i --session research --tabname hn
304
+ camou snapshot -i --session research --tabname reddit # Inspect the reddit tab
305
+ camou snapshot -i --session research --tabname hn # Inspect the hn tab
306
306
  ```
307
307
 
308
308
  Both tabs share the same browser profile, but each tab has its own page and ref map.
@@ -310,86 +310,104 @@ Both tabs share the same browser profile, but each tab has its own page and ref
310
310
  ### Install and switch versions
311
311
 
312
312
  ```bash
313
- camou remote-versions
314
- camou install 135.0.1-beta.24
315
- camou install 135.0.1-beta.23
316
- camou versions
317
- camou use 135.0.1-beta.24
318
- camou doctor --json
313
+ camou remote-versions # Show compatible remote versions
314
+ camou install 135.0.1-beta.24 # Install one version
315
+ camou install 135.0.1-beta.23 # Install another version
316
+ camou versions # Show installed and active versions
317
+ camou use 135.0.1-beta.24 # Switch the default version
318
+ camou doctor --json # Check compatibility in JSON
319
319
  ```
320
320
 
321
321
  ### Use a specific browser version for one session
322
322
 
323
323
  ```bash
324
- camou open https://example.com --session canary --browser 135.0.1-beta.24
324
+ camou open https://example.com --session canary --browser 135.0.1-beta.24 # Pin one run
325
325
  ```
326
326
 
327
327
  ### JSON output for automation
328
328
 
329
329
  ```bash
330
- camou snapshot -i --json
331
- camou get title --json
332
- camou doctor --json
333
- camou remote-versions --json | jq -r '.remoteVersions[].version'
330
+ camou snapshot -i --json # JSON interactive snapshot
331
+ camou get title --json # JSON scalar output
332
+ camou eval 'document.title' --json # JSON eval result
333
+ camou cookies export --json # JSON cookie export
334
+ camou doctor --json # JSON diagnostics
335
+ camou remote-versions --json | jq -r '.remoteVersions[].version' # Extract versions
334
336
  ```
335
337
 
336
338
  Errors are also structured when `--json` is enabled.
337
339
 
340
+ ### Daemon lifecycle
341
+
342
+ ```bash
343
+ camou daemon stop # Stop the local daemon process
344
+ camou daemon restart # Restart the daemon after upgrades or cleanup
345
+ ```
346
+
347
+ Use `camou daemon restart` after upgrading the CLI if an older background daemon is still running.
348
+
338
349
  ## Command Reference
339
350
 
340
351
  ### Browser management
341
352
 
342
353
  ```bash
343
- camou install [version]
344
- camou remove [version]
345
- camou use <version>
346
- camou versions
347
- camou remote-versions
348
- camou presets
349
- camou version
350
- camou path
351
- camou doctor
354
+ camou install [version] # Install the default or one specific build
355
+ camou remove [version] # Remove an installed browser build
356
+ camou use <version> # Switch the default browser version
357
+ camou versions # List installed versions and the default
358
+ camou remote-versions # List compatible remote versions
359
+ camou presets # Show built-in launch presets
360
+ camou version # Print the active camoucli version
361
+ camou path # Show the active browser executable path
362
+ camou doctor # Diagnose install and launch issues
352
363
  ```
353
364
 
354
365
  ### Page automation
355
366
 
356
367
  ```bash
357
- camou open <url>
358
- camou back
359
- camou forward
360
- camou reload
361
- camou snapshot [-i]
362
- camou click <selectorOrRef>
363
- camou hover <selectorOrRef>
364
- camou fill <selectorOrRef> <text>
365
- camou type <selectorOrRef> <text>
366
- camou check <selectorOrRef>
367
- camou uncheck <selectorOrRef>
368
- camou select <selectorOrRef> <value>
369
- camou press <key>
370
- camou scroll <direction> [amount]
371
- camou scrollintoview <selectorOrRef>
372
- camou wait [selectorOrRef] [--text <text>] [--load <state>]
373
- camou screenshot [path]
374
- camou get url
375
- camou get title
376
- camou get text <selectorOrRef>
377
- camou get value <selectorOrRef>
368
+ camou open <url> # Open a URL in the current tab
369
+ camou back # Go back in the current tab history
370
+ camou forward # Go forward in the current tab history
371
+ camou reload # Reload the current page
372
+ camou eval <expression> # Run JavaScript in the current tab
373
+ camou snapshot # Capture page state and refs
374
+ camou snapshot -i # Interactive elements only; recommended
375
+ camou click <selectorOrRef> # Click a selector or @eN ref
376
+ camou hover <selectorOrRef> # Hover a selector or @eN ref
377
+ camou fill <selectorOrRef> <text> # Set an input value directly
378
+ camou type <selectorOrRef> <text> # Type text with key events
379
+ camou check <selectorOrRef> # Check a checkbox or radio input
380
+ camou uncheck <selectorOrRef> # Uncheck a checkbox
381
+ camou select <selectorOrRef> <value> # Choose a select option
382
+ camou press <key> # Press a keyboard key in the page
383
+ camou scroll <direction> [amount] # Scroll up, down, left, or right
384
+ camou scrollintoview <selectorOrRef> # Scroll until visible
385
+ camou wait [selectorOrRef] [--text <text>] [--load <state>] # Wait for element, text, or load
386
+ camou screenshot [path] # Save a screenshot of the current page
387
+ camou get url # Read the current page URL
388
+ camou get title # Read the current page title
389
+ camou get text <selectorOrRef> # Read visible text from an element
390
+ camou get value <selectorOrRef> # Read an element's form value
378
391
  ```
379
392
 
380
393
  ### Sessions and tabs
381
394
 
382
- `camou session list` shows running daemon-owned sessions. `camou profile list` shows stored profiles on disk, `camou profile inspect <name>` shows one stored profile in detail, and `camou profile remove <name>` safely deletes one stored profile.
395
+ Use `session` for live daemon state and `profile` for stored disk-backed browser data.
383
396
 
384
397
  ```bash
385
- camou session list
386
- camou profile list
387
- camou profile inspect <name>
388
- camou profile remove <name>
389
- camou session stop [name]
390
- camou tab list
391
- camou tab new [url]
392
- camou tab close [nameOrIndex]
398
+ camou session list # List running daemon sessions
399
+ camou profile list # List stored profiles on disk
400
+ camou profile inspect <name> # Show one profile's paths
401
+ camou profile remove <name> # Delete a profile; stops it first if needed
402
+ camou cookies export [path] # Export context cookies as JSON
403
+ camou cookies import <path> # Import cookies into session context
404
+ camou close --all # Stop all running sessions
405
+ camou daemon stop # Stop the local daemon process
406
+ camou daemon restart # Restart the local daemon process
407
+ camou session stop [name] # Stop one session or the current session
408
+ camou tab list # List tabs in the current session
409
+ camou tab new [url] # Create a new tab, optionally opening a URL
410
+ camou tab close [nameOrIndex] # Close one tab by name or index
393
411
  ```
394
412
 
395
413
  ## Common Flags
@@ -16,7 +16,10 @@ export declare class BrowserManager {
16
16
  stopped: boolean;
17
17
  sessionName: string;
18
18
  }>;
19
- stopAllSessions(): Promise<void>;
19
+ stopAllSessions(): Promise<{
20
+ stopped: number;
21
+ sessionNames: string[];
22
+ }>;
20
23
  listStoredProfiles(): Promise<Array<Record<string, unknown>>>;
21
24
  inspectStoredProfile(profileName: string): Promise<Record<string, unknown>>;
22
25
  removeStoredProfile(profileName: string): Promise<Record<string, unknown>>;
@@ -96,6 +99,11 @@ export declare class BrowserManager {
96
99
  tabName: string;
97
100
  target: string;
98
101
  }): Promise<Record<string, unknown>>;
102
+ eval(input: LaunchInput & {
103
+ session: string;
104
+ tabName: string;
105
+ expression: string;
106
+ }): Promise<Record<string, unknown>>;
99
107
  screenshot(input: LaunchInput & {
100
108
  session: string;
101
109
  tabName: string;
@@ -114,6 +122,14 @@ export declare class BrowserManager {
114
122
  tabName: string;
115
123
  target: string;
116
124
  }): Promise<Record<string, unknown>>;
125
+ exportCookies(input: {
126
+ session: string;
127
+ path?: string | undefined;
128
+ }): Promise<Record<string, unknown>>;
129
+ importCookies(input: {
130
+ session: string;
131
+ path: string;
132
+ }): Promise<Record<string, unknown>>;
117
133
  getValue(input: LaunchInput & {
118
134
  session: string;
119
135
  tabName: string;
@@ -1,4 +1,5 @@
1
1
  import path from 'node:path';
2
+ import { readFile, writeFile } from 'node:fs/promises';
2
3
  import { hasLaunchFingerprintHelpers } from '../camoufox/config.js';
3
4
  import { launchPersistentCamoufox } from '../camoufox/launcher.js';
4
5
  import { inspectStoredSessionProfile, listStoredSessionProfiles, removeStoredSessionProfile } from '../state/session-profiles.js';
@@ -41,7 +42,9 @@ export class BrowserManager {
41
42
  return { stopped: true, sessionName };
42
43
  }
43
44
  async stopAllSessions() {
44
- await Promise.all(Array.from(this.sessions.keys()).map((sessionName) => this.stopSession(sessionName)));
45
+ const sessionNames = Array.from(this.sessions.keys());
46
+ await Promise.all(sessionNames.map((sessionName) => this.stopSession(sessionName)));
47
+ return { stopped: sessionNames.length, sessionNames };
45
48
  }
46
49
  async listStoredProfiles() {
47
50
  const storedProfiles = await listStoredSessionProfiles(this.paths);
@@ -258,6 +261,15 @@ export class BrowserManager {
258
261
  target: input.target,
259
262
  };
260
263
  }
264
+ async eval(input) {
265
+ const tab = await this.ensureTab(input.session, input.tabName, input);
266
+ return {
267
+ sessionName: input.session,
268
+ tabName: tab.name,
269
+ expression: input.expression,
270
+ result: await tab.page.evaluate(() => undefined, input.expression),
271
+ };
272
+ }
261
273
  async screenshot(input) {
262
274
  const tab = await this.ensureTab(input.session, input.tabName, input);
263
275
  const session = await this.ensureSession(input.session, input);
@@ -295,6 +307,22 @@ export class BrowserManager {
295
307
  text,
296
308
  };
297
309
  }
310
+ async exportCookies(input) {
311
+ const session = await this.ensureSession(input.session, {});
312
+ const cookies = await session.context.cookies();
313
+ if (input.path) {
314
+ await writeFile(input.path, `${JSON.stringify(cookies, null, 2)}
315
+ `, 'utf8');
316
+ return { sessionName: session.name, count: cookies.length, path: input.path };
317
+ }
318
+ return { sessionName: session.name, count: cookies.length, cookies };
319
+ }
320
+ async importCookies(input) {
321
+ const session = await this.ensureSession(input.session, {});
322
+ const cookies = JSON.parse(await readFile(input.path, 'utf8'));
323
+ await session.context.addCookies(cookies);
324
+ return { sessionName: session.name, imported: cookies.length, path: input.path };
325
+ }
298
326
  async getValue(input) {
299
327
  const tab = await this.ensureTab(input.session, input.tabName, input);
300
328
  const value = await locatorForTarget(tab.page, tab, input.target).inputValue();
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/browser/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/browser/manager.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,16 @@
1
1
  import type { CamoucliPaths } from '../state/paths.js';
2
+ export declare function getDaemonSpawnConfig(moduleUrl?: string): {
3
+ command: string;
4
+ args: string[];
5
+ };
2
6
  export declare function ensureDaemonRunning(paths: CamoucliPaths, verbose: boolean): Promise<void>;
7
+ export declare function stopDaemon(paths: CamoucliPaths): Promise<{
8
+ stopped: boolean;
9
+ pid?: number | undefined;
10
+ }>;
11
+ export declare function restartDaemon(paths: CamoucliPaths, verbose: boolean): Promise<{
12
+ restarted: true;
13
+ stopped: boolean;
14
+ pid?: number | undefined;
15
+ version?: string | undefined;
16
+ }>;
@@ -1,18 +1,27 @@
1
1
  import { existsSync } from 'node:fs';
2
+ import { extname } from 'node:path';
2
3
  import { spawn } from 'node:child_process';
3
4
  import { fileURLToPath } from 'node:url';
4
- import { cleanupStaleDaemonArtifacts, readDaemonPid } from '../daemon/runtime.js';
5
+ import packageJson from '../../package.json' with { type: 'json' };
6
+ import { cleanupStaleDaemonArtifacts, readDaemonPid, stopDaemonProcess } from '../daemon/runtime.js';
7
+ import { getDaemonStatus } from '../ipc/client.js';
5
8
  import { DaemonStartError } from '../util/errors.js';
6
- import { pingDaemon } from '../ipc/client.js';
7
- function getDaemonSpawnConfig() {
8
- const jsPath = fileURLToPath(new URL('../daemon/main.js', import.meta.url));
9
+ export function getDaemonSpawnConfig(moduleUrl = import.meta.url) {
10
+ const currentPath = fileURLToPath(moduleUrl);
11
+ const tsPath = fileURLToPath(new URL('../daemon/main.ts', moduleUrl));
12
+ if (['.ts', '.tsx', '.mts', '.cts'].includes(extname(currentPath))) {
13
+ return {
14
+ command: process.execPath,
15
+ args: ['--import', 'tsx', tsPath],
16
+ };
17
+ }
18
+ const jsPath = fileURLToPath(new URL('../daemon/main.js', moduleUrl));
9
19
  if (existsSync(jsPath)) {
10
20
  return {
11
21
  command: process.execPath,
12
22
  args: [jsPath],
13
23
  };
14
24
  }
15
- const tsPath = fileURLToPath(new URL('../daemon/main.ts', import.meta.url));
16
25
  return {
17
26
  command: process.execPath,
18
27
  args: ['--import', 'tsx', tsPath],
@@ -21,33 +30,46 @@ function getDaemonSpawnConfig() {
21
30
  function sleep(ms) {
22
31
  return new Promise((resolve) => setTimeout(resolve, ms));
23
32
  }
33
+ function isCompatibleDaemonVersion(version, expectedVersion = packageJson.version) {
34
+ return version === expectedVersion;
35
+ }
36
+ async function spawnDaemon(verbose) {
37
+ const spawnConfig = getDaemonSpawnConfig();
38
+ const child = spawn(spawnConfig.command, spawnConfig.args, {
39
+ detached: true,
40
+ stdio: 'ignore',
41
+ env: {
42
+ ...process.env,
43
+ CAMOUCLI_VERBOSE: verbose ? '1' : '0',
44
+ },
45
+ });
46
+ child.unref();
47
+ }
24
48
  export async function ensureDaemonRunning(paths, verbose) {
25
- if (await pingDaemon(paths)) {
49
+ const daemonStatus = await getDaemonStatus(paths);
50
+ if (daemonStatus && isCompatibleDaemonVersion(daemonStatus.version)) {
26
51
  return;
27
52
  }
53
+ if (daemonStatus?.pid) {
54
+ await stopDaemonProcess(daemonStatus.pid);
55
+ await cleanupStaleDaemonArtifacts(paths);
56
+ }
28
57
  const artifactState = await cleanupStaleDaemonArtifacts(paths);
29
58
  if (artifactState.pidAlive) {
30
59
  for (let attempt = 0; attempt < 8; attempt += 1) {
31
60
  await sleep(250);
32
- if (await pingDaemon(paths)) {
61
+ const status = await getDaemonStatus(paths);
62
+ if (status && isCompatibleDaemonVersion(status.version)) {
33
63
  return;
34
64
  }
35
65
  }
36
66
  throw new DaemonStartError(`Daemon process ${artifactState.pid} exists but is not responding. Remove ${paths.daemonPidFile} or stop the stale process before retrying.`);
37
67
  }
38
- const spawnConfig = getDaemonSpawnConfig();
39
- const child = spawn(spawnConfig.command, spawnConfig.args, {
40
- detached: true,
41
- stdio: 'ignore',
42
- env: {
43
- ...process.env,
44
- CAMOUCLI_VERBOSE: verbose ? '1' : '0',
45
- },
46
- });
47
- child.unref();
68
+ await spawnDaemon(verbose);
48
69
  for (let attempt = 0; attempt < 40; attempt += 1) {
49
70
  await sleep(250);
50
- if (await pingDaemon(paths)) {
71
+ const status = await getDaemonStatus(paths);
72
+ if (status && isCompatibleDaemonVersion(status.version)) {
51
73
  return;
52
74
  }
53
75
  }
@@ -56,4 +78,30 @@ export async function ensureDaemonRunning(paths, verbose) {
56
78
  ? `Failed to start the camou daemon. See ${paths.daemonLogFile} and stop process ${pid} if it is stuck.`
57
79
  : `Failed to start the camou daemon. See ${paths.daemonLogFile} for details.`);
58
80
  }
81
+ export async function stopDaemon(paths) {
82
+ const daemonStatus = await getDaemonStatus(paths);
83
+ if (daemonStatus?.pid) {
84
+ await stopDaemonProcess(daemonStatus.pid);
85
+ await cleanupStaleDaemonArtifacts(paths);
86
+ return { stopped: true, pid: daemonStatus.pid };
87
+ }
88
+ const artifactState = await cleanupStaleDaemonArtifacts(paths);
89
+ if (artifactState.pidAlive && artifactState.pid) {
90
+ await stopDaemonProcess(artifactState.pid);
91
+ await cleanupStaleDaemonArtifacts(paths);
92
+ return { stopped: true, pid: artifactState.pid };
93
+ }
94
+ return { stopped: false };
95
+ }
96
+ export async function restartDaemon(paths, verbose) {
97
+ const stopped = await stopDaemon(paths);
98
+ await ensureDaemonRunning(paths, verbose);
99
+ const daemonStatus = await getDaemonStatus(paths);
100
+ return {
101
+ restarted: true,
102
+ stopped: stopped.stopped,
103
+ pid: daemonStatus?.pid,
104
+ version: daemonStatus?.version,
105
+ };
106
+ }
59
107
  //# sourceMappingURL=daemon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/cli/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/cli/daemon.ts"],"names":[],"mappings":"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"}
@@ -282,7 +282,10 @@ const ACTION_REQUIRES_SESSION = new Set([
282
282
  'get.text',
283
283
  'get.value',
284
284
  'wait',
285
+ 'eval',
285
286
  'session.stop',
287
+ 'cookies.export',
288
+ 'cookies.import',
286
289
  'tab.list',
287
290
  'tab.new',
288
291
  'tab.close',
@@ -309,6 +312,7 @@ const ACTION_REQUIRES_TAB = new Set([
309
312
  'get.text',
310
313
  'get.value',
311
314
  'wait',
315
+ 'eval',
312
316
  'tab.new',
313
317
  ]);
314
318
  const ACTION_SUPPORTS_LAUNCH_DEFAULTS = new Set([
@@ -333,6 +337,7 @@ const ACTION_SUPPORTS_LAUNCH_DEFAULTS = new Set([
333
337
  'get.text',
334
338
  'get.value',
335
339
  'wait',
340
+ 'eval',
336
341
  'tab.new',
337
342
  ]);
338
343
  export function applyCliDefaultsToPayload(action, payload, options) {