@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.
Files changed (73) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +52 -58
  3. package/dist/command-name.js +1 -1
  4. package/dist/commands/act.d.ts.map +1 -1
  5. package/dist/commands/act.js +13 -5
  6. package/dist/commands/action-executor-helpers.d.ts.map +1 -1
  7. package/dist/commands/action-executor-helpers.js +10 -8
  8. package/dist/commands/click-activation-policy.d.ts.map +1 -1
  9. package/dist/commands/click-activation-policy.js +6 -2
  10. package/dist/commands/launch.d.ts +0 -1
  11. package/dist/commands/launch.d.ts.map +1 -1
  12. package/dist/commands/launch.js +2 -8
  13. package/dist/commands/observe-inventory.d.ts +5 -1
  14. package/dist/commands/observe-inventory.d.ts.map +1 -1
  15. package/dist/commands/observe-inventory.js +316 -5
  16. package/dist/commands/observe-persistence.d.ts.map +1 -1
  17. package/dist/commands/observe-persistence.js +2 -0
  18. package/dist/commands/observe-projection.d.ts +3 -2
  19. package/dist/commands/observe-projection.d.ts.map +1 -1
  20. package/dist/commands/observe-projection.js +1 -0
  21. package/dist/commands/observe-protected.d.ts +3 -1
  22. package/dist/commands/observe-protected.d.ts.map +1 -1
  23. package/dist/commands/observe-protected.js +23 -1
  24. package/dist/commands/observe-semantics.d.ts.map +1 -1
  25. package/dist/commands/observe-semantics.js +70 -0
  26. package/dist/commands/observe.d.ts +1 -0
  27. package/dist/commands/observe.d.ts.map +1 -1
  28. package/dist/commands/observe.js +4 -2
  29. package/dist/control-semantics.d.ts.map +1 -1
  30. package/dist/control-semantics.js +5 -0
  31. package/dist/date-value-normalization.d.ts +16 -0
  32. package/dist/date-value-normalization.d.ts.map +1 -0
  33. package/dist/date-value-normalization.js +117 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +5 -24
  36. package/dist/library.d.ts +3 -0
  37. package/dist/library.d.ts.map +1 -1
  38. package/dist/library.js +2 -0
  39. package/dist/protected-fill.d.ts +3 -2
  40. package/dist/protected-fill.d.ts.map +1 -1
  41. package/dist/runtime-protected-state.d.ts.map +1 -1
  42. package/dist/runtime-protected-state.js +8 -1
  43. package/dist/runtime-state.d.ts +11 -0
  44. package/dist/runtime-state.d.ts.map +1 -1
  45. package/dist/secrets/form-matcher.d.ts +1 -2
  46. package/dist/secrets/form-matcher.d.ts.map +1 -1
  47. package/dist/secrets/form-matcher.js +125 -119
  48. package/dist/secrets/matching-helpers.d.ts +13 -0
  49. package/dist/secrets/matching-helpers.d.ts.map +1 -0
  50. package/dist/secrets/matching-helpers.js +147 -0
  51. package/dist/secrets/observed-field-resolution.d.ts +43 -0
  52. package/dist/secrets/observed-field-resolution.d.ts.map +1 -0
  53. package/dist/secrets/observed-field-resolution.js +223 -0
  54. package/dist/secrets/protected-field-semantics.d.ts.map +1 -1
  55. package/dist/secrets/protected-field-semantics.js +3 -2
  56. package/dist/secrets/protected-fill.d.ts +3 -1
  57. package/dist/secrets/protected-fill.d.ts.map +1 -1
  58. package/dist/secrets/protected-fill.js +31 -0
  59. package/dist/secrets/protected-value-adapters.d.ts.map +1 -1
  60. package/dist/secrets/protected-value-adapters.js +14 -22
  61. package/dist/secrets/types.d.ts +3 -0
  62. package/dist/secrets/types.d.ts.map +1 -1
  63. package/docs/README.md +15 -2
  64. package/docs/api-reference.md +13 -3
  65. package/docs/assistive-runtime.md +63 -7
  66. package/docs/configuration.md +16 -8
  67. package/docs/getting-started.md +17 -8
  68. package/docs/integration-checklist.md +8 -7
  69. package/docs/protected-fill.md +40 -7
  70. package/docs/testing.md +4 -3
  71. package/docs/troubleshooting.md +88 -34
  72. package/examples/README.md +9 -2
  73. 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
