@trusty-squire/mcp 0.4.1 → 0.5.0

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 (59) hide show
  1. package/README.md +25 -10
  2. package/assets/login/interstitial.html +47 -0
  3. package/assets/login/vnc.html +90 -0
  4. package/dist/api-client.d.ts +7 -9
  5. package/dist/api-client.d.ts.map +1 -1
  6. package/dist/api-client.js +9 -9
  7. package/dist/api-client.js.map +1 -1
  8. package/dist/bot/agent.d.ts.map +1 -1
  9. package/dist/bot/agent.js +76 -52
  10. package/dist/bot/agent.js.map +1 -1
  11. package/dist/bot/google-login.d.ts.map +1 -1
  12. package/dist/bot/google-login.js +111 -8
  13. package/dist/bot/google-login.js.map +1 -1
  14. package/dist/install/agents.d.ts +1 -1
  15. package/dist/install/agents.d.ts.map +1 -1
  16. package/dist/install/agents.js +76 -7
  17. package/dist/install/agents.js.map +1 -1
  18. package/dist/install/cli.d.ts +9 -5
  19. package/dist/install/cli.d.ts.map +1 -1
  20. package/dist/install/cli.js +192 -98
  21. package/dist/install/cli.js.map +1 -1
  22. package/dist/server.d.ts.map +1 -1
  23. package/dist/server.js +15 -22
  24. package/dist/server.js.map +1 -1
  25. package/dist/session.d.ts.map +1 -1
  26. package/dist/session.js.map +1 -1
  27. package/dist/tools/cancel.d.ts.map +1 -1
  28. package/dist/tools/cancel.js +2 -2
  29. package/dist/tools/cancel.js.map +1 -1
  30. package/dist/tools/get-credential.d.ts.map +1 -1
  31. package/dist/tools/get-credential.js +2 -2
  32. package/dist/tools/get-credential.js.map +1 -1
  33. package/dist/tools/get-usage.d.ts.map +1 -1
  34. package/dist/tools/get-usage.js +2 -2
  35. package/dist/tools/get-usage.js.map +1 -1
  36. package/dist/tools/index.d.ts +1 -1
  37. package/dist/tools/index.d.ts.map +1 -1
  38. package/dist/tools/index.js +10 -8
  39. package/dist/tools/index.js.map +1 -1
  40. package/dist/tools/list-credentials.d.ts.map +1 -1
  41. package/dist/tools/list-credentials.js +2 -2
  42. package/dist/tools/list-credentials.js.map +1 -1
  43. package/dist/tools/list-services.d.ts.map +1 -1
  44. package/dist/tools/list-services.js +2 -2
  45. package/dist/tools/list-services.js.map +1 -1
  46. package/dist/tools/list-subscriptions.d.ts.map +1 -1
  47. package/dist/tools/list-subscriptions.js +2 -2
  48. package/dist/tools/list-subscriptions.js.map +1 -1
  49. package/dist/tools/provision-any.d.ts +4 -4
  50. package/dist/tools/provision-any.d.ts.map +1 -1
  51. package/dist/tools/provision-any.js +45 -32
  52. package/dist/tools/provision-any.js.map +1 -1
  53. package/dist/tools/provision.d.ts.map +1 -1
  54. package/dist/tools/provision.js +2 -2
  55. package/dist/tools/provision.js.map +1 -1
  56. package/dist/tools/wait-for-approval.d.ts.map +1 -1
  57. package/dist/tools/wait-for-approval.js +2 -2
  58. package/dist/tools/wait-for-approval.js.map +1 -1
  59. package/package.json +4 -2
package/README.md CHANGED
@@ -10,15 +10,27 @@ npx @trusty-squire/mcp install
10
10
  npx @trusty-squire/mcp install --target=claude-code
