@trusty-squire/mcp 1.1.16-rc.3 → 1.1.16-rc.5

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 (175) hide show
  1. package/README.md +42 -13
  2. package/dist/bot/act/act.d.ts +20 -2
  3. package/dist/bot/act/act.d.ts.map +1 -1
  4. package/dist/bot/act/act.js +332 -21
  5. package/dist/bot/act/act.js.map +1 -1
  6. package/dist/bot/act/identity.d.ts +64 -0
  7. package/dist/bot/act/identity.d.ts.map +1 -0
  8. package/dist/bot/act/identity.js +198 -0
  9. package/dist/bot/act/identity.js.map +1 -0
  10. package/dist/bot/act/targets.d.ts +4 -0
  11. package/dist/bot/act/targets.d.ts.map +1 -1
  12. package/dist/bot/act/targets.js +6 -0
  13. package/dist/bot/act/targets.js.map +1 -1
  14. package/dist/bot/broker/discovery.d.ts +7 -0
  15. package/dist/bot/broker/discovery.d.ts.map +1 -1
  16. package/dist/bot/broker/discovery.js +10 -0
  17. package/dist/bot/broker/discovery.js.map +1 -1
  18. package/dist/bot/broker/forwarder.d.ts.map +1 -1
  19. package/dist/bot/broker/forwarder.js +70 -4
  20. package/dist/bot/broker/forwarder.js.map +1 -1
  21. package/dist/bot/broker/operator.d.ts.map +1 -1
  22. package/dist/bot/broker/operator.js +15 -5
  23. package/dist/bot/broker/operator.js.map +1 -1
  24. package/dist/bot/broker/protocol.d.ts +9 -12
  25. package/dist/bot/broker/protocol.d.ts.map +1 -1
  26. package/dist/bot/browser-process-owner.d.ts.map +1 -1
  27. package/dist/bot/browser-process-owner.js +16 -3
  28. package/dist/bot/browser-process-owner.js.map +1 -1
  29. package/dist/bot/browser.d.ts +28 -1
  30. package/dist/bot/browser.d.ts.map +1 -1
  31. package/dist/bot/browser.js +264 -44
  32. package/dist/bot/browser.js.map +1 -1
  33. package/dist/bot/captcha-solve.d.ts +13 -2
  34. package/dist/bot/captcha-solve.d.ts.map +1 -1
  35. package/dist/bot/captcha-solve.js +135 -62
  36. package/dist/bot/captcha-solve.js.map +1 -1
  37. package/dist/bot/captcha.d.ts +46 -0
  38. package/dist/bot/captcha.d.ts.map +1 -1
  39. package/dist/bot/captcha.js +368 -52
  40. package/dist/bot/captcha.js.map +1 -1
  41. package/dist/bot/capture/capture.d.ts +1 -0
  42. package/dist/bot/capture/capture.d.ts.map +1 -1
  43. package/dist/bot/capture/capture.js +10 -1
  44. package/dist/bot/capture/capture.js.map +1 -1
  45. package/dist/bot/capture/verification.d.ts +89 -3
  46. package/dist/bot/capture/verification.d.ts.map +1 -1
  47. package/dist/bot/capture/verification.js +328 -41
  48. package/dist/bot/capture/verification.js.map +1 -1
  49. package/dist/bot/card-value-output-mask.d.ts +10 -0
  50. package/dist/bot/card-value-output-mask.d.ts.map +1 -1
  51. package/dist/bot/card-value-output-mask.js +43 -1
  52. package/dist/bot/card-value-output-mask.js.map +1 -1
  53. package/dist/bot/checkout-total.d.ts +26 -0
  54. package/dist/bot/checkout-total.d.ts.map +1 -0
  55. package/dist/bot/checkout-total.js +310 -0
  56. package/dist/bot/checkout-total.js.map +1 -0
  57. package/dist/bot/compact-observation-v2.d.ts +2 -1
  58. package/dist/bot/compact-observation-v2.d.ts.map +1 -1
  59. package/dist/bot/compact-observation-v2.js +14 -4
  60. package/dist/bot/compact-observation-v2.js.map +1 -1
  61. package/dist/bot/display-env.d.ts +6 -0
  62. package/dist/bot/display-env.d.ts.map +1 -0
  63. package/dist/bot/display-env.js +56 -0
  64. package/dist/bot/display-env.js.map +1 -0
  65. package/dist/bot/drive-act.d.ts +49 -0
  66. package/dist/bot/drive-act.d.ts.map +1 -0
  67. package/dist/bot/drive-act.js +477 -0
  68. package/dist/bot/drive-act.js.map +1 -0
  69. package/dist/bot/drive-evaluate.d.ts +11 -0
  70. package/dist/bot/drive-evaluate.d.ts.map +1 -0
  71. package/dist/bot/drive-evaluate.js +62 -0
  72. package/dist/bot/drive-evaluate.js.map +1 -0
  73. package/dist/bot/drive-feedback.d.ts +56 -0
  74. package/dist/bot/drive-feedback.d.ts.map +1 -0
  75. package/dist/bot/drive-feedback.js +151 -0
  76. package/dist/bot/drive-feedback.js.map +1 -0
  77. package/dist/bot/drive-snapshot.d.ts +84 -0
  78. package/dist/bot/drive-snapshot.d.ts.map +1 -0
  79. package/dist/bot/drive-snapshot.js +964 -0
  80. package/dist/bot/drive-snapshot.js.map +1 -0
  81. package/dist/bot/google-login.d.ts +22 -5
  82. package/dist/bot/google-login.d.ts.map +1 -1
  83. package/dist/bot/google-login.js +126 -66
  84. package/dist/bot/google-login.js.map +1 -1
  85. package/dist/bot/jev-client.d.ts +4 -4
  86. package/dist/bot/jev-client.d.ts.map +1 -1
  87. package/dist/bot/jev-client.js +8 -4
  88. package/dist/bot/jev-client.js.map +1 -1
  89. package/dist/bot/oauth-login.d.ts.map +1 -1
  90. package/dist/bot/oauth-login.js +3 -4
  91. package/dist/bot/oauth-login.js.map +1 -1
  92. package/dist/bot/observe/observe.d.ts +1 -2
  93. package/dist/bot/observe/observe.d.ts.map +1 -1
  94. package/dist/bot/observe/observe.js +47 -36
  95. package/dist/bot/observe/observe.js.map +1 -1
  96. package/dist/bot/operate-drive.d.ts +721 -0
  97. package/dist/bot/operate-drive.d.ts.map +1 -0
  98. package/dist/bot/operate-drive.js +5813 -0
  99. package/dist/bot/operate-drive.js.map +1 -0
  100. package/dist/bot/profile.d.ts +1 -0
  101. package/dist/bot/profile.d.ts.map +1 -1
  102. package/dist/bot/profile.js +1 -1
  103. package/dist/bot/profile.js.map +1 -1
  104. package/dist/bot/provision-session.d.ts +2 -2
  105. package/dist/bot/provision-session.d.ts.map +1 -1
  106. package/dist/bot/provision-session.js +3 -3
  107. package/dist/bot/provision-session.js.map +1 -1
  108. package/dist/bot/remote-login-display.d.ts +5 -1
  109. package/dist/bot/remote-login-display.d.ts.map +1 -1
  110. package/dist/bot/remote-login-display.js +34 -4
  111. package/dist/bot/remote-login-display.js.map +1 -1
  112. package/dist/bot/request-cancellation.d.ts +4 -0
  113. package/dist/bot/request-cancellation.d.ts.map +1 -1
  114. package/dist/bot/request-cancellation.js +29 -0
  115. package/dist/bot/request-cancellation.js.map +1 -1
  116. package/dist/bot/session/lifecycle.d.ts +14 -4
  117. package/dist/bot/session/lifecycle.d.ts.map +1 -1
  118. package/dist/bot/session/lifecycle.js +62 -69
  119. package/dist/bot/session/lifecycle.js.map +1 -1
  120. package/dist/bot/session/model.d.ts +130 -0
  121. package/dist/bot/session/model.d.ts.map +1 -1
  122. package/dist/bot/session/model.js +20 -0
  123. package/dist/bot/session/model.js.map +1 -1
  124. package/dist/bot/skill-hint.d.ts +1 -2
  125. package/dist/bot/skill-hint.d.ts.map +1 -1
  126. package/dist/bot/skill-hint.js +9 -20
  127. package/dist/bot/skill-hint.js.map +1 -1
  128. package/dist/install/cli.d.ts +5 -44
  129. package/dist/install/cli.d.ts.map +1 -1
  130. package/dist/install/cli.js +295 -166
  131. package/dist/install/cli.js.map +1 -1
  132. package/dist/install/connect-report.d.ts +155 -0
  133. package/dist/install/connect-report.d.ts.map +1 -0
  134. package/dist/install/connect-report.js +286 -0
  135. package/dist/install/connect-report.js.map +1 -0
  136. package/dist/install/version-check.d.ts +2 -0
  137. package/dist/install/version-check.d.ts.map +1 -1
  138. package/dist/install/version-check.js +5 -2
  139. package/dist/install/version-check.js.map +1 -1
  140. package/dist/pairing-ttl.d.ts +4 -0
  141. package/dist/pairing-ttl.d.ts.map +1 -0
  142. package/dist/pairing-ttl.js +14 -0
  143. package/dist/pairing-ttl.js.map +1 -0
  144. package/dist/tools/index.d.ts +2 -0
  145. package/dist/tools/index.d.ts.map +1 -1
  146. package/dist/tools/index.js.map +1 -1
  147. package/dist/tools/inject-card.d.ts +10 -1
  148. package/dist/tools/inject-card.d.ts.map +1 -1
  149. package/dist/tools/inject-card.js +74 -72
  150. package/dist/tools/inject-card.js.map +1 -1
  151. package/dist/tools/provision-drive.d.ts +46 -0
  152. package/dist/tools/provision-drive.d.ts.map +1 -1
  153. package/dist/tools/provision-drive.js +118 -13
  154. package/dist/tools/provision-drive.js.map +1 -1
  155. package/package.json +3 -1
  156. package/dist/bot/credential-extraction-flow.d.ts +0 -68
  157. package/dist/bot/credential-extraction-flow.d.ts.map +0 -1
  158. package/dist/bot/credential-extraction-flow.js +0 -498
  159. package/dist/bot/credential-extraction-flow.js.map +0 -1
  160. package/dist/bot/failure-stage.d.ts +0 -11
  161. package/dist/bot/failure-stage.d.ts.map +0 -1
  162. package/dist/bot/failure-stage.js +0 -95
  163. package/dist/bot/failure-stage.js.map +0 -1
  164. package/dist/bot/oauth-detect.d.ts +0 -8
  165. package/dist/bot/oauth-detect.d.ts.map +0 -1
  166. package/dist/bot/oauth-detect.js +0 -328
  167. package/dist/bot/oauth-detect.js.map +0 -1
  168. package/dist/bot/provision-types.d.ts +0 -72
  169. package/dist/bot/provision-types.d.ts.map +0 -1
  170. package/dist/bot/provision-types.js +0 -9
  171. package/dist/bot/provision-types.js.map +0 -1
  172. package/dist/bot/semantic-transition.d.ts +0 -66
  173. package/dist/bot/semantic-transition.d.ts.map +0 -1
  174. package/dist/bot/semantic-transition.js +0 -361
  175. package/dist/bot/semantic-transition.js.map +0 -1
