@omniaibot/win-x64 1.6.6 → 1.6.7
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/81d243bd2c585b0f4821__mypyc.pyd +0 -0
- package/bin/omnibot-windows-x64/VERSION +1 -1
- package/bin/omnibot-windows-x64/_asyncio.pyd +0 -0
- package/bin/omnibot-windows-x64/_bz2.pyd +0 -0
- package/bin/omnibot-windows-x64/_cffi_backend.pyd +0 -0
- package/bin/omnibot-windows-x64/_ctypes.pyd +0 -0
- package/bin/omnibot-windows-x64/_decimal.pyd +0 -0
- package/bin/omnibot-windows-x64/_hashlib.pyd +0 -0
- package/bin/omnibot-windows-x64/_lzma.pyd +0 -0
- package/bin/omnibot-windows-x64/_multiprocessing.pyd +0 -0
- package/bin/omnibot-windows-x64/_overlapped.pyd +0 -0
- package/bin/omnibot-windows-x64/_queue.pyd +0 -0
- package/bin/omnibot-windows-x64/_socket.pyd +0 -0
- package/bin/omnibot-windows-x64/_ssl.pyd +0 -0
- package/bin/omnibot-windows-x64/_uuid.pyd +0 -0
- package/bin/omnibot-windows-x64/_wmi.pyd +0 -0
- package/bin/omnibot-windows-x64/certifi/cacert.pem +70 -0
- package/bin/omnibot-windows-x64/charset_normalizer/cd.pyd +0 -0
- package/bin/omnibot-windows-x64/charset_normalizer/md.pyd +0 -0
- package/bin/omnibot-windows-x64/cryptography/hazmat/bindings/_rust.pyd +0 -0
- package/bin/omnibot-windows-x64/libcrypto-3.dll +0 -0
- package/bin/omnibot-windows-x64/libffi-8.dll +0 -0
- package/bin/omnibot-windows-x64/libssl-3.dll +0 -0
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/SKILL.md +220 -261
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/anti-patterns.md +57 -57
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/command-reference.md +709 -755
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/css-only-dropdown-js.md +50 -50
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/debugging-and-evidence.md +129 -129
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/fallback-operations.md +177 -177
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/operation-patterns.md +432 -432
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/runtime-and-status.md +121 -121
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/session-and-tabs.md +164 -164
- package/bin/omnibot-windows-x64/omnibot/sop/tmwebdriver_sop.md +128 -128
- package/bin/omnibot-windows-x64/omnibot/sop/vue3_component_sop.md +163 -163
- package/bin/omnibot-windows-x64/omnibot-windows-x64.exe +0 -0
- package/bin/omnibot-windows-x64/pyexpat.pyd +0 -0
- package/bin/omnibot-windows-x64/python3.dll +0 -0
- package/bin/omnibot-windows-x64/python312.dll +0 -0
- package/bin/omnibot-windows-x64/select.pyd +0 -0
- package/bin/omnibot-windows-x64/unicodedata.pyd +0 -0
- package/bin/omnibot-windows-x64/vcruntime140.dll +0 -0
- package/bin/omnibot-windows-x64/vcruntime140_1.dll +0 -0
- package/package.json +1 -1
- package/bin/omnibot-windows-x64/libcrypto-3-x64.dll +0 -0
- package/bin/omnibot-windows-x64/libssl-3-x64.dll +0 -0
- package/bin/omnibot-windows-x64/python313.dll +0 -0
|
@@ -1,121 +1,121 @@
|
|
|
1
|
-
# Runtime and Status
|
|
2
|
-
|
|
3
|
-
Use this file before troubleshooting. Runtime checks establish whether the daemon, extension, browser, visibility mode, license, and packaged skills are healthy.
|
|
4
|
-
|
|
5
|
-
## Startup Check
|
|
6
|
-
|
|
7
|
-
Run this sequence before diagnosing browser failures:
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
omnibot doctor
|
|
11
|
-
omnibot status
|
|
12
|
-
omnibot tabs
|
|
13
|
-
omnibot visibility status
|
|
14
|
-
omnibot browser current
|
|
15
|
-
omnibot license status
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Interpretation:
|
|
19
|
-
|
|
20
|
-
- `doctor` checks daemon and extension health.
|
|
21
|
-
- `status` checks daemon status only (lighter than `doctor`).
|
|
22
|
-
- `tabs` proves connected tabs are visible and provides tab ids.
|
|
23
|
-
- `visibility status` shows whether automation is visible, background, dedicated-profile, or headless.
|
|
24
|
-
- `browser current` shows current browser runtime ownership.
|
|
25
|
-
- `license status` verifies license state.
|
|
26
|
-
|
|
27
|
-
If the extension is not connected, open Chrome or Edge with the omnibot extension loaded and keep an HTTP/HTTPS page open.
|
|
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
|
-
|
|
49
|
-
## doctor
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
omnibot doctor
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Use `doctor` first when commands fail, tabs are empty, screenshots fail, or the agent cannot reach the browser.
|
|
56
|
-
|
|
57
|
-
## tabs
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
omnibot tabs
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
Use `tabs` to discover tab ids. Save the target tab id and use it on every page-state command:
|
|
64
|
-
|
|
65
|
-
```bash
|
|
66
|
-
OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i --tab-id <TAB_ID>
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
## browser list/current
|
|
70
|
-
|
|
71
|
-
```bash
|
|
72
|
-
omnibot browser list
|
|
73
|
-
omnibot browser current
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
Use browser status when multiple browser runtimes or agents may be active.
|
|
77
|
-
|
|
78
|
-
## visibility status
|
|
79
|
-
|
|
80
|
-
```bash
|
|
81
|
-
omnibot visibility status
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
Use visibility status to confirm whether automation should share the user's visible browser state. Headless and dedicated-profile modes do not automatically inherit user login.
|
|
85
|
-
|
|
86
|
-
## license status
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
omnibot license status
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
Use license status when runtime checks pass but features appear unavailable.
|
|
93
|
-
|
|
94
|
-
## version
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
omnibot version
|
|
98
|
-
omnibot --version
|
|
99
|
-
omnibot -V
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
Use `version` to print the installed omnibot CLI version. Output is a single line in the form `omnibot <version>` (for example `omnibot 1.6.3`) with no banner, JSON, or daemon calls. Prefer this over `omnibot --help` or `doctor` when you only need the version string.
|
|
103
|
-
|
|
104
|
-
## skills path
|
|
105
|
-
|
|
106
|
-
```bash
|
|
107
|
-
omnibot skills path
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
Use skills path to locate packaged skills for installation or inspection.
|
|
111
|
-
|
|
112
|
-
## Skills Install
|
|
113
|
-
|
|
114
|
-
```bash
|
|
115
|
-
omnibot skills install --agent hermes --profile nuwa
|
|
116
|
-
omnibot skills install --agent opencode
|
|
117
|
-
omnibot skills install --agent claude
|
|
118
|
-
omnibot skills install --agent codex
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
Install only when setting up or repairing an agent integration. It is not part of normal page operations.
|
|
1
|
+
# Runtime and Status
|
|
2
|
+
|
|
3
|
+
Use this file before troubleshooting. Runtime checks establish whether the daemon, extension, browser, visibility mode, license, and packaged skills are healthy.
|
|
4
|
+
|
|
5
|
+
## Startup Check
|
|
6
|
+
|
|
7
|
+
Run this sequence before diagnosing browser failures:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
omnibot doctor
|
|
11
|
+
omnibot status
|
|
12
|
+
omnibot tabs
|
|
13
|
+
omnibot visibility status
|
|
14
|
+
omnibot browser current
|
|
15
|
+
omnibot license status
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Interpretation:
|
|
19
|
+
|
|
20
|
+
- `doctor` checks daemon and extension health.
|
|
21
|
+
- `status` checks daemon status only (lighter than `doctor`).
|
|
22
|
+
- `tabs` proves connected tabs are visible and provides tab ids.
|
|
23
|
+
- `visibility status` shows whether automation is visible, background, dedicated-profile, or headless.
|
|
24
|
+
- `browser current` shows current browser runtime ownership.
|
|
25
|
+
- `license status` verifies license state.
|
|
26
|
+
|
|
27
|
+
If the extension is not connected, open Chrome or Edge with the omnibot extension loaded and keep an HTTP/HTTPS page open.
|
|
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
|
+
|
|
49
|
+
## doctor
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
omnibot doctor
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Use `doctor` first when commands fail, tabs are empty, screenshots fail, or the agent cannot reach the browser.
|
|
56
|
+
|
|
57
|
+
## tabs
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
omnibot tabs
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Use `tabs` to discover tab ids. Save the target tab id and use it on every page-state command:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i --tab-id <TAB_ID>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## browser list/current
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
omnibot browser list
|
|
73
|
+
omnibot browser current
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Use browser status when multiple browser runtimes or agents may be active.
|
|
77
|
+
|
|
78
|
+
## visibility status
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
omnibot visibility status
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Use visibility status to confirm whether automation should share the user's visible browser state. Headless and dedicated-profile modes do not automatically inherit user login.
|
|
85
|
+
|
|
86
|
+
## license status
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
omnibot license status
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Use license status when runtime checks pass but features appear unavailable.
|
|
93
|
+
|
|
94
|
+
## version
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
omnibot version
|
|
98
|
+
omnibot --version
|
|
99
|
+
omnibot -V
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Use `version` to print the installed omnibot CLI version. Output is a single line in the form `omnibot <version>` (for example `omnibot 1.6.3`) with no banner, JSON, or daemon calls. Prefer this over `omnibot --help` or `doctor` when you only need the version string.
|
|
103
|
+
|
|
104
|
+
## skills path
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
omnibot skills path
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Use skills path to locate packaged skills for installation or inspection.
|
|
111
|
+
|
|
112
|
+
## Skills Install
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
omnibot skills install --agent hermes --profile nuwa
|
|
116
|
+
omnibot skills install --agent opencode
|
|
117
|
+
omnibot skills install --agent claude
|
|
118
|
+
omnibot skills install --agent codex
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Install only when setting up or repairing an agent integration. It is not part of normal page operations.
|
|
@@ -1,164 +1,164 @@
|
|
|
1
|
-
# Workflow Context and Tabs
|
|
2
|
-
|
|
3
|
-
Workflow context tokens and tab ids are core reliability concepts, not advanced usage.
|
|
4
|
-
|
|
5
|
-
## Context First
|
|
6
|
-
|
|
7
|
-
`OMNIBOT_SESSION_TOKEN` is mandatory for every workflow. It is a workflow/context token, not a browser session, login session, or tab target.
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
OMNIBOT_SESSION_TOKEN=research omnibot tabs
|
|
11
|
-
OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i --tab-id <TAB_ID>
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
The same token keeps one workflow isolated. Different tokens prevent independent agents from sharing refs, trace, recording, temporary resources, and other workflow state.
|
|
15
|
-
|
|
16
|
-
## Tab Explicit
|
|
17
|
-
|
|
18
|
-
`--tab-id <TAB_ID>` is mandatory for every page-state command.
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
OMNIBOT_SESSION_TOKEN=checkout omnibot get url --tab-id <TAB_ID>
|
|
22
|
-
OMNIBOT_SESSION_TOKEN=checkout omnibot click --tab-id <TAB_ID> @e4
|
|
23
|
-
OMNIBOT_SESSION_TOKEN=checkout omnibot get url --tab-id <TAB_ID>
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
Do not rely on default tab, active tab, current tab, or previous targeting state.
|
|
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
|
-
# Save the returned full tab id exactly, for example edge-client:123.
|
|
45
|
-
OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i --tab-id edge-client:123
|
|
46
|
-
OMNIBOT_SESSION_TOKEN=research omnibot click --tab-id edge-client:123 @e4
|
|
47
|
-
OMNIBOT_SESSION_TOKEN=research omnibot wait --text "Saved" --tab-id edge-client:123
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
Unsafe sequence:
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
OMNIBOT_SESSION_TOKEN=research omnibot tabs
|
|
54
|
-
OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
The unsafe sequence has no target. Do not infer target from first tab, active tab, or prior operation.
|
|
58
|
-
|
|
59
|
-
## Safe Browser Test Cleanup
|
|
60
|
-
|
|
61
|
-
Browser integration tests must only close tabs they created:
|
|
62
|
-
|
|
63
|
-
1. Record the list of existing tabs before creating fixtures.
|
|
64
|
-
2. Create a unique fixture tab per case.
|
|
65
|
-
3. Store the returned full tab id.
|
|
66
|
-
4. Pass that id to every page-state command.
|
|
67
|
-
5. Close only stored fixture ids in cleanup.
|
|
68
|
-
6. Verify user tabs remain present after the test.
|
|
69
|
-
|
|
70
|
-
## Why Both
|
|
71
|
-
|
|
72
|
-
- Workflow context token = agent/workflow state isolation.
|
|
73
|
-
- Tab ID = page targeting.
|
|
74
|
-
|
|
75
|
-
The workflow token alone does not prove which page receives a command. Tab ID alone does not isolate concurrent agents. Use both.
|
|
76
|
-
|
|
77
|
-
## Ref Scope
|
|
78
|
-
|
|
79
|
-
`@eN` refs are tab-scoped.
|
|
80
|
-
|
|
81
|
-
Never reuse `@eN` across tabs. Never assume a ref remains valid after navigation, reload, major DOM changes, or a different snapshot.
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
OMNIBOT_SESSION_TOKEN=checkout omnibot snapshot -i --tab-id <TAB_ID>
|
|
85
|
-
OMNIBOT_SESSION_TOKEN=checkout omnibot click --tab-id <TAB_ID> @e4
|
|
86
|
-
OMNIBOT_SESSION_TOKEN=checkout omnibot snapshot -i --tab-id <TAB_ID>
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
## Multi-Agent Pattern
|
|
90
|
-
|
|
91
|
-
Agent A:
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
OMNIBOT_SESSION_TOKEN=research
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
Agent B:
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
OMNIBOT_SESSION_TOKEN=checkout
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
Agent C:
|
|
104
|
-
|
|
105
|
-
```bash
|
|
106
|
-
OMNIBOT_SESSION_TOKEN=debug-checkout
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
Each agent must:
|
|
110
|
-
|
|
111
|
-
1. Set a stable token.
|
|
112
|
-
2. Discover or create a tab.
|
|
113
|
-
3. Save the tab id.
|
|
114
|
-
4. Pass `--tab-id <TAB_ID>` on every page-state command.
|
|
115
|
-
5. Run `snapshot` -> action -> verify, or `get/is` -> action -> `get/is`.
|
|
116
|
-
|
|
117
|
-
Example:
|
|
118
|
-
|
|
119
|
-
```bash
|
|
120
|
-
OMNIBOT_SESSION_TOKEN=research omnibot tab new https://example.com --label research
|
|
121
|
-
OMNIBOT_SESSION_TOKEN=research omnibot get url --tab-id <TAB_ID>
|
|
122
|
-
OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i --tab-id <TAB_ID>
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## No Implicit Targeting
|
|
126
|
-
|
|
127
|
-
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.
|
|
128
|
-
|
|
129
|
-
This prevents stale target state and cross-agent tab confusion.
|
|
130
|
-
|
|
131
|
-
## browser claim/release
|
|
132
|
-
|
|
133
|
-
Use `browser claim` and `browser release` in multi-browser or multi-runtime scenarios where an agent must explicitly own or release a browser tab.
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
OMNIBOT_SESSION_TOKEN=research omnibot browser list
|
|
137
|
-
OMNIBOT_SESSION_TOKEN=research omnibot browser current
|
|
138
|
-
OMNIBOT_SESSION_TOKEN=research omnibot browser claim 123
|
|
139
|
-
OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i --tab-id 123
|
|
140
|
-
OMNIBOT_SESSION_TOKEN=research omnibot browser release 123
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
Claiming does not replace `--tab-id`. It only documents or coordinates ownership.
|
|
144
|
-
|
|
145
|
-
## visibility
|
|
146
|
-
|
|
147
|
-
Visibility controls where automation is intended to run:
|
|
148
|
-
|
|
149
|
-
- `visible`: controls the user's already-open real browser tabs and preserves visible session state.
|
|
150
|
-
- `background`: avoids foregrounding tabs unless requested.
|
|
151
|
-
- `dedicated-profile`: planned separate-profile mode.
|
|
152
|
-
- `headless`: planned headless browser context.
|
|
153
|
-
- `launch`: currently reports planned configuration only; it does not launch a browser.
|
|
154
|
-
|
|
155
|
-
Examples:
|
|
156
|
-
|
|
157
|
-
```bash
|
|
158
|
-
omnibot visibility status
|
|
159
|
-
omnibot visibility set visible
|
|
160
|
-
omnibot visibility set background
|
|
161
|
-
omnibot visibility launch headless --user-data-dir /tmp/omnibot-headless
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
Headless and dedicated-profile modes do not automatically share the user's current tabs or login state. Because `visibility launch` is currently planned-only, verify actual browser availability with `doctor` and `tabs` before assuming access.
|
|
1
|
+
# Workflow Context and Tabs
|
|
2
|
+
|
|
3
|
+
Workflow context tokens and tab ids are core reliability concepts, not advanced usage.
|
|
4
|
+
|
|
5
|
+
## Context First
|
|
6
|
+
|
|
7
|
+
`OMNIBOT_SESSION_TOKEN` is mandatory for every workflow. It is a workflow/context token, not a browser session, login session, or tab target.
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
OMNIBOT_SESSION_TOKEN=research omnibot tabs
|
|
11
|
+
OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i --tab-id <TAB_ID>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
The same token keeps one workflow isolated. Different tokens prevent independent agents from sharing refs, trace, recording, temporary resources, and other workflow state.
|
|
15
|
+
|
|
16
|
+
## Tab Explicit
|
|
17
|
+
|
|
18
|
+
`--tab-id <TAB_ID>` is mandatory for every page-state command.
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
OMNIBOT_SESSION_TOKEN=checkout omnibot get url --tab-id <TAB_ID>
|
|
22
|
+
OMNIBOT_SESSION_TOKEN=checkout omnibot click --tab-id <TAB_ID> @e4
|
|
23
|
+
OMNIBOT_SESSION_TOKEN=checkout omnibot get url --tab-id <TAB_ID>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Do not rely on default tab, active tab, current tab, or previous targeting state.
|
|
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
|
+
# Save the returned full tab id exactly, for example edge-client:123.
|
|
45
|
+
OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i --tab-id edge-client:123
|
|
46
|
+
OMNIBOT_SESSION_TOKEN=research omnibot click --tab-id edge-client:123 @e4
|
|
47
|
+
OMNIBOT_SESSION_TOKEN=research omnibot wait --text "Saved" --tab-id edge-client:123
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Unsafe sequence:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
OMNIBOT_SESSION_TOKEN=research omnibot tabs
|
|
54
|
+
OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
The unsafe sequence has no target. Do not infer target from first tab, active tab, or prior operation.
|
|
58
|
+
|
|
59
|
+
## Safe Browser Test Cleanup
|
|
60
|
+
|
|
61
|
+
Browser integration tests must only close tabs they created:
|
|
62
|
+
|
|
63
|
+
1. Record the list of existing tabs before creating fixtures.
|
|
64
|
+
2. Create a unique fixture tab per case.
|
|
65
|
+
3. Store the returned full tab id.
|
|
66
|
+
4. Pass that id to every page-state command.
|
|
67
|
+
5. Close only stored fixture ids in cleanup.
|
|
68
|
+
6. Verify user tabs remain present after the test.
|
|
69
|
+
|
|
70
|
+
## Why Both
|
|
71
|
+
|
|
72
|
+
- Workflow context token = agent/workflow state isolation.
|
|
73
|
+
- Tab ID = page targeting.
|
|
74
|
+
|
|
75
|
+
The workflow token alone does not prove which page receives a command. Tab ID alone does not isolate concurrent agents. Use both.
|
|
76
|
+
|
|
77
|
+
## Ref Scope
|
|
78
|
+
|
|
79
|
+
`@eN` refs are tab-scoped.
|
|
80
|
+
|
|
81
|
+
Never reuse `@eN` across tabs. Never assume a ref remains valid after navigation, reload, major DOM changes, or a different snapshot.
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
OMNIBOT_SESSION_TOKEN=checkout omnibot snapshot -i --tab-id <TAB_ID>
|
|
85
|
+
OMNIBOT_SESSION_TOKEN=checkout omnibot click --tab-id <TAB_ID> @e4
|
|
86
|
+
OMNIBOT_SESSION_TOKEN=checkout omnibot snapshot -i --tab-id <TAB_ID>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Multi-Agent Pattern
|
|
90
|
+
|
|
91
|
+
Agent A:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
OMNIBOT_SESSION_TOKEN=research
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Agent B:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
OMNIBOT_SESSION_TOKEN=checkout
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Agent C:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
OMNIBOT_SESSION_TOKEN=debug-checkout
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Each agent must:
|
|
110
|
+
|
|
111
|
+
1. Set a stable token.
|
|
112
|
+
2. Discover or create a tab.
|
|
113
|
+
3. Save the tab id.
|
|
114
|
+
4. Pass `--tab-id <TAB_ID>` on every page-state command.
|
|
115
|
+
5. Run `snapshot` -> action -> verify, or `get/is` -> action -> `get/is`.
|
|
116
|
+
|
|
117
|
+
Example:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
OMNIBOT_SESSION_TOKEN=research omnibot tab new https://example.com --label research
|
|
121
|
+
OMNIBOT_SESSION_TOKEN=research omnibot get url --tab-id <TAB_ID>
|
|
122
|
+
OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i --tab-id <TAB_ID>
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## No Implicit Targeting
|
|
126
|
+
|
|
127
|
+
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.
|
|
128
|
+
|
|
129
|
+
This prevents stale target state and cross-agent tab confusion.
|
|
130
|
+
|
|
131
|
+
## browser claim/release
|
|
132
|
+
|
|
133
|
+
Use `browser claim` and `browser release` in multi-browser or multi-runtime scenarios where an agent must explicitly own or release a browser tab.
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
OMNIBOT_SESSION_TOKEN=research omnibot browser list
|
|
137
|
+
OMNIBOT_SESSION_TOKEN=research omnibot browser current
|
|
138
|
+
OMNIBOT_SESSION_TOKEN=research omnibot browser claim 123
|
|
139
|
+
OMNIBOT_SESSION_TOKEN=research omnibot snapshot -i --tab-id 123
|
|
140
|
+
OMNIBOT_SESSION_TOKEN=research omnibot browser release 123
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Claiming does not replace `--tab-id`. It only documents or coordinates ownership.
|
|
144
|
+
|
|
145
|
+
## visibility
|
|
146
|
+
|
|
147
|
+
Visibility controls where automation is intended to run:
|
|
148
|
+
|
|
149
|
+
- `visible`: controls the user's already-open real browser tabs and preserves visible session state.
|
|
150
|
+
- `background`: avoids foregrounding tabs unless requested.
|
|
151
|
+
- `dedicated-profile`: planned separate-profile mode.
|
|
152
|
+
- `headless`: planned headless browser context.
|
|
153
|
+
- `launch`: currently reports planned configuration only; it does not launch a browser.
|
|
154
|
+
|
|
155
|
+
Examples:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
omnibot visibility status
|
|
159
|
+
omnibot visibility set visible
|
|
160
|
+
omnibot visibility set background
|
|
161
|
+
omnibot visibility launch headless --user-data-dir /tmp/omnibot-headless
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Headless and dedicated-profile modes do not automatically share the user's current tabs or login state. Because `visibility launch` is currently planned-only, verify actual browser availability with `doctor` and `tabs` before assuming access.
|