instar 1.3.1271 → 1.3.1273
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/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +28 -2
- package/dist/commands/server.js.map +1 -1
- package/dist/core/AnthropicReloginBrowserDriver.d.ts +80 -0
- package/dist/core/AnthropicReloginBrowserDriver.d.ts.map +1 -1
- package/dist/core/AnthropicReloginBrowserDriver.js +159 -8
- package/dist/core/AnthropicReloginBrowserDriver.js.map +1 -1
- package/dist/core/ChromeCdpReloginBrowser.d.ts +13 -1
- package/dist/core/ChromeCdpReloginBrowser.d.ts.map +1 -1
- package/dist/core/ChromeCdpReloginBrowser.js +67 -0
- package/dist/core/ChromeCdpReloginBrowser.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +11 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/SubscriptionReloginOrchestrator.d.ts +6 -0
- package/dist/core/SubscriptionReloginOrchestrator.d.ts.map +1 -1
- package/dist/core/SubscriptionReloginOrchestrator.js +1 -1
- package/dist/core/SubscriptionReloginOrchestrator.js.map +1 -1
- package/dist/core/SubscriptionReloginRuntime.d.ts +16 -1
- package/dist/core/SubscriptionReloginRuntime.d.ts.map +1 -1
- package/dist/core/SubscriptionReloginRuntime.js +13 -1
- package/dist/core/SubscriptionReloginRuntime.js.map +1 -1
- package/dist/core/types.d.ts +13 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/data/standards-guard-index.json +1 -1
- package/dist/data/standards-guard-index.meta.json +2 -2
- package/dist/data/standards-registry.meta.json +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +1 -0
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/scheduler/AgentMdJobLoader.d.ts +2 -0
- package/dist/scheduler/AgentMdJobLoader.d.ts.map +1 -1
- package/dist/scheduler/AgentMdJobLoader.js +14 -7
- package/dist/scheduler/AgentMdJobLoader.js.map +1 -1
- package/dist/scheduler/InstallBuiltinJobs.d.ts.map +1 -1
- package/dist/scheduler/InstallBuiltinJobs.js +3 -0
- package/dist/scheduler/InstallBuiltinJobs.js.map +1 -1
- package/dist/scheduler/JevJobCompletionAudit.d.ts +18 -2
- package/dist/scheduler/JevJobCompletionAudit.d.ts.map +1 -1
- package/dist/scheduler/JevJobCompletionAudit.js +35 -5
- package/dist/scheduler/JevJobCompletionAudit.js.map +1 -1
- package/dist/scheduler/JobScheduler.js +3 -3
- package/dist/scheduler/JobScheduler.js.map +1 -1
- package/dist/scheduler/buildPerSlugManifest.d.ts +2 -0
- package/dist/scheduler/buildPerSlugManifest.d.ts.map +1 -1
- package/dist/scheduler/buildPerSlugManifest.js +2 -0
- package/dist/scheduler/buildPerSlugManifest.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +20 -20
- package/src/data/standards-guard-index.json +1 -1
- package/src/data/standards-guard-index.meta.json +2 -2
- package/src/data/standards-registry.meta.json +1 -1
- package/src/scaffold/templates/jobs/instar/commitment-detection.md +3 -1
- package/src/scaffold/templates/jobs/instar/reflection-trigger.md +3 -0
- package/src/scaffold/templates.ts +1 -0
- package/upgrades/1.3.1272.md +58 -0
- package/upgrades/1.3.1273.md +24 -0
- package/upgrades/agent-driven-relogin.eli16.md +7 -0
- package/upgrades/side-effects/agent-driven-relogin.md +42 -0
- package/upgrades/side-effects/jev-audit-claimed-effects.md +88 -0
|
@@ -17,6 +17,17 @@ export interface ReloginBrowserSnapshot {
|
|
|
17
17
|
hasNotNow?: boolean;
|
|
18
18
|
requestedScopes: string[];
|
|
19
19
|
}
|
|
20
|
+
/** Raw facts about the page's visible controls (spec agent-driven-relogin). The driver filters + redacts. */
|
|
21
|
+
export interface ReloginControlObservation {
|
|
22
|
+
title: string;
|
|
23
|
+
path: string;
|
|
24
|
+
controls: {
|
|
25
|
+
n: number;
|
|
26
|
+
text: string;
|
|
27
|
+
identities: string[];
|
|
28
|
+
}[];
|
|
29
|
+
inputKinds: string[];
|
|
30
|
+
}
|
|
20
31
|
export type ReloginBrowserClick = 'next' | 'authorize' | 'google' | 'passkey-continue' | 'try-another-way' | 'create-passkey' | 'create-passkey-confirm' | 'not-now';
|
|
21
32
|
export interface ReloginBrowserPort {
|
|
22
33
|
open(url: string): Promise<void>;
|
|
@@ -28,6 +39,9 @@ export interface ReloginBrowserPort {
|
|
|
28
39
|
fillSecret(field: 'password' | 'totp' | 'backup-code', value: string): Promise<void>;
|
|
29
40
|
click(action: ReloginBrowserClick): Promise<void>;
|
|
30
41
|
readPasteCode(): Promise<string | null>;
|
|
42
|
+
/** Agent navigation (optional): the page's visible controls, and a real click on one of them. */
|
|
43
|
+
observeControls?(): Promise<ReloginControlObservation>;
|
|
44
|
+
clickControl?(n: number, expectedText: string, expectedIdentities: string[]): Promise<void>;
|
|
31
45
|
wait(ms: number): Promise<void>;
|
|
32
46
|
close(): Promise<void>;
|
|
33
47
|
}
|
|
@@ -74,6 +88,33 @@ export interface AnthropicReloginBrowserDriverDeps {
|
|
|
74
88
|
maxSteps?: number;
|
|
75
89
|
/** Total time to wait out a bot-check interstitial per drive (default 90 s, capped at 5 min). */
|
|
76
90
|
interstitialMaxMs?: number;
|
|
91
|
+
/**
|
|
92
|
+
* `agent` (spec agent-driven-relogin): on every non-terminal page a model chooses the next
|
|
93
|
+
* step from an OPEN, floor-filtered list of the page's visible controls plus the typed fills,
|
|
94
|
+
* instead of the page-class table. Sign-in drives only; enrollment stays `closed`.
|
|
95
|
+
*/
|
|
96
|
+
navigation?: 'closed' | 'agent';
|
|
97
|
+
/** The agent's chooser. Returns exactly one token from `offered`. Required when navigation is `agent`. */
|
|
98
|
+
navigate?: (input: AgentNavigationInput) => Promise<string>;
|
|
99
|
+
/** Hard drive deadline (default 8 min, clamped 1–10 min), raced against every model and browser call. */
|
|
100
|
+
driveDeadlineMs?: number;
|
|
101
|
+
}
|
|
102
|
+
/** Everything the agent's chooser ever sees — a fixed schema with no values, no query strings, no foreign identities. */
|
|
103
|
+
export interface AgentNavigationInput {
|
|
104
|
+
provider: 'anthropic' | 'openai';
|
|
105
|
+
loginMethod: AnthropicReloginBrowserRequest['loginMethod'];
|
|
106
|
+
origin: string;
|
|
107
|
+
path: string;
|
|
108
|
+
title: string;
|
|
109
|
+
pageClassHint: ReloginBrowserSnapshot['pageClass'];
|
|
110
|
+
expectedAccountVisible: boolean;
|
|
111
|
+
inputKinds: string[];
|
|
112
|
+
controls: {
|
|
113
|
+
token: string;
|
|
114
|
+
label: string;
|
|
115
|
+
}[];
|
|
116
|
+
offered: string[];
|
|
117
|
+
recentSteps: string[];
|
|
77
118
|
}
|
|
78
119
|
/** Poll cadence while a bot-check interstitial is showing. */
|
|
79
120
|
export declare const INTERSTITIAL_POLL_MS = 3000;
|
|
@@ -84,10 +125,49 @@ export declare class AnthropicReloginBrowserDriver {
|
|
|
84
125
|
private readonly maxSteps;
|
|
85
126
|
private readonly interstitialMaxMs;
|
|
86
127
|
constructor(deps: AnthropicReloginBrowserDriverDeps);
|
|
128
|
+
private readonly driveDeadlineMs;
|
|
129
|
+
/** Agent navigation applies to sign-in drives with a chooser and a browser that can observe controls. */
|
|
130
|
+
private agentMode;
|
|
87
131
|
drive(request: AnthropicReloginBrowserRequest, signal?: AbortSignal): Promise<BrowserRepairResult>;
|
|
132
|
+
/**
|
|
133
|
+
* One agent-navigation step (spec agent-driven-relogin): observe the page's controls, build
|
|
134
|
+
* the floor-filtered offer, ask the chooser for exactly one token, perform it. Returns a
|
|
135
|
+
* result only when the drive ends; `null` means "keep going".
|
|
136
|
+
*/
|
|
137
|
+
private agentStep;
|
|
88
138
|
private perform;
|
|
89
139
|
}
|
|
90
140
|
export declare function allowedActions(snapshot: ReloginBrowserSnapshot, request: Pick<AnthropicReloginBrowserRequest, 'artifact' | 'loginMethod' | 'secretRefs' | 'intent'>): ReloginBrowserAction[];
|
|
141
|
+
/**
|
|
142
|
+
* Controls the agent may NEVER be offered, whatever the page (spec agent-driven-relogin):
|
|
143
|
+
* account-changing, destructive, and credential-creating actions. A deterministic block on
|
|
144
|
+
* irreversible actions — the Signal-vs-Authority exemption for safety guards.
|
|
145
|
+
*/
|
|
146
|
+
export declare const AGENT_BLOCKED_PHRASES: readonly string[];
|
|
147
|
+
export declare function isBlockedControl(text: string): boolean;
|
|
148
|
+
/**
|
|
149
|
+
* What a label may carry to the model: every secret resolved in this drive stripped verbatim,
|
|
150
|
+
* foreign emails masked, long token-like runs and 6+ digit runs masked, and a hard length cap
|
|
151
|
+
* that DISCLOSES a cut (never a silently shortened label).
|
|
152
|
+
*/
|
|
153
|
+
export declare function redactLabel(text: string, expectedIdentity: string, secrets: string[], max?: number): string;
|
|
154
|
+
export interface AgentOffer {
|
|
155
|
+
offered: string[];
|
|
156
|
+
controls: {
|
|
157
|
+
token: string;
|
|
158
|
+
n: number;
|
|
159
|
+
text: string;
|
|
160
|
+
identities: string[];
|
|
161
|
+
label: string;
|
|
162
|
+
}[];
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* The floor-filtered action list for one agent step. Pure — every floor is testable here.
|
|
166
|
+
* Typed fills are offered by INPUT PRESENCE (not page class); visible controls are offered
|
|
167
|
+
* unless they name another identity, carry a blocked phrase, or would grant consent without
|
|
168
|
+
* measured, allowed, non-empty scopes.
|
|
169
|
+
*/
|
|
170
|
+
export declare function buildAgentOffer(snapshot: ReloginBrowserSnapshot, observation: ReloginControlObservation, request: Pick<AnthropicReloginBrowserRequest, 'artifact' | 'loginMethod' | 'secretRefs' | 'expectedIdentity' | 'allowedScopes'>, secrets: string[]): AgentOffer;
|
|
91
171
|
export declare function safeAllowedUrl(value: string, provider?: AnthropicReloginBrowserRequest['provider']): boolean;
|
|
92
172
|
export declare function generateTotp(base32: string, at: number, digits?: number, periodSeconds?: number): string;
|
|
93
173
|
//# sourceMappingURL=AnthropicReloginBrowserDriver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnthropicReloginBrowserDriver.d.ts","sourceRoot":"","sources":["../../src/core/AnthropicReloginBrowserDriver.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AnthropicReloginBrowserDriver.d.ts","sourceRoot":"","sources":["../../src/core/AnthropicReloginBrowserDriver.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,13 @@ export class AnthropicReloginBrowserDriver {
|
|
|
28
28
|
this.now = deps.now ?? Date.now;
|
|
29
29
|
this.maxSteps = Math.max(1, Math.min(40, Math.floor(deps.maxSteps ?? 20)));
|
|
30
30
|
this.interstitialMaxMs = Math.max(0, Math.min(300_000, Math.floor(deps.interstitialMaxMs ?? 90_000)));
|
|
31
|
+
this.driveDeadlineMs = Math.max(60_000, Math.min(600_000, Math.floor(deps.driveDeadlineMs ?? 480_000)));
|
|
32
|
+
}
|
|
33
|
+
driveDeadlineMs;
|
|
34
|
+
/** Agent navigation applies to sign-in drives with a chooser and a browser that can observe controls. */
|
|
35
|
+
agentMode(request) {
|
|
36
|
+
return this.deps.navigation === 'agent' && request.intent !== 'enroll' && !!this.deps.navigate
|
|
37
|
+
&& typeof this.deps.browser.observeControls === 'function' && typeof this.deps.browser.clickControl === 'function';
|
|
31
38
|
}
|
|
32
39
|
async drive(request, signal = new AbortController().signal) {
|
|
33
40
|
if (!safeAllowedUrl(request.verificationUrl, request.provider))
|
|
@@ -40,13 +47,31 @@ export class AnthropicReloginBrowserDriver {
|
|
|
40
47
|
return { outcome: 'transient', failureClass: 'seat-busy' };
|
|
41
48
|
const abort = () => { void this.deps.browser.close().catch(() => { }); };
|
|
42
49
|
signal.addEventListener('abort', abort, { once: true });
|
|
50
|
+
const agent = this.agentMode(request);
|
|
51
|
+
const deadline = this.now() + this.driveDeadlineMs;
|
|
52
|
+
// A hard deadline raced against every browser and model call: a stalled await can never
|
|
53
|
+
// outlive the drive (spec agent-driven-relogin, "hard time limit").
|
|
54
|
+
const bounded = (work) => {
|
|
55
|
+
const remaining = deadline - this.now();
|
|
56
|
+
if (remaining <= 0)
|
|
57
|
+
return Promise.reject(new Error('relogin-drive-deadline'));
|
|
58
|
+
let timer;
|
|
59
|
+
const expiry = new Promise((_, reject) => {
|
|
60
|
+
timer = setTimeout(() => reject(new Error('relogin-drive-deadline')), remaining);
|
|
61
|
+
});
|
|
62
|
+
return Promise.race([work, expiry]).finally(() => clearTimeout(timer));
|
|
63
|
+
};
|
|
64
|
+
const resolvedSecrets = new Set();
|
|
65
|
+
if (request.artifact.userCode)
|
|
66
|
+
resolvedSecrets.add(request.artifact.userCode);
|
|
67
|
+
const recentSteps = [];
|
|
43
68
|
try {
|
|
44
69
|
signal.throwIfAborted();
|
|
45
|
-
await this.deps.browser.open(request.verificationUrl);
|
|
70
|
+
await bounded(this.deps.browser.open(request.verificationUrl));
|
|
46
71
|
let interstitialWaitedMs = 0;
|
|
47
72
|
for (let step = 0; step < this.maxSteps; step++) {
|
|
48
73
|
signal.throwIfAborted();
|
|
49
|
-
const snapshot = await this.deps.browser.snapshot(request.expectedIdentity);
|
|
74
|
+
const snapshot = await bounded(this.deps.browser.snapshot(request.expectedIdentity));
|
|
50
75
|
if (!allowedOrigins(request.provider, request.intent).includes(snapshot.origin))
|
|
51
76
|
return { outcome: 'refused', failureClass: 'unexpected-origin' };
|
|
52
77
|
// A bot-check interstitial ("Just a moment…") clears on its own in roughly 30–90 s.
|
|
@@ -56,7 +81,7 @@ export class AnthropicReloginBrowserDriver {
|
|
|
56
81
|
if (snapshot.pageClass === 'interstitial') {
|
|
57
82
|
if (interstitialWaitedMs >= this.interstitialMaxMs)
|
|
58
83
|
return { outcome: 'transient', failureClass: 'provider-transient' };
|
|
59
|
-
await this.deps.browser.wait(INTERSTITIAL_POLL_MS);
|
|
84
|
+
await bounded(this.deps.browser.wait(INTERSTITIAL_POLL_MS));
|
|
60
85
|
interstitialWaitedMs += INTERSTITIAL_POLL_MS;
|
|
61
86
|
step -= 1; // an interstitial poll is not a drive step
|
|
62
87
|
continue;
|
|
@@ -85,16 +110,22 @@ export class AnthropicReloginBrowserDriver {
|
|
|
85
110
|
if (snapshot.pageClass === 'success')
|
|
86
111
|
return { outcome: 'approved' };
|
|
87
112
|
if (snapshot.pageClass === 'paste-code') {
|
|
88
|
-
const code = await this.deps.browser.readPasteCode();
|
|
113
|
+
const code = await bounded(this.deps.browser.readPasteCode());
|
|
89
114
|
return code ? { outcome: 'approved', pasteCode: code } : { outcome: 'transient', failureClass: 'provider-transient' };
|
|
90
115
|
}
|
|
116
|
+
if (agent) {
|
|
117
|
+
const ended = await this.agentStep(snapshot, request, resolvedSecrets, recentSteps, bounded);
|
|
118
|
+
if (ended)
|
|
119
|
+
return ended;
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
91
122
|
const allowed = allowedActions(snapshot, request);
|
|
92
123
|
if (allowed.length === 0)
|
|
93
124
|
return { outcome: 'transient', failureClass: 'provider-transient' };
|
|
94
|
-
const action = await this.deps.supervise({ snapshot, allowedActions: allowed });
|
|
125
|
+
const action = await bounded(this.deps.supervise({ snapshot, allowedActions: allowed }));
|
|
95
126
|
if (!allowed.includes(action))
|
|
96
127
|
return { outcome: 'refused', failureClass: 'provider-rejected' };
|
|
97
|
-
const acted = await this.perform(action, request);
|
|
128
|
+
const acted = await bounded(this.perform(action, request, resolvedSecrets));
|
|
98
129
|
if (!acted)
|
|
99
130
|
return { outcome: 'refused', failureClass: 'vault-reference-missing' };
|
|
100
131
|
}
|
|
@@ -108,11 +139,49 @@ export class AnthropicReloginBrowserDriver {
|
|
|
108
139
|
}
|
|
109
140
|
finally {
|
|
110
141
|
signal.removeEventListener('abort', abort);
|
|
142
|
+
resolvedSecrets.clear();
|
|
111
143
|
await this.deps.browser.close().catch(() => { });
|
|
112
144
|
this.deps.seatLease.release(holderId);
|
|
113
145
|
}
|
|
114
146
|
}
|
|
115
|
-
|
|
147
|
+
/**
|
|
148
|
+
* One agent-navigation step (spec agent-driven-relogin): observe the page's controls, build
|
|
149
|
+
* the floor-filtered offer, ask the chooser for exactly one token, perform it. Returns a
|
|
150
|
+
* result only when the drive ends; `null` means "keep going".
|
|
151
|
+
*/
|
|
152
|
+
async agentStep(snapshot, request, resolvedSecrets, recentSteps, bounded) {
|
|
153
|
+
const observation = await bounded(this.deps.browser.observeControls());
|
|
154
|
+
const offer = buildAgentOffer(snapshot, observation, request, [...resolvedSecrets]);
|
|
155
|
+
const token = String(await bounded(this.deps.navigate({
|
|
156
|
+
provider: request.provider, loginMethod: request.loginMethod,
|
|
157
|
+
origin: snapshot.origin, path: redactLabel(observation.path, request.expectedIdentity, [...resolvedSecrets], 120),
|
|
158
|
+
title: redactLabel(observation.title, request.expectedIdentity, [...resolvedSecrets], 120),
|
|
159
|
+
pageClassHint: snapshot.pageClass, expectedAccountVisible: snapshot.expectedAccountVisible,
|
|
160
|
+
inputKinds: observation.inputKinds, controls: offer.controls.map(({ token: t, label }) => ({ token: t, label })),
|
|
161
|
+
offered: offer.offered, recentSteps: recentSteps.slice(-6),
|
|
162
|
+
}))).trim();
|
|
163
|
+
// The model's answer is only ever a token from the offer; anything else ends the drive.
|
|
164
|
+
if (!offer.offered.includes(token) || token === 'give-up')
|
|
165
|
+
return { outcome: 'transient', failureClass: 'provider-transient' };
|
|
166
|
+
if (token === 'wait') {
|
|
167
|
+
await bounded(this.deps.browser.wait(2_000));
|
|
168
|
+
recentSteps.push('wait');
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
const control = offer.controls.find((entry) => entry.token === token);
|
|
172
|
+
if (control) {
|
|
173
|
+
// Re-checked at click time: the browser refuses unless control n still has the same text.
|
|
174
|
+
await bounded(this.deps.browser.clickControl(control.n, control.text, control.identities));
|
|
175
|
+
recentSteps.push(`${token} "${control.label}"`);
|
|
176
|
+
return null;
|
|
177
|
+
}
|
|
178
|
+
const acted = await bounded(this.perform(token, request, resolvedSecrets));
|
|
179
|
+
if (!acted)
|
|
180
|
+
return { outcome: 'refused', failureClass: 'vault-reference-missing' };
|
|
181
|
+
recentSteps.push(token);
|
|
182
|
+
return null;
|
|
183
|
+
}
|
|
184
|
+
async perform(action, req, seen) {
|
|
116
185
|
switch (action) {
|
|
117
186
|
case 'choose-expected-account':
|
|
118
187
|
await this.deps.browser.chooseExpectedAccount(req.expectedIdentity);
|
|
@@ -135,6 +204,7 @@ export class AnthropicReloginBrowserDriver {
|
|
|
135
204
|
let secret = await this.deps.resolveSecret(req.secretRefs.password);
|
|
136
205
|
if (!secret)
|
|
137
206
|
return false;
|
|
207
|
+
seen?.add(secret);
|
|
138
208
|
try {
|
|
139
209
|
await this.deps.browser.fillSecret('password', secret);
|
|
140
210
|
}
|
|
@@ -149,8 +219,11 @@ export class AnthropicReloginBrowserDriver {
|
|
|
149
219
|
let seed = await this.deps.resolveSecret(req.secretRefs.totp);
|
|
150
220
|
if (!seed)
|
|
151
221
|
return false;
|
|
222
|
+
const totpCode = generateTotp(seed, this.now());
|
|
223
|
+
seen?.add(seed);
|
|
224
|
+
seen?.add(totpCode);
|
|
152
225
|
try {
|
|
153
|
-
await this.deps.browser.fillSecret('totp',
|
|
226
|
+
await this.deps.browser.fillSecret('totp', totpCode);
|
|
154
227
|
}
|
|
155
228
|
finally {
|
|
156
229
|
seed = '';
|
|
@@ -257,6 +330,84 @@ export function allowedActions(snapshot, request) {
|
|
|
257
330
|
default: return [];
|
|
258
331
|
}
|
|
259
332
|
}
|
|
333
|
+
/**
|
|
334
|
+
* Controls the agent may NEVER be offered, whatever the page (spec agent-driven-relogin):
|
|
335
|
+
* account-changing, destructive, and credential-creating actions. A deterministic block on
|
|
336
|
+
* irreversible actions — the Signal-vs-Authority exemption for safety guards.
|
|
337
|
+
*/
|
|
338
|
+
export const AGENT_BLOCKED_PHRASES = [
|
|
339
|
+
'sign out', 'log out', 'logout', 'delete', 'remove', 'forgot password', 'change password',
|
|
340
|
+
'reset password', 'security', 'manage', 'add account', 'add another account', 'use another account',
|
|
341
|
+
'create api key', 'buy', 'upgrade', 'invite', 'cancel plan', 'create a passkey', 'create passkey',
|
|
342
|
+
'add passkey', 'set up', 'turn on', 'add phone', 'add recovery', 'save password',
|
|
343
|
+
'create account', 'create an account', 'sign up', 'create your account',
|
|
344
|
+
];
|
|
345
|
+
const CONSENT_LABEL = /^(allow|authorize|authorise|approve|accept|grant)\b/i;
|
|
346
|
+
function normalizePhrase(text) {
|
|
347
|
+
return text.toLowerCase().replace(/[^a-z0-9 ]+/g, ' ').replace(/\s+/g, ' ').trim();
|
|
348
|
+
}
|
|
349
|
+
export function isBlockedControl(text) {
|
|
350
|
+
const normalized = normalizePhrase(text);
|
|
351
|
+
return AGENT_BLOCKED_PHRASES.some((phrase) => normalized.includes(phrase));
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* What a label may carry to the model: every secret resolved in this drive stripped verbatim,
|
|
355
|
+
* foreign emails masked, long token-like runs and 6+ digit runs masked, and a hard length cap
|
|
356
|
+
* that DISCLOSES a cut (never a silently shortened label).
|
|
357
|
+
*/
|
|
358
|
+
export function redactLabel(text, expectedIdentity, secrets, max = 60) {
|
|
359
|
+
let out = String(text ?? '');
|
|
360
|
+
for (const secret of secrets)
|
|
361
|
+
if (secret && secret.length >= 3)
|
|
362
|
+
out = out.split(secret).join('‹secret›');
|
|
363
|
+
const expected = expectedIdentity.trim().toLowerCase();
|
|
364
|
+
out = out.replace(/[a-z0-9.!#$%&'*+/=?^_{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)+/gi, (email) => email.toLowerCase() === expected ? email : '‹other-email›');
|
|
365
|
+
// Partially hidden emails (Google renders j•••@gmail.com) cannot be compared, so they are masked too.
|
|
366
|
+
out = out.replace(/[^\s@]*[•*…][^\s@]*@\S+/g, '‹masked-email›');
|
|
367
|
+
out = out.replace(/[A-Za-z0-9_-]{20,}/g, '‹masked›').replace(/\d{6,}/g, '‹masked›');
|
|
368
|
+
out = out.replace(/\s+/g, ' ').trim();
|
|
369
|
+
return out.length > max ? `${out.slice(0, max)}…(truncated)` : out;
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* The floor-filtered action list for one agent step. Pure — every floor is testable here.
|
|
373
|
+
* Typed fills are offered by INPUT PRESENCE (not page class); visible controls are offered
|
|
374
|
+
* unless they name another identity, carry a blocked phrase, or would grant consent without
|
|
375
|
+
* measured, allowed, non-empty scopes.
|
|
376
|
+
*/
|
|
377
|
+
export function buildAgentOffer(snapshot, observation, request, secrets) {
|
|
378
|
+
const offered = [];
|
|
379
|
+
const kinds = new Set(observation.inputKinds);
|
|
380
|
+
if ((snapshot.expectedAccountMatchCount ?? (snapshot.expectedAccountVisible ? 1 : 0)) === 1)
|
|
381
|
+
offered.push('choose-expected-account');
|
|
382
|
+
if (kinds.has('email'))
|
|
383
|
+
offered.push('fill-email');
|
|
384
|
+
if (kinds.has('password') && usesPassword(request.loginMethod) && request.secretRefs.password)
|
|
385
|
+
offered.push('fill-password');
|
|
386
|
+
if (kinds.has('code') && request.loginMethod === 'password+totp' && request.secretRefs.totp)
|
|
387
|
+
offered.push('fill-totp');
|
|
388
|
+
if (kinds.has('code') && request.artifact?.kind === 'device-code' && request.artifact.userCode)
|
|
389
|
+
offered.push('fill-device-code');
|
|
390
|
+
const expected = request.expectedIdentity.trim().toLowerCase();
|
|
391
|
+
const consentMeasured = snapshot.requestedScopes.length > 0 && scopesAllowed(snapshot.requestedScopes, request.allowedScopes);
|
|
392
|
+
const controls = [];
|
|
393
|
+
for (const control of observation.controls) {
|
|
394
|
+
if (control.identities.some((identity) => identity.trim().toLowerCase() !== expected))
|
|
395
|
+
continue;
|
|
396
|
+
if (isBlockedControl(control.text))
|
|
397
|
+
continue;
|
|
398
|
+
const consent = CONSENT_LABEL.test(control.text.trim()) || snapshot.pageClass === 'authorize';
|
|
399
|
+
if (consent && !consentMeasured)
|
|
400
|
+
continue;
|
|
401
|
+
const label = redactLabel(control.text, request.expectedIdentity, secrets);
|
|
402
|
+
if (!label)
|
|
403
|
+
continue;
|
|
404
|
+
const token = `click:${control.n}`;
|
|
405
|
+
controls.push({ token, n: control.n, text: control.text, identities: control.identities, label });
|
|
406
|
+
offered.push(token);
|
|
407
|
+
}
|
|
408
|
+
offered.push('wait', 'give-up');
|
|
409
|
+
return { offered, controls };
|
|
410
|
+
}
|
|
260
411
|
export function safeAllowedUrl(value, provider) {
|
|
261
412
|
try {
|
|
262
413
|
const url = new URL(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnthropicReloginBrowserDriver.js","sourceRoot":"","sources":["../../src/core/AnthropicReloginBrowserDriver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AnthropicReloginBrowserDriver.js","sourceRoot":"","sources":["../../src/core/AnthropicReloginBrowserDriver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ReloginBrowserClick, ReloginBrowserPort, ReloginBrowserSnapshot } from './AnthropicReloginBrowserDriver.js';
|
|
1
|
+
import type { ReloginBrowserClick, ReloginBrowserPort, ReloginBrowserSnapshot, ReloginControlObservation } from './AnthropicReloginBrowserDriver.js';
|
|
2
2
|
import { type OriginPolicy } from './PasskeyBrowserPolicy.js';
|
|
3
3
|
export interface ChromeCdpReloginBrowserOptions {
|
|
4
4
|
userDataDir: string;
|
|
@@ -176,6 +176,18 @@ export declare class ChromeCdpReloginBrowser implements ReloginBrowserPort {
|
|
|
176
176
|
fillPublic(field: 'email' | 'device-code', value: string): Promise<void>;
|
|
177
177
|
fillSecret(field: 'password' | 'totp' | 'backup-code', value: string): Promise<void>;
|
|
178
178
|
click(action: ReloginBrowserClick): Promise<void>;
|
|
179
|
+
/**
|
|
180
|
+
* The visible, enabled controls of the active page, numbered in DOM order (spec
|
|
181
|
+
* agent-driven-relogin). Raw facts only — the DRIVER applies the floors and the
|
|
182
|
+
* redaction before anything reaches a model. Never returns any input's value.
|
|
183
|
+
*/
|
|
184
|
+
observeControls(): Promise<ReloginControlObservation>;
|
|
185
|
+
/**
|
|
186
|
+
* Real pointer click on control `n` from {@link observeControls}, refused unless the
|
|
187
|
+
* control at that position still has exactly `expectedText` and names exactly
|
|
188
|
+
* `expectedIdentities` (the page may have changed since the observation).
|
|
189
|
+
*/
|
|
190
|
+
clickControl(n: number, expectedText: string, expectedIdentities?: string[]): Promise<void>;
|
|
179
191
|
/** Click a fixture/test element by CSS selector with a REAL pointer event. FIXTURE-ONLY (see runInPage). */
|
|
180
192
|
clickSelector(selector: string): Promise<void>;
|
|
181
193
|
readPasteCode(): Promise<string | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChromeCdpReloginBrowser.d.ts","sourceRoot":"","sources":["../../src/core/ChromeCdpReloginBrowser.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"ChromeCdpReloginBrowser.d.ts","sourceRoot":"","sources":["../../src/core/ChromeCdpReloginBrowser.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,27 @@ import { WebSocket } from 'ws';
|
|
|
5
5
|
import { SafeFsExecutor } from './SafeFsExecutor.js';
|
|
6
6
|
import { classifyGooglePasskeyPage } from './GooglePasskeyPageClasses.js';
|
|
7
7
|
import { GOOGLE_ORIGIN_POLICY, PASSKEY_SESSION_CHROME_ARGS, isGoogleOrigin, isRpFamilyOrigin, mayAddCredential, mustRemoveCredentialBefore, } from './PasskeyBrowserPolicy.js';
|
|
8
|
+
/**
|
|
9
|
+
* In-page enumeration of the visible, enabled controls (buttons, links, submit inputs) in
|
|
10
|
+
* DOM order — ONE definition shared by observeControls and clickControl so a numbered
|
|
11
|
+
* handle always means the same node. Nested controls collapse to the innermost one.
|
|
12
|
+
* `identities` = declared data-email/data-identifier, else emails in the control's text.
|
|
13
|
+
*/
|
|
14
|
+
const ENUMERATE_CONTROLS = `() => {
|
|
15
|
+
const sel = 'button,[role="button"],a[href],[role="link"],input[type="submit"],input[type="button"],[role="option"],[data-email],[data-identifier]';
|
|
16
|
+
const all = Array.from(document.querySelectorAll(sel)).filter((node) => node instanceof HTMLElement
|
|
17
|
+
&& node.getClientRects().length > 0 && !node.disabled && node.getAttribute('aria-disabled') !== 'true');
|
|
18
|
+
const inner = all.filter((node) => !all.some((other) => other !== node && node.contains(other)));
|
|
19
|
+
const emailRe = /[a-z0-9.!#$%&'*+/=?^_{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)+/gi;
|
|
20
|
+
return inner.slice(0, 80).map((node, index) => {
|
|
21
|
+
const raw = node instanceof HTMLInputElement ? (node.value || '') : (node.innerText || node.textContent || node.getAttribute('aria-label') || '');
|
|
22
|
+
const text = raw.replace(/\\s+/g, ' ').trim().slice(0, 300);
|
|
23
|
+
const holder = node.closest('[data-email],[data-identifier]');
|
|
24
|
+
const declared = holder ? (holder.getAttribute('data-email') || holder.getAttribute('data-identifier') || '').trim().toLowerCase() : '';
|
|
25
|
+
const identities = declared ? [declared] : ((text.toLowerCase().match(emailRe)) || []);
|
|
26
|
+
return { n: index + 1, text, identities, node };
|
|
27
|
+
});
|
|
28
|
+
}`;
|
|
8
29
|
/** Closed structural floor for OpenAI's device confirmation; consent prose can never enter this class. */
|
|
9
30
|
export function isClosedOpenAiDeviceApproval(input) {
|
|
10
31
|
return input.origin === 'https://auth.openai.com'
|
|
@@ -757,6 +778,52 @@ export class ChromeCdpReloginBrowser {
|
|
|
757
778
|
})()`);
|
|
758
779
|
await this.wait(500);
|
|
759
780
|
}
|
|
781
|
+
/**
|
|
782
|
+
* The visible, enabled controls of the active page, numbered in DOM order (spec
|
|
783
|
+
* agent-driven-relogin). Raw facts only — the DRIVER applies the floors and the
|
|
784
|
+
* redaction before anything reaches a model. Never returns any input's value.
|
|
785
|
+
*/
|
|
786
|
+
async observeControls() {
|
|
787
|
+
await this.followNewestPage();
|
|
788
|
+
return this.evaluate(`(() => {
|
|
789
|
+
const controls = (${ENUMERATE_CONTROLS})();
|
|
790
|
+
const kinds = new Set();
|
|
791
|
+
for (const input of Array.from(document.querySelectorAll('input,textarea'))) {
|
|
792
|
+
if (!(input instanceof HTMLElement) || input.getClientRects().length === 0 || input.disabled) continue;
|
|
793
|
+
const t = (input.getAttribute('type') || 'text').toLowerCase();
|
|
794
|
+
const ac = (input.getAttribute('autocomplete') || '').toLowerCase();
|
|
795
|
+
const name = ((input.getAttribute('name') || '') + ' ' + (input.id || '')).toLowerCase();
|
|
796
|
+
if (t === 'password') kinds.add('password');
|
|
797
|
+
else if (t === 'email' || ac === 'username' || name.includes('identifier')) kinds.add('email');
|
|
798
|
+
else if (ac === 'one-time-code' || /totp|code|pin/.test(name) || t === 'tel') kinds.add('code');
|
|
799
|
+
else if (t !== 'hidden' && t !== 'submit' && t !== 'button' && t !== 'checkbox' && t !== 'radio') kinds.add('text');
|
|
800
|
+
}
|
|
801
|
+
return {
|
|
802
|
+
title: (document.title || '').slice(0, 200),
|
|
803
|
+
path: location.pathname.slice(0, 200),
|
|
804
|
+
controls: controls.map((c) => ({ n: c.n, text: c.text, identities: c.identities })),
|
|
805
|
+
inputKinds: Array.from(kinds),
|
|
806
|
+
};
|
|
807
|
+
})()`);
|
|
808
|
+
}
|
|
809
|
+
/**
|
|
810
|
+
* Real pointer click on control `n` from {@link observeControls}, refused unless the
|
|
811
|
+
* control at that position still has exactly `expectedText` and names exactly
|
|
812
|
+
* `expectedIdentities` (the page may have changed since the observation).
|
|
813
|
+
*/
|
|
814
|
+
async clickControl(n, expectedText, expectedIdentities = []) {
|
|
815
|
+
await this.followNewestPage();
|
|
816
|
+
await this.clickReal(`(() => {
|
|
817
|
+
const controls = (${ENUMERATE_CONTROLS})();
|
|
818
|
+
const hit = controls.find((c) => c.n === ${JSON.stringify(n)});
|
|
819
|
+
if (!hit || hit.text !== ${JSON.stringify(expectedText)}) return null;
|
|
820
|
+
// The account a control names is re-checked too: two rows with the same display name
|
|
821
|
+
// that reorder between observation and click must never swap accounts.
|
|
822
|
+
if (JSON.stringify(hit.identities) !== ${JSON.stringify(JSON.stringify(expectedIdentities))}) return null;
|
|
823
|
+
return hit.node instanceof HTMLElement ? hit.node : null;
|
|
824
|
+
})()`);
|
|
825
|
+
await this.wait(500);
|
|
826
|
+
}
|
|
760
827
|
/** Click a fixture/test element by CSS selector with a REAL pointer event. FIXTURE-ONLY (see runInPage). */
|
|
761
828
|
async clickSelector(selector) {
|
|
762
829
|
this.assertFixturePolicy('click-selector');
|