@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.
Files changed (162) hide show
  1. package/README.md +136 -64
  2. package/assets/login/vnc-input.js +9 -0
  3. package/assets/login/vnc.html +214 -202
  4. package/assets/screencaps/connect-walkthrough.png +0 -0
  5. package/assets/screencaps/connect-walkthrough.svg +1 -1
  6. package/dist/api-client.d.ts +26 -3
  7. package/dist/api-client.d.ts.map +1 -1
  8. package/dist/api-client.js +19 -31
  9. package/dist/api-client.js.map +1 -1
  10. package/dist/bin.js +2 -3
  11. package/dist/bin.js.map +1 -1
  12. package/dist/bot/browser.d.ts +85 -80
  13. package/dist/bot/browser.d.ts.map +1 -1
  14. package/dist/bot/browser.js +1314 -1570
  15. package/dist/bot/browser.js.map +1 -1
  16. package/dist/bot/compact-observation-v2.d.ts +167 -0
  17. package/dist/bot/compact-observation-v2.d.ts.map +1 -0
  18. package/dist/bot/compact-observation-v2.js +1038 -0
  19. package/dist/bot/compact-observation-v2.js.map +1 -0
  20. package/dist/bot/credential-shape.d.ts +2 -0
  21. package/dist/bot/credential-shape.d.ts.map +1 -1
  22. package/dist/bot/credential-shape.js +21 -8
  23. package/dist/bot/credential-shape.js.map +1 -1
  24. package/dist/bot/element-fingerprint.d.ts +9 -0
  25. package/dist/bot/element-fingerprint.d.ts.map +1 -0
  26. package/dist/bot/element-fingerprint.js +147 -0
  27. package/dist/bot/element-fingerprint.js.map +1 -0
  28. package/dist/bot/email-verification.d.ts +7 -1
  29. package/dist/bot/email-verification.d.ts.map +1 -1
  30. package/dist/bot/email-verification.js +48 -14
  31. package/dist/bot/email-verification.js.map +1 -1
  32. package/dist/bot/google-login.d.ts +28 -52
  33. package/dist/bot/google-login.d.ts.map +1 -1
  34. package/dist/bot/google-login.js +246 -1119
  35. package/dist/bot/google-login.js.map +1 -1
  36. package/dist/bot/install-completion.d.ts +1 -2
  37. package/dist/bot/install-completion.d.ts.map +1 -1
  38. package/dist/bot/install-completion.js +1 -2
  39. package/dist/bot/install-completion.js.map +1 -1
  40. package/dist/bot/login-state.d.ts +13 -7
  41. package/dist/bot/login-state.d.ts.map +1 -1
  42. package/dist/bot/login-state.js +50 -114
  43. package/dist/bot/login-state.js.map +1 -1
  44. package/dist/bot/oauth-providers.d.ts +1 -1
  45. package/dist/bot/oauth-providers.d.ts.map +1 -1
  46. package/dist/bot/oauth-providers.js +3 -3
  47. package/dist/bot/oauth-providers.js.map +1 -1
  48. package/dist/bot/oauth-scope.d.ts +4 -0
  49. package/dist/bot/oauth-scope.d.ts.map +1 -0
  50. package/dist/bot/oauth-scope.js +58 -0
  51. package/dist/bot/oauth-scope.js.map +1 -0
  52. package/dist/bot/operator-browser-watchdog.d.ts +18 -6
  53. package/dist/bot/operator-browser-watchdog.d.ts.map +1 -1
  54. package/dist/bot/operator-browser-watchdog.js +91 -37
  55. package/dist/bot/operator-browser-watchdog.js.map +1 -1
  56. package/dist/bot/owner-process-reaper-worker.d.ts +2 -0
  57. package/dist/bot/owner-process-reaper-worker.d.ts.map +1 -0
  58. package/dist/bot/owner-process-reaper-worker.js +17 -0
  59. package/dist/bot/owner-process-reaper-worker.js.map +1 -0
  60. package/dist/bot/owner-process-reaper.d.ts +103 -0
  61. package/dist/bot/owner-process-reaper.d.ts.map +1 -0
  62. package/dist/bot/owner-process-reaper.js +1058 -0
  63. package/dist/bot/owner-process-reaper.js.map +1 -0
  64. package/dist/bot/pay-operator.d.ts +7 -1
  65. package/dist/bot/pay-operator.d.ts.map +1 -1
  66. package/dist/bot/pay-operator.js +269 -103
  67. package/dist/bot/pay-operator.js.map +1 -1
  68. package/dist/bot/profile.d.ts +10 -1
  69. package/dist/bot/profile.d.ts.map +1 -1
  70. package/dist/bot/profile.js +137 -11
  71. package/dist/bot/profile.js.map +1 -1
  72. package/dist/bot/promote-to-skill.js +1 -1
  73. package/dist/bot/promote-to-skill.js.map +1 -1
  74. package/dist/bot/provision-session.d.ts +57 -186
  75. package/dist/bot/provision-session.d.ts.map +1 -1
  76. package/dist/bot/provision-session.js +1976 -1812
  77. package/dist/bot/provision-session.js.map +1 -1
  78. package/dist/bot/remote-login-display.d.ts +61 -0
  79. package/dist/bot/remote-login-display.d.ts.map +1 -0
  80. package/dist/bot/remote-login-display.js +765 -0
  81. package/dist/bot/remote-login-display.js.map +1 -0
  82. package/dist/bot/session/hosts.d.ts +8 -0
  83. package/dist/bot/session/hosts.d.ts.map +1 -0
  84. package/dist/bot/session/hosts.js +36 -0
  85. package/dist/bot/session/hosts.js.map +1 -0
  86. package/dist/bot/session/lifecycle.d.ts +56 -0
  87. package/dist/bot/session/lifecycle.d.ts.map +1 -0
  88. package/dist/bot/session/lifecycle.js +962 -0
  89. package/dist/bot/session/lifecycle.js.map +1 -0
  90. package/dist/bot/session/model.d.ts +175 -0
  91. package/dist/bot/session/model.d.ts.map +1 -0
  92. package/dist/bot/session/model.js +77 -0
  93. package/dist/bot/session/model.js.map +1 -0
  94. package/dist/install/cli.d.ts +29 -9
  95. package/dist/install/cli.d.ts.map +1 -1
  96. package/dist/install/cli.js +243 -322
  97. package/dist/install/cli.js.map +1 -1
  98. package/dist/install/interactive.d.ts +1 -0
  99. package/dist/install/interactive.d.ts.map +1 -1
  100. package/dist/install/interactive.js +19 -5
  101. package/dist/install/interactive.js.map +1 -1
  102. package/dist/install/ui.d.ts.map +1 -1
  103. package/dist/install/ui.js +3 -15
  104. package/dist/install/ui.js.map +1 -1
  105. package/dist/operator-env.js +1 -1
  106. package/dist/operator-env.js.map +1 -1
  107. package/dist/server-instance-registry.d.ts +103 -0
  108. package/dist/server-instance-registry.d.ts.map +1 -0
  109. package/dist/server-instance-registry.js +392 -0
  110. package/dist/server-instance-registry.js.map +1 -0
  111. package/dist/server.d.ts +15 -1
  112. package/dist/server.d.ts.map +1 -1
  113. package/dist/server.js +164 -62
  114. package/dist/server.js.map +1 -1
  115. package/dist/session-guard.d.ts +28 -0
  116. package/dist/session-guard.d.ts.map +1 -0
  117. package/dist/session-guard.js +84 -0
  118. package/dist/session-guard.js.map +1 -0
  119. package/dist/session.d.ts +57 -13
  120. package/dist/session.d.ts.map +1 -1
  121. package/dist/session.js +246 -127
  122. package/dist/session.js.map +1 -1
  123. package/dist/tools/audit-log.d.ts +16 -2
  124. package/dist/tools/audit-log.d.ts.map +1 -1
  125. package/dist/tools/audit-log.js +223 -13
  126. package/dist/tools/audit-log.js.map +1 -1
  127. package/dist/tools/audit-rollup.d.ts +80 -0
  128. package/dist/tools/audit-rollup.d.ts.map +1 -0
  129. package/dist/tools/audit-rollup.js +0 -0
  130. package/dist/tools/audit-rollup.js.map +1 -0
  131. package/dist/tools/fetch-credential.d.ts +37 -0
  132. package/dist/tools/fetch-credential.d.ts.map +1 -0
  133. package/dist/tools/fetch-credential.js +153 -0
  134. package/dist/tools/fetch-credential.js.map +1 -0
  135. package/dist/tools/index.d.ts +3 -1
  136. package/dist/tools/index.d.ts.map +1 -1
  137. package/dist/tools/index.js +7 -3
  138. package/dist/tools/index.js.map +1 -1
  139. package/dist/tools/operate-pay.d.ts +4 -4
  140. package/dist/tools/operate-pay.d.ts.map +1 -1
  141. package/dist/tools/operate-pay.js +151 -96
  142. package/dist/tools/operate-pay.js.map +1 -1
  143. package/dist/tools/provision-drive.d.ts +47 -39
  144. package/dist/tools/provision-drive.d.ts.map +1 -1
  145. package/dist/tools/provision-drive.js +268 -164
  146. package/dist/tools/provision-drive.js.map +1 -1
  147. package/dist/tools/use-credential.d.ts.map +1 -1
  148. package/dist/tools/use-credential.js +3 -2
  149. package/dist/tools/use-credential.js.map +1 -1
  150. package/package.json +4 -6
  151. package/dist/bot/operator-direct-identity.d.ts +0 -26
  152. package/dist/bot/operator-direct-identity.d.ts.map +0 -1
  153. package/dist/bot/operator-direct-identity.js +0 -120
  154. package/dist/bot/operator-direct-identity.js.map +0 -1
  155. package/dist/bot/operator-profile-pool.d.ts +0 -97
  156. package/dist/bot/operator-profile-pool.d.ts.map +0 -1
  157. package/dist/bot/operator-profile-pool.js +0 -855
  158. package/dist/bot/operator-profile-pool.js.map +0 -1
  159. package/dist/bot/xvfb.d.ts +0 -13
  160. package/dist/bot/xvfb.d.ts.map +0 -1
  161. package/dist/bot/xvfb.js +0 -146
  162. 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,CAa/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;AAID,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAgB/D"}
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 masked/truncated display is not a real value (canonical glyph test — was
64
- // `includes("…")||includes("...")` here, now unified so a `••••`/`****` mask is
65
- // caught too).
66
- if (isMaskedDisplay(v))
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":"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"}
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,MAAM,cAAc,GAClB,qIAAqI,CAAC;AAExI,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACrD,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACxC,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,yEAAyE;IACzE,2EAA2E;IAC3E,wEAAwE;IACxE,+CAA+C;IAC/C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,yEAAyE;AACzE,2EAA2E;AAC3E,gFAAgF;AAChF,iFAAiF;AACjF,iFAAiF;AACjF,gEAAgE;AAChE,MAAM,CAAC,MAAM,aAAa,GAAG,gEAAgE,CAAC;AAC9F,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACf,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,SAAS;QAC1B,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE;YAAE,SAAS;QAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,SAAS,CAAC,iDAAiD;QACjF,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,SAAS,CAAC,eAAe;QAC1D,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAAE,SAAS;QAC3C,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACZ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACd,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAa;IACpD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,gDAAgD,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9E,wEAAwE;IACxE,IAAI,6CAA6C,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3E,gFAAgF;IAChF,6EAA6E;IAC7E,uDAAuD;IACvD,6EAA6E;IAC7E,wDAAwD;IACxD,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAChF,iFAAiF;AACjF,qDAAqD;AACrD,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAED,6EAA6E;AAC7E,6EAA6E;AAC7E,qEAAqE;AACrE,+EAA+E;AAC/E,+EAA+E;AAC/E,0EAA0E;AAC1E,6EAA6E;AAC7E,6EAA6E;AAC7E,4EAA4E;AAC5E,0EAA0E;AAC1E,MAAM,UAAU,6BAA6B,CAAC,cAAiC;IAC7E,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACrB,wEAAwE;QACxE,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG;YAAE,SAAS;QAC9C,2EAA2E;QAC3E,wDAAwD;QACxD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,SAAS;QAC5C,uDAAuD;QACvD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,SAAS;QACtD,IAAI,iBAAiB,CAAC,CAAC,CAAC;YAAE,SAAS,CAAC,6CAA6C;QACjF,IAAI,uBAAuB,CAAC,CAAC,CAAC;YAAE,SAAS,CAAC,uBAAuB;QACjE,2EAA2E;QAC3E,qCAAqC;QACrC,IAAI,iEAAiE,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,SAAS;QACxF,2EAA2E;QAC3E,sEAAsE;QACtE,gEAAgE;QAChE,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,SAAS;QACrC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,8EAA8E;AAC9E,+EAA+E;AAC/E,2EAA2E;AAC3E,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,qBAAqB;AAErB,kFAAkF;AAClF,mFAAmF;AACnF,MAAM,UAAU,wBAAwB,CAAC,KAAa;IACpD,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,uBAAuB,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,iBAAiB,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,CACL,oBAAoB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnC,qDAAqD,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,iEAAiE,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,0EAA0E;QAC1E,4EAA4E;QAC5E,sEAAsE;QACtE,0EAA0E;QAC1E,mEAAmE;QACnE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAClE,CAAC;AACJ,CAAC"}
@@ -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 declare function pickVerificationLink(links: readonly string[]): string | null;
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":"AAWA,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAkC5E"}
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
- // Choose which link in a verification email to click. Scores each URL
5
- // by keyword and picks the best — but only if it scored positive.
6
- //
7
- // The all-negative case is the bug this guards: an email whose only
8
- // links are unsubscribe/preferences scores <= 0 everywhere, and an
9
- // earlier version returned links[0] anyway, navigating the bot straight
10
- // to an unsubscribe URL.
11
- export function pickVerificationLink(links) {
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 `&amp;token=` matches the
14
17
  // token heuristic below, not just at return time.
15
- const url = raw.replace(/&amp;/gi, "&");
18
+ const url = rawUrl.replace(/&amp;/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
- if (lower.includes("unsubscribe") || lower.includes("preferences"))
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 (lower.includes("verify") || lower.includes("confirm"))
34
+ if (hits(/verify|confirm/))
24
35
  score += 10;
25
- if (lower.includes("activate") || lower.includes("activation"))
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 (lower.includes("welcome"))
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;AAE7C,sEAAsE;AACtE,kEAAkE;AAClE,EAAE;AACF,oEAAoE;AACpE,mEAAmE;AACnE,wEAAwE;AACxE,yBAAyB;AACzB,MAAM,UAAU,oBAAoB,CAAC,KAAwB;IAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACtC,6EAA6E;QAC7E,kDAAkD;QAClD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAChC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,gBAAgB,CAAC,KAAK,CAAC;YAAE,KAAK,IAAI,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;YAAE,KAAK,IAAI,EAAE,CAAC;QAChF,wEAAwE;QACxE,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,KAAK,IAAI,EAAE,CAAC;QACvE,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;QAC3E,8EAA8E;QAC9E,uEAAuE;QACvE,oEAAoE;QACpE,+EAA+E;QAC/E,sEAAsE;QACtE,IAAI,mEAAmE,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;QAChG,IACE,oHAAoH,CAAC,IAAI,CACvH,KAAK,CACN;YAED,KAAK,IAAI,CAAC,CAAC;QACb,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;QAC1C,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IACH,8EAA8E;IAC9E,2EAA2E;IAC3E,yEAAyE;IACzE,6EAA6E;IAC7E,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACtB,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc;IACtC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACtC,OAAO,CACL,+DAA+D,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1E,2CAA2C,CAAC,IAAI,CAAC,IAAI,CAAC;YACtD,wCAAwC,CAAC,IAAI,CAAC,IAAI,CAAC,CACpD,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
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 } from "./browser.js";
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
- import { publishOperatorProfileSeed } from "./operator-profile-pool.js";
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 declare function launchPersistentLoginContext(launcher: PersistentLauncher, userDataDir: string, options: Record<string, unknown>): Promise<BrowserContext>;
17
- export interface LoginResult {
18
- status: "logged_in" | "already_valid" | "timeout" | "error";
19
- detail?: string;
16
+ export interface PersistentLoginContext {
17
+ readonly context: BrowserContext;
18
+ readonly marker: string;
19
+ close(): Promise<void>;
20
20
  }
21
- export declare function contextHasProviderSession(context: BrowserContext, provider: OAuthProviderId): Promise<boolean>;
22
- export declare function profileHasProviderCookies(profileDir: string, provider: OAuthProviderId): boolean;
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: (context: BrowserContext) => Promise<boolean>;
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: "completed" | "preflight_satisfied" | "timeout";
54
+ status: "satisfied" | "timeout";
76
55
  }>;
77
56
  export interface LoginRunResult {
78
- status: "completed" | "preflight_satisfied" | "timeout";
57
+ status: "satisfied" | "timeout";
79
58
  closeState: ProfileCloseState;
80
59
  }
81
- export declare function finalizeLoginRun(opts: Pick<RunInBotChromeOpts, "profileDir" | "onConfirmedLogin" | "seedProvider">, result: LoginRunResult, publishSeed?: typeof publishOperatorProfileSeed): Promise<void>;
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: (profileDir: string, wizardCompleted: boolean) => Promise<InstallClaimPollResult>;
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";