@omniaibot/win-x64 1.1.0 → 1.1.2
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/bin/omnibot-windows-x64/VERSION +1 -1
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/SKILL.md +18 -2
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/anti-patterns.md +9 -3
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/command-reference.md +52 -15
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/fallback-operations.md +1 -1
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/operation-patterns.md +21 -18
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/runtime-and-status.md +22 -0
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/session-and-tabs.md +44 -28
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
1.1.
|
|
1
|
+
1.1.2
|
|
@@ -44,7 +44,7 @@ Every page-state workflow must use both controls:
|
|
|
44
44
|
|
|
45
45
|
They are not substitutes. Session controls which workflow owns state. Tab ID controls which page receives the command.
|
|
46
46
|
|
|
47
|
-
Do not rely on
|
|
47
|
+
Do not rely on default tab, active tab, current tab, or prior targeting state. Every page command requires explicit `--tab-id`.
|
|
48
48
|
|
|
49
49
|
Use the same token inside one workflow. Use different tokens for independent workflows.
|
|
50
50
|
|
|
@@ -108,6 +108,19 @@ Start from the task, not the command name. Use operation patterns for read, clic
|
|
|
108
108
|
|
|
109
109
|
Use fallback tiers only after standard patterns fail. Collect evidence separately from fallback execution. The command reference is only a lookup table; it must not decide behavior.
|
|
110
110
|
|
|
111
|
+
## Read vs Scan Routing
|
|
112
|
+
|
|
113
|
+
Choose by intent before choosing by command name:
|
|
114
|
+
|
|
115
|
+
| Intent | Prefer | Why |
|
|
116
|
+
| --- | --- | --- |
|
|
117
|
+
| Summarize or extract page content, article text, search results, feeds, or long/lazy pages | `read` | Returns clean text/Markdown for agent reasoning. |
|
|
118
|
+
| Quickly observe the current viewport before deciding what to do next | `scan --json` | Returns structured viewport state useful for routing. |
|
|
119
|
+
| Find buttons, links, inputs, or refs for a later action | `find` or `snapshot -i` | Produces actionable targets; `read` does not. |
|
|
120
|
+
| Verify one concrete condition | `get`, `is`, or `wait` | Narrow evidence is more reliable than dumping a page. |
|
|
121
|
+
|
|
122
|
+
Do not use `scan` as a long-form reader. Do not use `read` as the first step for click/fill workflows unless the user explicitly asked for page content first.
|
|
123
|
+
|
|
111
124
|
## Quick Routing
|
|
112
125
|
|
|
113
126
|
| Need | Read |
|
|
@@ -168,6 +181,9 @@ Use screenshots, annotated screenshots, console logs, network logs, trace, recor
|
|
|
168
181
|
|
|
169
182
|
- Missing `OMNIBOT_SESSION_TOKEN` or missing `--tab-id` on page-state commands.
|
|
170
183
|
- Acting without verify or claiming success without evidence.
|
|
171
|
-
- Using `execute-js` first, raw CSS before semantic find, `@eN` across tabs,
|
|
184
|
+
- Using `execute-js` first, raw CSS before semantic find, `@eN` across tabs, implicit tab targeting, or shell sleep instead of `omnibot wait`.
|
|
185
|
+
- Using removed commands: `switch-tab`, `focus-tab`, `tab switch`. These are no longer available.
|
|
186
|
+
- Using `tabs[0]` or the first tab as a target. The first tab is often a user tab or transport tab.
|
|
187
|
+
- Closing user tabs discovered during cleanup. Only close tabs created by the current workflow.
|
|
172
188
|
|
|
173
189
|
See `references/anti-patterns.md` before using shortcuts.
|
|
@@ -6,16 +6,22 @@
|
|
|
6
6
|
| Missing `--tab-id` | The command may target the wrong page. | Pass `--tab-id <TAB_ID>` on every page-state command. |
|
|
7
7
|
| `execute-js` first | JavaScript bypasses standard browser interaction and hides better evidence. | Try semantic find, snapshot refs, selectors, DOM, and mouse first. |
|
|
8
8
|
| Reusing `@eN` across tabs | Refs are tab-scoped and may point to a different element elsewhere. | Take a fresh `snapshot -i --tab-id <TAB_ID>` per tab. |
|
|
9
|
-
| Relying on
|
|
9
|
+
| Relying on implicit tab targeting | It is unavailable and unsafe for concurrent workflows. | Use explicit `--tab-id` on every page-state command. |
|
|
10
10
|
| Using sleep instead of wait | Fixed sleeps are flaky and either too short or too slow. | Use `omnibot wait --text`, `--url`, selector state, load state, or `--fn`. |
|
|
11
11
|
| Acting without verify | Command success is not task success. | Run `snapshot`, `get`, `is`, or `wait` after every action. |
|
|
12
12
|
| Claiming success without evidence | The browser may not have changed as expected. | Cite verified URL, text, element state, screenshot, console, or network evidence. |
|
|
13
13
|
| Raw CSS before semantic find | CSS is more brittle and less tied to user intent. | Start with `find role/text/label/placeholder/testid`. |
|
|
14
|
-
| Screenshot when text extraction is enough | Screenshots cost more and are harder to parse. | Use `
|
|
14
|
+
| Screenshot when text extraction is enough | Screenshots cost more and are harder to parse. | Use `read` for page content or `get text` for a selector. |
|
|
15
|
+
| Using `scan` for long-form reading | `scan` is viewport observation and may miss long/lazy content. | Use `read --screens N --tab-id <TAB_ID>`. |
|
|
16
|
+
| Using `read` before an action workflow | `read` returns text, not stable action targets. | Use `find`, `snapshot -i`, `get`, or `is` for click/fill/verify workflows. |
|
|
15
17
|
| Headless expecting existing user login | Headless does not automatically share the user's visible browser session. | Use visible/background mode for existing login or explicitly log in headless. |
|
|
16
18
|
| Mixing multiple workflows in one session token | Agents can overwrite each other's default state. | Use different tokens: `research`, `checkout`, `debug`. |
|
|
17
|
-
| Using default tab state in concurrent agents |
|
|
19
|
+
| Using default tab state in concurrent agents | There is no default tab. Every page command requires explicit `--tab-id`. | Discover or create a tab, save its id, and pass `--tab-id`. |
|
|
18
20
|
| Not checking doctor/tabs before troubleshooting | You may debug page logic when the runtime is disconnected. | Run `omnibot doctor` and `omnibot tabs` first. |
|
|
21
|
+
| Using `tabs[0]` or the first tab | The first tab is often a user tab or the transport tab, not the workflow target. | Create or identify the intended tab and store its full id. |
|
|
22
|
+
| Treating transport as target | Extension routing may use a different tab than the page being acted on. | Always pass `--tab-id <TAB_ID>` and verify with `get url --tab-id <TAB_ID>`. |
|
|
23
|
+
| Closing discovered user tabs | Cleanup can destroy the user's real work. | Track only tool-created tabs and close only those ids. |
|
|
24
|
+
| Leaving worker-token tabs untracked | Cross-token test tabs can remain open or auto-close later. | Add every worker-created tab id to cleanup tracking. |
|
|
19
25
|
|
|
20
26
|
## Red Flags
|
|
21
27
|
|
|
@@ -15,6 +15,47 @@ omnibot doctor
|
|
|
15
15
|
Preferred pattern: See `runtime-and-status.md#startup-check`.
|
|
16
16
|
Fallback relation: Not a fallback command.
|
|
17
17
|
|
|
18
|
+
### status
|
|
19
|
+
|
|
20
|
+
Purpose: Show daemon status only (lighter than `doctor`).
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
omnibot status
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Preferred pattern: See `runtime-and-status.md#daemon-lifecycle`.
|
|
27
|
+
Fallback relation: Not a fallback command.
|
|
28
|
+
|
|
29
|
+
### start
|
|
30
|
+
|
|
31
|
+
Purpose: Start the daemon in the background.
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
omnibot start
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Equivalent to: `omnibot daemon start`
|
|
38
|
+
|
|
39
|
+
### stop
|
|
40
|
+
|
|
41
|
+
Purpose: Stop the running daemon.
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
omnibot stop
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Equivalent to: `omnibot daemon stop`
|
|
48
|
+
|
|
49
|
+
### run
|
|
50
|
+
|
|
51
|
+
Purpose: Run the daemon in the foreground.
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
omnibot run
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Equivalent to: `omnibot daemon run`
|
|
58
|
+
|
|
18
59
|
### tabs
|
|
19
60
|
|
|
20
61
|
Purpose: List connected browser tabs and discover tab ids.
|
|
@@ -41,7 +82,7 @@ Fallback relation: Not a fallback command.
|
|
|
41
82
|
|
|
42
83
|
### scan
|
|
43
84
|
|
|
44
|
-
Purpose:
|
|
85
|
+
Purpose: Observe the current rendered viewport, especially before choosing a follow-up action.
|
|
45
86
|
|
|
46
87
|
```bash
|
|
47
88
|
OMNIBOT_SESSION_TOKEN=research omnibot scan --json --tab-id <TAB_ID>
|
|
@@ -49,18 +90,20 @@ OMNIBOT_SESSION_TOKEN=research omnibot scan --text-only --tab-id <TAB_ID>
|
|
|
49
90
|
```
|
|
50
91
|
|
|
51
92
|
Preferred pattern: See `operation-patterns.md#read` and `operation-patterns.md#extraction`.
|
|
52
|
-
Fallback relation:
|
|
93
|
+
Fallback relation: Use before `dom visible` or `execute-js` when structured viewport state is needed. Use `read` instead for long-form page text.
|
|
53
94
|
|
|
54
|
-
###
|
|
95
|
+
### read
|
|
55
96
|
|
|
56
|
-
Purpose:
|
|
97
|
+
Purpose: Read clean rendered page text/Markdown from an existing tab or a temporary URL tab.
|
|
57
98
|
|
|
58
99
|
```bash
|
|
59
|
-
OMNIBOT_SESSION_TOKEN=research omnibot
|
|
100
|
+
OMNIBOT_SESSION_TOKEN=research omnibot read --screens 5 --tab-id <TAB_ID>
|
|
101
|
+
OMNIBOT_SESSION_TOKEN=research omnibot read --screens 3 https://example.com/article
|
|
102
|
+
OMNIBOT_SESSION_TOKEN=research omnibot read --json --screens 5 --tab-id <TAB_ID>
|
|
60
103
|
```
|
|
61
104
|
|
|
62
105
|
Preferred pattern: See `operation-patterns.md#read` and `operation-patterns.md#extraction`.
|
|
63
|
-
Fallback relation:
|
|
106
|
+
Fallback relation: Prefer for page content. Use `scan --json` when the next step is action planning, and `snapshot -i` when actionable refs are needed.
|
|
64
107
|
|
|
65
108
|
### snapshot -i
|
|
66
109
|
|
|
@@ -360,27 +403,21 @@ Purpose: Manage browser tabs.
|
|
|
360
403
|
```bash
|
|
361
404
|
OMNIBOT_SESSION_TOKEN=research omnibot tab list
|
|
362
405
|
OMNIBOT_SESSION_TOKEN=research omnibot tab new https://docs.example.com --label docs
|
|
363
|
-
OMNIBOT_SESSION_TOKEN=research omnibot tab switch docs
|
|
364
406
|
OMNIBOT_SESSION_TOKEN=research omnibot tab close docs
|
|
365
407
|
```
|
|
366
408
|
|
|
367
409
|
Preferred pattern: See `session-and-tabs.md#tab-explicit`.
|
|
368
|
-
|
|
410
|
+
Removed: `tab switch` and `tab focus` are no longer available. Use explicit `--tab-id` on every page-state command.
|
|
369
411
|
|
|
370
|
-
### window / frame
|
|
412
|
+
### window / frame
|
|
371
413
|
|
|
372
|
-
Purpose: Manage windows
|
|
414
|
+
Purpose: Manage windows and frames.
|
|
373
415
|
|
|
374
416
|
```bash
|
|
375
417
|
OMNIBOT_SESSION_TOKEN=research omnibot window new
|
|
376
418
|
OMNIBOT_SESSION_TOKEN=research omnibot frame main
|
|
377
|
-
OMNIBOT_SESSION_TOKEN=research omnibot switch-tab 123
|
|
378
|
-
OMNIBOT_SESSION_TOKEN=research omnibot focus-tab 123
|
|
379
419
|
```
|
|
380
420
|
|
|
381
|
-
Preferred pattern: See `session-and-tabs.md#switch-tab` and `session-and-tabs.md#focus-tab`.
|
|
382
|
-
Fallback relation: `focus-tab` is for user-visible UI, not targeting reliability.
|
|
383
|
-
|
|
384
421
|
## Waiting & Batch
|
|
385
422
|
|
|
386
423
|
### wait
|
|
@@ -106,7 +106,7 @@ Use `execute-js` only when:
|
|
|
106
106
|
- CSS selector operation fails.
|
|
107
107
|
- DOM fallback fails.
|
|
108
108
|
- A complex frontend event must be triggered.
|
|
109
|
-
- Runtime state cannot be read through `
|
|
109
|
+
- Runtime state cannot be read through `read`, `scan`, `get`, or `is`.
|
|
110
110
|
|
|
111
111
|
Read-only JavaScript fallback:
|
|
112
112
|
|
|
@@ -6,24 +6,26 @@ Use this file to choose behavior by task. Every page-state workflow must set `OM
|
|
|
6
6
|
|
|
7
7
|
### When to use
|
|
8
8
|
|
|
9
|
-
Use Read when the agent needs
|
|
9
|
+
Use Read when the agent needs clean rendered page content: article text, search results, feed items, long pages, lazy-loaded text, or a human-readable summary source.
|
|
10
|
+
|
|
11
|
+
Use targeted state commands when the agent needs one value, visibility, enabled/checked state, layout box, or computed styles. Use scan when the agent needs a structured current-viewport observation for deciding the next action.
|
|
10
12
|
|
|
11
13
|
### Preferred sequence
|
|
12
14
|
|
|
13
|
-
1. `
|
|
14
|
-
2. `
|
|
15
|
-
3. `
|
|
16
|
-
4. `
|
|
17
|
-
5. `
|
|
18
|
-
6. `
|
|
19
|
-
7. `
|
|
15
|
+
1. `read --tab-id <TAB_ID>` for clean page text on an existing tab.
|
|
16
|
+
2. `read --screens N --tab-id <TAB_ID>` for longer or lazy-loaded pages.
|
|
17
|
+
3. `read <URL>` when opening a temporary tab only for reading that URL.
|
|
18
|
+
4. `get title/url/text/html/value/attr/count/box/styles` for narrow evidence.
|
|
19
|
+
5. `is visible/enabled/checked` for boolean state.
|
|
20
|
+
6. `scan --json` only when the next step depends on current viewport structure.
|
|
21
|
+
7. `snapshot -i` when actionable refs are needed.
|
|
22
|
+
8. `dom visible` or `execute-js` fallback only after standard reads cannot access the state.
|
|
20
23
|
|
|
21
24
|
### Example
|
|
22
25
|
|
|
23
26
|
```bash
|
|
24
|
-
OMNIBOT_SESSION_TOKEN=research omnibot
|
|
25
|
-
OMNIBOT_SESSION_TOKEN=research omnibot
|
|
26
|
-
OMNIBOT_SESSION_TOKEN=research omnibot get text "#main" --tab-id <TAB_ID>
|
|
27
|
+
OMNIBOT_SESSION_TOKEN=research omnibot read --screens 5 --tab-id <TAB_ID>
|
|
28
|
+
OMNIBOT_SESSION_TOKEN=research omnibot read --screens 3 https://example.com/article
|
|
27
29
|
```
|
|
28
30
|
|
|
29
31
|
### Verification
|
|
@@ -31,13 +33,14 @@ OMNIBOT_SESSION_TOKEN=research omnibot get text "#main" --tab-id <TAB_ID>
|
|
|
31
33
|
Use the narrowest read that proves the claim:
|
|
32
34
|
|
|
33
35
|
```bash
|
|
36
|
+
OMNIBOT_SESSION_TOKEN=research omnibot get title --tab-id <TAB_ID>
|
|
34
37
|
OMNIBOT_SESSION_TOKEN=research omnibot is visible "#main" --tab-id <TAB_ID>
|
|
35
38
|
OMNIBOT_SESSION_TOKEN=research omnibot get count ".result" --tab-id <TAB_ID>
|
|
36
39
|
```
|
|
37
40
|
|
|
38
41
|
### Fallback entry point
|
|
39
42
|
|
|
40
|
-
If targeted reads
|
|
43
|
+
If `read`, targeted reads, or scan omit needed runtime state, go to `fallback-operations.md#fallback-tier-model`. Start with DOM fallback before JavaScript.
|
|
41
44
|
|
|
42
45
|
## Click
|
|
43
46
|
|
|
@@ -221,7 +224,7 @@ OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i --tab-id <TAB_ID>
|
|
|
221
224
|
|
|
222
225
|
### Fallback entry point
|
|
223
226
|
|
|
224
|
-
|
|
227
|
+
Same-tab navigation must include `--tab-id <TAB_ID>`. If the target tab id is unknown, run `omnibot tabs` first and choose the intended tab explicitly.
|
|
225
228
|
|
|
226
229
|
## Wait
|
|
227
230
|
|
|
@@ -273,8 +276,8 @@ Use Extraction for retrieving page text, HTML fragments, links, counts, assets,
|
|
|
273
276
|
### Preferred sequence
|
|
274
277
|
|
|
275
278
|
1. `get text/html/attr/count` for targeted extraction.
|
|
276
|
-
2. `
|
|
277
|
-
3. `
|
|
279
|
+
2. `read --screens N` for clean page text, long pages, or lazy-loaded content.
|
|
280
|
+
3. `scan --json` for structured viewport extraction before action planning.
|
|
278
281
|
4. `assets list/export` for resources.
|
|
279
282
|
5. `clipboard read` only when clipboard content is part of the task.
|
|
280
283
|
|
|
@@ -289,17 +292,17 @@ OMNIBOT_SESSION_TOKEN=extract omnibot get count ".result" --tab-id <TAB_ID>
|
|
|
289
292
|
Long page example:
|
|
290
293
|
|
|
291
294
|
```bash
|
|
292
|
-
OMNIBOT_SESSION_TOKEN=extract omnibot
|
|
295
|
+
OMNIBOT_SESSION_TOKEN=extract omnibot read --screens 5 --tab-id <TAB_ID>
|
|
293
296
|
OMNIBOT_SESSION_TOKEN=extract omnibot assets list --tab-id <TAB_ID>
|
|
294
297
|
```
|
|
295
298
|
|
|
296
299
|
### Verification
|
|
297
300
|
|
|
298
|
-
Verify extraction completeness with
|
|
301
|
+
Verify extraction completeness with expected markers in `read`, element counts, or targeted reads for known selectors.
|
|
299
302
|
|
|
300
303
|
### Fallback entry point
|
|
301
304
|
|
|
302
|
-
If content exists only in runtime objects, use `fallback-operations.md#javascript-fallback` after explaining why `
|
|
305
|
+
If content exists only in runtime objects, use `fallback-operations.md#javascript-fallback` after explaining why `read`, `scan`, and `get` could not access it.
|
|
303
306
|
|
|
304
307
|
## Upload
|
|
305
308
|
|
|
@@ -8,6 +8,7 @@ Run this sequence before diagnosing browser failures:
|
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
10
|
omnibot doctor
|
|
11
|
+
omnibot status
|
|
11
12
|
omnibot tabs
|
|
12
13
|
omnibot visibility status
|
|
13
14
|
omnibot browser current
|
|
@@ -17,6 +18,7 @@ omnibot license status
|
|
|
17
18
|
Interpretation:
|
|
18
19
|
|
|
19
20
|
- `doctor` checks daemon and extension health.
|
|
21
|
+
- `status` checks daemon status only (lighter than `doctor`).
|
|
20
22
|
- `tabs` proves connected tabs are visible and provides tab ids.
|
|
21
23
|
- `visibility status` shows whether automation is visible, background, dedicated-profile, or headless.
|
|
22
24
|
- `browser current` shows current browser runtime ownership.
|
|
@@ -24,6 +26,26 @@ Interpretation:
|
|
|
24
26
|
|
|
25
27
|
If the extension is not connected, open Chrome or Edge with the omnibot extension loaded and keep an HTTP/HTTPS page open.
|
|
26
28
|
|
|
29
|
+
## Daemon Lifecycle
|
|
30
|
+
|
|
31
|
+
Top-level shortcuts:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
omnibot status # Show daemon status
|
|
35
|
+
omnibot start # Start the daemon
|
|
36
|
+
omnibot stop # Stop the daemon
|
|
37
|
+
omnibot run # Run daemon in foreground
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Full form (also supported):
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
omnibot daemon run
|
|
44
|
+
omnibot daemon start
|
|
45
|
+
omnibot daemon stop
|
|
46
|
+
omnibot daemon status
|
|
47
|
+
```
|
|
48
|
+
|
|
27
49
|
## doctor
|
|
28
50
|
|
|
29
51
|
```bash
|
|
@@ -25,6 +25,47 @@ OMNIBOT_SESSION_TOKEN=checkout omnibot get url --tab-id <TAB_ID>
|
|
|
25
25
|
|
|
26
26
|
Do not rely on default tab, active tab, current tab, or previous targeting state.
|
|
27
27
|
|
|
28
|
+
## Explicit Targeting Model
|
|
29
|
+
|
|
30
|
+
Page-state commands never infer a target tab. Always pass `--tab-id <TAB_ID>` for commands that read or mutate page state.
|
|
31
|
+
|
|
32
|
+
Transport selection is internal. Omnibot may use any connected extension WebSocket to deliver extension-level commands, but that transport tab is never the page target.
|
|
33
|
+
|
|
34
|
+
Do not use the first returned tab, `tabs[0]`, browser active tab, newest tab, or prior command state as a target.
|
|
35
|
+
|
|
36
|
+
## Transport Is Not Target
|
|
37
|
+
|
|
38
|
+
Omnibot can send extension commands through any connected extension WebSocket tab. That transport tab is not the page target. The target is only the tab id passed in the command, for example `--tab-id edge-client:123`.
|
|
39
|
+
|
|
40
|
+
Safe sequence:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
OMNIBOT_SESSION_TOKEN=research omnibot navigate https://example.com
|
|
44
|
+
OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i --tab-id edge-client:123
|
|
45
|
+
OMNIBOT_SESSION_TOKEN=research omnibot click --tab-id edge-client:123 @e4
|
|
46
|
+
OMNIBOT_SESSION_TOKEN=research omnibot wait --text "Saved" --tab-id edge-client:123
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Unsafe sequence:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
OMNIBOT_SESSION_TOKEN=research omnibot tabs
|
|
53
|
+
OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
The unsafe sequence has no target. Do not infer target from first tab, active tab, or prior operation.
|
|
57
|
+
|
|
58
|
+
## Safe Browser Test Cleanup
|
|
59
|
+
|
|
60
|
+
Browser integration tests must only close tabs they created:
|
|
61
|
+
|
|
62
|
+
1. Record the list of existing tabs before creating fixtures.
|
|
63
|
+
2. Create a unique fixture tab per case.
|
|
64
|
+
3. Store the returned full tab id.
|
|
65
|
+
4. Pass that id to every page-state command.
|
|
66
|
+
5. Close only stored fixture ids in cleanup.
|
|
67
|
+
6. Verify user tabs remain present after the test.
|
|
68
|
+
|
|
28
69
|
## Why Both
|
|
29
70
|
|
|
30
71
|
- Session = workflow isolation.
|
|
@@ -80,36 +121,11 @@ OMNIBOT_SESSION_TOKEN=research omnibot get url --tab-id <TAB_ID>
|
|
|
80
121
|
OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i --tab-id <TAB_ID>
|
|
81
122
|
```
|
|
82
123
|
|
|
83
|
-
##
|
|
84
|
-
|
|
85
|
-
`switch-tab` is only for casual single-step usage.
|
|
124
|
+
## No Implicit Targeting
|
|
86
125
|
|
|
87
|
-
|
|
126
|
+
Omnibot does not provide a workflow-level current tab command. Every command that reads or changes page state must receive `--tab-id <TAB_ID>` in that command invocation.
|
|
88
127
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
```bash
|
|
92
|
-
OMNIBOT_SESSION_TOKEN=research omnibot switch-tab 123
|
|
93
|
-
OMNIBOT_SESSION_TOKEN=research omnibot click @e4
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
Good:
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
OMNIBOT_SESSION_TOKEN=research omnibot click --tab-id 123 @e4
|
|
100
|
-
OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i --tab-id 123
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
## focus-tab
|
|
104
|
-
|
|
105
|
-
Use `focus-tab` only when the user needs to see the browser UI.
|
|
106
|
-
|
|
107
|
-
It is not a reliable targeting primitive for agent workflows.
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
OMNIBOT_SESSION_TOKEN=demo omnibot focus-tab 123
|
|
111
|
-
OMNIBOT_SESSION_TOKEN=demo omnibot snapshot -i --tab-id 123
|
|
112
|
-
```
|
|
128
|
+
This prevents stale target state and cross-agent tab confusion.
|
|
113
129
|
|
|
114
130
|
## browser claim/release
|
|
115
131
|
|