- Browser automation library for agent systems.
3
+ [![npm version](https://img.shields.io/npm/v/@mercuryo-ai/agentbrowse)](https://www.npmjs.com/package/@mercuryo-ai/agentbrowse) [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Node.js >= 18](https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg)](https://nodejs.org)
4
4
 
5
- AgentBrowse is for the part of your system that has to work with a real web
6
- page.
5
+ Give your AI agent a real browser.
7
6
 
8
- If your application already knows what it is trying to do, AgentBrowse gives
9
- you the browser layer for that work:
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
- - launch a managed browser or attach to an existing CDP browser session;
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
- Your app keeps control of orchestration, state, policies, and business logic.
18
- AgentBrowse focuses on the page itself.
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
- A good first way to think about it is:
20
+ That shape fits naturally into a worker, backend service, CLI, or agent
21
+ runtime you already have.
21
22
 
22
- 1. launch a browser or attach to one and get a `session`
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
- This makes AgentBrowse fit naturally into a worker, backend service, CLI, or
29
- agent runtime that already exists.
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 `@mercuryo-ai/agentbrowse-cli`.
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
- There are four ideas you need to understand before using the library:
53
+ ```bash
54
+ npm i -g @mercuryo-ai/agentbrowse-cli@latest
55
+ ```
42
56
 
43
- - `session`
44
- The handle for a running browser. `launch(...)` or `attach(...)` returns it,
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
- ## Managed Launch Runtime Note
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 websocket, use `attach(...)`
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
- That works for:
131
+ Common sources of a CDP URL:
139
132
 
140
- - a local Chrome or Chromium process started with remote debugging enabled;
141
- - a cloud browser session that gives you a CDP websocket URL;
142
- - any other browser runtime that Playwright can reach through CDP.
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 contract is intentionally small: you provide an object that can
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 contract, use the dedicated testing subpath:
275
+ assistive runtime, use the dedicated testing subpath:
282
276
 
283
277
  ```ts
284
278
  import {
@@ -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;AAYzE,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,CAg2BpB;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"}
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"}
@@ -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 (submitResolution.finalVerdict === 'blocked' ||
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;AAgBrD,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAC9C,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAkB7C,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;AA2GD,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
+ {"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
- if (!metadata.maskedDateLike) {
183
+ const normalizedDate = normalizeStructuredDateValue(value);
184
+ if (normalizedDate.kind === 'not_date_like') {
184
185
  return value;
185
186
  }
186
- const isoMatch = value.match(ISO_DATE_RE);
187
- if (!isoMatch) {
188
- return value;
187
+ if (normalizedDate.kind === 'error') {
188
+ throw new Error(normalizedDate.reason);
189
+ }
190
+ if (metadata.nativeDateInput) {
191
+ return normalizedDate.iso;
189
192
  }
190
- const [, year, month, day] = isoMatch;
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,CAezB"}
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;AAc1F,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,OAAO,CAAC;IAClB,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,CAQtF"}
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"}
@@ -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, compact, useProxy, proxyOverride);
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, compact, useProxy = false, proxyOverride) {
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":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACzB,MAAM,qBAAqB,CAAC;AAe7B,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,GAAG;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,IAAI,CACzC,aAAa,EACb,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,CAC5C,GAAG;IACF,IAAI,CAAC,EAAE,sBAAsB,CAAC;IAC9B,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B,SAAS,CAAC,EAAE,sBAAsB,CAAC;IACnC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,aAAa,GAAG,cAAc,CAAC;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,wBAAwB,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,cAAc,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACvC,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;CACpD,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,QAAQ,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,KAAK,6BAA6B,GAAG;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;AAE5F,MAAM,MAAM,kCAAkC,GAAG;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,kCAAkC,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAIF,wBAAgB,sCAAsC,CACpD,QAAQ,EAAE,6BAA6B,GACtC,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAyCrD;AAED,wBAAgB,2CAA2C,CACzD,QAAQ,EAAE,kCAAkC,GAC3C,MAAM,GAAG,SAAS,CAuCpB;AAED,wBAAgB,sCAAsC,CACpD,QAAQ,EAAE,6BAA6B,GACtC,OAAO,CAwCT;AAyND,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,wBAAwB,CAAC,CAuBnC;AAkED,iBAAS,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB,GAAG,IAAI,CAElF;AAED,iBAAe,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAOxF;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAyBA;AAED,iBAAe,6BAA6B,CAC1C,OAAO,EAAE,0BAA0B,EACnC,OAAO,CAAC,EAAE,0BAA0B,GAAG;IACrC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAqzF9B;AA6MD,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CA0B/F;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE;IACJ,QAAQ,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,KAAK,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB,EACD,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAqD9B;AAED,eAAO,MAAM,yBAAyB;;;;;CAKrC,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;CAKrC,CAAC"}
1
+ {"version":3,"file":"observe-inventory.d.ts","sourceRoot":"","sources":["../../src/commands/observe-inventory.ts"],"names":[],"mappings":"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"}