@actionbookdev/cli 0.2.3 → 0.4.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +98 -148
  2. package/bin/actionbook-darwin-arm64 +0 -0
  3. package/bin/actionbook-darwin-x64 +0 -0
  4. package/bin/actionbook-linux-arm64 +0 -0
  5. package/bin/actionbook-linux-x64 +0 -0
  6. package/bin/actionbook-win32-arm64.exe +0 -0
  7. package/bin/actionbook-win32-x64.exe +0 -0
  8. package/bin/actionbook.js +75 -0
  9. package/package.json +9 -27
  10. package/scripts/postinstall.js +114 -0
  11. package/LICENSE +0 -201
  12. package/dist/commands/browser.d.ts +0 -3
  13. package/dist/commands/browser.d.ts.map +0 -1
  14. package/dist/commands/browser.js +0 -27
  15. package/dist/commands/browser.js.map +0 -1
  16. package/dist/commands/get.d.ts +0 -3
  17. package/dist/commands/get.d.ts.map +0 -1
  18. package/dist/commands/get.js +0 -68
  19. package/dist/commands/get.js.map +0 -1
  20. package/dist/commands/search.d.ts +0 -3
  21. package/dist/commands/search.d.ts.map +0 -1
  22. package/dist/commands/search.js +0 -61
  23. package/dist/commands/search.js.map +0 -1
  24. package/dist/commands/sources.d.ts +0 -3
  25. package/dist/commands/sources.d.ts.map +0 -1
  26. package/dist/commands/sources.js +0 -97
  27. package/dist/commands/sources.js.map +0 -1
  28. package/dist/index.d.ts +0 -3
  29. package/dist/index.d.ts.map +0 -1
  30. package/dist/index.js +0 -23
  31. package/dist/index.js.map +0 -1
  32. package/dist/output.d.ts +0 -15
  33. package/dist/output.d.ts.map +0 -1
  34. package/dist/output.js +0 -34
  35. package/dist/output.js.map +0 -1
  36. package/dist/utils/process.d.ts +0 -24
  37. package/dist/utils/process.d.ts.map +0 -1
  38. package/dist/utils/process.js +0 -207
  39. package/dist/utils/process.js.map +0 -1
