@actionbookdev/cli 0.1.2 → 0.2.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.
package/README.md CHANGED
@@ -22,6 +22,10 @@ actionbook sources
22
22
 
23
23
  # Search sources
24
24
  actionbook sources search "linkedin"
25
+
26
+ # Browser automation (requires agent-browser)
27
+ actionbook browser open example.com
28
+ actionbook browser snapshot -i
25
29
  ```
26
30
 
27
31
  ## Commands
@@ -89,6 +93,61 @@ actionbook sources search "e-commerce" --limit 20
89
93
 
90
94
  **Alias:** `actionbook sources s`
91
95
 
96
+ ### `actionbook browser [command]`
97
+
98
+ Execute browser automation commands. This command forwards all arguments to `agent-browser` CLI.
99
+
100
+ ```bash
101
+ # Open a website
102
+ actionbook browser open example.com
103
+
104
+ # Take interactive snapshot
105
+ actionbook browser snapshot -i
106
+
107
+ # Click element by reference
108
+ actionbook browser click @e1
109
+
110
+ # Fill input field
111
+ actionbook browser fill @e3 "test@example.com"
112
+
113
+ # Check current session
114
+ actionbook browser session
115
+
116
+ # Close browser
117
+ actionbook browser close
118
+ ```
119
+
120
+ **Setup:**
121
+
122
+ ```bash
123
+ # npm (recommended)
124
+ # Download Chromium
125
+ actionbook browser install
126
+
127
+ # Linux users - include system dependencies
128
+ actionbook browser install --with-deps
129
+ # or manually: npx playwright install-deps chromium
130
+ ```
131
+
132
+ **Common Commands:**
133
+ - `open <url>` - Navigate to URL
134
+ - `snapshot -i` - Get interactive elements with references
135
+ - `click <selector>` - Click element (or @ref)
136
+ - `fill <selector> <text>` - Fill input field
137
+ - `type <selector> <text>` - Type into element
138
+ - `wait <selector|ms>` - Wait for element or time
139
+ - `screenshot [path]` - Take screenshot
140
+ - `close` - Close browser
141
+
142
+ **For full command list:**
143
+
144
+ ```bash
145
+ actionbook browser --help
146
+ actionbook browser # Shows full agent-browser help
147
+ ```
148
+
149
+ **Learn more:** [agent-browser on GitHub](https://github.com/vercel-labs/agent-browser)
150
+
92
151
  ## Authentication
93
152
 
94
153
  Set your API key via environment variable:
@@ -144,6 +203,20 @@ actionbook search "login" --source-ids 1,2
144
203
  actionbook get "booking.com" --json | jq '.elements'
145
204
  ```
146
205
 
206
+ ### Browser Automation Workflow
207
+
208
+ ```bash
209
+ # 1. Get action details with verified selectors
210
+ actionbook get "github.com/login"
211
+
212
+ # 2. Use browser command to automate
213
+ actionbook browser open "https://github.com/login"
214
+ actionbook browser snapshot -i
215
+ actionbook browser fill @e1 "username"
216
+ actionbook browser fill @e2 "password"
217
+ actionbook browser click @e3
218
+ ```
219
+
147
220
  ## Related Packages
148
221
 