package/README.md CHANGED
@@ -85,9 +85,9 @@ operator does not add a broad secret scanner or claim to defeat that page.
85
85
  npx @trusty-squire/mcp connect
86
86
  ```
87
87
 
88
- `connect` signs you in with Google or GitHub, detects your coding agent, and merges the `squire` MCP server into its existing configuration. On an enrolled machine, sign-in opens a tab in Trusty Squire's shared browser. Its private Linux display is shown through a single-use noVNC URL printed during the ceremony; open that URL on another device. The URL shows and controls the whole shared browser display, including other sessions' tabs, until the ceremony ends. The shared-browser path has no macOS or Windows local-window exposure today; if the display cannot be shown, connect stops with an explanation instead of waiting indefinitely. On a first connect where no broker can serve, connect launches its own sign-in browser, using a visible desktop when available or a login-scoped Xvfb + noVNC stack on headless Linux (including SSH/TTY sessions with an inherited virtual display).
88
+ `connect` signs you in with Google or GitHub, detects your coding agent, and merges the `squire` MCP server into its existing configuration. On an enrolled machine, sign-in opens a tab in Trusty Squire's shared browser. When that browser is on the machine's own screen and you are running `connect` there, you finish sign-in in the window in front of you — no URL and no virtual display. Otherwise — the shared browser started without a screen and sits on a private Linux display, or you are running `connect` over SSH or a TTY with no screen of your own — the ceremony prints a single-use noVNC URL; open that URL on another device. The URL shows and controls the whole display that browser runs on until the ceremony ends: other sessions' tabs, and on a machine with its own screen, everything else on that screen. macOS and Windows draw their windows natively, so the shared browser's tab is on the screen in front of you there and nothing is exposed over noVNC. If the display cannot be shown, connect stops with an explanation instead of waiting indefinitely. On a first connect where no broker can serve, connect launches its own sign-in browser, using a visible desktop when one still answers or a login-scoped Xvfb + noVNC stack on headless Linux (including SSH/TTY sessions with an inherited virtual display, and a display that has stopped answering since startup).
89
89
 
90
- Ceremony completion, timeout, failure, or interruption tears down its quick tunnel and local exposure helpers. The shared browser and its display remain with the broker; a self-launched ceremony also closes its own browser and display. Operators may set both `TS_LOGIN_PUBLIC_HOSTNAME` and `TS_LOGIN_LOCAL_PORT` to reuse an externally managed named tunnel, which Trusty Squire never creates or stops. If that fixed local port is busy, login reports it and uses a one-off quick tunnel instead. Restart the agent and ask for the finished website outcome. Trusty Squire is free to start.
90
+ Ceremony completion, timeout, failure, or interruption tears down its quick tunnel and local exposure helpers. Those helpers also hold a bound of their own — the sign-in link's lifetime plus a short grace, counted from the moment they are stood up — so a `connect` that is abandoned, wedged, or never waits still tears the display down and exits non-zero instead of leaving a tunnel published. The shared browser and its display remain with the broker; a self-launched ceremony also closes its own browser and display. Operators may set both `TS_LOGIN_PUBLIC_HOSTNAME` and `TS_LOGIN_LOCAL_PORT` to reuse an externally managed named tunnel, which Trusty Squire never creates or stops. If that fixed local port is busy, login reports it and uses a one-off quick tunnel instead. Restart the agent and ask for the finished website outcome. Trusty Squire is free to start.
91
91
 
92
92
  `connect` is also the only way to sign in again: `--force-relogin` switches the bound account and `--force-relogin=google` or `--force-relogin=github` refreshes one provider session. It re-checks provider sessions before reporting success; when the shared browser keeps the profile busy, that check uses committed cookies, which can outlive a server-side session. Use `--force-relogin` to refresh a stale session. The detailed [provider-probe and ceremony contract](docs/browser-broker.md) describes completion and failure handling.
93
93
 
@@ -104,6 +104,31 @@ To choose a target explicitly:
104
104
  npx @trusty-squire/mcp connect --target=codex
105
105
  ```
