@mercuryo-ai/agentbrowse 0.2.56 → 0.2.60
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/LICENSE +21 -0
- package/README.md +52 -58
- package/dist/command-name.js +1 -1
- package/dist/commands/act.d.ts.map +1 -1
- package/dist/commands/act.js +13 -5
- package/dist/commands/action-executor-helpers.d.ts.map +1 -1
- package/dist/commands/action-executor-helpers.js +10 -8
- package/dist/commands/click-activation-policy.d.ts.map +1 -1
- package/dist/commands/click-activation-policy.js +6 -2
- package/dist/commands/launch.d.ts +0 -1
- package/dist/commands/launch.d.ts.map +1 -1
- package/dist/commands/launch.js +2 -8
- package/dist/commands/observe-inventory.d.ts +5 -1
- package/dist/commands/observe-inventory.d.ts.map +1 -1
- package/dist/commands/observe-inventory.js +316 -5
- package/dist/commands/observe-persistence.d.ts.map +1 -1
- package/dist/commands/observe-persistence.js +2 -0
- package/dist/commands/observe-projection.d.ts +3 -2
- package/dist/commands/observe-projection.d.ts.map +1 -1
- package/dist/commands/observe-projection.js +1 -0
- package/dist/commands/observe-protected.d.ts +3 -1
- package/dist/commands/observe-protected.d.ts.map +1 -1
- package/dist/commands/observe-protected.js +23 -1
- package/dist/commands/observe-semantics.d.ts.map +1 -1
- package/dist/commands/observe-semantics.js +70 -0
- package/dist/commands/observe.d.ts +1 -0
- package/dist/commands/observe.d.ts.map +1 -1
- package/dist/commands/observe.js +4 -2
- package/dist/control-semantics.d.ts.map +1 -1
- package/dist/control-semantics.js +5 -0
- package/dist/date-value-normalization.d.ts +16 -0
- package/dist/date-value-normalization.d.ts.map +1 -0
- package/dist/date-value-normalization.js +117 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -24
- package/dist/library.d.ts +3 -0
- package/dist/library.d.ts.map +1 -1
- package/dist/library.js +2 -0
- package/dist/protected-fill.d.ts +3 -2
- package/dist/protected-fill.d.ts.map +1 -1
- package/dist/runtime-protected-state.d.ts.map +1 -1
- package/dist/runtime-protected-state.js +8 -1
- package/dist/runtime-state.d.ts +11 -0
- package/dist/runtime-state.d.ts.map +1 -1
- package/dist/secrets/form-matcher.d.ts +1 -2
- package/dist/secrets/form-matcher.d.ts.map +1 -1
- package/dist/secrets/form-matcher.js +125 -119
- package/dist/secrets/matching-helpers.d.ts +13 -0
- package/dist/secrets/matching-helpers.d.ts.map +1 -0
- package/dist/secrets/matching-helpers.js +147 -0
- package/dist/secrets/observed-field-resolution.d.ts +43 -0
- package/dist/secrets/observed-field-resolution.d.ts.map +1 -0
- package/dist/secrets/observed-field-resolution.js +223 -0
- package/dist/secrets/protected-field-semantics.d.ts.map +1 -1
- package/dist/secrets/protected-field-semantics.js +3 -2
- package/dist/secrets/protected-fill.d.ts +3 -1
- package/dist/secrets/protected-fill.d.ts.map +1 -1
- package/dist/secrets/protected-fill.js +31 -0
- package/dist/secrets/protected-value-adapters.d.ts.map +1 -1
- package/dist/secrets/protected-value-adapters.js +14 -22
- package/dist/secrets/types.d.ts +3 -0
- package/dist/secrets/types.d.ts.map +1 -1
- package/docs/README.md +15 -2
- package/docs/api-reference.md +13 -3
- package/docs/assistive-runtime.md +63 -7
- package/docs/configuration.md +16 -8
- package/docs/getting-started.md +17 -8
- package/docs/integration-checklist.md +8 -7
- package/docs/protected-fill.md +40 -7
- package/docs/testing.md +4 -3
- package/docs/troubleshooting.md +88 -34
- package/examples/README.md +9 -2
- package/package.json +8 -3
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) Mercuryo AI
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,32 +1,45 @@
|
|
|
1
1
|
# @mercuryo-ai/agentbrowse
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/@mercuryo-ai/agentbrowse) [](LICENSE) [](https://nodejs.org)
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
page.
|
|
5
|
+
Give your AI agent a real browser.
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
AgentBrowse is the browser layer for agent systems that need to work with real
|
|
8
|
+
web pages — launch a browser, read what's on screen, interact with it, and
|
|
9
|
+
extract structured data. Your app keeps full control of orchestration and
|
|
10
|
+
business logic; AgentBrowse handles the page.
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
- inspect the current page;
|
|
13
|
-
- interact with stable target references instead of raw selectors;
|
|
14
|
-
- extract structured data from the page;
|
|
15
|
-
- optionally use an LLM when page understanding needs help.
|
|
12
|
+
Typical workflow:
|
|
16
13
|
|
|
17
|
-
|
|
18
|
-
AgentBrowse
|
|
14
|
+
1. open a browser (or attach to an existing one) and get a `session`;
|
|
15
|
+
2. ask AgentBrowse what's on the page with `observe(...)`;
|
|
16
|
+
3. act on what you found with `act(...)`;
|
|
17
|
+
4. use `extract(...)` when you need structured data instead of an action;
|
|
18
|
+
5. close the session when you are done.
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
That shape fits naturally into a worker, backend service, CLI, or agent
|
|
21
|
+
runtime you already have.
|
|
21
22
|
|
|
22
|
-
|
|
23
|
-
2. inspect the page with `observe(...)`
|
|
24
|
-
3. use `act(...)` to interact with what you found
|
|
25
|
-
4. use `extract(...)` when you need structured data instead of an action
|
|
26
|
-
5. close the session when you are done
|
|
23
|
+
## Key Terms
|
|
27
24
|
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
Three terms come up repeatedly in the API:
|
|
26
|
+
|
|
27
|
+
- **`session`** — the handle AgentBrowse returns from `launch(...)` or
|
|
28
|
+
`attach(...)`. You pass it into every later call. A session is valid
|
|
29
|
+
only while the underlying browser connection is live; `status(session)`
|
|
30
|
+
tells you whether it still is.
|
|
31
|
+
- **`ref`** (also `targetRef`, `scopeRef`, `fillRef`) — a stable reference
|
|
32
|
+
returned by `observe(...)`. You act on references, never on raw CSS
|
|
33
|
+
selectors. **Refs are valid for the page state that produced them, not
|
|
34
|
+
forever.** Navigation, route changes, or a major DOM re-render
|
|
35
|
+
invalidate them — call `observe(...)` again to get fresh refs.
|
|
36
|
+
- **CDP** — the Chrome DevTools Protocol. Chrome, Chromium, and Playwright
|
|
37
|
+
all speak it. If a browser exposes a CDP WebSocket URL, AgentBrowse can
|
|
38
|
+
attach to it.
|
|
39
|
+
|
|
40
|
+
Optionally, AgentBrowse can call an LLM to understand pages at a higher
|
|
41
|
+
level. That layer is called the *assistive runtime* and is only required
|
|
42
|
+
for `extract(...)` and goal-driven `observe(session, goal)`.
|
|
30
43
|
|
|
31
44
|
## Install
|
|
32
45
|
|
|
@@ -34,24 +47,15 @@ agent runtime that already exists.
|
|
|
34
47
|
npm i @mercuryo-ai/agentbrowse
|
|
35
48
|
```
|
|
36
49
|
|
|
37
|
-
If you want the operator-facing CLI, install
|
|
38
|
-
|
|
39
|
-
## The Core Mental Model
|
|
50
|
+
If you want the operator-facing CLI command, install the separate global CLI
|
|
51
|
+
package:
|
|
40
52
|
|
|
41
|
-
|
|
53
|
+
```bash
|
|
54
|
+
npm i -g @mercuryo-ai/agentbrowse-cli@latest
|
|
55
|
+
```
|
|
42
56
|
|
|
43
|
-
-
|
|
44
|
-
|
|
45
|
-
and you pass it into the rest of the API.
|
|
46
|
-
- `observe`
|
|
47
|
-
Reads the page and tells you what AgentBrowse found: targets, scopes,
|
|
48
|
-
signals, and forms.
|
|
49
|
-
- `ref`
|
|
50
|
-
A stable reference returned by `observe(...)`. You use it with `act(...)`
|
|
51
|
-
instead of managing selectors yourself.
|
|
52
|
-
- `assistive runtime`
|
|
53
|
-
Optional LLM-backed page understanding. You only need it for extraction and
|
|
54
|
-
for better quality in some goal-based `observe(session, goal)` calls.
|
|
57
|
+
`@mercuryo-ai/agentbrowse` is the library package for imports. It does not
|
|
58
|
+
install the `agentbrowse` shell command.
|
|
55
59
|
|
|
56
60
|
## Quick Start
|
|
57
61
|
|
|
@@ -116,30 +120,20 @@ Runnable examples live in [`examples/`](./examples/README.md):
|
|
|
116
120
|
- `npx tsx examples/attach.ts`
|
|
117
121
|
- `npx tsx examples/extract.ts`
|
|
118
122
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
When you use `launch(...)`, the package includes `puppeteer` for the managed
|
|
122
|
-
browser connection layer with stealth evasions enabled by default.
|
|
123
|
-
|
|
124
|
-
The goal is practical: reduce unnecessary anti-bot friction such as extra
|
|
125
|
-
captcha or challenge pages on sensitive sites.
|
|
126
|
-
|
|
127
|
-
After the browser is up, the normal live browser interaction flow still runs
|
|
128
|
-
over Playwright CDP.
|
|
129
|
-
|
|
130
|
-
The library entrypoint does not load `.env` files. Environment loading is only
|
|
131
|
-
part of the CLI entrypoint.
|
|
123
|
+
The library entrypoint does not load `.env` files. Environment loading only
|
|
124
|
+
happens in the CLI entrypoint.
|
|
132
125
|
|
|
133
126
|
## Attach To An Existing Browser
|
|
134
127
|
|
|
135
|
-
If you already have a browser that exposes a CDP
|
|
136
|
-
instead of `launch(...)`.
|
|
128
|
+
If you already have a browser that exposes a CDP WebSocket URL, use
|
|
129
|
+
`attach(...)` instead of `launch(...)`.
|
|
137
130
|
|
|
138
|
-
|
|
131
|
+
Common sources of a CDP URL:
|
|
139
132
|
|
|
140
|
-
- a local Chrome or Chromium
|
|
141
|
-
- a cloud browser
|
|
142
|
-
|
|
133
|
+
- a local Chrome or Chromium started with the `--remote-debugging-port` flag;
|
|
134
|
+
- a managed cloud browser (Browserbase, Browserless, and similar) that hands
|
|
135
|
+
you a WebSocket URL;
|
|
136
|
+
- any other browser runtime Playwright can reach through CDP.
|
|
143
137
|
|
|
144
138
|
```ts
|
|
145
139
|
import { attach, observe } from '@mercuryo-ai/agentbrowse';
|
|
@@ -198,8 +192,8 @@ In practice, that mainly means:
|
|
|
198
192
|
- `extract(...)`
|
|
199
193
|
- better quality goal-based `observe(session, goal)`
|
|
200
194
|
|
|
201
|
-
The runtime
|
|
202
|
-
create an OpenAI-compatible chat-completions client.
|
|
195
|
+
The runtime interface is intentionally small: you provide an object that
|
|
196
|
+
can create an OpenAI-compatible chat-completions client.
|
|
203
197
|
|
|
204
198
|
```ts
|
|
205
199
|
// Pseudocode shape only. For a runnable fetch-based adapter, see
|
|
@@ -278,7 +272,7 @@ See:
|
|
|
278
272
|
## Testing Wrappers Around AgentBrowse
|
|
279
273
|
|
|
280
274
|
If your package wraps AgentBrowse and you want a stable test helper for the
|
|
281
|
-
assistive runtime
|
|
275
|
+
assistive runtime, use the dedicated testing subpath:
|
|
282
276
|
|
|
283
277
|
```ts
|
|
284
278
|
import {
|
package/dist/command-name.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const DEFAULT_BROWSE_COMMAND = 'agentbrowse';
|
|
2
1
|
function normalizeCommandName(value, fallback) {
|
|
3
2
|
const normalized = value?.trim().replace(/\s+/g, ' ');
|
|
4
3
|
return normalized && normalized.length > 0 ? normalized : fallback;
|
|
5
4
|
}
|
|
5
|
+
const DEFAULT_BROWSE_COMMAND = 'agentbrowse';
|
|
6
6
|
export function browseCommandName() {
|
|
7
7
|
return normalizeCommandName(process.env.AGENTBROWSE_COMMAND, DEFAULT_BROWSE_COMMAND);
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"act.d.ts","sourceRoot":"","sources":["../../src/commands/act.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"act.d.ts","sourceRoot":"","sources":["../../src/commands/act.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAgBzE,OAAO,EAIL,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AA6BtB,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA4CxF,2DAA2D;AAC3D,eAAO,MAAM,eAAe,oWAgBlB,CAAC;AAEX,uDAAuD;AACvD,eAAO,MAAM,iBAAiB,8FAMpB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5D,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE,8CAA8C;AAC9C,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG;IAC5C,OAAO,EAAE,IAAI,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF,yEAAyE;AACzE,MAAM,MAAM,yBAAyB,GAAG,qBAAqB,GAAG;IAC9D,OAAO,EAAE,KAAK,CAAC;IACf,cAAc,EAAE,UAAU,CAAC;IAC3B,KAAK,EAAE,YAAY,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC,cAAc,EAAE,eAAe,GAAG,SAAS,GAAG,aAAa,CAAC,CAAC;IAClF,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF,6EAA6E;AAC7E,MAAM,MAAM,yBAAyB,GAAG,YAAY,GAAG;IACrD,OAAO,EAAE,KAAK,CAAC;IACf,cAAc,EAAE,QAAQ,CAAC;IACzB,KAAK,EAAE,YAAY,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC,cAAc,EAAE,eAAe,GAAG,SAAS,CAAC,CAAC;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,yBAAyB,GAAG,yBAAyB,CAAC;AAErF,MAAM,MAAM,SAAS,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAmK5D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;AAC1C,YAAY,EAAE,YAAY,EAAE,CAAC;AA+Q7B,wBAAsB,UAAU,CAC9B,OAAO,EAAE,qBAAqB,EAC9B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EACpB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,CAAC,CAu2BpB;AAED,wBAAsB,GAAG,CACvB,OAAO,EAAE,qBAAqB,EAC9B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EACpB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAaf"}
|
package/dist/commands/act.js
CHANGED
|
@@ -5,7 +5,7 @@ import { saveSession } from '../session.js';
|
|
|
5
5
|
import { getSurface, getTarget, markTargetLifecycle, setTargetAvailability, updateTarget, } from '../runtime-state.js';
|
|
6
6
|
import { incrementMetric, recordActionResult } from '../runtime-metrics.js';
|
|
7
7
|
import { bumpPageScopeEpoch, registerPage, setCurrentPage } from '../runtime-page-state.js';
|
|
8
|
-
import { clearProtectedExposure, getProtectedExposure } from '../runtime-protected-state.js';
|
|
8
|
+
import { clearProtectedExposure, getProtectedExposure, markFillableFormsAbsentForPage, } from '../runtime-protected-state.js';
|
|
9
9
|
import { outputContractFailure, outputFailure, outputJSON, } from '../output.js';
|
|
10
10
|
import { captureDiagnosticSnapshotBestEffort, finishDiagnosticStepBestEffort, recordDiagnosticArtifactManifestBestEffort, recordCommandLifecycleEventBestEffort, startDiagnosticStep, } from '../diagnostics.js';
|
|
11
11
|
import { capturePageObservation, captureLocatorContextHash, captureLocatorState, createAcceptanceProbe, diagnoseNoObservableProgress, genericClickObservationChanged, locatorStateChanged, pageObservationChanged, shouldVerifyObservableProgress, waitForAcceptanceProbe, } from './action-acceptance.js';
|
|
@@ -862,6 +862,7 @@ export async function actBrowser(session, targetRef, action, value) {
|
|
|
862
862
|
currentPageRef = target.pageRef;
|
|
863
863
|
if (startingPageUrl && syncedPage.url && syncedPage.url !== startingPageUrl) {
|
|
864
864
|
clearProtectedExposure(session, target.pageRef);
|
|
865
|
+
markFillableFormsAbsentForPage(session, target.pageRef);
|
|
865
866
|
}
|
|
866
867
|
const progressProbeForVerification = progressProbe;
|
|
867
868
|
if (progressProbeForVerification) {
|
|
@@ -869,9 +870,18 @@ export async function actBrowser(session, targetRef, action, value) {
|
|
|
869
870
|
const acceptance = await waitForAcceptanceProbe(finalProgressProbe);
|
|
870
871
|
const afterPageObservation = acceptance.afterPageObservation;
|
|
871
872
|
const accepted = acceptance.accepted;
|
|
873
|
+
const submitResolution = finalProgressProbe.policy === 'submit'
|
|
874
|
+
? await resolveSubmitResult(finalProgressProbe, afterPageObservation)
|
|
875
|
+
: null;
|
|
872
876
|
if (acceptance.polls > 1) {
|
|
873
877
|
attempts.push(`acceptance.polled:${acceptance.polls}`);
|
|
874
878
|
}
|
|
879
|
+
if (submitResolution?.finalVerdict === 'blocked') {
|
|
880
|
+
attempts.push(`acceptance.failed:${finalProgressProbe.policy}`);
|
|
881
|
+
noProgressObservations = await diagnoseNoObservableProgress(page, finalProgressProbe.locator);
|
|
882
|
+
attempts.push('submit-resolution:blocked');
|
|
883
|
+
throw new Error('validation_blocked');
|
|
884
|
+
}
|
|
875
885
|
if (!accepted) {
|
|
876
886
|
if (finalProgressProbe.policy === 'value-change') {
|
|
877
887
|
attempts.push(`acceptance.failed:${finalProgressProbe.policy}`);
|
|
@@ -883,8 +893,7 @@ export async function actBrowser(session, targetRef, action, value) {
|
|
|
883
893
|
attempts.push(`acceptance.failed:${finalProgressProbe.policy}`);
|
|
884
894
|
throw new Error(`action_postcondition_failed:${finalProgressProbe.policy}`);
|
|
885
895
|
}
|
|
886
|
-
if (finalProgressProbe.policy === 'submit') {
|
|
887
|
-
const submitResolution = await resolveSubmitResult(finalProgressProbe, afterPageObservation);
|
|
896
|
+
if (finalProgressProbe.policy === 'submit' && submitResolution) {
|
|
888
897
|
if (submitResolution.acceptAsProgress) {
|
|
889
898
|
attempts.push(`submit-resolution:${submitResolution.finalVerdict}`);
|
|
890
899
|
if (submitResolution.claims.some((claim) => claim.kind === 'soft_result_candidate')) {
|
|
@@ -894,8 +903,7 @@ export async function actBrowser(session, targetRef, action, value) {
|
|
|
894
903
|
else {
|
|
895
904
|
attempts.push(`acceptance.failed:${finalProgressProbe.policy}`);
|
|
896
905
|
noProgressObservations = await diagnoseNoObservableProgress(page, finalProgressProbe.locator);
|
|
897
|
-
if (
|
|
898
|
-
hasValidationBlockedObservations(noProgressObservations)) {
|
|
906
|
+
if (hasValidationBlockedObservations(noProgressObservations)) {
|
|
899
907
|
attempts.push('submit-resolution:blocked');
|
|
900
908
|
throw new Error('validation_blocked');
|
|
901
909
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-executor-helpers.d.ts","sourceRoot":"","sources":["../../src/commands/action-executor-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"action-executor-helpers.d.ts","sourceRoot":"","sources":["../../src/commands/action-executor-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAiBrD,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAC9C,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAgB7C,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAWpE;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAqB7F;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC,CAsCf;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC,CAOjB;AA6GD,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAE/E;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC;IACT,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC,CAqBD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,kBAAkB,EAAE,MAAM,GAAG,IAAI,EACjC,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,CAkBR;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAarF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { inferComparableValueTypeFromFacts } from '../control-semantics.js';
|
|
2
|
+
import { normalizeStructuredDateValue } from '../date-value-normalization.js';
|
|
2
3
|
const OVERLAY_DISMISS_SELECTORS = [
|
|
3
4
|
'[aria-label="Close"]',
|
|
4
5
|
'[aria-label="Dismiss"]',
|
|
@@ -15,7 +16,6 @@ export const LOCATOR_CLICK_TIMEOUT_MS = 1_500;
|
|
|
15
16
|
export const LOCATOR_FILL_TIMEOUT_MS = 1_500;
|
|
16
17
|
const DATE_MASK_PLACEHOLDER_RE = /(?:^|\b)(?:dd|d|дд|д)\s*[./-]\s*(?:mm|m|мм|м)\s*[./-]\s*(?:yyyy|yyy|yy|y|гггг|гг|г)(?:\b|$)/i;
|
|
17
18
|
const DATE_FIELD_HINT_RE = /\b(?:birth|dob|date|dates|expire|expires|expiry|expir|bday)\b|(?:дата|рожд|срок)/i;
|
|
18
|
-
const ISO_DATE_RE = /^(\d{4})-(\d{2})-(\d{2})$/;
|
|
19
19
|
export function looksLikeOverlayInterference(error) {
|
|
20
20
|
const message = error instanceof Error ? error.message.toLowerCase() : String(error).toLowerCase();
|
|
21
21
|
return (message.includes('intercept') ||
|
|
@@ -177,18 +177,20 @@ async function readTextEntryMetadata(locator) {
|
|
|
177
177
|
};
|
|
178
178
|
}
|
|
179
179
|
function normalizeDateLikeValue(value, metadata) {
|
|
180
|
-
if (metadata.nativeDateInput) {
|
|
180
|
+
if (!metadata.nativeDateInput && !metadata.maskedDateLike) {
|
|
181
181
|
return value;
|
|
182
182
|
}
|
|
183
|
-
|
|
183
|
+
const normalizedDate = normalizeStructuredDateValue(value);
|
|
184
|
+
if (normalizedDate.kind === 'not_date_like') {
|
|
184
185
|
return value;
|
|
185
186
|
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
187
|
+
if (normalizedDate.kind === 'error') {
|
|
188
|
+
throw new Error(normalizedDate.reason);
|
|
189
|
+
}
|
|
190
|
+
if (metadata.nativeDateInput) {
|
|
191
|
+
return normalizedDate.iso;
|
|
189
192
|
}
|
|
190
|
-
|
|
191
|
-
return `${day}${metadata.dateSeparator}${month}${metadata.dateSeparator}${year}`;
|
|
193
|
+
return `${normalizedDate.day}${metadata.dateSeparator}${normalizedDate.month}${metadata.dateSeparator}${normalizedDate.year}`;
|
|
192
194
|
}
|
|
193
195
|
export async function readLocatorCurrentValue(locator) {
|
|
194
196
|
return typeof locator.inputValue === 'function' ? locator.inputValue().catch(() => '') : '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"click-activation-policy.d.ts","sourceRoot":"","sources":["../../src/commands/click-activation-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,KAAK,CAAC;AAExD,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC,EAClE,MAAM,EAAE,YAAY,GACnB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"click-activation-policy.d.ts","sourceRoot":"","sources":["../../src/commands/click-activation-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,KAAK,CAAC;AAExD,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC,EAClE,MAAM,EAAE,YAAY,GACnB,uBAAuB,CAoBzB"}
|
|
@@ -2,12 +2,16 @@ export function clickActivationStrategyForTarget(target, action) {
|
|
|
2
2
|
if (action !== 'click') {
|
|
3
3
|
return 'pointer';
|
|
4
4
|
}
|
|
5
|
+
const kind = target.kind?.trim().toLowerCase();
|
|
6
|
+
const role = target.semantics?.role?.trim().toLowerCase();
|
|
7
|
+
const presentationalAffordance = kind === 'presentation' || role === 'presentation';
|
|
8
|
+
if (presentationalAffordance) {
|
|
9
|
+
return 'dom';
|
|
10
|
+
}
|
|
5
11
|
const withinIframe = Boolean(target.framePath?.length);
|
|
6
12
|
if (!withinIframe) {
|
|
7
13
|
return 'pointer';
|
|
8
14
|
}
|
|
9
|
-
const kind = target.kind?.trim().toLowerCase();
|
|
10
|
-
const role = target.semantics?.role?.trim().toLowerCase();
|
|
11
15
|
const isTab = kind === 'tab' || role === 'tab';
|
|
12
16
|
return isTab ? 'dom' : 'pointer';
|
|
13
17
|
}
|
|
@@ -10,7 +10,6 @@ export type LaunchErrorCode = (typeof LAUNCH_ERROR_CODES)[number];
|
|
|
10
10
|
export type LaunchOutcomeType = (typeof LAUNCH_OUTCOME_TYPES)[number];
|
|
11
11
|
/** Browser launch options for AgentBrowse-managed sessions. */
|
|
12
12
|
export type LaunchOptions = {
|
|
13
|
-
compact?: boolean;
|
|
14
13
|
profile?: string;
|
|
15
14
|
headless?: boolean;
|
|
16
15
|
useProxy?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAU1F,8DAA8D;AAC9D,eAAO,MAAM,kBAAkB,oCAAqC,CAAC;AAErE,0DAA0D;AAC1D,eAAO,MAAM,oBAAoB,sBAAuB,CAAC;AAEzD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAClE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,+DAA+D;AAC/D,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wCAAwC;AACxC,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,SAAS,CAAC;IACnB,mBAAmB,EAAE,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,eAAe,CAAC;IACvB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,OAAO,EAAE,wBAAwB,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAErE,4EAA4E;AAC5E,wBAAsB,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAOtF"}
|
package/dist/commands/launch.js
CHANGED
|
@@ -8,22 +8,17 @@ import { ensureProfile } from '../solver/profile-manager.js';
|
|
|
8
8
|
import { connectPlaywright, disconnectPlaywright, syncLaunchPage } from '../playwright-runtime.js';
|
|
9
9
|
import { info } from '../output.js';
|
|
10
10
|
const DEFAULT_PROFILE = 'default';
|
|
11
|
-
const COMPACT_WINDOW = {
|
|
12
|
-
width: 1280,
|
|
13
|
-
height: 900,
|
|
14
|
-
};
|
|
15
11
|
/** Stable top-level error codes returned by `launch(...)`. */
|
|
16
12
|
export const LAUNCH_ERROR_CODES = ['browser_launch_failed'];
|
|
17
13
|
/** Stable outcome categories emitted by `launch(...)`. */
|
|
18
14
|
export const LAUNCH_OUTCOME_TYPES = ['blocked'];
|
|
19
15
|
/** Launches a managed browser session and optionally navigates to `url`. */
|
|
20
16
|
export async function launch(url, opts) {
|
|
21
|
-
const compact = opts?.compact ?? true;
|
|
22
17
|
const profileName = opts?.profile ?? DEFAULT_PROFILE;
|
|
23
18
|
const headless = opts?.headless;
|
|
24
19
|
const useProxy = opts?.useProxy ?? false;
|
|
25
20
|
const proxyOverride = opts?.proxy;
|
|
26
|
-
return launchManaged(url, profileName, headless,
|
|
21
|
+
return launchManaged(url, profileName, headless, useProxy, proxyOverride);
|
|
27
22
|
}
|
|
28
23
|
function buildLaunchFailure(err) {
|
|
29
24
|
return {
|
|
@@ -34,7 +29,7 @@ function buildLaunchFailure(err) {
|
|
|
34
29
|
reason: formatUnknownError(err),
|
|
35
30
|
};
|
|
36
31
|
}
|
|
37
|
-
async function launchManaged(url, profileName, headless,
|
|
32
|
+
async function launchManaged(url, profileName, headless, useProxy = false, proxyOverride) {
|
|
38
33
|
let session;
|
|
39
34
|
let browser = null;
|
|
40
35
|
let runtimeProxy;
|
|
@@ -55,7 +50,6 @@ async function launchManaged(url, profileName, headless, compact, useProxy = fal
|
|
|
55
50
|
headless: resolvedHeadless,
|
|
56
51
|
url,
|
|
57
52
|
cdpPort: undefined,
|
|
58
|
-
windowSize: compact ? COMPACT_WINDOW : undefined,
|
|
59
53
|
});
|
|
60
54
|
}
|
|
61
55
|
catch (err) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Frame, Locator } from 'playwright-core';
|
|
2
|
-
import type { TargetAcceptancePolicy, TargetAllowedAction, TargetAvailabilityState, TargetCapability, TargetContext, TargetContextNode, TargetControlFamily, TargetStructure, TargetValidationEvidence } from '../runtime-state.js';
|
|
2
|
+
import type { TargetAcceptancePolicy, TargetAllowedAction, TargetAvailabilityState, TargetCapability, TargetContext, TargetContextNode, TargetControlFamily, TargetSelectionState, TargetStructure, TargetValidationEvidence } from '../runtime-state.js';
|
|
3
3
|
export type DomObservedContextNode = TargetContextNode & {
|
|
4
4
|
selector?: string;
|
|
5
5
|
fallbackLabel?: string;
|
|
@@ -26,6 +26,7 @@ export type DomObservedTarget = {
|
|
|
26
26
|
autocomplete?: string;
|
|
27
27
|
ariaAutocomplete?: string;
|
|
28
28
|
validation?: TargetValidationEvidence;
|
|
29
|
+
selection?: TargetSelectionState;
|
|
29
30
|
title?: string;
|
|
30
31
|
testId?: string;
|
|
31
32
|
testIdAttribute?: 'data-testid' | 'data-test-id';
|
|
@@ -54,6 +55,7 @@ export type DomObservedTarget = {
|
|
|
54
55
|
surfaceRef?: string;
|
|
55
56
|
controlsSurfaceSelector?: string;
|
|
56
57
|
formSelector?: string;
|
|
58
|
+
pageFormSelector?: string;
|
|
57
59
|
structure?: TargetStructure;
|
|
58
60
|
ownerIndex?: number;
|
|
59
61
|
};
|
|
@@ -84,6 +86,7 @@ type DomTargetCollectionContext = {
|
|
|
84
86
|
export type FrameHostDescriptor = {
|
|
85
87
|
selector: string;
|
|
86
88
|
userVisible: boolean;
|
|
89
|
+
pageFormSelector?: string;
|
|
87
90
|
};
|
|
88
91
|
type StructuredCellVariantEvidence = {
|
|
89
92
|
role?: string;
|
|
@@ -126,6 +129,7 @@ export declare function normalizeStagehandSelector(selector: string): {
|
|
|
126
129
|
declare function collectDomTargetsFromDocument(context: DomTargetCollectionContext, options?: DomTargetCollectionOptions & {
|
|
127
130
|
framePath?: string[];
|
|
128
131
|
frameUrl?: string;
|
|
132
|
+
pageFormSelector?: string;
|
|
129
133
|
}): Promise<DomObservedTarget[]>;
|
|
130
134
|
export declare function readFrameHostDescriptor(frame: Frame): Promise<FrameHostDescriptor | null>;
|
|
131
135
|
export declare function collectDomTargets(page: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observe-inventory.d.ts","sourceRoot":"","sources":["../../src/commands/observe-inventory.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"observe-inventory.d.ts","sourceRoot":"","sources":["../../src/commands/observe-inventory.ts"],"names":[],"mappings":"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"}
|