@trusty-squire/mcp 0.6.14-rc.7 → 0.6.14-rc.8
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/dist/api-client.d.ts +45 -0
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +43 -0
- package/dist/api-client.js.map +1 -1
- package/dist/bot/agent.d.ts +15 -1
- package/dist/bot/agent.d.ts.map +1 -1
- package/dist/bot/agent.js +73 -13
- package/dist/bot/agent.js.map +1 -1
- package/dist/bot/browser.d.ts.map +1 -1
- package/dist/bot/browser.js +25 -4
- package/dist/bot/browser.js.map +1 -1
- package/dist/bot/index.d.ts +3 -2
- package/dist/bot/index.d.ts.map +1 -1
- package/dist/bot/index.js +4 -2
- package/dist/bot/index.js.map +1 -1
- package/dist/bot/llm-client.d.ts +1 -1
- package/dist/bot/llm-client.d.ts.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +1 -0
- package/dist/server.js.map +1 -1
- package/dist/tools/extract-failures.d.ts +23 -0
- package/dist/tools/extract-failures.d.ts.map +1 -0
- package/dist/tools/extract-failures.js +108 -0
- package/dist/tools/extract-failures.js.map +1 -0
- package/dist/tools/index.d.ts +2 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +6 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/provision-any.d.ts.map +1 -1
- package/dist/tools/provision-any.js +53 -0
- package/dist/tools/provision-any.js.map +1 -1
- package/package.json +1 -1
package/dist/api-client.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export interface ApiClientConfig {
|
|
|
13
13
|
agentSessionToken: string;
|
|
14
14
|
fetch?: typeof fetch;
|
|
15
15
|
agentIdentity?: string;
|
|
16
|
+
accountId?: string;
|
|
16
17
|
}
|
|
17
18
|
export interface ProvisionInput {
|
|
18
19
|
service: string;
|
|
@@ -94,6 +95,50 @@ export declare class ApiClient {
|
|
|
94
95
|
}>;
|
|
95
96
|
cancelSubscription(id: string): Promise<unknown>;
|
|
96
97
|
getUsage(): Promise<UsageResponse>;
|
|
98
|
+
uploadExtractFailure(input: {
|
|
99
|
+
service: string;
|
|
100
|
+
mcp_version: string;
|
|
101
|
+
url: string;
|
|
102
|
+
title: string;
|
|
103
|
+
step_label: string;
|
|
104
|
+
extract_reason: string;
|
|
105
|
+
candidates: ReadonlyArray<string>;
|
|
106
|
+
html: string;
|
|
107
|
+
screenshot_jpeg_base64?: string;
|
|
108
|
+
}): Promise<{
|
|
109
|
+
id: string;
|
|
110
|
+
}>;
|
|
111
|
+
listExtractFailures(limit?: number): Promise<{
|
|
112
|
+
snapshots: Array<{
|
|
113
|
+
id: string;
|
|
114
|
+
service: string;
|
|
115
|
+
mcp_version: string;
|
|
116
|
+
uploaded_at: string;
|
|
117
|
+
expires_at: string;
|
|
118
|
+
url: string;
|
|
119
|
+
title: string;
|
|
120
|
+
step_label: string;
|
|
121
|
+
extract_reason: string;
|
|
122
|
+
html_bytes: number;
|
|
123
|
+
screenshot_bytes: number;
|
|
124
|
+
}>;
|
|
125
|
+
}>;
|
|
126
|
+
getExtractFailure(id: string): Promise<{
|
|
127
|
+
id: string;
|
|
128
|
+
service: string;
|
|
129
|
+
mcp_version: string;
|
|
130
|
+
uploaded_at: string;
|
|
131
|
+
expires_at: string;
|
|
132
|
+
url: string;
|
|
133
|
+
title: string;
|
|
134
|
+
step_label: string;
|
|
135
|
+
extract_reason: string;
|
|
136
|
+
candidates: ReadonlyArray<string>;
|
|
137
|
+
html: string;
|
|
138
|
+
html_bytes: number;
|
|
139
|
+
screenshot_jpeg_base64: string | null;
|
|
140
|
+
screenshot_bytes: number;
|
|
141
|
+
}>;
|
|
97
142
|
listServices(category?: string): Promise<{
|
|
98
143
|
adapters: DirectoryEntry[];
|
|
99
144
|
}>;
|
package/dist/api-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAMA,qBAAa,mBAAoB,SAAQ,KAAK;;CAO7C;AAED,qBAAa,YAAa,SAAQ,KAAK;aAEnB,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,MAAM;aAEZ,IAAI,CAAC,EAAE,OAAO;gBAHd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM,EACC,IAAI,CAAC,EAAE,OAAO,YAAA;CAKjC;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAErB,aAAa,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
package/dist/api-client.js
CHANGED
|
@@ -56,6 +56,44 @@ export class ApiClient {
|
|
|
56
56
|
async getUsage() {
|
|
57
57
|
return this.get("/v1/usage");
|
|
58
58
|
}
|
|
59
|
+
// ── Extract-failure diagnostics ───────────────────────────
|
|
60
|
+
// Upload a DOM + screenshot snapshot from a universal-bot run
|
|
61
|
+
// where extractCredentials() returned null. Lives on the
|
|
62
|
+
// registry-api (not apps/api) because the diagnostic data is
|
|
63
|
+
// operator-facing, not a hot-path workflow. Best-effort: failures
|
|
64
|
+
// here MUST NOT abort the signup. Caller wraps in try/catch.
|
|
65
|
+
async uploadExtractFailure(input) {
|
|
66
|
+
const url = `${this.config.registryBaseUrl}/v1/extract-failures`;
|
|
67
|
+
const res = await this.fetchImpl(url, {
|
|
68
|
+
method: "POST",
|
|
69
|
+
headers: this.headers(),
|
|
70
|
+
body: JSON.stringify(input),
|
|
71
|
+
});
|
|
72
|
+
return (await this.handleResponse(res, "POST", "/v1/extract-failures"));
|
|
73
|
+
}
|
|
74
|
+
// List this account's recent extract-failure snapshots. Returns
|
|
75
|
+
// metadata only — no HTML, no screenshot bytes. Call
|
|
76
|
+
// getExtractFailure(id) to fetch the body of a specific snapshot.
|
|
77
|
+
async listExtractFailures(limit = 20) {
|
|
78
|
+
const url = `${this.config.registryBaseUrl}/v1/extract-failures?limit=${encodeURIComponent(String(limit))}`;
|
|
79
|
+
const res = await this.fetchImpl(url, {
|
|
80
|
+
method: "GET",
|
|
81
|
+
headers: this.headers(),
|
|
82
|
+
});
|
|
83
|
+
return (await this.handleResponse(res, "GET", "/v1/extract-failures"));
|
|
84
|
+
}
|
|
85
|
+
// Fetch the full body of one snapshot: decompressed HTML + base64
|
|
86
|
+
// JPEG screenshot, plus all metadata. Used by the diagnostic MCP
|
|
87
|
+
// tool so a coding agent can pull the DOM into its context window
|
|
88
|
+
// and write a targeted fix in the same conversation.
|
|
89
|
+
async getExtractFailure(id) {
|
|
90
|
+
const url = `${this.config.registryBaseUrl}/v1/extract-failures/${encodeURIComponent(id)}`;
|
|
91
|
+
const res = await this.fetchImpl(url, {
|
|
92
|
+
method: "GET",
|
|
93
|
+
headers: this.headers(),
|
|
94
|
+
});
|
|
95
|
+
return (await this.handleResponse(res, "GET", `/v1/extract-failures/${id}`));
|
|
96
|
+
}
|
|
59
97
|
// ── Service directory ─────────────────────────────────────
|
|
60
98
|
async listServices(category) {
|
|
61
99
|
const url = category !== undefined
|
|
@@ -74,6 +112,11 @@ export class ApiClient {
|
|
|
74
112
|
if (this.config.agentIdentity !== undefined) {
|
|
75
113
|
h["X-Squire-Agent-Identity"] = this.config.agentIdentity;
|
|
76
114
|
}
|
|
115
|
+
// The registry-api scopes its reads to `x-account-id`. Main API
|
|
116
|
+
// ignores unknown headers, so it's safe to always send.
|
|
117
|
+
if (this.config.accountId !== undefined) {
|
|
118
|
+
h["x-account-id"] = this.config.accountId;
|
|
119
|
+
}
|
|
77
120
|
return h;
|
|
78
121
|
}
|
|
79
122
|
async get(path) {
|
package/dist/api-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,oEAAoE;AACpE,iEAAiE;AACjE,+DAA+D;AAE/D,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C;QACE,KAAK,CACH,gHAAgH,CACjH,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,KAAK;IAEnB;IACA;IAEA;IAJlB,YACkB,MAAc,EACd,IAAY,EAC5B,OAAe,EACC,IAAc;QAE9B,KAAK,CAAC,OAAO,CAAC,CAAC;QALC,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAQ;QAEZ,SAAI,GAAJ,IAAI,CAAU;QAG9B,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
package/dist/bot/agent.d.ts
CHANGED
|
@@ -37,6 +37,16 @@ export interface SignupTask {
|
|
|
37
37
|
allowExtraOAuthScopes?: readonly string[] | undefined;
|
|
38
38
|
allowBlindOAuthConsent?: boolean | undefined;
|
|
39
39
|
}
|
|
40
|
+
export type ExtractFailureUploader = (input: {
|
|
41
|
+
service: string;
|
|
42
|
+
url: string;
|
|
43
|
+
title: string;
|
|
44
|
+
step_label: string;
|
|
45
|
+
extract_reason: string;
|
|
46
|
+
candidates: ReadonlyArray<string>;
|
|
47
|
+
html: string;
|
|
48
|
+
screenshot_jpeg_base64?: string;
|
|
49
|
+
}) => Promise<void>;
|
|
40
50
|
export interface SignupResult {
|
|
41
51
|
success: boolean;
|
|
42
52
|
credentials?: {
|
|
@@ -153,7 +163,11 @@ export declare class SignupAgent {
|
|
|
153
163
|
private buildInventory;
|
|
154
164
|
private resolveOAuthCandidates;
|
|
155
165
|
private verifyPlan;
|
|
156
|
-
|
|
166
|
+
private readonly extractFailureUploader?;
|
|
167
|
+
private currentService;
|
|
168
|
+
constructor(browser: BrowserController, llm?: LLMClient | LLMPair, opts?: {
|
|
169
|
+
extractFailureUploader?: ExtractFailureUploader;
|
|
170
|
+
});
|
|
157
171
|
get backends(): readonly string[];
|
|
158
172
|
private callLLM;
|
|
159
173
|
private callLLMInner;
|
package/dist/bot/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;AAM9B,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,OAAO,EACb,MAAM,iBAAiB,CAAC;AAMzB,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;AAwCD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMtD;AAQD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAI/E;AAID,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAUtD;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;IAO5C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAK/B,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAQjC,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAUtD,sBAAsB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9C;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/bot/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/bot/agent.js
CHANGED
|
@@ -970,8 +970,13 @@ export class SignupAgent {
|
|
|
970
970
|
steps.push(`Dismissed cookie consent: "${dismissed}"`);
|
|
971
971
|
}
|
|
972
972
|
await saveDebugSnapshot(this.browser, "before-fill");
|
|
973
|
-
|
|
974
|
-
|
|
973
|
+
// PERF: getState() (page.content + title + screenshot) and
|
|
974
|
+
// extractInteractiveElements (DOM walk) are independent
|
|
975
|
+
// Playwright calls — fire them in parallel.
|
|
976
|
+
const [state, inventory] = await Promise.all([
|
|
977
|
+
this.browser.getState(),
|
|
978
|
+
this.buildInventory(steps, oauthCandidates),
|
|
979
|
+
]);
|
|
975
980
|
// OAuth-first (T6/T13 + auto-prefer): when the page carries a
|
|
976
981
|
// "Sign in with <provider>" affordance for a provider the bot can
|
|
977
982
|
// use, that button unconditionally outranks any form field — hand
|
|
@@ -1155,7 +1160,10 @@ export class SignupAgent {
|
|
|
1155
1160
|
steps.push(`⚠ submit click failed: ${reason}`);
|
|
1156
1161
|
return { kind: "submit_failed", reason };
|
|
1157
1162
|
}
|
|
1158
|
-
|
|
1163
|
+
// PERF: 5s was overcautious — runCaptchaGate has its own wait
|
|
1164
|
+
// for the captcha widget to render, and waitForFormReady at
|
|
1165
|
+
// the next planner iteration handles SPA settle.
|
|
1166
|
+
await this.browser.wait(2);
|
|
1159
1167
|
const postGate = await this.runCaptchaGate("Post-submit", steps);
|
|
1160
1168
|
if (postGate.blocked)
|
|
1161
1169
|
return { kind: "captcha_blocked", captchaKind: postGate.kind };
|
|
@@ -1307,7 +1315,16 @@ export class SignupAgent {
|
|
|
1307
1315
|
}
|
|
1308
1316
|
return misses.length > 0 ? misses.join(", ") : null;
|
|
1309
1317
|
}
|
|
1310
|
-
|
|
1318
|
+
// Diagnostic uploader — best-effort. When set, the post-verify
|
|
1319
|
+
// loop uploads the current DOM + screenshot to the registry-api
|
|
1320
|
+
// after a failed extract pass, so UI-shape regressions can be
|
|
1321
|
+
// diagnosed without users needing to configure debug env vars.
|
|
1322
|
+
// Wired from the MCP layer; undefined in unit-test contexts.
|
|
1323
|
+
extractFailureUploader;
|
|
1324
|
+
// Set per-task in signup(). Lets the uploader know which service
|
|
1325
|
+
// was being provisioned without threading it through every call.
|
|
1326
|
+
currentService = "";
|
|
1327
|
+
constructor(browser, llm, opts = {}) {
|
|
1311
1328
|
this.browser = browser;
|
|
1312
1329
|
if (llm === undefined) {
|
|
1313
1330
|
this.llmPair = pickLLMPair({ preferCheap: PREFER_CHEAP_LLM });
|
|
@@ -1322,6 +1339,9 @@ export class SignupAgent {
|
|
|
1322
1339
|
// case. Tests and the MCP-Sampling future path use this.
|
|
1323
1340
|
this.llmPair = { primary: llm, premium: null };
|
|
1324
1341
|
}
|
|
1342
|
+
if (opts.extractFailureUploader !== undefined) {
|
|
1343
|
+
this.extractFailureUploader = opts.extractFailureUploader;
|
|
1344
|
+
}
|
|
1325
1345
|
}
|
|
1326
1346
|
// Read-only view of how many calls landed on which backend. Exported
|
|
1327
1347
|
// through SignupResult.llm_backends so tests and ops can verify the
|
|
@@ -1433,6 +1453,10 @@ export class SignupAgent {
|
|
|
1433
1453
|
// (Google number-match etc.). Without it, the run still works —
|
|
1434
1454
|
// steps are just only visible in the final result.
|
|
1435
1455
|
const steps = task.stepsSink ?? [];
|
|
1456
|
+
// Stash the service name so the diagnostic uploader (called from
|
|
1457
|
+
// deep inside postVerifyLoop after a failed extract) can label
|
|
1458
|
+
// the snapshot without us threading task through every method.
|
|
1459
|
+
this.currentService = task.service;
|
|
1436
1460
|
const rawTimeout = Number(process.env.UNIVERSAL_BOT_RUN_TIMEOUT_MS);
|
|
1437
1461
|
const timeoutMs = Number.isFinite(rawTimeout) && rawTimeout > 0 ? rawTimeout : 600_000;
|
|
1438
1462
|
let timer;
|
|
@@ -1508,7 +1532,9 @@ export class SignupAgent {
|
|
|
1508
1532
|
}
|
|
1509
1533
|
steps.push(`Navigating to ${signupUrl}`);
|
|
1510
1534
|
await this.browser.goto(signupUrl);
|
|
1511
|
-
|
|
1535
|
+
// PERF: goto() awaits domcontentloaded; the subsequent
|
|
1536
|
+
// waitForFormReady in planExecuteWithRetry handles SPA settle.
|
|
1537
|
+
// No need for a blind 2s dwell here.
|
|
1512
1538
|
// When we *guessed* (no signup_url provided) and the page after
|
|
1513
1539
|
// load doesn't look like a signup page — no inputs, no OAuth
|
|
1514
1540
|
// affordance, or an obvious 404/error title — fall back to the
|
|
@@ -1530,7 +1556,8 @@ export class SignupAgent {
|
|
|
1530
1556
|
steps.push(`${guessed} didn't look like a signup page — searching for the real one`);
|
|
1531
1557
|
const fallbackSearch = `https://www.google.com/search?q=${encodeURIComponent(`${task.service} signup`)}`;
|
|
1532
1558
|
await this.browser.goto(fallbackSearch);
|
|
1533
|
-
|
|
1559
|
+
// PERF: domcontentloaded from goto() + findSignupLink reads
|
|
1560
|
+
// the DOM itself — no blind dwell needed.
|
|
1534
1561
|
signupUrl = fallbackSearch;
|
|
1535
1562
|
}
|
|
1536
1563
|
if (signupUrl !== guessed || isGoogleSearchUrl(signupUrl)) {
|
|
@@ -1542,7 +1569,7 @@ export class SignupAgent {
|
|
|
1542
1569
|
await this.runPrewarm(found, steps);
|
|
1543
1570
|
steps.push(`Found signup link: ${found}`);
|
|
1544
1571
|
await this.browser.goto(found);
|
|
1545
|
-
|
|
1572
|
+
// PERF: planner loop's waitForFormReady is next; no dwell.
|
|
1546
1573
|
}
|
|
1547
1574
|
else {
|
|
1548
1575
|
// BUG-1 GUARD: findSignupLink filters off-domain candidates
|
|
@@ -1703,7 +1730,10 @@ export class SignupAgent {
|
|
|
1703
1730
|
if (verifyLink !== null) {
|
|
1704
1731
|
steps.push(`Following verification link: ${verifyLink}`);
|
|
1705
1732
|
await this.browser.goto(verifyLink);
|
|
1706
|
-
|
|
1733
|
+
// PERF: a 1s settle is enough for the verify landing
|
|
1734
|
+
// page to commit cookies + render the post-verify
|
|
1735
|
+
// dashboard. Previous 3s was over-cautious.
|
|
1736
|
+
await this.browser.wait(1);
|
|
1707
1737
|
await saveDebugSnapshot(this.browser, "after-verify");
|
|
1708
1738
|
// Try extracting first — many services drop the API key
|
|
1709
1739
|
// straight onto the landing page after verification.
|
|
@@ -2084,7 +2114,7 @@ Output rules:
|
|
|
2084
2114
|
7-15 char handle.`;
|
|
2085
2115
|
const hintLine = input.hint !== undefined ? `\nHint: ${input.hint}` : "";
|
|
2086
2116
|
const userBlocks = [
|
|
2087
|
-
{ kind: "image", media_type: "image/
|
|
2117
|
+
{ kind: "image", media_type: "image/jpeg", data_base64: input.screenshot },
|
|
2088
2118
|
{
|
|
2089
2119
|
kind: "text",
|
|
2090
2120
|
text: `Service: ${input.service}
|
|
@@ -2206,8 +2236,11 @@ ${formatInventory(input.inventory)}`,
|
|
|
2206
2236
|
let state;
|
|
2207
2237
|
let inventory;
|
|
2208
2238
|
try {
|
|
2209
|
-
|
|
2210
|
-
inventory = await
|
|
2239
|
+
// PERF: parallel getState + inventory (independent calls).
|
|
2240
|
+
[state, inventory] = await Promise.all([
|
|
2241
|
+
this.browser.getState(),
|
|
2242
|
+
this.buildInventory(args.steps, undefined, 80),
|
|
2243
|
+
]);
|
|
2211
2244
|
}
|
|
2212
2245
|
catch (err) {
|
|
2213
2246
|
args.steps.push(`Post-verify round ${round}: page was mid-navigation ` +
|
|
@@ -2335,6 +2368,33 @@ ${formatInventory(input.inventory)}`,
|
|
|
2335
2368
|
credentials = await this.extractCredentials();
|
|
2336
2369
|
if (credentials.api_key === undefined) {
|
|
2337
2370
|
consecutiveFailedExtracts += 1;
|
|
2371
|
+
// Best-effort diagnostic upload: when extract returns
|
|
2372
|
+
// null despite the planner asserting a credential is
|
|
2373
|
+
// visible, capture the DOM + screenshot so the UI shape
|
|
2374
|
+
// can be inspected later. Wrapped tight — any failure
|
|
2375
|
+
// here MUST NOT abort the post-verify loop.
|
|
2376
|
+
if (this.extractFailureUploader !== undefined) {
|
|
2377
|
+
void (async () => {
|
|
2378
|
+
try {
|
|
2379
|
+
const snapshot = await this.browser.getState();
|
|
2380
|
+
const candidates = await this.browser.extractCredentialCandidates();
|
|
2381
|
+
await this.extractFailureUploader({
|
|
2382
|
+
service: this.currentService,
|
|
2383
|
+
url: snapshot.url,
|
|
2384
|
+
title: snapshot.title,
|
|
2385
|
+
step_label: `post-verify round ${round + 1}/${args.maxRounds}: extract`,
|
|
2386
|
+
extract_reason: nextStep.reason,
|
|
2387
|
+
candidates,
|
|
2388
|
+
html: snapshot.html,
|
|
2389
|
+
screenshot_jpeg_base64: snapshot.screenshot,
|
|
2390
|
+
});
|
|
2391
|
+
args.steps.push(`Diagnostic: uploaded extract-failure snapshot (post-verify round ${round + 1}).`);
|
|
2392
|
+
}
|
|
2393
|
+
catch {
|
|
2394
|
+
// Silent — diagnostic uploads are best-effort.
|
|
2395
|
+
}
|
|
2396
|
+
})();
|
|
2397
|
+
}
|
|
2338
2398
|
// Two consecutive failed extracts on a DOM the planner
|
|
2339
2399
|
// keeps quoting a token from means the value's shape is
|
|
2340
2400
|
// not in our regex library (Railway: bare UUID; some
|
|
@@ -2420,7 +2480,7 @@ ${formatInventory(input.inventory)}`,
|
|
|
2420
2480
|
}
|
|
2421
2481
|
else if (nextStep.kind === "navigate") {
|
|
2422
2482
|
await this.browser.goto(nextStep.url);
|
|
2423
|
-
|
|
2483
|
+
// PERF: next round opens with waitForFormReady; no blind dwell.
|
|
2424
2484
|
}
|
|
2425
2485
|
else if (nextStep.kind === "wait") {
|
|
2426
2486
|
await this.browser.wait(Math.min(nextStep.seconds, 15));
|
|
@@ -2556,7 +2616,7 @@ ${loginGuidance}
|
|
|
2556
2616
|
- On a form with MULTIPLE permission rows (Sentry: Project, Team, Member, Issue, Event, Release, Organization), set EACH ONE before clicking Create. One step per turn — return to this turn-by-turn until every row is set.
|
|
2557
2617
|
- Round ${input.round + 1} of ${input.maxRounds}. Prefer "done" if you're not making progress.`;
|
|
2558
2618
|
const userBlocks = [
|
|
2559
|
-
{ kind: "image", media_type: "image/
|
|
2619
|
+
{ kind: "image", media_type: "image/jpeg", data_base64: input.state.screenshot },
|
|
2560
2620
|
{
|
|
2561
2621
|
kind: "text",
|
|
2562
2622
|
text: `Service: ${input.service}
|