nstbrowser-ai-agent 0.0.2 → 0.0.3
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 +104 -89
- package/bin/nstbrowser-ai-agent-darwin-arm64 +0 -0
- package/bin/nstbrowser-ai-agent-darwin-x64 +0 -0
- package/bin/nstbrowser-ai-agent-linux-arm64 +0 -0
- package/bin/nstbrowser-ai-agent-linux-x64 +0 -0
- package/bin/nstbrowser-ai-agent-win32-x64.exe +0 -0
- package/dist/nstbrowser-actions.d.ts.map +1 -1
- package/dist/nstbrowser-actions.js +39 -0
- package/dist/nstbrowser-actions.js.map +1 -1
- package/dist/nstbrowser-errors.d.ts +3 -0
- package/dist/nstbrowser-errors.d.ts.map +1 -1
- package/dist/nstbrowser-errors.js +53 -3
- package/dist/nstbrowser-errors.js.map +1 -1
- package/dist/nstbrowser-utils.d.ts +8 -2
- package/dist/nstbrowser-utils.d.ts.map +1 -1
- package/dist/nstbrowser-utils.js +46 -14
- package/dist/nstbrowser-utils.js.map +1 -1
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +0 -14
- package/dist/protocol.js.map +1 -1
- package/dist/types.d.ts +1 -12
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/skills/nstbrowser-ai-agent/SKILL.md +451 -386
package/README.md
CHANGED
|
@@ -4,6 +4,58 @@ Headless browser automation CLI for AI agents. Fast Rust CLI with Node.js fallba
|
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
|
+
## Prerequisites
|
|
8
|
+
|
|
9
|
+
Before using nstbrowser-ai-agent, ensure you have the following:
|
|
10
|
+
|
|
11
|
+
### 1. Nstbrowser Client
|
|
12
|
+
|
|
13
|
+
**Nstbrowser client must be installed and running.**
|
|
14
|
+
|
|
15
|
+
- Download from: https://www.nstbrowser.io/
|
|
16
|
+
- Install the client application
|
|
17
|
+
- Launch the Nstbrowser client
|
|
18
|
+
|
|
19
|
+
### 2. Nstbrowser Service
|
|
20
|
+
|
|
21
|
+
The Nstbrowser API service must be accessible:
|
|
22
|
+
|
|
23
|
+
- Default endpoint: `http://127.0.0.1:8848`
|
|
24
|
+
- Verify service is running:
|
|
25
|
+
```bash
|
|
26
|
+
curl http://127.0.0.1:8848/api/v2/profiles
|
|
27
|
+
```
|
|
28
|
+
- Expected response: JSON with profile data or empty list
|
|
29
|
+
|
|
30
|
+
### 3. API Key
|
|
31
|
+
|
|
32
|
+
Obtain your API key from the Nstbrowser dashboard and configure it:
|
|
33
|
+
|
|
34
|
+
**Method 1: Config File (Recommended)**
|
|
35
|
+
```bash
|
|
36
|
+
nstbrowser-ai-agent config set key YOUR_API_KEY
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**Method 2: Environment Variable**
|
|
40
|
+
```bash
|
|
41
|
+
export NST_API_KEY="YOUR_API_KEY"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 4. Verify Setup
|
|
45
|
+
|
|
46
|
+
Test your configuration:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# Check CLI version
|
|
50
|
+
nstbrowser-ai-agent --version
|
|
51
|
+
|
|
52
|
+
# List profiles (verifies API connection)
|
|
53
|
+
nstbrowser-ai-agent profile list
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
If you see your profiles or an empty list, your environment is configured correctly.
|
|
57
|
+
|
|
58
|
+
|
|
7
59
|
### npm (Recommended)
|
|
8
60
|
|
|
9
61
|
Install globally via npm to get the native Rust binary for maximum performance:
|
|
@@ -86,6 +138,53 @@ nstbrowser-ai-agent install --with-deps
|
|
|
86
138
|
# or manually: npx playwright install-deps chromium
|
|
87
139
|
```
|
|
88
140
|
|
|
141
|
+
## Quick Start Examples
|
|
142
|
+
|
|
143
|
+
### Using Temporary Browser (Fastest)
|
|
144
|
+
|
|
145
|
+
For quick tests or one-time tasks:
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
# Start temporary browser
|
|
149
|
+
nstbrowser-ai-agent browser start-once
|
|
150
|
+
|
|
151
|
+
# Open a website
|
|
152
|
+
nstbrowser-ai-agent open https://example.com
|
|
153
|
+
|
|
154
|
+
# Take a snapshot
|
|
155
|
+
nstbrowser-ai-agent snapshot -i
|
|
156
|
+
|
|
157
|
+
# Close browser (auto-cleanup)
|
|
158
|
+
nstbrowser-ai-agent close
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
**Note:** Temporary browsers don't save session state.
|
|
162
|
+
|
|
163
|
+
### Using Profile (Recommended)
|
|
164
|
+
|
|
165
|
+
For tasks requiring persistent sessions:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
# List available profiles
|
|
169
|
+
nstbrowser-ai-agent profile list
|
|
170
|
+
|
|
171
|
+
# Create a new profile (if needed)
|
|
172
|
+
nstbrowser-ai-agent profile create my-profile
|
|
173
|
+
|
|
174
|
+
# Set default profile
|
|
175
|
+
export NST_PROFILE="my-profile"
|
|
176
|
+
|
|
177
|
+
# Open browser (auto-starts with profile)
|
|
178
|
+
nstbrowser-ai-agent open https://example.com
|
|
179
|
+
|
|
180
|
+
# Interact with page
|
|
181
|
+
nstbrowser-ai-agent snapshot -i
|
|
182
|
+
nstbrowser-ai-agent click @e1
|
|
183
|
+
|
|
184
|
+
# Close browser (session saved to profile)
|
|
185
|
+
nstbrowser-ai-agent close
|
|
186
|
+
```
|
|
187
|
+
|
|
89
188
|
## Default Provider
|
|
90
189
|
|
|
91
190
|
By default, nstbrowser-ai-agent uses **Nstbrowser** as the browser provider. This means you don't need to specify `-p nst` every time - it's automatic.
|
|
@@ -112,29 +211,6 @@ nstbrowser-ai-agent browser list # List running browsers
|
|
|
112
211
|
nstbrowser-ai-agent browser start profile-id # Start browser with profile
|
|
113
212
|
```
|
|
114
213
|
|
|
115
|
-
### Using Local Browser Mode
|
|
116
|
-
|
|
117
|
-
If you want to use a local browser instead of Nstbrowser, use the `--local` flag:
|
|
118
|
-
|
|
119
|
-
```bash
|
|
120
|
-
# Use local browser (no API key needed)
|
|
121
|
-
nstbrowser-ai-agent --local open example.com
|
|
122
|
-
nstbrowser-ai-agent --headed open example.com # Visual browser (also uses local)
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### Provider Selection Logic
|
|
126
|
-
|
|
127
|
-
The provider is selected automatically based on the following priority (highest to lowest):
|
|
128
|
-
|
|
129
|
-
1. Explicit `--provider` flag
|
|
130
|
-
2. `--local` flag (uses local browser)
|
|
131
|
-
3. `--headed` flag (implies local)
|
|
132
|
-
4. `--cdp` flag (implies local)
|
|
133
|
-
5. `--auto-connect` flag (implies local)
|
|
134
|
-
6. `NST_API_KEY` environment variable (uses nst)
|
|
135
|
-
7. **Default: nst (Nstbrowser)**
|
|
136
|
-
|
|
137
|
-
This means if you have `NST_API_KEY` set, Nstbrowser will be used automatically. To override this, use `--local` or any other flag that implies local mode.
|
|
138
214
|
|
|
139
215
|
### Traditional Selectors (also supported)
|
|
140
216
|
|
|
@@ -173,7 +249,6 @@ nstbrowser-ai-agent screenshot --annotate # Annotated screenshot with numbered
|
|
|
173
249
|
nstbrowser-ai-agent pdf <path> # Save as PDF
|
|
174
250
|
nstbrowser-ai-agent snapshot # Accessibility tree with refs (best for AI)
|
|
175
251
|
nstbrowser-ai-agent eval <js> # Run JavaScript (-b for base64, --stdin for piped input)
|
|
176
|
-
nstbrowser-ai-agent connect <port> # Connect to browser via CDP
|
|
177
252
|
nstbrowser-ai-agent close # Close browser (aliases: quit, exit)
|
|
178
253
|
```
|
|
179
254
|
|
|
@@ -478,7 +553,6 @@ nstbrowser-ai-agent --session-name secure open example.com
|
|
|
478
553
|
| `NSTBROWSER_AI_AGENT_ENCRYPTION_KEY` | 64-char hex key for AES-256-GCM encryption |
|
|
479
554
|
| `NSTBROWSER_AI_AGENT_STATE_EXPIRE_DAYS` | Auto-delete states older than N days (default: 30) |
|
|
480
555
|
| `NSTBROWSER_AI_AGENT_PROVIDER` | Browser provider (default: nst) |
|
|
481
|
-
| `NSTBROWSER_AI_AGENT_LOCAL` | Use local browser instead of Nstbrowser |
|
|
482
556
|
| `NST_API_KEY` | Nstbrowser API key (required for nst provider, default provider) |
|
|
483
557
|
| `NST_HOST` | Nstbrowser API host (default: localhost) |
|
|
484
558
|
| `NST_PORT` | Nstbrowser API port (default: 8848) |
|
|
@@ -503,7 +577,6 @@ nstbrowser-ai-agent includes security features for safe AI agent deployments. Al
|
|
|
503
577
|
| `NSTBROWSER_AI_AGENT_CONFIRM_ACTIONS` | Action categories requiring confirmation |
|
|
504
578
|
| `NSTBROWSER_AI_AGENT_CONFIRM_INTERACTIVE` | Enable interactive confirmation prompts |
|
|
505
579
|
| `NSTBROWSER_AI_AGENT_PROVIDER` | Browser provider (default: nst) |
|
|
506
|
-
| `NSTBROWSER_AI_AGENT_LOCAL` | Use local browser instead of Nstbrowser |
|
|
507
580
|
| `NST_API_KEY` | Nstbrowser API key (required for nst provider, default provider) |
|
|
508
581
|
| `NST_HOST` | Nstbrowser API host (default: localhost) |
|
|
509
582
|
| `NST_PORT` | Nstbrowser API port (default: 8848) |
|
|
@@ -573,13 +646,9 @@ This is useful for multimodal AI models that can reason about visual layout, unl
|
|
|
573
646
|
| `--ignore-https-errors` | Ignore HTTPS certificate errors (useful for self-signed certs) |
|
|
574
647
|
| `--allow-file-access` | Allow file:// URLs to access local files (Chromium only) |
|
|
575
648
|
| `-p, --provider <name>` | Browser provider: `nst` (default), `local` (or `NSTBROWSER_AI_AGENT_PROVIDER` env) |
|
|
576
|
-
| `--local` | Use local browser instead of Nstbrowser (or `NSTBROWSER_AI_AGENT_LOCAL` env) |
|
|
577
649
|
| `--json` | JSON output (for agents) |
|
|
578
650
|
| `--full, -f` | Full page screenshot |
|
|
579
651
|
| `--annotate` | Annotated screenshot with numbered element labels (or `NSTBROWSER_AI_AGENT_ANNOTATE` env) |
|
|
580
|
-
| `--headed` | Show browser window (not headless, implies local mode) |
|
|
581
|
-
| `--cdp <port\|url>` | Connect via Chrome DevTools Protocol (port or WebSocket URL, implies local mode) |
|
|
582
|
-
| `--auto-connect` | Auto-discover and connect to running Chrome (implies local mode) (or `NSTBROWSER_AI_AGENT_AUTO_CONNECT` env) |
|
|
583
652
|
| `--color-scheme <scheme>` | Color scheme: `dark`, `light`, `no-preference` (or `NSTBROWSER_AI_AGENT_COLOR_SCHEME` env) |
|
|
584
653
|
| `--download-path <path>` | Default download directory (or `NSTBROWSER_AI_AGENT_DOWNLOAD_PATH` env) |
|
|
585
654
|
| `--content-boundaries` | Wrap page output in boundary markers for LLM safety (or `NSTBROWSER_AI_AGENT_CONTENT_BOUNDARIES` env) |
|
|
@@ -876,59 +945,6 @@ The `--allow-file-access` flag adds Chromium flags (`--allow-file-access-from-fi
|
|
|
876
945
|
|
|
877
946
|
**Note:** This flag only works with Chromium. For security, it's disabled by default.
|
|
878
947
|
|
|
879
|
-
## CDP Mode
|
|
880
|
-
|
|
881
|
-
Connect to an existing browser via Chrome DevTools Protocol:
|
|
882
|
-
|
|
883
|
-
```bash
|
|
884
|
-
# Start Chrome with: google-chrome --remote-debugging-port=9222
|
|
885
|
-
|
|
886
|
-
# Connect once, then run commands without --cdp
|
|
887
|
-
nstbrowser-ai-agent connect 9222
|
|
888
|
-
nstbrowser-ai-agent snapshot
|
|
889
|
-
nstbrowser-ai-agent tab
|
|
890
|
-
nstbrowser-ai-agent close
|
|
891
|
-
|
|
892
|
-
# Or pass --cdp on each command
|
|
893
|
-
nstbrowser-ai-agent --cdp 9222 snapshot
|
|
894
|
-
|
|
895
|
-
# Connect to remote browser via WebSocket URL
|
|
896
|
-
nstbrowser-ai-agent --cdp "wss://your-browser-service.com/cdp?token=..." snapshot
|
|
897
|
-
```
|
|
898
|
-
|
|
899
|
-
The `--cdp` flag accepts either:
|
|
900
|
-
- A port number (e.g., `9222`) for local connections via `http://localhost:{port}`
|
|
901
|
-
- A full WebSocket URL (e.g., `wss://...` or `ws://...`) for remote browser services
|
|
902
|
-
|
|
903
|
-
This enables control of:
|
|
904
|
-
- Electron apps
|
|
905
|
-
- Chrome/Chromium instances with remote debugging
|
|
906
|
-
- WebView2 applications
|
|
907
|
-
- Any browser exposing a CDP endpoint
|
|
908
|
-
|
|
909
|
-
### Auto-Connect
|
|
910
|
-
|
|
911
|
-
Use `--auto-connect` to automatically discover and connect to a running Chrome instance without specifying a port:
|
|
912
|
-
|
|
913
|
-
```bash
|
|
914
|
-
# Auto-discover running Chrome with remote debugging
|
|
915
|
-
nstbrowser-ai-agent --auto-connect open example.com
|
|
916
|
-
nstbrowser-ai-agent --auto-connect snapshot
|
|
917
|
-
|
|
918
|
-
# Or via environment variable
|
|
919
|
-
NSTBROWSER_AI_AGENT_AUTO_CONNECT=1 nstbrowser-ai-agent snapshot
|
|
920
|
-
```
|
|
921
|
-
|
|
922
|
-
Auto-connect discovers Chrome by:
|
|
923
|
-
1. Reading Chrome's `DevToolsActivePort` file from the default user data directory
|
|
924
|
-
2. Falling back to probing common debugging ports (9222, 9229)
|
|
925
|
-
|
|
926
|
-
This is useful when:
|
|
927
|
-
- Chrome 144+ has remote debugging enabled via `chrome://inspect/#remote-debugging` (which uses a dynamic port)
|
|
928
|
-
- You want a zero-configuration connection to your existing browser
|
|
929
|
-
- You don't want to track which port Chrome is using
|
|
930
|
-
|
|
931
|
-
## Streaming (Browser Preview)
|
|
932
948
|
|
|
933
949
|
Stream the browser viewport via WebSocket for live preview or "pair browsing" where a human can watch and interact alongside an AI agent.
|
|
934
950
|
|
|
@@ -1137,10 +1153,11 @@ For more consistent results, add to your project or global instructions file:
|
|
|
1137
1153
|
Use `nstbrowser-ai-agent` for web automation. Run `nstbrowser-ai-agent --help` for all commands.
|
|
1138
1154
|
|
|
1139
1155
|
Core workflow:
|
|
1140
|
-
1. `
|
|
1141
|
-
2. `nstbrowser-ai-agent
|
|
1142
|
-
3. `nstbrowser-ai-agent
|
|
1143
|
-
4.
|
|
1156
|
+
1. Set profile: `export NST_PROFILE="my-profile"` or use `browser start-once` for temporary browser
|
|
1157
|
+
2. `nstbrowser-ai-agent open <url>` - Navigate to page
|
|
1158
|
+
3. `nstbrowser-ai-agent snapshot -i` - Get interactive elements with refs (@e1, @e2)
|
|
1159
|
+
4. `nstbrowser-ai-agent click @e1` / `fill @e2 "text"` - Interact using refs
|
|
1160
|
+
5. Re-snapshot after page changes
|
|
1144
1161
|
```
|
|
1145
1162
|
|
|
1146
1163
|
## Nstbrowser Integration
|
|
@@ -1245,7 +1262,6 @@ You can still use `--profile-id` for explicit ID specification if preferred, but
|
|
|
1245
1262
|
# With default NST provider (NST_API_KEY set), no 'nst' prefix needed:
|
|
1246
1263
|
nstbrowser-ai-agent browser list # List running instances
|
|
1247
1264
|
nstbrowser-ai-agent browser start profile-123 # Start browser for profile
|
|
1248
|
-
nstbrowser-ai-agent browser start-batch p1 p2 p3 # Start multiple browsers
|
|
1249
1265
|
nstbrowser-ai-agent browser start-once # Start temporary browser
|
|
1250
1266
|
nstbrowser-ai-agent browser stop profile-123 # Stop browser instance
|
|
1251
1267
|
nstbrowser-ai-agent browser stop-all # Stop all instances
|
|
@@ -1259,7 +1275,6 @@ nstbrowser-ai-agent browser connect-once # Connect to temp browser
|
|
|
1259
1275
|
# Traditional explicit syntax still works:
|
|
1260
1276
|
nstbrowser-ai-agent nst browser list
|
|
1261
1277
|
nstbrowser-ai-agent nst browser start profile-123
|
|
1262
|
-
nstbrowser-ai-agent nst browser start-batch p1 p2 p3
|
|
1263
1278
|
nstbrowser-ai-agent nst browser stop profile-123
|
|
1264
1279
|
nstbrowser-ai-agent nst browser stop-all
|
|
1265
1280
|
```
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nstbrowser-actions.d.ts","sourceRoot":"","sources":["../src/nstbrowser-actions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAWpD;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"nstbrowser-actions.d.ts","sourceRoot":"","sources":["../src/nstbrowser-actions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAWpD;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAqGlF"}
|
|
@@ -81,6 +81,18 @@ export async function executeNstbrowserCommand(command) {
|
|
|
81
81
|
return await handleProfileTagsBatchClear(command, client);
|
|
82
82
|
case 'nst_profile_group_batch_change':
|
|
83
83
|
return await handleProfileGroupBatchChange(command, client);
|
|
84
|
+
case 'nst_browser_start_once':
|
|
85
|
+
return await handleBrowserStartOnce(command, client);
|
|
86
|
+
case 'nst_browser_cdp_url':
|
|
87
|
+
return await handleBrowserCdpUrl(command, client);
|
|
88
|
+
case 'nst_browser_cdp_url_once':
|
|
89
|
+
return await handleBrowserCdpUrlOnce(command, client);
|
|
90
|
+
case 'nst_browser_connect':
|
|
91
|
+
return await handleBrowserConnect(command, client);
|
|
92
|
+
case 'nst_browser_connect_once':
|
|
93
|
+
return await handleBrowserConnectOnce(command, client);
|
|
94
|
+
case 'nst_profile_list_cursor':
|
|
95
|
+
return await handleProfileListCursor(command, client);
|
|
84
96
|
default:
|
|
85
97
|
return errorResponse(command.id, `Unknown Nstbrowser action: ${command.action}`);
|
|
86
98
|
}
|
|
@@ -273,4 +285,31 @@ async function handleProfileGroupBatchChange(command, client) {
|
|
|
273
285
|
await client.batchChangeProfileGroup(profileIds, command.groupId);
|
|
274
286
|
return successResponse(command.id, { changed: profileIds.length });
|
|
275
287
|
}
|
|
288
|
+
// ==================== New Commands - Batch and CDP ====================
|
|
289
|
+
async function handleBrowserStartOnce(command, client) {
|
|
290
|
+
const result = await client.startOnceBrowser(command.config || {});
|
|
291
|
+
return successResponse(command.id, result);
|
|
292
|
+
}
|
|
293
|
+
async function handleBrowserCdpUrl(command, client) {
|
|
294
|
+
const profileId = await resolveProfileId(client, command.profileId);
|
|
295
|
+
const result = await client.getCdpUrl(profileId);
|
|
296
|
+
return successResponse(command.id, result);
|
|
297
|
+
}
|
|
298
|
+
async function handleBrowserCdpUrlOnce(command, client) {
|
|
299
|
+
const result = await client.getCdpUrlOnce();
|
|
300
|
+
return successResponse(command.id, result);
|
|
301
|
+
}
|
|
302
|
+
async function handleBrowserConnect(command, client) {
|
|
303
|
+
const profileId = await resolveProfileId(client, command.profileId);
|
|
304
|
+
const result = await client.connectBrowser(profileId);
|
|
305
|
+
return successResponse(command.id, result);
|
|
306
|
+
}
|
|
307
|
+
async function handleBrowserConnectOnce(command, client) {
|
|
308
|
+
const result = await client.connectOnceBrowser(command.config || {});
|
|
309
|
+
return successResponse(command.id, result);
|
|
310
|
+
}
|
|
311
|
+
async function handleProfileListCursor(command, client) {
|
|
312
|
+
const result = await client.getProfilesByCursor(command.cursor, command.pageSize, command.direction);
|
|
313
|
+
return successResponse(command.id, result);
|
|
314
|
+
}
|
|
276
315
|
//# sourceMappingURL=nstbrowser-actions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nstbrowser-actions.js","sourceRoot":"","sources":["../src/nstbrowser-actions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nstbrowser-actions.js","sourceRoot":"","sources":["../src/nstbrowser-actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,9 @@ export declare class NstbrowserAuthError extends NstbrowserError {
|
|
|
18
18
|
export declare class NstbrowserProfileNotFoundError extends NstbrowserError {
|
|
19
19
|
constructor(profileName: string);
|
|
20
20
|
}
|
|
21
|
+
export declare class NoProfileSpecifiedError extends NstbrowserError {
|
|
22
|
+
constructor();
|
|
23
|
+
}
|
|
21
24
|
export declare class NstbrowserConnectionError extends NstbrowserError {
|
|
22
25
|
constructor(message: string);
|
|
23
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nstbrowser-errors.d.ts","sourceRoot":"","sources":["../src/nstbrowser-errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,eAAgB,SAAQ,KAAK;IAG/B,IAAI,CAAC,EAAE,MAAM;IACb,UAAU,CAAC,EAAE,MAAM;gBAF1B,OAAO,EAAE,MAAM,EACR,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,UAAU,CAAC,EAAE,MAAM,YAAA;CAK7B;AAED,qBAAa,2BAA4B,SAAQ,eAAe;;CAI/D;AAED,qBAAa,yBAA0B,SAAQ,eAAe;;CAI7D;AAED,qBAAa,mBAAoB,SAAQ,eAAe;;
|
|
1
|
+
{"version":3,"file":"nstbrowser-errors.d.ts","sourceRoot":"","sources":["../src/nstbrowser-errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,eAAgB,SAAQ,KAAK;IAG/B,IAAI,CAAC,EAAE,MAAM;IACb,UAAU,CAAC,EAAE,MAAM;gBAF1B,OAAO,EAAE,MAAM,EACR,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,UAAU,CAAC,EAAE,MAAM,YAAA;CAK7B;AAED,qBAAa,2BAA4B,SAAQ,eAAe;;CAI/D;AAED,qBAAa,yBAA0B,SAAQ,eAAe;;CAI7D;AAED,qBAAa,mBAAoB,SAAQ,eAAe;;CAevD;AAED,qBAAa,8BAA+B,SAAQ,eAAe;gBACrD,WAAW,EAAE,MAAM;CAchC;AAED,qBAAa,uBAAwB,SAAQ,eAAe;;CAkB3D;AAED,qBAAa,yBAA0B,SAAQ,eAAe;gBAChD,OAAO,EAAE,MAAM;CAY5B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAoB3D"}
|
|
@@ -23,17 +23,67 @@ export class NstbrowserNotRunningError extends NstbrowserError {
|
|
|
23
23
|
}
|
|
24
24
|
export class NstbrowserAuthError extends NstbrowserError {
|
|
25
25
|
constructor() {
|
|
26
|
-
|
|
26
|
+
const message = `Invalid Nstbrowser API key
|
|
27
|
+
|
|
28
|
+
Setup:
|
|
29
|
+
1. Get your API key from Nstbrowser dashboard
|
|
30
|
+
2. Configure using one of these methods:
|
|
31
|
+
|
|
32
|
+
Method 1 (Recommended - Config file):
|
|
33
|
+
nstbrowser-ai-agent config set key YOUR_API_KEY
|
|
34
|
+
|
|
35
|
+
Method 2 (Environment variable):
|
|
36
|
+
export NST_API_KEY="YOUR_API_KEY"`;
|
|
37
|
+
super(message, 'NST_AUTH_ERROR', 401);
|
|
27
38
|
}
|
|
28
39
|
}
|
|
29
40
|
export class NstbrowserProfileNotFoundError extends NstbrowserError {
|
|
30
41
|
constructor(profileName) {
|
|
31
|
-
|
|
42
|
+
const message = `Profile '${profileName}' not found
|
|
43
|
+
|
|
44
|
+
Suggestions:
|
|
45
|
+
1. List available profiles:
|
|
46
|
+
nstbrowser-ai-agent nst profile list
|
|
47
|
+
|
|
48
|
+
2. Create a new profile:
|
|
49
|
+
nstbrowser-ai-agent nst profile create ${profileName}
|
|
50
|
+
|
|
51
|
+
3. Use temporary browser:
|
|
52
|
+
nstbrowser-ai-agent nst browser start-once`;
|
|
53
|
+
super(message, 'NST_PROFILE_NOT_FOUND', 404);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
export class NoProfileSpecifiedError extends NstbrowserError {
|
|
57
|
+
constructor() {
|
|
58
|
+
const message = `No profile specified
|
|
59
|
+
|
|
60
|
+
Options:
|
|
61
|
+
1. Specify profile by name:
|
|
62
|
+
nstbrowser-ai-agent --profile my-profile open https://example.com
|
|
63
|
+
|
|
64
|
+
2. Specify profile by ID:
|
|
65
|
+
nstbrowser-ai-agent --profile-id <UUID> open https://example.com
|
|
66
|
+
|
|
67
|
+
3. Set default profile (environment variable):
|
|
68
|
+
export NST_PROFILE="my-profile"
|
|
69
|
+
|
|
70
|
+
4. Use temporary browser:
|
|
71
|
+
nstbrowser-ai-agent nst browser start-once`;
|
|
72
|
+
super(message, 'NO_PROFILE_SPECIFIED');
|
|
32
73
|
}
|
|
33
74
|
}
|
|
34
75
|
export class NstbrowserConnectionError extends NstbrowserError {
|
|
35
76
|
constructor(message) {
|
|
36
|
-
|
|
77
|
+
const fullMessage = `Failed to connect to Nstbrowser: ${message}
|
|
78
|
+
|
|
79
|
+
Troubleshooting:
|
|
80
|
+
1. Verify Nstbrowser client is running
|
|
81
|
+
2. Check API endpoint: http://127.0.0.1:8848
|
|
82
|
+
3. Test connection:
|
|
83
|
+
curl http://127.0.0.1:8848/api/v2/profiles
|
|
84
|
+
4. Check API key is configured:
|
|
85
|
+
echo $NST_API_KEY`;
|
|
86
|
+
super(fullMessage, 'NST_CONNECTION_ERROR');
|
|
37
87
|
}
|
|
38
88
|
}
|
|
39
89
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nstbrowser-errors.js","sourceRoot":"","sources":["../src/nstbrowser-errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAG/B;IACA;IAHT,YACE,OAAe,EACR,IAAa,EACb,UAAmB;QAE1B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAS;QACb,eAAU,GAAV,UAAU,CAAS;QAG1B,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,eAAe;IAC9D;QACE,KAAK,CAAC,oCAAoC,EAAE,mBAAmB,CAAC,CAAC;IACnE,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,eAAe;IAC5D;QACE,KAAK,CAAC,kCAAkC,EAAE,iBAAiB,CAAC,CAAC;IAC/D,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IACtD;QACE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"nstbrowser-errors.js","sourceRoot":"","sources":["../src/nstbrowser-errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAG/B;IACA;IAHT,YACE,OAAe,EACR,IAAa,EACb,UAAmB;QAE1B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAS;QACb,eAAU,GAAV,UAAU,CAAS;QAG1B,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,eAAe;IAC9D;QACE,KAAK,CAAC,oCAAoC,EAAE,mBAAmB,CAAC,CAAC;IACnE,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,eAAe;IAC5D;QACE,KAAK,CAAC,kCAAkC,EAAE,iBAAiB,CAAC,CAAC;IAC/D,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IACtD;QACE,MAAM,OAAO,GAAG;;;;;;;;;;qCAUiB,CAAC;QAClC,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;CACF;AAED,MAAM,OAAO,8BAA+B,SAAQ,eAAe;IACjE,YAAY,WAAmB;QAC7B,MAAM,OAAO,GAAG,YAAY,WAAW;;;;;;;4CAOC,WAAW;;;8CAGT,CAAC;QAC3C,KAAK,CAAC,OAAO,EAAE,uBAAuB,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,eAAe;IAC1D;QACE,MAAM,OAAO,GAAG;;;;;;;;;;;;;8CAa0B,CAAC;QAC3C,KAAK,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;IACzC,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,eAAe;IAC5D,YAAY,OAAe;QACzB,MAAM,WAAW,GAAG,oCAAoC,OAAO;;;;;;;;qBAQ9C,CAAC;QAClB,KAAK,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;IAC7C,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,2BAA2B;QAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC3C,OAAO,IAAI,yBAAyB,EAAE,CAAC;QACzC,CAAC;QAED,kCAAkC;QAClC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC5E,OAAO,IAAI,mBAAmB,EAAE,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -7,8 +7,14 @@ import type { NstbrowserClient } from './nstbrowser-client.js';
|
|
|
7
7
|
* Resolve a profile identifier (name or ID) to a profile ID
|
|
8
8
|
*
|
|
9
9
|
* This function attempts to resolve a profile by:
|
|
10
|
-
* 1.
|
|
11
|
-
* 2. If
|
|
10
|
+
* 1. Detecting if input is UUID format (profile ID)
|
|
11
|
+
* 2. If UUID, looking up by ID directly
|
|
12
|
+
* 3. If not UUID, searching by name
|
|
13
|
+
* 4. If multiple profiles with same name, returning first one
|
|
14
|
+
*
|
|
15
|
+
* Priority order for profile resolution:
|
|
16
|
+
* - Direct UUID match (profile ID)
|
|
17
|
+
* - Name match (first match if multiple)
|
|
12
18
|
*
|
|
13
19
|
* @param client - NSTBrowser API client instance
|
|
14
20
|
* @param nameOrId - Profile name or profile ID
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nstbrowser-utils.d.ts","sourceRoot":"","sources":["../src/nstbrowser-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"nstbrowser-utils.d.ts","sourceRoot":"","sources":["../src/nstbrowser-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AA+B/D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAuDjB;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWhG;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,oDAgBpF;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAK9D;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAatF;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAI9D;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,IAAI,MAAM,CAWzD"}
|
package/dist/nstbrowser-utils.js
CHANGED
|
@@ -3,12 +3,42 @@
|
|
|
3
3
|
* Helper functions for NSTBrowser API operations
|
|
4
4
|
*/
|
|
5
5
|
import { NstbrowserError } from './nstbrowser-errors.js';
|
|
6
|
+
// Simple in-memory cache for profile lookups
|
|
7
|
+
const profileCache = new Map();
|
|
8
|
+
const CACHE_TTL_MS = 30000; // 30 seconds
|
|
9
|
+
/**
|
|
10
|
+
* Check if a string is a valid UUID format
|
|
11
|
+
*/
|
|
12
|
+
function isUUID(str) {
|
|
13
|
+
const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
14
|
+
return uuidRegex.test(str);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Get profiles with caching
|
|
18
|
+
*/
|
|
19
|
+
async function getCachedProfiles(client) {
|
|
20
|
+
const cacheKey = 'profiles';
|
|
21
|
+
const cached = profileCache.get(cacheKey);
|
|
22
|
+
const now = Date.now();
|
|
23
|
+
if (cached && now - cached.timestamp < CACHE_TTL_MS) {
|
|
24
|
+
return cached.profiles;
|
|
25
|
+
}
|
|
26
|
+
const profiles = await client.getProfiles();
|
|
27
|
+
profileCache.set(cacheKey, { profiles, timestamp: now });
|
|
28
|
+
return profiles;
|
|
29
|
+
}
|
|
6
30
|
/**
|
|
7
31
|
* Resolve a profile identifier (name or ID) to a profile ID
|
|
8
32
|
*
|
|
9
33
|
* This function attempts to resolve a profile by:
|
|
10
|
-
* 1.
|
|
11
|
-
* 2. If
|
|
34
|
+
* 1. Detecting if input is UUID format (profile ID)
|
|
35
|
+
* 2. If UUID, looking up by ID directly
|
|
36
|
+
* 3. If not UUID, searching by name
|
|
37
|
+
* 4. If multiple profiles with same name, returning first one
|
|
38
|
+
*
|
|
39
|
+
* Priority order for profile resolution:
|
|
40
|
+
* - Direct UUID match (profile ID)
|
|
41
|
+
* - Name match (first match if multiple)
|
|
12
42
|
*
|
|
13
43
|
* @param client - NSTBrowser API client instance
|
|
14
44
|
* @param nameOrId - Profile name or profile ID
|
|
@@ -20,28 +50,30 @@ export async function resolveProfileId(client, nameOrId) {
|
|
|
20
50
|
throw new NstbrowserError('Profile name or ID cannot be empty', 'INVALID_INPUT');
|
|
21
51
|
}
|
|
22
52
|
const trimmedInput = nameOrId.trim();
|
|
23
|
-
// Step 1: Try to use as ID directly by querying all profiles
|
|
24
|
-
// Note: We need to query profiles to check if this ID exists
|
|
25
53
|
try {
|
|
26
|
-
const profiles = await client
|
|
27
|
-
// Check if input
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
54
|
+
const profiles = await getCachedProfiles(client);
|
|
55
|
+
// Step 1: Check if input is UUID format
|
|
56
|
+
if (isUUID(trimmedInput)) {
|
|
57
|
+
// Try to find by ID
|
|
58
|
+
const profileById = profiles.find((p) => p.profileId === trimmedInput);
|
|
59
|
+
if (profileById) {
|
|
60
|
+
return profileById.profileId;
|
|
61
|
+
}
|
|
62
|
+
// UUID format but not found
|
|
63
|
+
throw new NstbrowserError(`Profile ID not found: "${trimmedInput}"`, 'PROFILE_NOT_FOUND', 404);
|
|
31
64
|
}
|
|
32
|
-
// Step 2: Search by name
|
|
65
|
+
// Step 2: Search by name (not UUID format)
|
|
33
66
|
const profilesByName = profiles.filter((p) => p.name === trimmedInput);
|
|
34
67
|
if (profilesByName.length === 0) {
|
|
35
|
-
throw new NstbrowserError(`Profile not found: "${trimmedInput}"
|
|
68
|
+
throw new NstbrowserError(`Profile not found: "${trimmedInput}"`, 'PROFILE_NOT_FOUND', 404);
|
|
36
69
|
}
|
|
37
70
|
if (profilesByName.length > 1) {
|
|
38
|
-
// Multiple profiles with same name - return first one
|
|
71
|
+
// Multiple profiles with same name - return first one and log warning
|
|
39
72
|
if (process.env.NSTBROWSER_AI_AGENT_DEBUG === '1') {
|
|
40
73
|
console.warn(`[WARNING] Multiple profiles found with name "${trimmedInput}". Using first match: ${profilesByName[0].profileId}`);
|
|
41
74
|
}
|
|
42
|
-
return profilesByName[0].profileId;
|
|
43
75
|
}
|
|
44
|
-
//
|
|
76
|
+
// Return first match (whether single or multiple)
|
|
45
77
|
return profilesByName[0].profileId;
|
|
46
78
|
}
|
|
47
79
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nstbrowser-utils.js","sourceRoot":"","sources":["../src/nstbrowser-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD
|
|
1
|
+
{"version":3,"file":"nstbrowser-utils.js","sourceRoot":"","sources":["../src/nstbrowser-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAg1CpD,MAAM,MAAM,WAAW,GACnB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GACnC;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAqDvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAEnE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAEjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAE5D"}
|