@omniaibot/win-x64 1.6.2 → 1.6.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/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/_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 +0 -70
- package/bin/omnibot-windows-x64/cryptography/hazmat/bindings/_rust.pyd +0 -0
- package/bin/omnibot-windows-x64/libcrypto-3-x64.dll +0 -0
- package/bin/omnibot-windows-x64/libffi-8.dll +0 -0
- package/bin/omnibot-windows-x64/libssl-3-x64.dll +0 -0
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/SKILL.md +249 -196
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/anti-patterns.md +49 -37
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/command-reference.md +741 -620
- 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 -97
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/fallback-operations.md +175 -171
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/operation-patterns.md +396 -384
- package/bin/omnibot-windows-x64/omnibot/skills/omnibot/references/runtime-and-status.md +121 -111
- 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.dll +0 -0
- package/bin/omnibot-windows-x64/libssl-3.dll +0 -0
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
# CSS-Only Dropdown JavaScript Recipe
|
|
2
|
-
|
|
3
|
-
Use only after semantic find, refs, selectors, DOM, and mouse fallback cannot expose or select the dropdown option.
|
|
4
|
-
|
|
5
|
-
Example for a visible trigger like `按留言时间排序` and a target option text:
|
|
6
|
-
|
|
7
|
-
```js
|
|
8
|
-
const triggerText = '按留言时间排序';
|
|
9
|
-
const optionText = '目标选项文本';
|
|
10
|
-
|
|
11
|
-
const visibleElements = [...document.querySelectorAll('button, [role="button"], [aria-haspopup], div, span, li')]
|
|
12
|
-
.filter((el) => {
|
|
13
|
-
const style = getComputedStyle(el);
|
|
14
|
-
const box = el.getBoundingClientRect();
|
|
15
|
-
return style.display !== 'none' && style.visibility !== 'hidden' && box.width > 0 && box.height > 0;
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
const byExactText = (text) => visibleElements.find((el) => el.textContent?.trim() === text);
|
|
19
|
-
const trigger = byExactText(triggerText);
|
|
20
|
-
if (!trigger) {
|
|
21
|
-
return { ok: false, reason: 'trigger-not-found', triggerText, optionText };
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
trigger.click();
|
|
25
|
-
await new Promise((resolve) => requestAnimationFrame(() => requestAnimationFrame(resolve)));
|
|
26
|
-
|
|
27
|
-
const option = [...document.querySelectorAll('div, span, li, button, [role="option"], [role="menuitem"]')]
|
|
28
|
-
.filter((el) => {
|
|
29
|
-
const style = getComputedStyle(el);
|
|
30
|
-
const box = el.getBoundingClientRect();
|
|
31
|
-
return style.display !== 'none' && style.visibility !== 'hidden' && box.width > 0 && box.height > 0;
|
|
32
|
-
})
|
|
33
|
-
.find((el) => el.textContent?.trim() === optionText);
|
|
34
|
-
|
|
35
|
-
if (!option) {
|
|
36
|
-
return { ok: false, reason: 'option-not-found-after-trigger-click', triggerText, optionText };
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
option.click();
|
|
40
|
-
await new Promise((resolve) => requestAnimationFrame(() => requestAnimationFrame(resolve)));
|
|
41
|
-
|
|
42
|
-
return {
|
|
43
|
-
ok: true,
|
|
44
|
-
triggerText,
|
|
45
|
-
optionText,
|
|
46
|
-
selectedText: trigger.textContent?.trim(),
|
|
47
|
-
};
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
Verify with page state after running the script: selected label, sorted result order, result count, URL/query state, or another user-visible condition.
|
|
1
|
+
# CSS-Only Dropdown JavaScript Recipe
|
|
2
|
+
|
|
3
|
+
Use only after semantic find, refs, selectors, DOM, and mouse fallback cannot expose or select the dropdown option.
|
|
4
|
+
|
|
5
|
+
Example for a visible trigger like `按留言时间排序` and a target option text:
|
|
6
|
+
|
|
7
|
+
```js
|
|
8
|
+
const triggerText = '按留言时间排序';
|
|
9
|
+
const optionText = '目标选项文本';
|
|
10
|
+
|
|
11
|
+
const visibleElements = [...document.querySelectorAll('button, [role="button"], [aria-haspopup], div, span, li')]
|
|
12
|
+
.filter((el) => {
|
|
13
|
+
const style = getComputedStyle(el);
|
|
14
|
+
const box = el.getBoundingClientRect();
|
|
15
|
+
return style.display !== 'none' && style.visibility !== 'hidden' && box.width > 0 && box.height > 0;
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
const byExactText = (text) => visibleElements.find((el) => el.textContent?.trim() === text);
|
|
19
|
+
const trigger = byExactText(triggerText);
|
|
20
|
+
if (!trigger) {
|
|
21
|
+
return { ok: false, reason: 'trigger-not-found', triggerText, optionText };
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
trigger.click();
|
|
25
|
+
await new Promise((resolve) => requestAnimationFrame(() => requestAnimationFrame(resolve)));
|
|
26
|
+
|
|
27
|
+
const option = [...document.querySelectorAll('div, span, li, button, [role="option"], [role="menuitem"]')]
|
|
28
|
+
.filter((el) => {
|
|
29
|
+
const style = getComputedStyle(el);
|
|
30
|
+
const box = el.getBoundingClientRect();
|
|
31
|
+
return style.display !== 'none' && style.visibility !== 'hidden' && box.width > 0 && box.height > 0;
|
|
32
|
+
})
|
|
33
|
+
.find((el) => el.textContent?.trim() === optionText);
|
|
34
|
+
|
|
35
|
+
if (!option) {
|
|
36
|
+
return { ok: false, reason: 'option-not-found-after-trigger-click', triggerText, optionText };
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
option.click();
|
|
40
|
+
await new Promise((resolve) => requestAnimationFrame(() => requestAnimationFrame(resolve)));
|
|
41
|
+
|
|
42
|
+
return {
|
|
43
|
+
ok: true,
|
|
44
|
+
triggerText,
|
|
45
|
+
optionText,
|
|
46
|
+
selectedText: trigger.textContent?.trim(),
|
|
47
|
+
};
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Verify with page state after running the script: selected label, sorted result order, result count, URL/query state, or another user-visible condition.
|
|
@@ -1,97 +1,129 @@
|
|
|
1
|
-
# Debugging and Evidence
|
|
2
|
-
|
|
3
|
-
Debugging is for evidence. Fallback is for completing operations.
|
|
4
|
-
|
|
5
|
-
Use this file when you need to prove browser state, explain a failure, or collect artifacts for review. Do not use `execute-js` as the first debug tool.
|
|
6
|
-
|
|
7
|
-
Use a unique workflow/debug token per task, such as `debug-checkout` or `debug-research`. Do not share one global `debug` token across independent agents.
|
|
8
|
-
|
|
9
|
-
## Screenshot
|
|
10
|
-
|
|
11
|
-
Use screenshots when visual layout, canvas, dialogs, or visual regressions matter.
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot screenshot --tab-id <TAB_ID> -o /tmp/omni-shot.png
|
|
15
|
-
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot screenshot --annotate --tab-id <TAB_ID> -o /tmp/omni-annotated.png
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Prefer text extraction when text is enough. Screenshot is evidence, not extraction.
|
|
19
|
-
|
|
20
|
-
## Console
|
|
21
|
-
|
|
22
|
-
Use console logs for runtime JavaScript errors, frontend warnings, or app-level diagnostics.
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot console errors --tab-id <TAB_ID>
|
|
26
|
-
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot console logs --tab-id <TAB_ID>
|
|
27
|
-
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot console clear --tab-id <TAB_ID>
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
Collect console diagnostics before and after the action when debugging regressions. `console errors` currently uses the console log collection path; verify level filtering in output before treating it as error-only evidence.
|
|
31
|
-
|
|
32
|
-
## Network
|
|
33
|
-
|
|
34
|
-
Use network logs for failed requests, redirects, blocked assets, API errors, or loading stalls.
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot network summary --tab-id <TAB_ID>
|
|
38
|
-
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot network logs --tab-id <TAB_ID>
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
Pair network evidence with page verification:
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot get text "#main" --tab-id <TAB_ID>
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
##
|
|
48
|
-
|
|
49
|
-
Use
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
OMNIBOT_SESSION_TOKEN=
|
|
67
|
-
OMNIBOT_SESSION_TOKEN=
|
|
68
|
-
OMNIBOT_SESSION_TOKEN=
|
|
69
|
-
OMNIBOT_SESSION_TOKEN=
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
-
|
|
1
|
+
# Debugging and Evidence
|
|
2
|
+
|
|
3
|
+
Debugging is for evidence. Fallback is for completing operations.
|
|
4
|
+
|
|
5
|
+
Use this file when you need to prove browser state, explain a failure, or collect artifacts for review. Do not use `execute-js` as the first debug tool.
|
|
6
|
+
|
|
7
|
+
Use a unique workflow/debug token per task, such as `debug-checkout` or `debug-research`. Do not share one global `debug` token across independent agents.
|
|
8
|
+
|
|
9
|
+
## Screenshot
|
|
10
|
+
|
|
11
|
+
Use screenshots when visual layout, canvas, dialogs, or visual regressions matter.
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot screenshot --tab-id <TAB_ID> -o /tmp/omni-shot.png
|
|
15
|
+
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot screenshot --annotate --tab-id <TAB_ID> -o /tmp/omni-annotated.png
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Prefer text extraction when text is enough. Screenshot is evidence, not extraction.
|
|
19
|
+
|
|
20
|
+
## Console
|
|
21
|
+
|
|
22
|
+
Use console logs for runtime JavaScript errors, frontend warnings, or app-level diagnostics.
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot console errors --tab-id <TAB_ID>
|
|
26
|
+
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot console logs --tab-id <TAB_ID>
|
|
27
|
+
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot console clear --tab-id <TAB_ID>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Collect console diagnostics before and after the action when debugging regressions. `console errors` currently uses the console log collection path; verify level filtering in output before treating it as error-only evidence.
|
|
31
|
+
|
|
32
|
+
## Network
|
|
33
|
+
|
|
34
|
+
Use network logs for failed requests, redirects, blocked assets, API errors, or loading stalls.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot network summary --tab-id <TAB_ID>
|
|
38
|
+
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot network logs --tab-id <TAB_ID>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Pair network evidence with page verification:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot get text "#main" --tab-id <TAB_ID>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Network Capture
|
|
48
|
+
|
|
49
|
+
Use this when the user asks to capture API requests, checkout requests, submit requests, redirect chains, or CDP/network evidence around a specific browser action.
|
|
50
|
+
|
|
51
|
+
Required order:
|
|
52
|
+
|
|
53
|
+
1. Discover the tab id with `omnibot tabs`.
|
|
54
|
+
2. Verify network command syntax with `omnibot network --help` and `omnibot network start --help` if this is the first network operation in the session.
|
|
55
|
+
3. Clear old logs.
|
|
56
|
+
4. Start capture.
|
|
57
|
+
5. Perform exactly one browser action.
|
|
58
|
+
6. Verify the page state changed.
|
|
59
|
+
7. Stop capture.
|
|
60
|
+
8. Read logs and summary.
|
|
61
|
+
9. Report host, path, method, status, initiator, and non-sensitive payload shape. Do not reveal cookies, auth headers, full addresses, full phone numbers, payment data, or final order submission tokens.
|
|
62
|
+
|
|
63
|
+
Example:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
OMNIBOT_SESSION_TOKEN=checkout omnibot tabs
|
|
67
|
+
OMNIBOT_SESSION_TOKEN=checkout omnibot network clear --tab-id <TAB_ID>
|
|
68
|
+
OMNIBOT_SESSION_TOKEN=checkout omnibot network start --tab-id <TAB_ID>
|
|
69
|
+
OMNIBOT_SESSION_TOKEN=checkout omnibot snapshot -i --tab-id <TAB_ID>
|
|
70
|
+
OMNIBOT_SESSION_TOKEN=checkout omnibot click --tab-id <TAB_ID> @e12
|
|
71
|
+
OMNIBOT_SESSION_TOKEN=checkout omnibot wait --url "/checkout" --tab-id <TAB_ID>
|
|
72
|
+
OMNIBOT_SESSION_TOKEN=checkout omnibot network stop --tab-id <TAB_ID>
|
|
73
|
+
OMNIBOT_SESSION_TOKEN=checkout omnibot network summary --tab-id <TAB_ID>
|
|
74
|
+
OMNIBOT_SESSION_TOKEN=checkout omnibot network logs --tab-id <TAB_ID>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
If `network logs` returns an extension capability error, report that Omnibot needs the newer browser extension and fall back to `cdp Page.getNavigationHistory` plus `get url` for navigation evidence.
|
|
78
|
+
|
|
79
|
+
## Trace
|
|
80
|
+
|
|
81
|
+
Use trace for a reproducible artifact around a failing workflow.
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot trace start
|
|
85
|
+
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot click --tab-id <TAB_ID> @e4
|
|
86
|
+
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot snapshot -i --tab-id <TAB_ID>
|
|
87
|
+
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot trace stop -o trace.zip
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Trace is evidence. It does not replace operation verification.
|
|
91
|
+
|
|
92
|
+
## Record and Replay
|
|
93
|
+
|
|
94
|
+
Use record/replay when a flow must be captured or reproduced.
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot record start
|
|
98
|
+
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot click --tab-id <TAB_ID> @e4
|
|
99
|
+
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot snapshot -i --tab-id <TAB_ID>
|
|
100
|
+
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot record stop -o flow.json
|
|
101
|
+
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot replay flow.json
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
After replay, verify final state:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot get url --tab-id <TAB_ID>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## CDP Inspection
|
|
111
|
+
|
|
112
|
+
Use CDP for low-level inspection when normal evidence is insufficient.
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot cdp Runtime.evaluate '{"expression":"document.title"}' --tab-id <TAB_ID>
|
|
116
|
+
OMNIBOT_SESSION_TOKEN=debug-checkout omnibot cdp DOM.getDocument '{"depth":1}' --tab-id <TAB_ID>
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
CDP inspection is not a first-choice operation path. If CDP changes state, it becomes Tier 7 fallback and must follow `fallback-operations.md#raw-cdp-fallback`.
|
|
120
|
+
|
|
121
|
+
## Evidence Checklist
|
|
122
|
+
|
|
123
|
+
Before reporting a browser issue, collect the smallest evidence set that explains it:
|
|
124
|
+
|
|
125
|
+
- Runtime: `doctor`, `tabs`, `visibility status`.
|
|
126
|
+
- Page state: `get`, `is`, `snapshot`, or `wait`.
|
|
127
|
+
- Visual proof: `screenshot --annotate` only if visual state matters.
|
|
128
|
+
- Browser diagnostics: `console errors` and `network summary`.
|
|
129
|
+
- Reproduction artifact: `trace` or `record` when the flow is unstable.
|