11
11
  ```
12
12
 
13
- The CLI:
14
- 1. Detects installed coding agents (when `--target` is omitted).
15
- 2. Generates a one-time pairing token via `POST /v1/mcp/pair/initiate`.
16
- 3. Opens your browser to `https://app.trustysquire.ai/pair?token=…`.
17
- 4. Polls the API. Once you complete the browser flow with a passkey, the CLI receives the agent session token.
18
- 5. Saves the session to your OS keychain (or a `0600` file fallback when keytar isn't available).
19
- 6. Writes the MCP server config into the target agent's config file. Existing entries are preserved.
13
+ Best run on a laptop or desktop. `install`:
14
+ 1. Detects your coding agent (when `--target` is omitted) and writes its MCP
15
+ config. Existing entries are preserved.
16
+ 2. Issues an anonymous machine token — a handful of free signups, no account.
17
+ 3. Connects your Google (or GitHub) account: a Chrome window opens, you sign
18
+ in once. The bot reuses that browser session to sign you up for services,
19
+ so there is no separate Trusty Squire account or password.
20
20
 
21
- After install, restart your coding agent to pick up the eight squire tools.
21
+ On a headless box (Codespaces, Replit, an SSH server) there is no display, so
22
+ step 3 prints a one-time remote-login URL you open from any browser — including
23
+ a phone. Headless is supported, but a laptop/desktop is the smoother path.
24
+
25
+ Flags:
26
+ - `--provider=google|github|both` — which identity to connect (default: prompt
27
+ on a terminal, otherwise Google).
28
+ - `--skip-login` — write the config + token only; run
29
+ `npx @trusty-squire/mcp login` later. For CI / scripted installs.
30
+
31
+ Re-run the sign-in any time with `npx @trusty-squire/mcp login`.
32
+
33
+ After install, restart your coding agent to pick up the squire tools.
22
34
 
23
35
  ## Tools
24
36
 
@@ -78,6 +90,9 @@ npx @trusty-squire/mcp install --target=claude-code --api-base=http://localhost:
78
90
  ## What this server does NOT do
79
91
 
80
92
  - Fork the coding agent. We write configs only.
81
- - Implement OAuth. One-time pairing is the entire flow.
93
+ - Store your Google/GitHub password. You enter it only on the provider's own
94
+ sign-in page; the bot reuses the resulting browser session, never the
95
+ password.
82
96
  - Bundle the API runtime. Separate apps for separate processes.
83
- - Implement tier-2 fallbacks. The API drives execution.
97
+ - Charge you, in this MVP. Provisioning is free-tier services only; the
98
+ spending-mandate flow lands with paid provisioning.
@@ -0,0 +1,47 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>Trusty Squire — connecting your account</title>
7
+ <!--
8
+ Headed-login interstitial. google-login.ts loginWithDisplay reads
9
+ this, substitutes {{PROVIDER}} and {{URL}}, and setContent()s it as
10
+ the first page in the bot's Chrome window — so the user sees what
11
+ is happening before a tool asks them for a password.
12
+ -->
13
+ <style>
14
+ html, body { margin: 0; height: 100%; background: #0f1115; color: #e6e8ec;
15
+ font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
16
+ body { display: flex; align-items: center; justify-content: center; }
17
+ main { max-width: 460px; padding: 32px 36px; }
18
+ h1 { margin: 0 0 4px; font-size: 20px; color: #fff; }
19
+ .tag { margin: 0 0 22px; font-size: 13px; color: #6e747f; }
20
+ p { font-size: 14px; line-height: 1.55; color: #c4c8d0; }
21
+ b { color: #fff; }
22
+ .safe { font-size: 13px; color: #9aa0ab; border-left: 2px solid #272b35;
23
+ padding-left: 12px; }
24
+ .btn { display: inline-block; margin-top: 24px; padding: 11px 20px;
25
+ background: #3b82f6; color: #fff; text-decoration: none; border-radius: 8px;
26
+ font-size: 14px; font-weight: 600; }
27
+ .btn:hover { background: #2f6fd6; }
28
+ </style>
29
+ </head>
30
+ <body>
31
+ <main>
32
+ <h1>Trusty Squire</h1>
33
+ <p class="tag">Connecting your {{PROVIDER}} account</p>
34
+ <p>
35
+ Trusty Squire signs you up for developer services on your behalf.
36
+ To do that it rides your own <b>{{PROVIDER}}</b> login — so there is
37
+ no separate account or password to manage.
38
+ </p>
39
+ <p class="safe">
40
+ You will enter your {{PROVIDER}} password only on {{PROVIDER}}'s own
41
+ sign-in page. Trusty Squire never sees or stores it — it only reuses
42
+ the browser session afterward.
43
+ </p>
44
+ <a class="btn" href="{{URL}}">Continue to {{PROVIDER}} sign-in &rarr;</a>
45
+ </main>
46
+ </body>
47
+ </html>
@@ -0,0 +1,90 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
6
+ <title>Trusty Squire — sign in</title>
7
+ <!--
8
+ Trusty Squire branded noVNC client. Served by websockify from a
9
+ temp dir that also holds the installed noVNC `core/` (see
10
+ google-login.ts loginHeadless). Deliberately uses ONLY noVNC's
11
+ stable RFB API — the `RFB` default export, its constructor, the
12
+ `scaleViewport`/`resizeSession` properties, and the
13
+ connect/disconnect/securityfailure events — all stable across
14
+ every noVNC 1.x release, so it survives whatever version the
15
+ host distro's `novnc` package pinned.
16
+ -->
17
+ <style>
18
+ html, body { margin: 0; height: 100%; background: #0f1115; color: #e6e8ec;
19
+ font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
20
+ #bar { display: flex; align-items: center; gap: 8px; padding: 9px 13px;
21
+ background: #171a21; border-bottom: 1px solid #272b35; font-size: 13px;
22
+ line-height: 1.3; }
23
+ #bar b { color: #fff; }
24
+ #bar span.sub { color: #9aa0ab; }
25
+ #dot { width: 8px; height: 8px; border-radius: 50%; background: #e0a23a;
26
+ flex: none; }
27
+ #dot.ok { background: #3fb950; }
28
+ #dot.err { background: #f85149; }
29
+ #screen { position: absolute; top: 39px; left: 0; right: 0; bottom: 0;
30
+ background: #0f1115; }
31
+ #msg { position: absolute; top: 50%; left: 0; right: 0; text-align: center;
32
+ transform: translateY(-50%); color: #9aa0ab; font-size: 14px; padding: 0 24px; }
33
+ </style>
34
+ </head>
35
+ <body>
36
+ <div id="bar">
37
+ <span id="dot"></span>
38
+ <b>Trusty Squire</b>
39
+ <span class="sub">— sign in to your account, then return to your terminal.</span>
40
+ </div>
41
+ <div id="screen"></div>
42
+ <div id="msg">Connecting to the secure login window&hellip;</div>
43
+ <script type="module">
44
+ import RFB from "./core/rfb.js";
45
+
46
+ // The VNC password rides in the URL fragment (#password=...), never
47
+ // the query string — a fragment is never sent to the server, so the
48
+ // secret stays out of the cloudflared edge logs and any proxy.
49
+ const params = new URLSearchParams(location.hash.replace(/^#/, ""));
50
+ const password = params.get("password") || "";
51
+ const dot = document.getElementById("dot");
52
+ const msg = document.getElementById("msg");
53
+ const screen = document.getElementById("screen");
54
+
55
+ const wsUrl =
56
+ (location.protocol === "https:" ? "wss://" : "ws://") +
57
+ location.host +
58
+ "/websockify";
59
+
60
+ let rfb;
61
+ try {
62
+ rfb = new RFB(screen, wsUrl, { credentials: { password }, shared: true });
63
+ rfb.scaleViewport = true;
64
+ rfb.resizeSession = false;
65
+ } catch (err) {
66
+ dot.className = "err";
67
+ msg.textContent = "Could not start the login window: " + err;
68
+ }
69
+
70
+ if (rfb) {
71
+ rfb.addEventListener("connect", () => {
72
+ dot.className = "ok";
73
+ msg.style.display = "none";
74
+ });
75
+ rfb.addEventListener("disconnect", () => {
76
+ dot.className = "err";
77
+ msg.style.display = "";
78
+ msg.textContent =
79
+ "Login window closed. If you finished signing in, return to " +
80
+ "your terminal — you can close this tab.";
81
+ });
82
+ rfb.addEventListener("securityfailure", () => {
83
+ dot.className = "err";
84
+ msg.style.display = "";
85
+ msg.textContent = "Could not authenticate to the login window.";
86
+ });
87
+ }
88
+ </script>
89
+ </body>
90
+ </html>
@@ -102,23 +102,22 @@ export declare class ApiClient {
102
102
  private post;
103
103
  private handleResponse;
104
104
  }
105
- export interface PairInitiateResponse {
106
- pair_token: string;
107
- pair_url: string;
105
+ export interface InstallInitiateResponse {
106
+ setup_code: string;
107
+ confirm_url: string;
108
108
  expires_at: string;
109
109
  }
110
- export declare function pairInitiate(apiBaseUrl: string, agentIdentity: string, machineToken?: string | null, fetchImpl?: typeof fetch): Promise<PairInitiateResponse>;
111
- export interface PairStatusResponse {
110
+ export declare function installInitiate(apiBaseUrl: string, agentIdentity: string, machineToken?: string | null, fetchImpl?: typeof fetch): Promise<InstallInitiateResponse>;
111
+ export interface InstallStatusResponse {
112
112
  status: "pending" | "claimed" | "expired";
113
113
  agent_session_token?: string;
114
114
  account_id?: string;
115
115
  }
116
- export declare function pairPoll(apiBaseUrl: string, token: string, fetchImpl?: typeof fetch): Promise<PairStatusResponse>;
116
+ export declare function installPoll(apiBaseUrl: string, setupCode: string, fetchImpl?: typeof fetch): Promise<InstallStatusResponse>;
117
117
  export interface MachineInstallResponse {
118
118
  machine_token: string;
119
119
  quota_limit: number;
120
120
  quota_used: number;
121
- tier: "anonymous" | "paired";
122
121
  message?: string;
123
122
  }
124
123
  export interface InstallAsnPayload {
@@ -130,12 +129,11 @@ export interface InstallAsnPayload {
130
129
  }
131
130
  export declare function issueMachineToken(apiBaseUrl: string, fetchImpl?: typeof fetch, asn?: InstallAsnPayload): Promise<MachineInstallResponse>;
132
131
  export interface MachineStatusResponse {
133
- tier: "anonymous" | "paired";
134
132
  quota_limit: number;
135
133
  quota_used: number;
136
134
  quota_remaining: number;
137
135
  over_quota: boolean;
138
- paired_account_id: string | null;
136
+ account_id: string | null;
139
137
  created_at: string;
140
138
  last_used_at: string | null;
141
139
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  // keep their behaviour deterministic without spinning up HTTP.
6
6
  export class MissingSessionError extends Error {
7
7
  constructor() {
8
- super("No active Trusty Squire session. Run `npx @trusty-squire/mcp install --target=<agent>` to pair this machine.");
8
+ super("No active Trusty Squire session. Run `npx @trusty-squire/mcp install --target=<agent>` to set up this machine.");
9
9
  this.name = "MissingSessionError";
10
10
  }
11
11
  }
@@ -114,11 +114,11 @@ function isErrorBody(b) {
114
114
  "error" in b &&
115
115
  typeof b.error === "string");
116
116
  }
117
- export async function pairInitiate(apiBaseUrl, agentIdentity,
118
- // Optional Tier-0 machine token. When supplied the eventual claim
119
- // links it to the new account so quota stops applying.
117
+ export async function installInitiate(apiBaseUrl, agentIdentity,
118
+ // The machine token issued seconds earlier via /v1/install — bound
119
+ // to the account at claim time so quota tracks against the account.
120
120
  machineToken = null, fetchImpl = fetch) {
121
- const res = await fetchImpl(`${apiBaseUrl}/v1/mcp/pair/initiate`, {
121
+ const res = await fetchImpl(`${apiBaseUrl}/v1/mcp/install/initiate`, {
122
122
  method: "POST",
123
123
  headers: { "Content-Type": "application/json" },
124
124
  body: JSON.stringify({
@@ -127,16 +127,16 @@ machineToken = null, fetchImpl = fetch) {
127
127
  }),
128
128
  });
129
129
  if (!res.ok)
130
- throw new ApiCallError(res.status, "pair_initiate_failed", "pairing failed");
130
+ throw new ApiCallError(res.status, "install_initiate_failed", "install handshake failed");
131
131
  return (await res.json());
132
132
  }
133
- export async function pairPoll(apiBaseUrl, token, fetchImpl = fetch) {
134
- const res = await fetchImpl(`${apiBaseUrl}/v1/mcp/pair/${encodeURIComponent(token)}/status`);
133
+ export async function installPoll(apiBaseUrl, setupCode, fetchImpl = fetch) {
134
+ const res = await fetchImpl(`${apiBaseUrl}/v1/mcp/install/${encodeURIComponent(setupCode)}/status`);
135
135
  // 200 + status === 'pending' | 'claimed'; 410 → expired (return shape rather than throw).
136
136
  if (res.status === 410)
137
137
  return { status: "expired" };
138
138
  if (!res.ok)
139
- throw new ApiCallError(res.status, "pair_poll_failed", "pairing poll failed");
139
+ throw new ApiCallError(res.status, "install_poll_failed", "install poll failed");
140
140
  return (await res.json());
141
141
  }
142
142
  export async function issueMachineToken(apiBaseUrl, fetchImpl = fetch, asn) {
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/bot/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/bot/agent.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,iBAAiB,EAGjB,cAAc,EACd,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,OAAO,EACb,MAAM,iBAAiB,CAAC;AAKzB,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,KAAK,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,aAAa,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACrE,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC;QACV,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;KACrC,CAAC,CAAC;CACJ;AAsED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGlE;AAED,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,MAAM,EAAE,MAAM;CAI3B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,MAAM,CAAC;IAC/B,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAI/B,0BAA0B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAIhD,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAOzC,aAAa,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;CAC7C;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;KACnC,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAIhB,SAAS,CAAC,EAAE,MAAM,CAAC;IAMnB,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAMjC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAOhC,OAAO,CAAC,EAAE,OAAO,CAAC;IAKlB,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,WAAW,GAAG,WAAW,CAAC;QAIhC,OAAO,EAAE,cAAc,CAAC;QACxB,kBAAkB,EAAE,OAAO,CAAC;QAI5B,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAGD,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,aAAa,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC/F;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAqBD,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAIjE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAKpD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAKtD,QAAA,MAAM,gBAAgB,0EAOZ,CAAC;AACX,KAAK,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAkHvD,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GACrC,UAAU,CAoCZ;AAKD,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,GAAG,MAAM,CA2BhF;AAKD,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,kBAAkB,EAAE,GACvC,OAAO,CAmBT;AAgBD,wBAAgB,eAAe,CAC7B,SAAS,EAAE,SAAS,kBAAkB,EAAE,EACxC,QAAQ,EAAE,eAAe,GACxB,kBAAkB,GAAG,IAAI,CAkC3B;AAKD,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,kBAAkB,EAAE,EACxC,SAAS,EAAE,SAAS,eAAe,EAAE,GACpC;IAAE,QAAQ,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,GAAG,IAAI,CAMlE;AAQD,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GACrC,cAAc,CA6DhB;AAwDD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkDjE;AASD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAa5E;AASD,qBAAa,WAAW;IAwbpB,OAAO,CAAC,OAAO;IApbjB,OAAO,CAAC,YAAY,CAAK;IAIzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAOlC,OAAO,CAAC,gBAAgB,CAAsC;IAM9D,OAAO,CAAC,UAAU;YAuBJ,cAAc;YAgCd,WAAW;YAsDX,oBAAoB;YAwNpB,cAAc;YAgCd,sBAAsB;YAqBtB,UAAU;gBAwCd,OAAO,EAAE,iBAAiB,EAClC,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO;IAkB3B,IAAI,QAAQ,IAAI,SAAS,MAAM,EAAE,CAEhC;YAOa,OAAO;YAcP,YAAY;YA+CZ,UAAU;IA6ClB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;YA8BvC,SAAS;YAsPT,YAAY;IA0J1B,OAAO,CAAC,UAAU;YAcJ,qBAAqB;YAerB,cAAc;IAkE5B,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,oBAAoB;YAQd,wBAAwB;YA4CxB,cAAc;YA2Kd,oBAAoB;YA6CpB,kBAAkB;YA2HlB,cAAc;YAcd,kBAAkB;CA0BjC"}
package/dist/bot/agent.js CHANGED
@@ -9,7 +9,6 @@
9
9
  // prompt rather than threading service-specific logic through the agent.
10
10
  import { rankAndCapInventory, scoreSignupButton } from "./browser.js";
11
11
  import { OAUTH_PROVIDERS, extractOAuthScopes, } from "./oauth-providers.js";
12
- import { detectAsn } from "./asn.js";
13
12
  import { loggedInProviders } from "./login-state.js";
14
13
  import { saveDebugSnapshot } from "./debug.js";
15
14
  import { captureOnboardingRound } from "./onboarding-capture.js";
@@ -34,6 +33,8 @@ const VERIFICATION_EXPECTED_PATTERNS = [
34
33
  "check your inbox",
35
34
  "verify your email",
36
35
  "verify your inbox",
36
+ "verify your account",
37
+ "confirm your account",
37
38
  "confirm your email",
38
39
  "confirmation email",
39
40
  "verification email",
@@ -857,8 +858,15 @@ export class SignupAgent {
857
858
  // OAuth — it returns every provider the persistent profile has a
858
859
  // login session for, so a "Continue with Google/GitHub" affordance is
859
860
  // used instead of a form-fill (which OAuth-gated dev services
860
- // routinely anti-abuse-flag). Gated off on datacenter egress, where
861
- // the provider challenges the handshake (G7).
861
+ // routinely anti-abuse-flag).
862
+ //
863
+ // No datacenter gate (reversed from the 0.4.0 design): yes, Google /
864
+ // GitHub may challenge OAuth from a datacenter IP (G7), but form-fill
865
+ // on datacenter fails just as often — silent verification withholding,
866
+ // the Resend-on-Hetzner case. An OAuth challenge at least surfaces a
867
+ // clear `needs_login` the host agent can act on, vs. a silent 45-second
868
+ // form-fill timeout. Better failure mode wins; the original gate was
869
+ // protecting the bot from the wrong loss.
862
870
  async resolveOAuthCandidates(task, steps) {
863
871
  if (task.oauthProvider !== undefined) {
864
872
  return [task.oauthProvider];
@@ -866,12 +874,6 @@ export class SignupAgent {
866
874
  const loggedIn = loggedInProviders();
867
875
  if (loggedIn.length === 0)
868
876
  return [];
869
- const asn = await detectAsn();
870
- if (asn?.class === "datacenter") {
871
- steps.push("Auto-OAuth skipped: datacenter egress — the provider would " +
872
- "challenge the handshake; using form-fill");
873
- return [];
874
- }
875
877
  steps.push(`Auto-OAuth: profile has a session for ${loggedIn.join(", ")} — ` +
876
878
  "preferring OAuth if the page offers it");
877
879
  return loggedIn;
@@ -1169,57 +1171,79 @@ export class SignupAgent {
1169
1171
  let credentials = await this.extractCredentials();
1170
1172
  // Step 7: Email verification + post-verification navigation.
1171
1173
  let verificationFailed;
1172
- if (credentials.api_key === undefined && credentials.username === undefined && task.inbox !== undefined) {
1173
- // S3: don't blind-wait. Read the post-submit page first. If it
1174
- // explicitly tells the user to check their email, poll the full
1175
- // timeout. If it does not, the service most likely sent no
1176
- // verification email — run a short probe instead of dead air.
1174
+ if (credentials.api_key === undefined && credentials.username === undefined) {
1175
+ // S3: read the post-submit page first. Whether it is actually
1176
+ // asking the user to confirm by email decides both the no-inbox
1177
+ // bail (M2) and, when an inbox exists, the poll duration.
1177
1178
  const expectsEmail = expectsVerificationEmail(await this.browser.extractText());
1178
- const verificationTimeoutSeconds = expectsEmail
1179
- ? (task.verificationTimeoutSeconds ?? 180)
1180
- : VERIFICATION_PROBE_SECONDS;
1181
- steps.push(expectsEmail
1182
- ? `Post-submit page asks to check email polling inbox (up to ${verificationTimeoutSeconds}s)...`
1183
- : `Post-submit page shows no "check your email" prompt short ${verificationTimeoutSeconds}s probe (S3: the service likely sent no verification email)...`);
1184
- try {
1185
- const email = await this.waitForVerificationEmail(task.inbox, task.email, verificationTimeoutSeconds);
1186
- steps.push(`Received: "${email.subject}" from ${email.from_address}`);
1187
- if (email.parsed_links.length > 0) {
1188
- const verifyLink = this.pickVerificationLink(Array.from(email.parsed_links));
1189
- if (verifyLink !== null) {
1190
- steps.push(`Following verification link: ${verifyLink}`);
1191
- await this.browser.goto(verifyLink);
1192
- await this.browser.wait(3);
1193
- await saveDebugSnapshot(this.browser, "after-verify");
1194
- // Try extracting first — many services drop the API key
1195
- // straight onto the landing page after verification.
1196
- credentials = await this.extractCredentials();
1197
- // If no creds yet, run the Claude-planned navigation loop.
1198
- if (credentials.api_key === undefined && credentials.username === undefined) {
1199
- const maxRounds = task.postVerifyMaxRounds ?? 6;
1200
- credentials = await this.postVerifyLoop({
1201
- service: task.service,
1202
- credentials: { email: task.email, password },
1203
- maxRounds,
1204
- steps,
1205
- });
1179
+ if (task.inbox === undefined) {
1180
+ // M2/S3: no inbox to receive a verification email (the SES
1181
+ // inbound pipeline is mothballed — TODOS M1). If the page is
1182
+ // asking for email confirmation the bot cannot finish this
1183
+ // signup, so bail FAST to a manual-signup result rather than
1184
+ // a poll that could only ever time out. If the page is NOT
1185
+ // asking for email, the credentials simply are not on it —
1186
+ // fall through to the generic not-found result below.
1187
+ if (expectsEmail) {
1188
+ const where = task.signupUrl !== undefined ? ` at ${task.signupUrl}` : "";
1189
+ steps.push("Post-submit page asks for email verification, but no inbox is " +
1190
+ "configured — stopping for manual signup (no blind poll).");
1191
+ verificationFailed =
1192
+ `verification_not_sent: ${task.service} requires email verification, ` +
1193
+ `which the automated signup cannot complete — finish signing up ` +
1194
+ `manually${where}.`;
1195
+ }
1196
+ }
1197
+ else {
1198
+ // S3: don't blind-wait. If the page explicitly tells the user
1199
+ // to check their email, poll the full timeout; if not, the
1200
+ // service most likely sent nothing — run a short probe.
1201
+ const verificationTimeoutSeconds = expectsEmail
1202
+ ? (task.verificationTimeoutSeconds ?? 180)
1203
+ : VERIFICATION_PROBE_SECONDS;
1204
+ steps.push(expectsEmail
1205
+ ? `Post-submit page asks to check email — polling inbox (up to ${verificationTimeoutSeconds}s)...`
1206
+ : `Post-submit page shows no "check your email" prompt — short ${verificationTimeoutSeconds}s probe (S3: the service likely sent no verification email)...`);
1207
+ try {
1208
+ const email = await this.waitForVerificationEmail(task.inbox, task.email, verificationTimeoutSeconds);
1209
+ steps.push(`Received: "${email.subject}" from ${email.from_address}`);
1210
+ if (email.parsed_links.length > 0) {
1211
+ const verifyLink = this.pickVerificationLink(Array.from(email.parsed_links));
1212
+ if (verifyLink !== null) {
1213
+ steps.push(`Following verification link: ${verifyLink}`);
1214
+ await this.browser.goto(verifyLink);
1215
+ await this.browser.wait(3);
1216
+ await saveDebugSnapshot(this.browser, "after-verify");
1217
+ // Try extracting first — many services drop the API key
1218
+ // straight onto the landing page after verification.
1219
+ credentials = await this.extractCredentials();
1220
+ // If no creds yet, run the Claude-planned navigation loop.
1221
+ if (credentials.api_key === undefined && credentials.username === undefined) {
1222
+ const maxRounds = task.postVerifyMaxRounds ?? 6;
1223
+ credentials = await this.postVerifyLoop({
1224
+ service: task.service,
1225
+ credentials: { email: task.email, password },
1226
+ maxRounds,
1227
+ steps,
1228
+ });
1229
+ }
1230
+ }
1231
+ else {
1232
+ steps.push("Email had no usable verification link.");
1206
1233
  }
1207
1234
  }
1208
1235
  else {
1209
- steps.push("Email had no usable verification link.");
1236
+ steps.push("Email had no parsed links — skipping verification click.");
1210
1237
  }
1211
1238
  }
1212
- else {
1213
- steps.push("Email had no parsed links skipping verification click.");
1239
+ catch (err) {
1240
+ const detail = err instanceof Error ? err.message : String(err);
1241
+ steps.push(`Inbox poll failed: ${detail}`);
1242
+ verificationFailed = expectsEmail
1243
+ ? `verification_not_sent: form submitted and the page asked to check email, but none arrived in ${verificationTimeoutSeconds}s — the service likely withheld it (anti-abuse) or requires manual signup`
1244
+ : `verification_not_sent: form submitted but the page never prompted to check email and none arrived in the ${verificationTimeoutSeconds}s probe — the service most likely dispatched no verification email`;
1214
1245
  }
1215
1246
  }
1216
- catch (err) {
1217
- const detail = err instanceof Error ? err.message : String(err);
1218
- steps.push(`Inbox poll failed: ${detail}`);
1219
- verificationFailed = expectsEmail
1220
- ? `verification_not_sent: form submitted and the page asked to check email, but none arrived in ${verificationTimeoutSeconds}s — the service likely withheld it (anti-abuse) or requires manual signup`
1221
- : `verification_not_sent: form submitted but the page never prompted to check email and none arrived in the ${verificationTimeoutSeconds}s probe — the service most likely dispatched no verification email`;
1222
- }
1223
1247
  }
1224
1248
  if (credentials.api_key !== undefined || credentials.username !== undefined) {
1225
1249
  return {