149
222
  - [`@actionbookdev/sdk`](https://www.npmjs.com/package/@actionbookdev/sdk) - JavaScript/TypeScript SDK
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const browserCommand: Command;
3
+ //# sourceMappingURL=browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/commands/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,eAAO,MAAM,cAAc,SA8CvB,CAAA"}
@@ -0,0 +1,45 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { spawnAgentBrowser, installAgentBrowser } from '../utils/process.js';
4
+ export const browserCommand = new Command('browser')
5
+ .description('Execute actionbook browser commands (browser automation)')
6
+ .allowUnknownOption(true) // Critical: allow any args through
7
+ .allowExcessArguments(true)
8
+ .helpOption('-h, --help', 'Display help for actionbook browser')
9
+ .addHelpText('after', `
10
+ Examples:
11
+ $ actionbook browser open example.com
12
+ $ actionbook browser snapshot -i
13
+ $ actionbook browser click @e1
14
+ $ actionbook browser fill @e3 "test@example.com"
15
+
16
+ Setup:
17
+ $ actionbook browser install # Download Chromium browser
18
+ $ actionbook browser install --with-deps # Linux: include system dependencies
19
+
20
+ For detailed commands:
21
+ $ actionbook browser
22
+
23
+ Learn more: ${chalk.cyan('https://github.com/vercel-labs/agent-browser')}
24
+ `)
25
+ .action(async (_options, command) => {
26
+ // Get all arguments passed after 'browser'
27
+ const args = command.args;
28
+ // If no args and user didn't ask for help, show agent-browser help
29
+ if (args.length === 0) {
30
+ console.log(chalk.yellow('No arguments provided. Showing agent-browser help:\n'));
31
+ const exitCode = await spawnAgentBrowser(['--help']);
32
+ process.exit(exitCode);
33
+ return;
34
+ }
35
+ // Special handling for 'install' command - auto-install agent-browser if needed
36
+ if (args[0] === 'install') {
37
+ const exitCode = await installAgentBrowser(args.slice(1));
38
+ process.exit(exitCode);
39
+ return;
40
+ }
41
+ // Execute agent-browser with all args
42
+ const exitCode = await spawnAgentBrowser(args);
43
+ process.exit(exitCode);
44
+ });
45
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/commands/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAE5E,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KACjD,WAAW,CAAC,0DAA0D,CAAC;KACvE,kBAAkB,CAAC,IAAI,CAAC,CAAC,mCAAmC;KAC5D,oBAAoB,CAAC,IAAI,CAAC;KAC1B,UAAU,CAAC,YAAY,EAAE,qCAAqC,CAAC;KAC/D,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;cAcU,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC;GACrE,CACA;KACA,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IAClC,2CAA2C;IAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;IAEzB,mEAAmE;IACnE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sDAAsD,CAAC,CAAC,CAAA;QACjF,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;QACpD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACtB,OAAM;IACR,CAAC;IAED,gFAAgF;IAChF,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QACzD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACtB,OAAM;IACR,CAAC;IAED,sCAAsC;IACtC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAC9C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACxB,CAAC,CAAC,CAAA"}
package/dist/index.js CHANGED
@@ -1,16 +1,23 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from 'commander';
3
+ import { readFileSync } from 'node:fs';
4
+ import { fileURLToPath } from 'node:url';
5
+ import { dirname, join } from 'node:path';
3
6
  import { searchCommand } from './commands/search.js';
4
7
  import { getCommand } from './commands/get.js';
5
8
  import { sourcesCommand } from './commands/sources.js';
9
+ import { browserCommand } from './commands/browser.js';
10
+ const __dirname = dirname(fileURLToPath(import.meta.url));
11
+ const pkg = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-8'));
6
12
  const program = new Command();
7
13
  program
8
14
  .name('actionbook')
9
15
  .description('CLI for Actionbook - Get website action manuals for AI agents')
10
- .version('0.1.0')
16
+ .version(pkg.version)
11
17
  .option('--api-key <key>', 'API key (or set ACTIONBOOK_API_KEY env var)');
12
18
  program.addCommand(searchCommand);
13
19
  program.addCommand(getCommand);
14
20
  program.addCommand(sourcesCommand);
21
+ program.addCommand(browserCommand);
15
22
  program.parse();
16
23
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,+DAA+D,CAAC;KAC5E,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,iBAAiB,EAAE,6CAA6C,CAAC,CAAA;AAE3E,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;AACjC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;AAC9B,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;AAElC,OAAO,CAAC,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AACzD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;AAEpF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,+DAA+D,CAAC;KAC5E,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,MAAM,CAAC,iBAAiB,EAAE,6CAA6C,CAAC,CAAA;AAE3E,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;AACjC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;AAC9B,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;AAClC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;AAElC,OAAO,CAAC,KAAK,EAAE,CAAA"}
@@ -0,0 +1,23 @@
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
+ * @param installArgs - Additional arguments like ['--with-deps'] for Linux
21
+ */
22
+ export declare function installAgentBrowser(installArgs?: string[]): Promise<number>;
23
+ //# sourceMappingURL=process.d.ts.map
@@ -0,0 +1 @@
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;AAoBD;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAsDrF"}
@@ -0,0 +1,179 @@
1
+ import { spawn } from 'node:child_process';
2
+ import { fileURLToPath } from 'node:url';
3
+ import { dirname, join } from 'node:path';
4
+ import { readFileSync } 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
+ * Get playwright-core version from agent-browser's package.json
109
+ * Returns version string like "1.57.0" (without ^ or ~ prefix)
110
+ */
111
+ function getAgentBrowserPlaywrightVersion(cliPackageRoot) {
112
+ try {
113
+ const agentBrowserPkgPath = join(cliPackageRoot, 'node_modules', 'agent-browser', 'package.json');
114
+ const pkgContent = readFileSync(agentBrowserPkgPath, 'utf-8');
115
+ const pkg = JSON.parse(pkgContent);
116
+ const playwrightCoreVersion = pkg.dependencies?.['playwright-core'] || '';
117
+ // Remove ^ ~ or other semver prefixes
118
+ return playwrightCoreVersion.replace(/^[\^~]/, '');
119
+ }
120
+ catch (error) {
121
+ console.warn(chalk.yellow('Warning: Could not read agent-browser version, using latest playwright'));
122
+ return 'latest';
123
+ }
124
+ }
125
+ /**
126
+ * Install Chromium browser binaries for agent-browser
127
+ * @param installArgs - Additional arguments like ['--with-deps'] for Linux
128
+ */
129
+ export async function installAgentBrowser(installArgs = []) {
130
+ console.log(chalk.cyan('Setting up browser automation...\n'));
131
+ console.log(chalk.yellow('Downloading Chromium browser binaries...\n'));
132
+ // Get CLI package root directory to run npx from there
133
+ const __dirname = dirname(fileURLToPath(import.meta.url));
134
+ const cliPackageRoot = join(__dirname, '..', '..');
135
+ // Dynamically get playwright version from agent-browser to ensure binary compatibility
136
+ const playwrightVersion = getAgentBrowserPlaywrightVersion(cliPackageRoot);
137
+ const playwrightArgs = [`playwright@${playwrightVersion}`, 'install', 'chromium'];
138
+ // Add --with-deps if requested (Linux only)
139
+ if (installArgs.includes('--with-deps')) {
140
+ playwrightArgs.push('--with-deps');
141
+ }
142
+ const exitCode = await new Promise((resolve) => {
143
+ const child = spawn('npx', playwrightArgs, {
144
+ stdio: 'inherit',
145
+ shell: false,
146
+ env: process.env,
147
+ cwd: cliPackageRoot,
148
+ });
149
+ child.on('close', (code, signal) => {
150
+ if (signal) {
151
+ resolve(128 + (signal === 'SIGINT' ? 2 : 15));
152
+ }
153
+ else {
154
+ resolve(code ?? 1);
155
+ }
156
+ });
157
+ child.on('error', (error) => {
158
+ if (error.code === 'ENOENT') {
159
+ console.error(chalk.red('\nnpx command not found.'));
160
+ console.error(chalk.white('Please ensure npm 5.2+ is installed.\n'));
161
+ resolve(127);
162
+ }
163
+ else {
164
+ console.error(chalk.red(`Failed to install Chromium: ${error.message}`));
165
+ resolve(1);
166
+ }
167
+ });
168
+ });
169
+ if (exitCode === 0) {
170
+ console.log(chalk.green('\n✓ Browser automation setup complete!\n'));
171
+ console.log(chalk.white('You can now use: ') + chalk.cyan('actionbook browser <command>\n'));
172
+ }
173
+ else {
174
+ console.error(chalk.red('\nBrowser setup encountered an error.'));
175
+ console.error(chalk.white('Please check the output above for details.\n'));
176
+ }
177
+ return exitCode;
178
+ }
179
+ //# sourceMappingURL=process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/utils/process.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actionbookdev/cli",
3
- "version": "0.1.2",
3
+ "version": "0.2.1",
4
4
  "description": "CLI for Actionbook - Get website action manuals for AI agents",
5
5
  "private": false,
6
6
  "type": "module",
@@ -16,8 +16,9 @@
16
16
  "access": "public"
17
17
  },
18
18
  "dependencies": {
19
- "commander": "^12.1.0",
19
+ "agent-browser": "^0.8.3",
20
20
  "chalk": "^5.3.0",
21
+ "commander": "^12.1.0",
21
22
  "@actionbookdev/sdk": "0.2.2"
22
23
  },
23
24
  "devDependencies": {