@@ -1,24 +0,0 @@
1
- /**
2
- * Spawn a command with arguments, inheriting stdio
3
- * Returns the exit code
4
- * If command is not found (ENOENT), shows installation instructions
5
- * @param suppressInstallInstructions - If true, don't show installation instructions on ENOENT
6
- */
7
- export declare function spawnCommand(command: string, args: string[], suppressInstallInstructions?: boolean): Promise<number>;
8
- /**
9
- * Spawn agent-browser command using npx from CLI package directory
10
- * This ensures agent-browser is executed from the CLI's node_modules
11
- * Replaces "agent-browser" with "actionbook browser" in output
12
- */
13
- export declare function spawnAgentBrowser(args: string[]): Promise<number>;
14
- /**
15
- * Show installation instructions for agent-browser
16
- */
17
- export declare function showAgentBrowserInstallation(): void;
18
- /**
19
- * Install Chromium browser binaries for agent-browser
20
- * Uses playwright-core CLI from package dependencies to ensure version compatibility
21
- * @param installArgs - Additional arguments like ['--with-deps'] for Linux
22
- */
23
- export declare function installAgentBrowser(installArgs?: string[]): Promise<number>;
24
- //# sourceMappingURL=process.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/utils/process.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,2BAA2B,UAAQ,GAClC,OAAO,CAAC,MAAM,CAAC,CA+BjB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAgDvE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAYnD;AA+CD;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA0DrF"}
@@ -1,207 +0,0 @@
1
- import { spawn } from 'node:child_process';
2
- import { fileURLToPath } from 'node:url';
3
- import { dirname, join } from 'node:path';
4
- import { existsSync, readdirSync } from 'node:fs';
5
- import chalk from 'chalk';
6
- /**
7
- * Spawn a command with arguments, inheriting stdio
8
- * Returns the exit code
9
- * If command is not found (ENOENT), shows installation instructions
10
- * @param suppressInstallInstructions - If true, don't show installation instructions on ENOENT
11
- */
12
- export async function spawnCommand(command, args, suppressInstallInstructions = false) {
13
- return new Promise((resolve) => {
14
- const child = spawn(command, args, {
15
- stdio: 'inherit',
16
- shell: false,
17
- env: process.env,
18
- });
19
- child.on('close', (code, signal) => {
20
- if (signal) {
21
- // Process was killed by signal (e.g., SIGINT from Ctrl+C)
22
- // Convert signal to exit code: 128 + signal number
23
- resolve(128 + (signal === 'SIGINT' ? 2 : 15));
24
- }
25
- else {
26
- resolve(code ?? 1);
27
- }
28
- });
29
- child.on('error', (error) => {
30
- // Command not found - show installation instructions
31
- if (error.code === 'ENOENT') {
32
- if (!suppressInstallInstructions) {
33
- showAgentBrowserInstallation();
34
- }
35
- resolve(127); // Standard exit code for command not found
36
- }
37
- else {
38
- console.error(chalk.red(`Failed to execute ${command}: ${error.message}`));
39
- resolve(1);
40
- }
41
- });
42
- });
43
- }
44
- /**
45
- * Spawn agent-browser command using npx from CLI package directory
46
- * This ensures agent-browser is executed from the CLI's node_modules
47
- * Replaces "agent-browser" with "actionbook browser" in output
48
- */
49
- export async function spawnAgentBrowser(args) {
50
- return new Promise((resolve) => {
51
- // Get CLI package root directory (dist/utils/process.js -> ../..)
52
- const __dirname = dirname(fileURLToPath(import.meta.url));
53
- const cliPackageRoot = join(__dirname, '..', '..');
54
- const child = spawn('npx', ['agent-browser', ...args], {
55
- stdio: ['inherit', 'pipe', 'pipe'], // Inherit stdin, pipe stdout/stderr for transformation
56
- shell: false,
57
- env: process.env,
58
- cwd: cliPackageRoot, // Execute in CLI package directory
59
- });
60
- // Transform and output stdout
61
- if (child.stdout) {
62
- child.stdout.on('data', (data) => {
63
- const output = data.toString().replace(/agent-browser/g, 'actionbook browser');
64
- process.stdout.write(output);
65
- });
66
- }
67
- // Transform and output stderr
68
- if (child.stderr) {
69
- child.stderr.on('data', (data) => {
70
- const output = data.toString().replace(/agent-browser/g, 'actionbook browser');
71
- process.stderr.write(output);
72
- });
73
- }
74
- child.on('close', (code, signal) => {
75
- if (signal) {
76
- resolve(128 + (signal === 'SIGINT' ? 2 : 15));
77
- }
78
- else {
79
- resolve(code ?? 1);
80
- }
81
- });
82
- child.on('error', (error) => {
83
- if (error.code === 'ENOENT') {
84
- console.error(chalk.red('\nnpx command not found.'));
85
- console.error(chalk.white('Please ensure npm 5.2+ is installed.\n'));
86
- resolve(127);
87
- }
88
- else {
89
- console.error(chalk.red(`Failed to execute agent-browser: ${error.message}`));
90
- resolve(1);
91
- }
92
- });
93
- });
94
- }
95
- /**
96
- * Show installation instructions for agent-browser
97
- */
98
- export function showAgentBrowserInstallation() {
99
- console.error(chalk.red('\nagent-browser is not installed or not in PATH.\n'));
100
- console.error(chalk.white('agent-browser is a fast browser automation CLI for AI agents.'));
101
- console.error(chalk.white('To install it, run:\n'));
102
- console.error(chalk.cyan(' npm install -g agent-browser\n'));
103
- console.error(chalk.white('Learn more: ') + chalk.cyan('https://github.com/vercel-labs/agent-browser\n'));
104
- console.error(chalk.white('After installation, verify with:\n'));
105
- console.error(chalk.cyan(' agent-browser --help\n'));
106
- }
107
- /**
108
- * Find playwright-core CLI path from node_modules
109
- * Supports both npm and pnpm node_modules structures
110
- */
111
- function findPlaywrightCoreCli(baseDir) {
112
- const dirsToCheck = [
113
- baseDir, // Current package dir
114
- join(baseDir, '..', '..'), // Workspace root (for pnpm workspace)
115
- ];
116
- for (const dir of dirsToCheck) {
117
- // Check pnpm structure - find any playwright-core@* version
118
- const pnpmDir = join(dir, 'node_modules', '.pnpm');
119
- if (existsSync(pnpmDir)) {
120
- try {
121
- const entries = readdirSync(pnpmDir);
122
- for (const entry of entries) {
123
- if (entry.startsWith('playwright-core@')) {
124
- const cliPath = join(pnpmDir, entry, 'node_modules', 'playwright-core', 'cli.js');
125
- if (existsSync(cliPath)) {
126
- return cliPath;
127
- }
128
- }
129
- }
130
- }
131
- catch (error) {
132
- // Ignore read errors, try other methods
133
- }
134
- }
135
- // Check npm flat structure
136
- const npmFlatPath = join(dir, 'node_modules', 'playwright-core', 'cli.js');
137
- if (existsSync(npmFlatPath)) {
138
- return npmFlatPath;
139
- }
140
- // Check npm nested under agent-browser
141
- const npmNestedPath = join(dir, 'node_modules', 'agent-browser', 'node_modules', 'playwright-core', 'cli.js');
142
- if (existsSync(npmNestedPath)) {
143
- return npmNestedPath;
144
- }
145
- }
146
- return null;
147
- }
148
- /**
149
- * Install Chromium browser binaries for agent-browser
150
- * Uses playwright-core CLI from package dependencies to ensure version compatibility
151
- * @param installArgs - Additional arguments like ['--with-deps'] for Linux
152
- */
153
- export async function installAgentBrowser(installArgs = []) {
154
- console.log(chalk.cyan('Setting up browser automation...\n'));
155
- console.log(chalk.yellow('Downloading Chromium browser binaries...\n'));
156
- // Get CLI package root directory
157
- const __dirname = dirname(fileURLToPath(import.meta.url));
158
- const cliPackageRoot = join(__dirname, '..', '..');
159
- // Find playwright-core CLI
160
- const playwrightCliPath = findPlaywrightCoreCli(cliPackageRoot);
161
- if (!playwrightCliPath) {
162
- console.error(chalk.red('\nFailed to locate playwright-core CLI.'));
163
- console.error(chalk.white('Please ensure agent-browser and its dependencies are properly installed.\n'));
164
- return 1;
165
- }
166
- const installArgs2 = ['install', 'chromium'];
167
- if (installArgs.includes('--with-deps')) {
168
- installArgs2.push('--with-deps');
169
- }
170
- const exitCode = await new Promise((resolve) => {
171
- const child = spawn('node', [playwrightCliPath, ...installArgs2], {
172
- stdio: 'inherit',
173
- shell: false,
174
- env: process.env,
175
- cwd: cliPackageRoot,
176
- });
177
- child.on('close', (code, signal) => {
178
- if (signal) {
179
- resolve(128 + (signal === 'SIGINT' ? 2 : 15));
180
- }
181
- else {
182
- resolve(code ?? 1);
183
- }
184
- });
185
- child.on('error', (error) => {
186
- if (error.code === 'ENOENT') {
187
- console.error(chalk.red('\nnpx command not found.'));
188
- console.error(chalk.white('Please ensure npm 5.2+ is installed.\n'));
189
- resolve(127);
190
- }
191
- else {
192
- console.error(chalk.red(`Failed to install Chromium: ${error.message}`));
193
- resolve(1);
194
- }
195
- });
196
- });
197
- if (exitCode === 0) {
198
- console.log(chalk.green('\n✓ Browser automation setup complete!\n'));
199
- console.log(chalk.white('You can now use: ') + chalk.cyan('actionbook browser <command>\n'));
200
- }
201
- else {
202
- console.error(chalk.red('\nBrowser setup encountered an error.'));
203
- console.error(chalk.white('Please check the output above for details.\n'));
204
- }
205
- return exitCode;
206
- }
207
- //# sourceMappingURL=process.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/utils/process.ts"],"names":[],"mappings":"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"}