@trusty-squire/mcp 1.1.13-rc.9 → 1.1.13
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/README.md +136 -64
- package/assets/login/vnc-input.js +9 -0
- package/assets/login/vnc.html +214 -202
- package/assets/screencaps/connect-walkthrough.png +0 -0
- package/assets/screencaps/connect-walkthrough.svg +1 -1
- package/dist/api-client.d.ts +26 -3
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +19 -31
- package/dist/api-client.js.map +1 -1
- package/dist/bin.js +2 -3
- package/dist/bin.js.map +1 -1
- package/dist/bot/browser.d.ts +85 -80
- package/dist/bot/browser.d.ts.map +1 -1
- package/dist/bot/browser.js +1314 -1570
- package/dist/bot/browser.js.map +1 -1
- package/dist/bot/compact-observation-v2.d.ts +167 -0
- package/dist/bot/compact-observation-v2.d.ts.map +1 -0
- package/dist/bot/compact-observation-v2.js +1038 -0
- package/dist/bot/compact-observation-v2.js.map +1 -0
- package/dist/bot/credential-shape.d.ts +2 -0
- package/dist/bot/credential-shape.d.ts.map +1 -1
- package/dist/bot/credential-shape.js +21 -8
- package/dist/bot/credential-shape.js.map +1 -1
- package/dist/bot/element-fingerprint.d.ts +9 -0
- package/dist/bot/element-fingerprint.d.ts.map +1 -0
- package/dist/bot/element-fingerprint.js +147 -0
- package/dist/bot/element-fingerprint.js.map +1 -0
- package/dist/bot/email-verification.d.ts +7 -1
- package/dist/bot/email-verification.d.ts.map +1 -1
- package/dist/bot/email-verification.js +48 -14
- package/dist/bot/email-verification.js.map +1 -1
- package/dist/bot/google-login.d.ts +28 -52
- package/dist/bot/google-login.d.ts.map +1 -1
- package/dist/bot/google-login.js +246 -1119
- package/dist/bot/google-login.js.map +1 -1
- package/dist/bot/install-completion.d.ts +1 -2
- package/dist/bot/install-completion.d.ts.map +1 -1
- package/dist/bot/install-completion.js +1 -2
- package/dist/bot/install-completion.js.map +1 -1
- package/dist/bot/login-state.d.ts +13 -7
- package/dist/bot/login-state.d.ts.map +1 -1
- package/dist/bot/login-state.js +50 -114
- package/dist/bot/login-state.js.map +1 -1
- package/dist/bot/oauth-providers.d.ts +1 -1
- package/dist/bot/oauth-providers.d.ts.map +1 -1
- package/dist/bot/oauth-providers.js +3 -3
- package/dist/bot/oauth-providers.js.map +1 -1
- package/dist/bot/oauth-scope.d.ts +4 -0
- package/dist/bot/oauth-scope.d.ts.map +1 -0
- package/dist/bot/oauth-scope.js +58 -0
- package/dist/bot/oauth-scope.js.map +1 -0
- package/dist/bot/operator-browser-watchdog.d.ts +18 -6
- package/dist/bot/operator-browser-watchdog.d.ts.map +1 -1
- package/dist/bot/operator-browser-watchdog.js +91 -37
- package/dist/bot/operator-browser-watchdog.js.map +1 -1
- package/dist/bot/owner-process-reaper-worker.d.ts +2 -0
- package/dist/bot/owner-process-reaper-worker.d.ts.map +1 -0
- package/dist/bot/owner-process-reaper-worker.js +17 -0
- package/dist/bot/owner-process-reaper-worker.js.map +1 -0
- package/dist/bot/owner-process-reaper.d.ts +103 -0
- package/dist/bot/owner-process-reaper.d.ts.map +1 -0
- package/dist/bot/owner-process-reaper.js +1058 -0
- package/dist/bot/owner-process-reaper.js.map +1 -0
- package/dist/bot/pay-operator.d.ts +7 -1
- package/dist/bot/pay-operator.d.ts.map +1 -1
- package/dist/bot/pay-operator.js +269 -103
- package/dist/bot/pay-operator.js.map +1 -1
- package/dist/bot/profile.d.ts +10 -1
- package/dist/bot/profile.d.ts.map +1 -1
- package/dist/bot/profile.js +137 -11
- package/dist/bot/profile.js.map +1 -1
- package/dist/bot/promote-to-skill.js +1 -1
- package/dist/bot/promote-to-skill.js.map +1 -1
- package/dist/bot/provision-session.d.ts +57 -186
- package/dist/bot/provision-session.d.ts.map +1 -1
- package/dist/bot/provision-session.js +1976 -1812
- package/dist/bot/provision-session.js.map +1 -1
- package/dist/bot/remote-login-display.d.ts +61 -0
- package/dist/bot/remote-login-display.d.ts.map +1 -0
- package/dist/bot/remote-login-display.js +765 -0
- package/dist/bot/remote-login-display.js.map +1 -0
- package/dist/bot/session/hosts.d.ts +8 -0
- package/dist/bot/session/hosts.d.ts.map +1 -0
- package/dist/bot/session/hosts.js +36 -0
- package/dist/bot/session/hosts.js.map +1 -0
- package/dist/bot/session/lifecycle.d.ts +56 -0
- package/dist/bot/session/lifecycle.d.ts.map +1 -0
- package/dist/bot/session/lifecycle.js +962 -0
- package/dist/bot/session/lifecycle.js.map +1 -0
- package/dist/bot/session/model.d.ts +175 -0
- package/dist/bot/session/model.d.ts.map +1 -0
- package/dist/bot/session/model.js +77 -0
- package/dist/bot/session/model.js.map +1 -0
- package/dist/install/cli.d.ts +29 -9
- package/dist/install/cli.d.ts.map +1 -1
- package/dist/install/cli.js +243 -322
- package/dist/install/cli.js.map +1 -1
- package/dist/install/interactive.d.ts +1 -0
- package/dist/install/interactive.d.ts.map +1 -1
- package/dist/install/interactive.js +19 -5
- package/dist/install/interactive.js.map +1 -1
- package/dist/install/ui.d.ts.map +1 -1
- package/dist/install/ui.js +3 -15
- package/dist/install/ui.js.map +1 -1
- package/dist/operator-env.js +1 -1
- package/dist/operator-env.js.map +1 -1
- package/dist/server-instance-registry.d.ts +103 -0
- package/dist/server-instance-registry.d.ts.map +1 -0
- package/dist/server-instance-registry.js +392 -0
- package/dist/server-instance-registry.js.map +1 -0
- package/dist/server.d.ts +15 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +164 -62
- package/dist/server.js.map +1 -1
- package/dist/session-guard.d.ts +28 -0
- package/dist/session-guard.d.ts.map +1 -0
- package/dist/session-guard.js +84 -0
- package/dist/session-guard.js.map +1 -0
- package/dist/session.d.ts +57 -13
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +246 -127
- package/dist/session.js.map +1 -1
- package/dist/tools/audit-log.d.ts +16 -2
- package/dist/tools/audit-log.d.ts.map +1 -1
- package/dist/tools/audit-log.js +223 -13
- package/dist/tools/audit-log.js.map +1 -1
- package/dist/tools/audit-rollup.d.ts +80 -0
- package/dist/tools/audit-rollup.d.ts.map +1 -0
- package/dist/tools/audit-rollup.js +0 -0
- package/dist/tools/audit-rollup.js.map +1 -0
- package/dist/tools/fetch-credential.d.ts +37 -0
- package/dist/tools/fetch-credential.d.ts.map +1 -0
- package/dist/tools/fetch-credential.js +153 -0
- package/dist/tools/fetch-credential.js.map +1 -0
- package/dist/tools/index.d.ts +3 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +7 -3
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/operate-pay.d.ts +4 -4
- package/dist/tools/operate-pay.d.ts.map +1 -1
- package/dist/tools/operate-pay.js +151 -96
- package/dist/tools/operate-pay.js.map +1 -1
- package/dist/tools/provision-drive.d.ts +47 -39
- package/dist/tools/provision-drive.d.ts.map +1 -1
- package/dist/tools/provision-drive.js +268 -164
- package/dist/tools/provision-drive.js.map +1 -1
- package/dist/tools/use-credential.d.ts.map +1 -1
- package/dist/tools/use-credential.js +3 -2
- package/dist/tools/use-credential.js.map +1 -1
- package/package.json +4 -6
- package/dist/bot/operator-direct-identity.d.ts +0 -26
- package/dist/bot/operator-direct-identity.d.ts.map +0 -1
- package/dist/bot/operator-direct-identity.js +0 -120
- package/dist/bot/operator-direct-identity.js.map +0 -1
- package/dist/bot/operator-profile-pool.d.ts +0 -97
- package/dist/bot/operator-profile-pool.d.ts.map +0 -1
- package/dist/bot/operator-profile-pool.js +0 -855
- package/dist/bot/operator-profile-pool.js.map +0 -1
- package/dist/bot/xvfb.d.ts +0 -13
- package/dist/bot/xvfb.d.ts.map +0 -1
- package/dist/bot/xvfb.js +0 -146
- package/dist/bot/xvfb.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compact-observation-v2.js","sourceRoot":"","sources":["../../src/bot/compact-observation-v2.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export declare const MASKED_DISPLAY_RE: RegExp;
|
|
2
2
|
export declare function isMaskedDisplay(value: string): boolean;
|
|
3
|
+
export declare function findOtpCredential(value: string): string | null;
|
|
4
|
+
export declare function isStandaloneOtpCredential(value: string): boolean;
|
|
3
5
|
export declare function looksLikeCodeIdentifier(s: string): boolean;
|
|
4
6
|
export declare function isCredentialNoise(value: string): boolean;
|
|
5
7
|
export declare const CRED_TOKEN_RE: RegExp;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-shape.d.ts","sourceRoot":"","sources":["../../src/bot/credential-shape.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,iBAAiB,QAA0B,CAAC;AACzD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD;AAOD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAI1D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAuBxD;AAQD,eAAO,MAAM,aAAa,QAAmE,CAAC;AAC9F,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAc3D;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"credential-shape.d.ts","sourceRoot":"","sources":["../../src/bot/credential-shape.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,iBAAiB,QAA0B,CAAC;AACzD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD;AAKD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG9D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhE;AAOD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAI1D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAuBxD;AAQD,eAAO,MAAM,aAAa,QAAmE,CAAC;AAC9F,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAc3D;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAW/D;AASD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG5D;AAYD,wBAAgB,6BAA6B,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAsB9F;AAaD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAgB/D"}
|
|
@@ -20,6 +20,14 @@ export const MASKED_DISPLAY_RE = /[•●⬤]|\*{3,}|…|\.{3,}/;
|
|
|
20
20
|
export function isMaskedDisplay(value) {
|
|
21
21
|
return MASKED_DISPLAY_RE.test(value);
|
|
22
22
|
}
|
|
23
|
+
const OTP_KEYWORD_RE = /(?:code|verification|verify|otp|passcode|one[- ]time)\D{0,40}?(\d{4,8})|(\d{4,8})\D{0,8}?(?:code|verification|verify|otp|passcode)/i;
|
|
24
|
+
export function findOtpCredential(value) {
|
|
25
|
+
const match = OTP_KEYWORD_RE.exec(value);
|
|
26
|
+
return match?.[1] ?? match?.[2] ?? null;
|
|
27
|
+
}
|
|
28
|
+
export function isStandaloneOtpCredential(value) {
|
|
29
|
+
return /^\d{4,8}$/.test(value.trim());
|
|
30
|
+
}
|
|
23
31
|
// A real credential never looks like a code identifier. X's anti-bot tombstone
|
|
24
32
|
// ("JavaScript is not available…") leaked `loader.tweetUnavailableTombstoneHandler`
|
|
25
33
|
// (a JS function name) into the extractor, which wrote it to the vault as a key
|
|
@@ -60,11 +68,10 @@ export function isCredentialNoise(value) {
|
|
|
60
68
|
return true;
|
|
61
69
|
if (/^key_[A-Za-z0-9]{16,}$/i.test(v))
|
|
62
70
|
return true;
|
|
63
|
-
// A
|
|
64
|
-
//
|
|
65
|
-
//
|
|
66
|
-
|
|
67
|
-
return true;
|
|
71
|
+
// A mask-glyph display is deliberately NOT noise. The operator no longer
|
|
72
|
+
// refuses to hand back a value because it still looks masked — the page is
|
|
73
|
+
// rendering it, the agent asked for it, so it is returned and the agent
|
|
74
|
+
// decides whether to reveal and extract again.
|
|
68
75
|
return false;
|
|
69
76
|
}
|
|
70
77
|
// Collect every distinct credential-SHAPED token in a blob of page text:
|
|
@@ -107,9 +114,7 @@ export function looksLikeCredentialToken(token) {
|
|
|
107
114
|
// separates a real key from a word-word-word-date slug
|
|
108
115
|
// (trusty-squire-dogfood-20260625), whose segments are dictionary words or a
|
|
109
116
|
// pure-digit date — neither is a long letter+digit run.
|
|
110
|
-
return token
|
|
111
|
-
.split("-")
|
|
112
|
-
.some((s) => s.length >= 10 && /[A-Za-z]/.test(s) && /[0-9]/.test(s));
|
|
117
|
+
return token.split("-").some((s) => s.length >= 10 && /[A-Za-z]/.test(s) && /[0-9]/.test(s));
|
|
113
118
|
}
|
|
114
119
|
// The vendor FAMILY of a key = the leading letters before its first separator.
|
|
115
120
|
// (re_… → "re", vsk_sandbox_write_… → "vsk", xai-… → "xai".) A genuine SECOND
|
|
@@ -162,6 +167,14 @@ export function pickRelaxedNearCopyCredential(nearCopyTokens) {
|
|
|
162
167
|
}
|
|
163
168
|
return null;
|
|
164
169
|
}
|
|
170
|
+
// ---- Observation redaction policy note ------------------------------------
|
|
171
|
+
// There is NO redaction in the observation or screenshot path at all (owner's
|
|
172
|
+
// decision, 2026-09-05): no secret-shape screen, no payment/card carve-out, no
|
|
173
|
+
// sealed-context refusal. What the page renders is what `operate_observe`,
|
|
174
|
+
// `operate_observe_query`, and `operate_screenshot` return. The scanners in
|
|
175
|
+
// this file exist for credential EXTRACTION (deciding WHICH on-page string is
|
|
176
|
+
// the key to vault), never for hiding page content — do not wire them into a
|
|
177
|
+
// presentation path.
|
|
165
178
|
// The TIGHT host-side gate: is this string a credential VALUE we'd surface/store?
|
|
166
179
|
// (Distinct from browser.ts's loose in-page collector — see the TIERS note above.)
|
|
167
180
|
export function looksLikeCredentialValue(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-shape.js","sourceRoot":"","sources":["../../src/bot/credential-shape.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,gFAAgF;AAChF,+EAA+E;AAC/E,iFAAiF;AACjF,EAAE;AACF,iFAAiF;AACjF,+EAA+E;AAC/E,6EAA6E;AAC7E,gFAAgF;AAChF,kFAAkF;AAClF,2EAA2E;AAE3E,+EAA+E;AAC/E,kFAAkF;AAClF,gFAAgF;AAChF,6EAA6E;AAC7E,iFAAiF;AACjF,iFAAiF;AACjF,gEAAgE;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AACzD,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,+EAA+E;AAC/E,oFAAoF;AACpF,gFAAgF;AAChF,2EAA2E;AAC3E,gEAAgE;AAChE,MAAM,UAAU,uBAAuB,CAAC,CAAS;IAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACnB,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,8EAA8E;IAC9E,iFAAiF;IACjF,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,kCAAkC;IAC3F,IAAI,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,gBAAgB;IAC1E,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,iCAAiC;IACnE,IAAI,2CAA2C,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACrE,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,gCAAgC,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,+EAA+E;IAC/E,6EAA6E;IAC7E,iFAAiF;IACjF,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,IAAI,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,
|
|
1
|
+
{"version":3,"file":"credential-shape.js","sourceRoot":"","sources":["../../src/bot/credential-shape.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { InteractiveElement } from "./browser.js";
|
|
2
|
+
export declare function isFrameworkRandomDomId(id: string): boolean;
|
|
3
|
+
/**
|
|
4
|
+
* The durable fingerprint of every element in one inventory. Pure, and
|
|
5
|
+
* order-dependent only through the last-resort ordinal — which by construction
|
|
6
|
+
* applies solely to elements that are otherwise indistinguishable.
|
|
7
|
+
*/
|
|
8
|
+
export declare function elementFingerprints(elements: readonly InteractiveElement[]): Map<InteractiveElement, string>;
|
|
9
|
+
//# sourceMappingURL=element-fingerprint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"element-fingerprint.d.ts","sourceRoot":"","sources":["../../src/bot/element-fingerprint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAsDvD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAI1D;AAkDD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,GACtC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,CA2CjC"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
// Element identity for the operator observation model (docs/observation-model.md
|
|
2
|
+
// §4.1). An element's fingerprint is DURABLE: it is derived only from signals
|
|
3
|
+
// that survive a benign re-render, so a ref the host already holds keeps
|
|
4
|
+
// resolving while the agent fills the rest of a form. Mutable state (value,
|
|
5
|
+
// checked, occlusion) and the observation counter are deliberately excluded.
|
|
6
|
+
//
|
|
7
|
+
// Inputs, in strict preference order — each tier is consulted only when the one
|
|
8
|
+
// above it does not identify the element uniquely within the inventory:
|
|
9
|
+
// 1. The DOM `id`, when it is present, unique on the page, and not
|
|
10
|
+
// framework-random. An authored id is the most stable handle a page
|
|
11
|
+
// offers and survives arbitrary subtree churn.
|
|
12
|
+
// 2. The stable semantic signals: frame + role/tag/type + accessible name +
|
|
13
|
+
// the authored form-control `name`. None of those move when a live form
|
|
14
|
+
// re-renders, so a field whose label is unique in its frame keeps one
|
|
15
|
+
// fingerprint across arbitrary sibling churn.
|
|
16
|
+
// 3. The containing region, as a disambiguator for same-named controls that
|
|
17
|
+
// live in different parts of the page ("Continue" in a dialog vs. in the
|
|
18
|
+
// page form).
|
|
19
|
+
// 4. The ordinal among elements that tiers 1-3 leave genuinely
|
|
20
|
+
// indistinguishable — a LAST resort, and the only positional input.
|
|
21
|
+
//
|
|
22
|
+
// The accessibility path (`screenPath`) is deliberately NOT an input. It is
|
|
23
|
+
// built as `<container> > <kind>:<label-or-positional-slug>`: its container is
|
|
24
|
+
// already tier 3, its kind and label are already tier 2, and its fallback slug
|
|
25
|
+
// embeds the element's index in the inventory. A Shopify-style address block
|
|
26
|
+
// that reorders its fields when Places autocomplete re-renders would otherwise
|
|
27
|
+
// change every fingerprint in the block and fail closed on every fill.
|
|
28
|
+
//
|
|
29
|
+
// Every tier is frame-scoped. Without that, a same-shaped control in an
|
|
30
|
+
// embedded frame could hash to the SAME fingerprint as one in the main page and
|
|
31
|
+
// let an act resolve into the wrong document — the frame domain-lock
|
|
32
|
+
// (assertSecretFrameTargetAllowed) must not be the only thing standing between
|
|
33
|
+
// a secret and a rogue iframe.
|
|
34
|
+
/** Unit separator: never present in a DOM id, name, role, or path. */
|
|
35
|
+
const SEP = "\u001f";
|
|
36
|
+
// Framework-generated ids are unique per RENDER, which is worse than useless:
|
|
37
|
+
// keying on one produces a ref that dies on the next paint. React's `useId`
|
|
38
|
+
// emits `:r3:` / `:R1abc:`; Radix, HeadlessUI and Reach wrap the same sigil;
|
|
39
|
+
// MUI/Ember/Emotion append a render-scoped counter.
|
|
40
|
+
const FRAMEWORK_RANDOM_ID_PATTERNS = [
|
|
41
|
+
// React useId and every library that embeds it. The `:` sigil cannot appear
|
|
42
|
+
// in an id an author intends to use with `#id` CSS, so it is a reliable tell.
|
|
43
|
+
/:/,
|
|
44
|
+
// A UUID or a long digit run: generated, never authored.
|
|
45
|
+
/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i,
|
|
46
|
+
/\d{5,}/,
|
|
47
|
+
// `mui-4821`, `ember1234`, `downshift-3-item-0`, `css-1x9dk2p`.
|
|
48
|
+
/^(?:mui|ember|downshift|react-aria|radix|headlessui|reach|css|sc)-?\d/i,
|
|
49
|
+
];
|
|
50
|
+
export function isFrameworkRandomDomId(id) {
|
|
51
|
+
const trimmed = id.trim();
|
|
52
|
+
if (trimmed.length === 0)
|
|
53
|
+
return true;
|
|
54
|
+
return FRAMEWORK_RANDOM_ID_PATTERNS.some((pattern) => pattern.test(trimmed));
|
|
55
|
+
}
|
|
56
|
+
function normalize(value) {
|
|
57
|
+
return (value ?? "").replace(/\s+/g, " ").trim().toLowerCase();
|
|
58
|
+
}
|
|
59
|
+
/** The accessible name, from the same visible/ARIA sources the label uses. */
|
|
60
|
+
function accessibleName(el) {
|
|
61
|
+
return normalize(el.visibleText ??
|
|
62
|
+
el.labelText ??
|
|
63
|
+
el.ariaLabel ??
|
|
64
|
+
el.iconLabel ??
|
|
65
|
+
el.title ??
|
|
66
|
+
el.placeholder ??
|
|
67
|
+
el.name);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* The authored form-control `name`. It is submitted with the form, so a page
|
|
71
|
+
* cannot regenerate it per render the way it can a `useId` DOM id, and it keeps
|
|
72
|
+
* `firstName` distinct from `lastName` even in the instant a floating label is
|
|
73
|
+
* detached mid-re-render.
|
|
74
|
+
*/
|
|
75
|
+
function controlName(el) {
|
|
76
|
+
const name = (el.name ?? "").trim();
|
|
77
|
+
return name.length === 0 || isFrameworkRandomDomId(name) ? "" : normalize(name);
|
|
78
|
+
}
|
|
79
|
+
function frameKey(el) {
|
|
80
|
+
return [el.frameOrigin ?? "", el.framePath ?? ""].join(SEP);
|
|
81
|
+
}
|
|
82
|
+
function roleKey(el) {
|
|
83
|
+
return [normalize(el.role), normalize(el.tag), normalize(el.type)].join(SEP);
|
|
84
|
+
}
|
|
85
|
+
function usableDomId(el, idCounts) {
|
|
86
|
+
const id = (el.id ?? "").trim();
|
|
87
|
+
if (id.length === 0 || isFrameworkRandomDomId(id))
|
|
88
|
+
return null;
|
|
89
|
+
return idCounts.get([frameKey(el), id].join(SEP)) === 1 ? id : null;
|
|
90
|
+
}
|
|
91
|
+
/** The tier-2 and tier-3 keys for one element (see the header). */
|
|
92
|
+
function structuralKeys(el) {
|
|
93
|
+
const semantic = [frameKey(el), roleKey(el), accessibleName(el), controlName(el)].join(SEP);
|
|
94
|
+
return { semantic, regional: [semantic, normalize(el.container)].join(SEP) };
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* The durable fingerprint of every element in one inventory. Pure, and
|
|
98
|
+
* order-dependent only through the last-resort ordinal — which by construction
|
|
99
|
+
* applies solely to elements that are otherwise indistinguishable.
|
|
100
|
+
*/
|
|
101
|
+
export function elementFingerprints(elements) {
|
|
102
|
+
const idCounts = new Map();
|
|
103
|
+
for (const el of elements) {
|
|
104
|
+
const id = (el.id ?? "").trim();
|
|
105
|
+
if (id.length === 0 || isFrameworkRandomDomId(id))
|
|
106
|
+
continue;
|
|
107
|
+
const key = [frameKey(el), id].join(SEP);
|
|
108
|
+
idCounts.set(key, (idCounts.get(key) ?? 0) + 1);
|
|
109
|
+
}
|
|
110
|
+
// Count first, assign second: a tier identifies an element only when it is
|
|
111
|
+
// unambiguous across the WHOLE inventory, which is not knowable while still
|
|
112
|
+
// walking it.
|
|
113
|
+
const structural = new Map();
|
|
114
|
+
const semanticCounts = new Map();
|
|
115
|
+
const regionalCounts = new Map();
|
|
116
|
+
for (const el of elements) {
|
|
117
|
+
if (usableDomId(el, idCounts) !== null)
|
|
118
|
+
continue;
|
|
119
|
+
const keys = structuralKeys(el);
|
|
120
|
+
structural.set(el, keys);
|
|
121
|
+
semanticCounts.set(keys.semantic, (semanticCounts.get(keys.semantic) ?? 0) + 1);
|
|
122
|
+
regionalCounts.set(keys.regional, (regionalCounts.get(keys.regional) ?? 0) + 1);
|
|
123
|
+
}
|
|
124
|
+
const ordinals = new Map();
|
|
125
|
+
const fingerprints = new Map();
|
|
126
|
+
for (const el of elements) {
|
|
127
|
+
const domId = usableDomId(el, idCounts);
|
|
128
|
+
if (domId !== null) {
|
|
129
|
+
fingerprints.set(el, ["id", frameKey(el), domId].join(SEP));
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
const keys = structural.get(el);
|
|
133
|
+
if (semanticCounts.get(keys.semantic) === 1) {
|
|
134
|
+
fingerprints.set(el, ["name", keys.semantic].join(SEP));
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
if (regionalCounts.get(keys.regional) === 1) {
|
|
138
|
+
fingerprints.set(el, ["region", keys.regional].join(SEP));
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
const ordinal = (ordinals.get(keys.regional) ?? 0) + 1;
|
|
142
|
+
ordinals.set(keys.regional, ordinal);
|
|
143
|
+
fingerprints.set(el, ["ordinal", keys.regional, String(ordinal)].join(SEP));
|
|
144
|
+
}
|
|
145
|
+
return fingerprints;
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=element-fingerprint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"element-fingerprint.js","sourceRoot":"","sources":["../../src/bot/element-fingerprint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,8 @@
|
|
|
1
|
-
export
|
|
1
|
+
export interface VerificationLinkCandidate {
|
|
2
|
+
url: string;
|
|
3
|
+
text?: string | null;
|
|
4
|
+
}
|
|
5
|
+
type LinkInput = string | VerificationLinkCandidate;
|
|
6
|
+
export declare function pickVerificationLink(links: readonly LinkInput[], expectedDomains?: readonly string[]): string | null;
|
|
7
|
+
export {};
|
|
2
8
|
//# sourceMappingURL=email-verification.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-verification.d.ts","sourceRoot":"","sources":["../../src/bot/email-verification.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"email-verification.d.ts","sourceRoot":"","sources":["../../src/bot/email-verification.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,KAAK,SAAS,GAAG,MAAM,GAAG,yBAAyB,CAAC;AAWpD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,GAClC,MAAM,GAAG,IAAI,CAkEf"}
|
|
@@ -1,29 +1,51 @@
|
|
|
1
1
|
// email-verification.ts — choose which link in a verification email to click.
|
|
2
2
|
// The provision session uses this to follow the confirm/activate link without
|
|
3
3
|
// navigating to an unsubscribe or asset URL.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
|
|
4
|
+
function asCandidate(link) {
|
|
5
|
+
return typeof link === "string" ? { url: link } : link;
|
|
6
|
+
}
|
|
7
|
+
// `expectedDomains` (optional) are hosts the caller already trusts for this
|
|
8
|
+
// verification (typically the service's own domain, from the sender address
|
|
9
|
+
// or the `sender` search hint) — a link on one of them (or a subdomain, e.g.
|
|
10
|
+
// `auth.xata.io` under `xata.io`) gets a small tie-breaking bonus. It never
|
|
11
|
+
// turns a negative/zero score positive on its own.
|
|
12
|
+
export function pickVerificationLink(links, expectedDomains) {
|
|
13
|
+
const expected = (expectedDomains ?? []).map((d) => d.toLowerCase()).filter((d) => d.length > 0);
|
|
12
14
|
const scored = links.map((raw, index) => {
|
|
15
|
+
const { url: rawUrl, text: rawText } = asCandidate(raw);
|
|
13
16
|
// Decode HTML-escaped separators BEFORE scoring so `&token=` matches the
|
|
14
17
|
// token heuristic below, not just at return time.
|
|
15
|
-
const url =
|
|
18
|
+
const url = rawUrl.replace(/&/gi, "&");
|
|
16
19
|
const lower = url.toLowerCase();
|
|
20
|
+
const text = (rawText ?? "").toLowerCase();
|
|
21
|
+
// True when either the href or the anchor's visible text/label matches —
|
|
22
|
+
// a click-tracking rewritten href (no vocabulary left in the URL at all)
|
|
23
|
+
// still scores on what the button actually says.
|
|
24
|
+
const hits = (re) => re.test(lower) || (text.length > 0 && re.test(text));
|
|
17
25
|
let score = 0;
|
|
18
26
|
if (isEmailAssetLink(lower))
|
|
19
27
|
score -= 50;
|
|
20
|
-
|
|
28
|
+
// "marketing"/"footer" are checked in the anchor TEXT only, not the href —
|
|
29
|
+
// a legit verify link commonly carries `&utm_campaign=marketing_email` and
|
|
30
|
+
// would otherwise self-cancel.
|
|
31
|
+
if (/unsubscribe|preferences/.test(lower) || /unsubscribe|preferences|footer|marketing/.test(text))
|
|
21
32
|
score -= 10;
|
|
22
33
|
// Explicit verification vocabulary — the strongest, unambiguous signal.
|
|
23
|
-
if (
|
|
34
|
+
if (hits(/verify|confirm/))
|
|
24
35
|
score += 10;
|
|
25
|
-
if (
|
|
36
|
+
if (hits(/activate|activation/))
|
|
37
|
+
score += 8;
|
|
38
|
+
// Account-linking shapes (Keycloak's identity-broker "link your Google
|
|
39
|
+
// account" flow: `/realms/…/broker/google/link?…` or
|
|
40
|
+
// `/login-actions/action-token?key=…`, or a button reading "Link your
|
|
41
|
+
// Google account") — a bare "link"/"login" URL scores lower than explicit
|
|
42
|
+
// verify/confirm since it's a more generic word, but still positive so it
|
|
43
|
+
// isn't dropped as found:false.
|
|
44
|
+
if (/link[-_]?account|account[-_]?link|\/broker\/|\/link(?:$|[/?#])/.test(lower) ||
|
|
45
|
+
/link\s+(?:your|this|google|account)|link\s+.*\baccount\b/.test(text))
|
|
26
46
|
score += 8;
|
|
47
|
+
if (hits(/log[-_]?in\b|logon\b|sign[-_ ]?in\b/))
|
|
48
|
+
score += 6;
|
|
27
49
|
// Magic-link / passwordless / auth-callback shapes. A verification link often
|
|
28
50
|
// carries NONE of the words above: a Next.js app (Loops) emails a bare
|
|
29
51
|
// `/api/auth/callback/email?token=…`, and Supabase/Clerk/Auth0 send
|
|
@@ -31,10 +53,22 @@ export function pickVerificationLink(links) {
|
|
|
31
53
|
// dropped as `link:null` even though it was the only actionable link.
|
|
32
54
|
if (/(?:\/auth\/|\/callback\/|magic[-_]?link|passwordless|sign[-_]?in)/.test(lower))
|
|
33
55
|
score += 6;
|
|
34
|
-
if (/[?&](?:token|otp|oob[-_]?code|confirmation[-_]?token|verification[-_]?token|access[-_]?token|auth[-_]?token|code)=/.test(lower))
|
|
56
|
+
if (/[?&](?:token|otp|oob[-_]?code|confirmation[-_]?token|verification[-_]?token|access[-_]?token|auth[-_]?token|key|code)=/.test(lower))
|
|
35
57
|
score += 6;
|
|
36
|
-
if (
|
|
58
|
+
if (hits(/continue/))
|
|
59
|
+
score += 3;
|
|
60
|
+
if (hits(/welcome/))
|
|
37
61
|
score += 3;
|
|
62
|
+
if (expected.length > 0) {
|
|
63
|
+
try {
|
|
64
|
+
const host = new URL(url).hostname.toLowerCase();
|
|
65
|
+
if (expected.some((d) => host === d || host.endsWith(`.${d}`)))
|
|
66
|
+
score += 4;
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
// Not an absolute URL — no host to compare, no bonus.
|
|
70
|
+
}
|
|
71
|
+
}
|
|
38
72
|
return { url, score, index };
|
|
39
73
|
});
|
|
40
74
|
// Ties break to the LATER link. In a multi-message verification thread (Gmail
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-verification.js","sourceRoot":"","sources":["../../src/bot/email-verification.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8EAA8E;AAC9E,6CAA6C;
|
|
1
|
+
{"version":3,"file":"email-verification.js","sourceRoot":"","sources":["../../src/bot/email-verification.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { type ChildProcess } from "node:child_process";
|
|
2
1
|
import { type ProfileCloseState, type ProfileProcessIdentity } from "./profile.js";
|
|
3
|
-
import { launchPlainLoginBrowser, resolveChannelBinary } from "./browser.js";
|
|
4
|
-
export { extractGoogleAccountEmail }
|
|
2
|
+
import { extractGoogleAccountEmail, launchPlainLoginBrowser, registerLocalBrowserLaunch, resolveChannelBinary } from "./browser.js";
|
|
3
|
+
export { extractGoogleAccountEmail };
|
|
4
|
+
import { markOwnerBrowserLaunchTerminal, terminateOwnerBrowserLaunch, untrackOwnerBrowserLaunch } from "./owner-process-reaper.js";
|
|
5
5
|
import type { BrowserContext } from "playwright";
|
|
6
6
|
import type { OAuthProviderId } from "./oauth-providers.js";
|
|
7
|
-
|
|
7
|
+
export { extractOAuthScopes, scopesAreBasic, scrapeGoogleScopePhrases } from "./oauth-scope.js";
|
|
8
8
|
export type LoginProxyDisposition = {
|
|
9
9
|
server: string;
|
|
10
10
|
username?: string;
|
|
@@ -13,91 +13,67 @@ export type LoginProxyDisposition = {
|
|
|
13
13
|
export interface PersistentLauncher {
|
|
14
14
|
launchPersistentContext(userDataDir: string, options: Record<string, unknown>): Promise<BrowserContext>;
|
|
15
15
|
}
|
|
16
|
-
export
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
export interface PersistentLoginContext {
|
|
17
|
+
readonly context: BrowserContext;
|
|
18
|
+
readonly marker: string;
|
|
19
|
+
close(): Promise<void>;
|
|
20
20
|
}
|
|
21
|
-
export declare function
|
|
22
|
-
|
|
21
|
+
export declare function launchPersistentLoginContext(launcher: PersistentLauncher, userDataDir: string, options: Record<string, unknown>, runtime?: {
|
|
22
|
+
registerLocalBrowserLaunch?: typeof registerLocalBrowserLaunch;
|
|
23
|
+
markTerminal?: typeof markOwnerBrowserLaunchTerminal;
|
|
24
|
+
terminate?: typeof terminateOwnerBrowserLaunch;
|
|
25
|
+
untrack?: typeof untrackOwnerBrowserLaunch;
|
|
26
|
+
bindLaunch?: (marker: string, profileDir: string) => boolean;
|
|
27
|
+
closeTimeoutMs?: number;
|
|
28
|
+
}): Promise<PersistentLoginContext>;
|
|
23
29
|
export declare function detectActiveProviderSessions(profileDir?: string): Promise<OAuthProviderId[]>;
|
|
24
30
|
export type GoogleAuthState = "consent" | "needs_login" | "challenge" | "not_google";
|
|
25
31
|
export declare function classifyGoogleAuthState(url: string, bodyText: string): GoogleAuthState;
|
|
26
|
-
export declare function extractOAuthScopes(rawUrl: string): string[] | null;
|
|
27
|
-
export declare function scopesAreBasic(scopes: readonly string[]): boolean;
|
|
28
|
-
export declare function scrapeGoogleScopePhrases(text: string): string[];
|
|
29
32
|
export declare function extractGoogleNumberMatch(text: string): string | null;
|
|
30
|
-
export declare function hasDisplay(): boolean;
|
|
31
|
-
export declare function findFreePort(): Promise<number>;
|
|
32
|
-
export declare function binaryOnPath(bin: string): boolean;
|
|
33
|
-
export declare function installHint(missing: readonly string[]): string;
|
|
34
|
-
export interface HeadlessRig {
|
|
35
|
-
procs: ChildProcess[];
|
|
36
|
-
display: string;
|
|
37
|
-
webDir?: string;
|
|
38
|
-
passFile?: string;
|
|
39
|
-
}
|
|
40
|
-
export declare function teardownHeadlessRig(rig: HeadlessRig, graceMs?: number): Promise<void>;
|
|
33
|
+
export declare function hasDisplay(platform?: NodeJS.Platform, env?: NodeJS.ProcessEnv): boolean;
|
|
41
34
|
export declare function teardownLoginBrowser(opts: {
|
|
42
35
|
profileDir: string;
|
|
43
36
|
identity: ProfileProcessIdentity | null;
|
|
44
37
|
closeBrowser: () => Promise<void>;
|
|
45
38
|
forceClose: () => unknown;
|
|
39
|
+
isRunning?: () => boolean;
|
|
46
40
|
timeoutMs?: number;
|
|
47
41
|
}): Promise<ProfileCloseState>;
|
|
48
42
|
export declare function trackActiveLoginBrowser(cancel: () => Promise<void>): () => void;
|
|
49
43
|
export declare function cancelActiveLoginBrowsers(): Promise<void>;
|
|
50
|
-
type LoginProcessRuntime = Pick<NodeJS.Process, "on" | "once" | "removeListener" | "exit">;
|
|
51
|
-
export interface LoginSignalExitCoordination {
|
|
52
|
-
enabled(): boolean;
|
|
53
|
-
set(enabled: boolean): void;
|
|
54
|
-
}
|
|
55
|
-
export declare function registerHeadlessRigCleanup(rig: HeadlessRig, activeBrowserTeardown: () => (() => Promise<void>) | undefined, runtime?: LoginProcessRuntime, signalExit?: LoginSignalExitCoordination): () => void;
|
|
56
|
-
export declare function fallbackCloudflaredArgs(webPort: number): string[];
|
|
57
44
|
export interface RunInBotChromeOpts {
|
|
58
45
|
profileDir: string;
|
|
59
46
|
url: string;
|
|
60
47
|
deadline: number;
|
|
61
|
-
pollUntilDone: (
|
|
48
|
+
pollUntilDone: () => Promise<boolean>;
|
|
62
49
|
bannerLabel: string;
|
|
63
|
-
preflight?: (context: BrowserContext) => Promise<boolean>;
|
|
64
|
-
onSuccess?: (context: BrowserContext) => Promise<void>;
|
|
65
|
-
apiBaseUrl?: string;
|
|
66
50
|
heartbeatMessage?: string | (() => string);
|
|
67
|
-
plainProfileLogin?: boolean;
|
|
68
|
-
plainPollUntilDone?: (profileDir: string) => Promise<boolean>;
|
|
69
|
-
plainOnSuccess?: (profileDir: string) => Promise<void>;
|
|
70
51
|
onProxyDisposition?: (proxy: LoginProxyDisposition) => void;
|
|
71
|
-
onConfirmedLogin?: () => Promise<void>;
|
|
72
|
-
seedProvider?: OAuthProviderId | (() => OAuthProviderId | null);
|
|
73
52
|
}
|
|
74
53
|
export declare function runInBotChrome(opts: RunInBotChromeOpts): Promise<{
|
|
75
|
-
status: "
|
|
54
|
+
status: "satisfied" | "timeout";
|
|
76
55
|
}>;
|
|
77
56
|
export interface LoginRunResult {
|
|
78
|
-
status: "
|
|
57
|
+
status: "satisfied" | "timeout";
|
|
79
58
|
closeState: ProfileCloseState;
|
|
80
59
|
}
|
|
81
|
-
export declare function
|
|
60
|
+
export declare function runLoginBrowserForEnvironment(opts: RunInBotChromeOpts, runtime?: {
|
|
61
|
+
hasDisplay: () => boolean;
|
|
62
|
+
runDisplayedChrome: (opts: RunInBotChromeOpts) => Promise<LoginRunResult>;
|
|
63
|
+
runRemoteLoginChrome: (opts: RunInBotChromeOpts) => Promise<LoginRunResult>;
|
|
64
|
+
}): Promise<LoginRunResult>;
|
|
82
65
|
export declare function runDisplayedChrome(opts: RunInBotChromeOpts, runtime?: {
|
|
83
66
|
resolveChannelBinary: typeof resolveChannelBinary;
|
|
84
67
|
launchPlainLoginBrowser: typeof launchPlainLoginBrowser;
|
|
85
68
|
}): Promise<LoginRunResult>;
|
|
69
|
+
export declare function runRemoteLoginChrome(opts: RunInBotChromeOpts): Promise<LoginRunResult>;
|
|
86
70
|
export declare function pollUntil(deadline: number, check: () => Promise<boolean>, heartbeatMessage?: string | (() => string), assertStillLive?: () => void): Promise<boolean>;
|
|
87
71
|
export declare function checkLoginStatusWithin(deadline: number, check: () => Promise<boolean>, assertStillLive?: () => void, maxCheckMs?: number): Promise<boolean>;
|
|
88
|
-
export declare function ensureOAuthSession(opts?: {
|
|
89
|
-
provider?: OAuthProviderId;
|
|
90
|
-
profileDir?: string;
|
|
91
|
-
timeoutMinutes?: number;
|
|
92
|
-
apiBaseUrl?: string;
|
|
93
|
-
forceOpen?: boolean;
|
|
94
|
-
}): Promise<LoginResult>;
|
|
95
72
|
export declare function openInstallConfirmInBotChrome(opts: {
|
|
96
73
|
confirmUrl: string;
|
|
97
|
-
pollUntilClaimed: (
|
|
74
|
+
pollUntilClaimed: (wizardCompleted: boolean) => Promise<InstallClaimPollResult>;
|
|
98
75
|
profileDir?: string;
|
|
99
76
|
timeoutMinutes?: number;
|
|
100
|
-
apiBaseUrl?: string;
|
|
101
77
|
heartbeatMessage?: string | (() => string);
|
|
102
78
|
}, runChrome?: typeof runInBotChrome): Promise<{
|
|
103
79
|
status: "claimed" | "timeout" | "error";
|