106
106
 
107
+ Callers that must not parse English can pass `--json`. Connect then writes **newline-delimited JSON** to stdout: one complete, self-sufficient report per line, written whenever the run's answer changes, and the last line carries `"terminal": true`. Read lines, not prose — connect blocks for minutes waiting on a human, and the line that names the live sign-in URL goes out *before* that wait begins rather than after it. Human output stays on stderr, and `--json` implies `--no-interactive` so the picker never draws on the machine channel. A first-time install has no MCP session yet, so this flag is the machine contract — not a server tool.
108
+
109
+ ```bash
110
+ npx @trusty-squire/mcp connect --json --target=codex
111
+ ```
112
+
113
+ Every exit path answers, including a run that fails before it resolves a target, so the machine channel is never empty and always ends. Each line is a connect report (it carries `state`) unless connect refused the arguments, in which case the one line is `{"error":"usage","message":"…"}` and the exit code is 64 — a rejected flag is not a connection state.
114
+
115
+ Each report carries seven fields:
116
+
117
+ - `terminal` — `false` while the run is still going, `true` on the line that ends it. Exactly one line per run is terminal, and it is the last one.
118
+
119
+ - `state` — one of four:
120
+ - `connected` — the bot's Chrome profile carries a Google session bound to your account. `account` is set. `reason: null` means a post-ceremony provider probe said so; `reason: "cached_cookie_evidence"` means the no-ceremony fast path read the profile's cookie store and opened nothing, so the session is present but not proven live.
121
+ - `needs-sign-in` — a sign-in is outstanding **and Squire holds its live URL**. `sign_in_url` is always a string here; this is the only state that promises one. Non-terminal lines in this state are how a caller gets that URL, and the browser's placement, while both still reach something.
122
+ - `busy` — Squire could not read or use the bot profile to answer, including a ceremony refused because another session holds the browser (the profile gate's refusal, or a resident broker declining to yield). `holder` says who has it. A broker that died mid-ceremony is not this — that is the run failing, and it reports `no-browser` with `reason: "run_failed"`.
123
+ - `no-browser` — no browser here is signed in the way this install needs. `reason` names the cause: the sign-in happened outside Squire's browser or the ceremony ended without the session the operator needs (`provider_session_missing`), the scoped provider refresh you asked for did not land (`requested_provider_missing`), the sign-in returned a different account (`account_mismatch`), the link lapsed (`install_expired`), or the run failed before it could settle (`run_failed`). The one cause with `reason: null` — "nothing here could be shown the page" — is named by `browser_location: {kind:"unreachable"}` instead.
124
+ - `sign_in_url` — the one sign-in URL, or `null`. Always a string when `state` is `needs-sign-in`; a `no-browser` run may also carry one when the install is still open but nothing here could show it.
125
+ - `account` — `{ id, providers }` whenever the run proved which account this machine is bound to, which is not only when it ends `connected`: a `no-browser` run whose provider session or scoped refresh missed, and a `busy` run whose stored session names an account, both carry it. `null` when the run never proved a binding. `account.providers` lists only the provider sessions actually observed: `[]` means the profile was read and held none, and `null` means the probe could not read it at all — so treat `null` as "unknown", never as "none".
126
+ - `holder` — who holds the bot profile, as read: `{kind:"none"}`, `{kind:"other",code:"singleton_lock"|"operation_lease",pid}`, or `{kind:"unknown",reason:"cross_host"}`. `singleton_lock` is a live Chrome on the profile that this run did not launch — its own ceremony window is never reported as a holder; `operation_lease` is another Squire run that claimed it for work (a `--force-relogin` wipe holds the lease with no browser running). A lock left behind by a dead process is `none`, not a holder, and `busy` with `holder:{kind:"none"}` means nothing holds the profile — Squire just could not verify it (see `reason`).
127
+ - `browser_location` — where the ceremony browser actually opened, reported by the code that placed it: `{kind:"host_screen",display?}` (the screen you are at), `{kind:"virtual",url}` (a display nobody is sitting at — `url` is the noVNC address that reaches it, reported on a non-terminal line the moment the browser lands there, while the tunnel is up), `{kind:"unreachable",reason}` (nothing here could be shown the page — also the answer when a ceremony ran but no path ever reported a placement, with `reason` naming the failure), `{kind:"none"}` (no browser was opened), or `{kind:"unknown",reason}` (a browser opened that Squire did not place — `--skip-browser` hands the link to the machine's default browser). Squire decides this; callers do not detect screens.
128
+ - `reason` — only what the five fields above cannot say: `provider_session_missing`, `requested_provider_missing`, `account_mismatch`, `profile_unverifiable`, `install_expired`, `cached_cookie_evidence`, `run_failed`. `null` otherwise.
129
+
130
+ Connect never waits longer than the sign-in link lives — the wait is the link's lifetime counted from the moment connect received it, so a skewed machine clock cannot shorten or overrun it. A `sign_in_url` it hands back is still open; a wait that reached that deadline, or a link the server reported lapsed, is `no-browser` with `reason: "install_expired"` and no URL at all. A ceremony display that outlives its own bound answers the same way, on a terminal line written before connect exits — so a run that wedged before it ever reached that wait still ends the machine channel.
131
+
107
132
  Supported targets: `claude-code`, `cursor`, `codex`, `opencode`, `goose`, `cline`, `continue`, and `hermes`.
108
133
 
109
134
  The isolated `operate_*` browser runtime currently requires Linux and a local Chrome connection;
@@ -165,6 +190,12 @@ grant; host scoping, auditing, and revocation still apply. When a grant reaches
165
190
  an explicit hourly limit, the proxy returns `429 rate_limited` with
166
191
  `scope: "grant"`, `Retry-After`, and window/reset metadata.
167
192
 
193
+ The proxy passes the provider's response through as it arrives and forwards the
194
+ upstream response headers (cookies, hop-by-hop headers, and the upstream
195
+ content-length removed), so a streaming completion — `stream: true`,
196
+ `text/event-stream` — reaches the app event by event rather than in one block
197
+ once generation has finished. The body is not buffered and carries no size cap.
198
+
168
199
  The result contains a host-scoped egress `base_url` and a `token`, not the Clerk secret key. The token is returned once through the MCP result and remains valid until revoked. That means the scoped grant token can enter agent context; it is not the provider key. Move it directly into backend-only deployment secret storage, never browser code, logs, or source control. If you need zero grant-token exposure to the model, use `use_credential` for agent-initiated requests instead. Trusty Squire removes the grant authorization at the boundary and injects the vaulted provider credential into the upstream request.
169
200
 
170
201
  ## Security and threat model
@@ -198,15 +229,9 @@ for the system and data flows.
198
229
 
199
230
  ## MCP tools
200
231
 
201
- The default MCP registry exposes 29 tools (31 when maintainer diagnostics are
202
- enabled). The 20-tool operator driving surface uses flat, single-purpose verbs:
203
- `operate_start`, `operate_finish`, `operate_observe`, `operate_screenshot`,
204
- `operate_network`, `operate_navigate`, `operate_click`, `operate_type`, `operate_select`,
205
- `operate_press`, `operate_scroll`, `operate_wait`, `operate_read_inbox`, `operate_login`,
206
- `operate_fill_credential`, `operate_extract`, `inject_card`, `list_credentials`,
207
- `list_payment_cards`, and `edit_payment_card`.
208
- Recipe and vault/account tools remain separate surfaces. The complete migration
209
- table and input contracts are in [operator-tool-surface.md](docs/operator-tool-surface.md).
232
+ Discover the installed tool inventory and schemas with `tools/list`. For the
233
+ operator surface and input contracts, see
234
+ [operator-tool-surface.md](docs/operator-tool-surface.md).
210
235
  The evidence required to qualify an operator build is in
211
236
  [operator-acceptance-runbook.md](docs/operator-acceptance-runbook.md).
212
237
  Continue a pending card release by re-calling `inject_card` with its returned
@@ -220,7 +245,7 @@ For controls visible only in the image, see
220
245
  The maintainer-only `list_extract_failures` → `get_extract_failure`
221
246
  DOM-diagnostics pair is excluded from that surface; set
222
247
  `TRUSTY_SQUIRE_DIAGNOSTICS=1` in the MCP server environment to opt into the
223
- 22-tool diagnostics profile.
248
+ diagnostics profile.
224
249
 
225
250
  Operate sessions default to `format:"compact"` observations: a bounded,
226
251
  paged `browser-use-control-query` control map containing every actionable
@@ -246,7 +271,11 @@ in [browser-use-serializer-port.md](docs/browser-use-serializer-port.md).
246
271
  `server_unavailable` includes `retry.max_attempts: 1`: retry once, and never
247
272
  kill or restart the shared operator process.
248
273
  - `operate_start` opens a scoped website session and `operate_observe` reads its
249
- current state. Drive ordinary controls with `operate_click`, `operate_type`,
274
+ current state. For a signup, checkout, or other goal-shaped task, call
275
+ `operate_drive` with the goal and facts (or pass `url` to open and drive in
276
+ one call) instead of planning each click and type yourself; resume that
277
+ session with `answer` and/or added facts if it hands back. Drive ordinary
278
+ controls with `operate_click`, `operate_type`,
250
279
  `operate_select`, `operate_press`, and `operate_scroll`; use
251
280
  `operate_navigate` for scoped navigation. Acting tools target a current `ref`.
252
281
  `operate_type` accepts either literal `text` or a protected session `slot`,
@@ -5,6 +5,18 @@ import { type ObserveDetail } from "../observe/observe.js";
5
5
  import { type CompactV2TargetAuthorization } from "./targets.js";
6
6
  import type { Observation, ProvisionAction } from "../provision-session.js";
7
7
  import type { Session } from "../session/model.js";
8
+ export type ActExecutorOptions = {
9
+ drive?: boolean;
10
+ };
11
+ export type DriveActResult = {
12
+ kind: "ok";
13
+ combobox: boolean;
14
+ } | {
15
+ kind: "stale";
16
+ reason: string;
17
+ } | {
18
+ kind: "unsupported";
19
+ };
8
20
  export declare function runSerializedGoogleIdentityOperation<T>(session: Session, operation: (browser: BrowserController) => Promise<T>, options?: {
9
21
  deadline?: OAuthActionDeadline;
10
22
  }): Promise<{
@@ -17,9 +29,15 @@ export interface InternalActResult {
17
29
  outcome: {
18
30
  selectedOption?: string;
19
31
  };
32
+ combobox?: boolean;
20
33
  }
21
- export declare function actInternally(sessionId: string, action: ProvisionAction, detail?: ObserveDetail, compactV2Authorization?: CompactV2TargetAuthorization, operationPage?: Page): Promise<InternalActResult>;
34
+ export declare function actInternally(sessionId: string, action: ProvisionAction, detail?: ObserveDetail, compactV2Authorization?: CompactV2TargetAuthorization, operationPage?: Page, options?: ActExecutorOptions): Promise<InternalActResult>;
22
35
  export declare function act(sessionId: string, action: ProvisionAction, detail?: ObserveDetail, outputFormat?: "compact" | "full", compactMapEmitted?: boolean): Promise<Observation>;
36
+ export declare function dispatchDriveAct(sessionId: string, action: ProvisionAction): Promise<DriveActResult>;
23
37
  export declare function compactV2SelectionFailureReason(error: unknown): string;
24
- export declare function settleAfterStateChange(browser: BrowserController, page?: Page): Promise<void>;
38
+ export declare function settleAfterDriveAction(page?: Page, combobox?: boolean): Promise<void>;
39
+ export declare function settleAfterStateChange(browser: BrowserController, page?: Page, options?: {
40
+ drive?: boolean;
41
+ combobox?: boolean;
42
+ }): Promise<void>;
25
43
  //# sourceMappingURL=act.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"act.d.ts","sourceRoot":"","sources":["../../../src/bot/act/act.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAGL,KAAK,iBAAiB,EAEvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAWL,KAAK,mBAAmB,EAIzB,MAAM,mBAAmB,CAAC;AAY3B,OAAO,EAOL,KAAK,aAAa,EAMnB,MAAM,uBAAuB,CAAC;AAU/B,OAAO,EAiBL,KAAK,4BAA4B,EAClC,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAuDnD,wBAAsB,oCAAoC,CAAC,CAAC,EAC1D,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,EACrD,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,mBAAmB,CAAA;CAAO,GAC/C,OAAO,CAAC;IAAE,OAAO,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC,CAOpD;AA+GD,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,OAAO,EAAE;QACP,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAqED,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,eAAe,EACvB,MAAM,GAAE,aAAyB,EACjC,sBAAsB,CAAC,EAAE,4BAA4B,EACrD,aAAa,CAAC,EAAE,IAAI,GACnB,OAAO,CAAC,iBAAiB,CAAC,CAgD5B;AAED,wBAAsB,GAAG,CACvB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,eAAe,EACvB,MAAM,GAAE,aAAyB,EACjC,YAAY,GAAE,SAAS,GAAG,MAAe,EACzC,iBAAiB,UAAO,GACvB,OAAO,CAAC,WAAW,CAAC,CAwGtB;AAiiBD,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEtE;AA+FD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,GACV,OAAO,CAAC,IAAI,CAAC,CAMf"}
1
+ {"version":3,"file":"act.d.ts","sourceRoot":"","sources":["../../../src/bot/act/act.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAS,IAAI,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAIL,KAAK,iBAAiB,EAEvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAWL,KAAK,mBAAmB,EAIzB,MAAM,mBAAmB,CAAC;AAY3B,OAAO,EAOL,KAAK,aAAa,EAMnB,MAAM,uBAAuB,CAAC;AAU/B,OAAO,EAiBL,KAAK,4BAA4B,EAClC,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAuBnD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAIF,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AA4E5B,wBAAsB,oCAAoC,CAAC,CAAC,EAC1D,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,EACrD,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,mBAAmB,CAAA;CAAO,GAC/C,OAAO,CAAC;IAAE,OAAO,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC,CAOpD;AA+GD,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,OAAO,EAAE;QACP,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAqED,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,eAAe,EACvB,MAAM,GAAE,aAAyB,EACjC,sBAAsB,CAAC,EAAE,4BAA4B,EACrD,aAAa,CAAC,EAAE,IAAI,EACpB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CA4D5B;AAED,wBAAsB,GAAG,CACvB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,eAAe,EACvB,MAAM,GAAE,aAAyB,EACjC,YAAY,GAAE,SAAS,GAAG,MAAe,EACzC,iBAAiB,UAAO,GACvB,OAAO,CAAC,WAAW,CAAC,CAwGtB;AA6vBD,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,cAAc,CAAC,CA+DzB;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEtE;AA+FD,wBAAsB,sBAAsB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCzF;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,EACX,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAChD,OAAO,CAAC,IAAI,CAAC,CAUf"}