sentienceapi 0.96.1 → 0.98.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.
package/README.md CHANGED
@@ -29,6 +29,7 @@ Use `AgentRuntime` to add Jest-style assertions to your agent loops. Verify brow
29
29
  import {
30
30
  SentienceBrowser,
31
31
  AgentRuntime,
32
+ HumanHandoffSolver,
32
33
  urlContains,
33
34
  exists,
34
35
  allOf,
@@ -75,6 +76,12 @@ const ok = await runtime
75
76
  .eventually({ timeoutMs: 10_000, pollMs: 250, minConfidence: 0.7, maxSnapshotAttempts: 3 });
76
77
  console.log('eventually() result:', ok);
77
78
 
79
+ // CAPTCHA handling (detection + handoff + verify)
80
+ runtime.setCaptchaOptions({
81
+ policy: 'callback',
82
+ handler: HumanHandoffSolver(),
83
+ });
84
+
78
85
  // Check task completion
79
86
  if (runtime.assertDone(exists("text~'Example'"), 'task_complete')) {
80
87
  console.log('✅ Task completed!');
@@ -83,6 +90,55 @@ if (runtime.assertDone(exists("text~'Example'"), 'task_complete')) {
83
90
  console.log(`Task done: ${runtime.isTaskDone}`);
84
91
  ```
85
92
 
93
+ #### CAPTCHA strategies (Batteries Included)
94
+
95
+ ```typescript
96
+ import { ExternalSolver, HumanHandoffSolver, VisionSolver } from 'sentienceapi';
97
+
98
+ // Human-in-loop
99
+ runtime.setCaptchaOptions({ policy: 'callback', handler: HumanHandoffSolver() });
100
+
101
+ // Vision verification only
102
+ runtime.setCaptchaOptions({ policy: 'callback', handler: VisionSolver() });
103
+
104
+ // External system/webhook
105
+ runtime.setCaptchaOptions({
106
+ policy: 'callback',
107
+ handler: ExternalSolver(async ctx => {
108
+ await fetch(process.env.CAPTCHA_WEBHOOK_URL!, {
109
+ method: 'POST',
110
+ headers: { 'Content-Type': 'application/json' },
111
+ body: JSON.stringify({ runId: ctx.runId, url: ctx.url }),
112
+ });
113
+ }),
114
+ });
115
+ ```
116
+
117
+ ### Failure Artifact Buffer (Phase 1)
118
+
119
+ Capture a short ring buffer of screenshots and persist them when a required assertion fails.
120
+
121
+ ```typescript
122
+ runtime.enableFailureArtifacts({ bufferSeconds: 15, captureOnAction: true, fps: 0 });
123
+
124
+ // After each action, record it (best-effort).
125
+ await runtime.recordAction('CLICK');
126
+ ```
127
+
128
+ ### Redaction callback (Phase 3)
129
+
130
+ Provide a user-defined callback to redact snapshots and decide whether to persist frames. The SDK does not implement image/video redaction.
131
+
132
+ ```typescript
133
+ import { RedactionContext, RedactionResult } from 'sentienceapi';
134
+
135
+ const redact = (_ctx: RedactionContext): RedactionResult => {
136
+ return { dropFrames: true };
137
+ };
138
+
139
+ runtime.enableFailureArtifacts({ onBeforePersist: redact });
140
+ ```
141
+
86
142
  **See examples:** [`examples/asserts/`](examples/asserts/)
87
143
 
88
144
  ## 🚀 Quick Start: Choose Your Abstraction Level
@@ -42,6 +42,8 @@ import { Snapshot } from './types';
42
42
  import { Predicate } from './verification';
43
43
  import { Tracer } from './tracing/tracer';
44
44
  import { LLMProvider } from './llm-provider';
45
+ import { FailureArtifactsOptions } from './failure-artifacts';
46
+ import { CaptchaOptions } from './captcha/types';
45
47
  interface BrowserLike {
46
48
  snapshot(page: Page, options?: Record<string, any>): Promise<Snapshot>;
47
49
  }
@@ -103,11 +105,17 @@ export declare class AgentRuntime {
103
105
  stepIndex: number;
104
106
  /** Most recent snapshot (for assertion context) */
105
107
  lastSnapshot: Snapshot | null;
108
+ /** Failure artifact buffer (Phase 1) */
109
+ private artifactBuffer;
110
+ private artifactTimer;
106
111
  /** Assertions accumulated during current step */
107
112
  private assertionsThisStep;
108
113
  /** Task completion tracking */
109
114
  private taskDone;
110
115
  private taskDoneLabel;
116
+ /** CAPTCHA handling (optional, disabled by default) */
117
+ private captchaOptions;
118
+ private captchaRetryCount;
111
119
  private static similarity;
112
120
  _recordOutcome(outcome: ReturnType<Predicate>, label: string, required: boolean, extra: Record<string, any> | null, recordInStep: boolean): void;
113
121
  check(predicate: Predicate, label: string, required?: boolean): AssertionHandle;
@@ -119,6 +127,10 @@ export declare class AgentRuntime {
119
127
  * @param tracer - Tracer for emitting verification events
120
128
  */
121
129
  constructor(browser: BrowserLike, page: Page, tracer: Tracer);
130
+ /**
131
+ * Configure CAPTCHA handling (disabled by default unless set).
132
+ */
133
+ setCaptchaOptions(options: CaptchaOptions): void;
122
134
  /**
123
135
  * Build assertion context from current state.
124
136
  */
@@ -132,6 +144,31 @@ export declare class AgentRuntime {
132
144
  * @returns Snapshot of current page state
133
145
  */
134
146
  snapshot(options?: Record<string, any>): Promise<Snapshot>;
147
+ private isCaptchaDetected;
148
+ private buildCaptchaContext;
149
+ private emitCaptchaEvent;
150
+ private handleCaptchaIfNeeded;
151
+ private applyCaptchaResolution;
152
+ private waitUntilCleared;
153
+ /**
154
+ * Enable failure artifact buffer (Phase 1).
155
+ */
156
+ enableFailureArtifacts(options?: FailureArtifactsOptions): void;
157
+ /**
158
+ * Disable failure artifact buffer and stop background capture.
159
+ */
160
+ disableFailureArtifacts(): void;
161
+ /**
162
+ * Record an action in the artifact timeline and capture a frame if enabled.
163
+ */
164
+ recordAction(action: string, url?: string): Promise<void>;
165
+ private captureArtifactFrame;
166
+ /**
167
+ * Finalize artifact buffer at end of run.
168
+ */
169
+ finalizeRun(success: boolean): Promise<void>;
170
+ private persistFailureArtifacts;
171
+ private artifactMetadata;
135
172
  /**
136
173
  * Begin a new step in the verification loop.
137
174
  *
@@ -1 +1 @@
1
- {"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAiB,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,UAAU,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACxE;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,qGAAqG;IACrG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8FAA8F;IAC9F,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uFAAuF;IACvF,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAU;gBAEd,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;IAOzF,IAAI,IAAI,OAAO;IAIT,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC;CAwLpE;AAED;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;IACvB,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,gCAAgC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAK;IACtB,mDAAmD;IACnD,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAErC,iDAAiD;IACjD,OAAO,CAAC,kBAAkB,CAAyB;IACnD,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,aAAa,CAAuB;IAE5C,OAAO,CAAC,MAAM,CAAC,UAAU;IAoBzB,cAAc,CACZ,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,EAC9B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EACjC,YAAY,EAAE,OAAO,GACpB,IAAI;IA8CP,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAe,GAAG,eAAe;IAItF;;;;;;OAMG;gBACS,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAM5D;;OAEG;IACH,OAAO,CAAC,GAAG;IAeX;;;;;;;OAOG;IACG,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAKhE;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAiBnD;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAe,GAAG,OAAO;IAM/E;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAsBxD;;;;;;;OAOG;IACH,uBAAuB,IAAI;QACzB,UAAU,EAAE,eAAe,EAAE,CAAC;QAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B;IAiBD;;;;;;;OAOG;IACH,eAAe,IAAI,eAAe,EAAE;IAMpC;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,aAAa,IAAI,IAAI;IAKrB;;;;OAIG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;;;OAIG;IACH,wBAAwB,IAAI,OAAO;CAIpC"}
1
+ {"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAiB,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAyB,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAGL,cAAc,EAGf,MAAM,iBAAiB,CAAC;AAGzB,UAAU,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACxE;AAUD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,qGAAqG;IACrG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8FAA8F;IAC9F,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uFAAuF;IACvF,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAU;gBAEd,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;IAOzF,IAAI,IAAI,OAAO;IAIT,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC;CAwMpE;AAED;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;IACvB,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,gCAAgC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAK;IACtB,mDAAmD;IACnD,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAErC,wCAAwC;IACxC,OAAO,CAAC,cAAc,CAAsC;IAC5D,OAAO,CAAC,aAAa,CAA+B;IAEpD,iDAAiD;IACjD,OAAO,CAAC,kBAAkB,CAAyB;IACnD,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,aAAa,CAAuB;IAE5C,uDAAuD;IACvD,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,iBAAiB,CAAa;IAEtC,OAAO,CAAC,MAAM,CAAC,UAAU;IAoBzB,cAAc,CACZ,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,EAC9B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EACjC,YAAY,EAAE,OAAO,GACpB,IAAI;IA8CP,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAe,GAAG,eAAe;IAItF;;;;;;OAMG;gBACS,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAM5D;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAQhD;;OAEG;IACH,OAAO,CAAC,GAAG;IAeX;;;;;;;OAOG;IACG,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAShE,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,gBAAgB;YAaV,qBAAqB;YA6CrB,sBAAsB;YA4CtB,gBAAgB;IAmB9B;;OAEG;IACH,sBAAsB,CAAC,OAAO,GAAE,uBAA4B,GAAG,IAAI;IAanE;;OAEG;IACH,uBAAuB,IAAI,IAAI;IAO/B;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAUjD,oBAAoB;IAYlC;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YAoBpC,uBAAuB;IAiBrC,OAAO,CAAC,gBAAgB;IAQxB;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAiBnD;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAe,GAAG,OAAO;IAW/E;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAsBxD;;;;;;;OAOG;IACH,uBAAuB,IAAI;QACzB,UAAU,EAAE,eAAe,EAAE,CAAC;QAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B;IAiBD;;;;;;;OAOG;IACH,eAAe,IAAI,eAAe,EAAE;IAMpC;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,aAAa,IAAI,IAAI;IAKrB;;;;OAIG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;;;OAIG;IACH,wBAAwB,IAAI,OAAO;CAIpC"}
@@ -41,6 +41,15 @@
41
41
  Object.defineProperty(exports, "__esModule", { value: true });
42
42
  exports.AgentRuntime = exports.AssertionHandle = void 0;
43
43
  const uuid_1 = require("uuid");
44
+ const failure_artifacts_1 = require("./failure-artifacts");
45
+ const types_1 = require("./captcha/types");
46
+ const DEFAULT_CAPTCHA_OPTIONS = {
47
+ policy: 'abort',
48
+ minConfidence: 0.7,
49
+ timeoutMs: 120000,
50
+ pollMs: 1000,
51
+ maxRetriesNewSession: 1,
52
+ };
44
53
  class AssertionHandle {
45
54
  constructor(runtime, predicate, label, required) {
46
55
  this.runtime = runtime;
@@ -118,6 +127,9 @@ class AssertionHandle {
118
127
  final: true,
119
128
  vision_fallback: true,
120
129
  }, true);
130
+ if (this.required && !passed) {
131
+ this.runtime.persistFailureArtifacts(`assert_eventually_failed:${this.label}`);
132
+ }
121
133
  return passed;
122
134
  }
123
135
  catch {
@@ -142,6 +154,9 @@ class AssertionHandle {
142
154
  final: true,
143
155
  exhausted: true,
144
156
  }, true);
157
+ if (this.required) {
158
+ this.runtime.persistFailureArtifacts(`assert_eventually_failed:${this.label}`);
159
+ }
145
160
  return false;
146
161
  }
147
162
  if (Date.now() >= deadline) {
@@ -152,6 +167,9 @@ class AssertionHandle {
152
167
  final: true,
153
168
  timeout: true,
154
169
  }, true);
170
+ if (this.required) {
171
+ this.runtime.persistFailureArtifacts(`assert_eventually_timeout:${this.label}`);
172
+ }
155
173
  return false;
156
174
  }
157
175
  await new Promise(resolve => setTimeout(resolve, pollMs));
@@ -168,6 +186,9 @@ class AssertionHandle {
168
186
  if (Date.now() >= deadline) {
169
187
  // Record final failure once
170
188
  this.runtime._recordOutcome(lastOutcome, this.label, this.required, { eventually: true, attempt, final: true, timeout: true }, true);
189
+ if (this.required) {
190
+ this.runtime.persistFailureArtifacts(`assert_eventually_timeout:${this.label}`);
191
+ }
171
192
  return false;
172
193
  }
173
194
  await new Promise(resolve => setTimeout(resolve, pollMs));
@@ -265,15 +286,31 @@ class AgentRuntime {
265
286
  this.stepIndex = 0;
266
287
  /** Most recent snapshot (for assertion context) */
267
288
  this.lastSnapshot = null;
289
+ /** Failure artifact buffer (Phase 1) */
290
+ this.artifactBuffer = null;
291
+ this.artifactTimer = null;
268
292
  /** Assertions accumulated during current step */
269
293
  this.assertionsThisStep = [];
270
294
  /** Task completion tracking */
271
295
  this.taskDone = false;
272
296
  this.taskDoneLabel = null;
297
+ /** CAPTCHA handling (optional, disabled by default) */
298
+ this.captchaOptions = null;
299
+ this.captchaRetryCount = 0;
273
300
  this.browser = browser;
274
301
  this.page = page;
275
302
  this.tracer = tracer;
276
303
  }
304
+ /**
305
+ * Configure CAPTCHA handling (disabled by default unless set).
306
+ */
307
+ setCaptchaOptions(options) {
308
+ this.captchaOptions = {
309
+ ...DEFAULT_CAPTCHA_OPTIONS,
310
+ ...options,
311
+ };
312
+ this.captchaRetryCount = 0;
313
+ }
277
314
  /**
278
315
  * Build assertion context from current state.
279
316
  */
@@ -300,9 +337,201 @@ class AgentRuntime {
300
337
  * @returns Snapshot of current page state
301
338
  */
302
339
  async snapshot(options) {
303
- this.lastSnapshot = await this.browser.snapshot(this.page, options);
340
+ const { _skipCaptchaHandling, ...snapshotOptions } = options || {};
341
+ this.lastSnapshot = await this.browser.snapshot(this.page, snapshotOptions);
342
+ if (!_skipCaptchaHandling) {
343
+ await this.handleCaptchaIfNeeded(this.lastSnapshot, 'gateway');
344
+ }
304
345
  return this.lastSnapshot;
305
346
  }
347
+ isCaptchaDetected(snapshot) {
348
+ const options = this.captchaOptions;
349
+ if (!options) {
350
+ return false;
351
+ }
352
+ const captcha = snapshot.diagnostics?.captcha;
353
+ if (!captcha || !captcha.detected) {
354
+ return false;
355
+ }
356
+ const confidence = captcha.confidence ?? 0;
357
+ const minConfidence = options.minConfidence ?? DEFAULT_CAPTCHA_OPTIONS.minConfidence;
358
+ return confidence >= minConfidence;
359
+ }
360
+ buildCaptchaContext(snapshot, source) {
361
+ return {
362
+ runId: this.tracer.getRunId(),
363
+ stepIndex: this.stepIndex,
364
+ url: snapshot.url,
365
+ source,
366
+ captcha: snapshot.diagnostics?.captcha ?? null,
367
+ };
368
+ }
369
+ emitCaptchaEvent(reasonCode, details = {}) {
370
+ this.tracer.emit('verification', {
371
+ kind: 'captcha',
372
+ passed: false,
373
+ label: reasonCode,
374
+ details: { reason_code: reasonCode, ...details },
375
+ }, this.stepId || undefined);
376
+ }
377
+ async handleCaptchaIfNeeded(snapshot, source) {
378
+ if (!this.captchaOptions) {
379
+ return;
380
+ }
381
+ if (!this.isCaptchaDetected(snapshot)) {
382
+ return;
383
+ }
384
+ const options = this.captchaOptions;
385
+ const minConfidence = options.minConfidence ?? DEFAULT_CAPTCHA_OPTIONS.minConfidence;
386
+ const captcha = snapshot.diagnostics?.captcha ?? null;
387
+ this.emitCaptchaEvent('captcha_detected', { captcha, min_confidence: minConfidence });
388
+ let resolution;
389
+ if (options.policy === 'callback') {
390
+ if (!options.handler) {
391
+ this.emitCaptchaEvent('captcha_handler_error');
392
+ throw new types_1.CaptchaHandlingError('captcha_handler_error', 'Captcha handler is required for policy="callback".');
393
+ }
394
+ try {
395
+ resolution = await options.handler(this.buildCaptchaContext(snapshot, source));
396
+ }
397
+ catch (err) {
398
+ this.emitCaptchaEvent('captcha_handler_error', { error: String(err?.message || err) });
399
+ throw new types_1.CaptchaHandlingError('captcha_handler_error', 'Captcha handler failed.', {
400
+ error: String(err?.message || err),
401
+ });
402
+ }
403
+ if (!resolution || !resolution.action) {
404
+ this.emitCaptchaEvent('captcha_handler_error');
405
+ throw new types_1.CaptchaHandlingError('captcha_handler_error', 'Captcha handler returned an invalid resolution.');
406
+ }
407
+ }
408
+ else {
409
+ resolution = { action: 'abort' };
410
+ }
411
+ await this.applyCaptchaResolution(resolution, snapshot, source);
412
+ }
413
+ async applyCaptchaResolution(resolution, snapshot, source) {
414
+ const options = this.captchaOptions || DEFAULT_CAPTCHA_OPTIONS;
415
+ if (resolution.action === 'abort') {
416
+ this.emitCaptchaEvent('captcha_policy_abort', { message: resolution.message });
417
+ throw new types_1.CaptchaHandlingError('captcha_policy_abort', resolution.message || 'Captcha detected. Aborting per policy.');
418
+ }
419
+ if (resolution.action === 'retry_new_session') {
420
+ this.captchaRetryCount += 1;
421
+ this.emitCaptchaEvent('captcha_retry_new_session');
422
+ if (this.captchaRetryCount > (options.maxRetriesNewSession ?? 1)) {
423
+ this.emitCaptchaEvent('captcha_retry_exhausted');
424
+ throw new types_1.CaptchaHandlingError('captcha_retry_exhausted', 'Captcha retry_new_session exhausted.');
425
+ }
426
+ const resetSession = this.captchaOptions?.resetSession;
427
+ if (!resetSession) {
428
+ throw new types_1.CaptchaHandlingError('captcha_retry_new_session', 'resetSession callback is required for retry_new_session.');
429
+ }
430
+ await resetSession();
431
+ return;
432
+ }
433
+ if (resolution.action === 'wait_until_cleared') {
434
+ const timeoutMs = resolution.timeoutMs ?? options.timeoutMs ?? DEFAULT_CAPTCHA_OPTIONS.timeoutMs;
435
+ const pollMs = resolution.pollMs ?? options.pollMs ?? DEFAULT_CAPTCHA_OPTIONS.pollMs;
436
+ await this.waitUntilCleared(timeoutMs, pollMs, snapshot, source);
437
+ this.emitCaptchaEvent('captcha_resumed');
438
+ }
439
+ }
440
+ async waitUntilCleared(timeoutMs, pollMs, snapshot, source) {
441
+ const deadline = Date.now() + timeoutMs;
442
+ while (Date.now() <= deadline) {
443
+ await new Promise(res => setTimeout(res, pollMs));
444
+ const next = await this.snapshot({ _skipCaptchaHandling: true });
445
+ if (!this.isCaptchaDetected(next)) {
446
+ this.emitCaptchaEvent('captcha_cleared', { source });
447
+ return;
448
+ }
449
+ }
450
+ this.emitCaptchaEvent('captcha_wait_timeout', { timeout_ms: timeoutMs });
451
+ throw new types_1.CaptchaHandlingError('captcha_wait_timeout', 'Captcha wait_until_cleared timed out.');
452
+ }
453
+ /**
454
+ * Enable failure artifact buffer (Phase 1).
455
+ */
456
+ enableFailureArtifacts(options = {}) {
457
+ this.artifactBuffer = new failure_artifacts_1.FailureArtifactBuffer(this.tracer.getRunId(), options);
458
+ const fps = this.artifactBuffer.getOptions().fps;
459
+ if (fps && fps > 0) {
460
+ const intervalMs = Math.max(1, Math.floor(1000 / fps));
461
+ this.artifactTimer = setInterval(() => {
462
+ this.captureArtifactFrame().catch(() => {
463
+ // best-effort
464
+ });
465
+ }, intervalMs);
466
+ }
467
+ }
468
+ /**
469
+ * Disable failure artifact buffer and stop background capture.
470
+ */
471
+ disableFailureArtifacts() {
472
+ if (this.artifactTimer) {
473
+ clearInterval(this.artifactTimer);
474
+ this.artifactTimer = null;
475
+ }
476
+ }
477
+ /**
478
+ * Record an action in the artifact timeline and capture a frame if enabled.
479
+ */
480
+ async recordAction(action, url) {
481
+ if (!this.artifactBuffer) {
482
+ return;
483
+ }
484
+ this.artifactBuffer.recordStep(action, this.stepId, this.stepIndex, url);
485
+ if (this.artifactBuffer.getOptions().captureOnAction) {
486
+ await this.captureArtifactFrame();
487
+ }
488
+ }
489
+ async captureArtifactFrame() {
490
+ if (!this.artifactBuffer) {
491
+ return;
492
+ }
493
+ try {
494
+ const image = await this.page.screenshot({ type: 'jpeg', quality: 80 });
495
+ await this.artifactBuffer.addFrame(image, 'jpeg');
496
+ }
497
+ catch {
498
+ // best-effort
499
+ }
500
+ }
501
+ /**
502
+ * Finalize artifact buffer at end of run.
503
+ */
504
+ async finalizeRun(success) {
505
+ if (!this.artifactBuffer) {
506
+ return;
507
+ }
508
+ if (success) {
509
+ if (this.artifactBuffer.getOptions().persistMode === 'always') {
510
+ await this.artifactBuffer.persist('success', 'success', this.lastSnapshot ?? undefined, this.lastSnapshot?.diagnostics, this.artifactMetadata());
511
+ }
512
+ await this.artifactBuffer.cleanup();
513
+ }
514
+ else {
515
+ await this.persistFailureArtifacts('finalize_failure');
516
+ }
517
+ }
518
+ async persistFailureArtifacts(reason) {
519
+ if (!this.artifactBuffer) {
520
+ return;
521
+ }
522
+ await this.artifactBuffer.persist(reason, 'failure', this.lastSnapshot ?? undefined, this.lastSnapshot?.diagnostics, this.artifactMetadata());
523
+ await this.artifactBuffer.cleanup();
524
+ if (this.artifactBuffer.getOptions().persistMode === 'onFail') {
525
+ this.disableFailureArtifacts();
526
+ }
527
+ }
528
+ artifactMetadata() {
529
+ const url = this.lastSnapshot?.url ?? this.page?.url?.();
530
+ return {
531
+ backend: 'playwright',
532
+ url,
533
+ };
534
+ }
306
535
  /**
307
536
  * Begin a new step in the verification loop.
308
537
  *
@@ -344,6 +573,11 @@ class AgentRuntime {
344
573
  assert(predicate, label, required = false) {
345
574
  const outcome = predicate(this.ctx());
346
575
  this._recordOutcome(outcome, label, required, null, true);
576
+ if (required && !outcome.passed) {
577
+ this.persistFailureArtifacts(`assert_failed:${label}`).catch(() => {
578
+ // best-effort
579
+ });
580
+ }
347
581
  return outcome.passed;
348
582
  }
349
583
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"agent-runtime.js","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-runtime.js","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { CaptchaHandler } from './types';
2
+ type StrategyOptions = {
3
+ message?: string;
4
+ handledBy?: 'human' | 'customer_system' | 'unknown';
5
+ timeoutMs?: number;
6
+ pollMs?: number;
7
+ };
8
+ export declare function HumanHandoffSolver(options?: StrategyOptions): CaptchaHandler;
9
+ export declare function VisionSolver(options?: StrategyOptions): CaptchaHandler;
10
+ export declare function ExternalSolver(resolver: (ctx: any) => Promise<void>, options?: StrategyOptions): CaptchaHandler;
11
+ export {};
12
+ //# sourceMappingURL=strategies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategies.d.ts","sourceRoot":"","sources":["../../src/captcha/strategies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,SAAS,CAAC;AAE5D,KAAK,eAAe,GAAG;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,eAAoB,GAAG,cAAc,CAWhF;AAED,wBAAgB,YAAY,CAAC,OAAO,GAAE,eAAoB,GAAG,cAAc,CAW1E;AAED,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,EACrC,OAAO,GAAE,eAAoB,GAC5B,cAAc,CAYhB"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HumanHandoffSolver = HumanHandoffSolver;
4
+ exports.VisionSolver = VisionSolver;
5
+ exports.ExternalSolver = ExternalSolver;
6
+ function HumanHandoffSolver(options = {}) {
7
+ return () => {
8
+ const resolution = {
9
+ action: 'wait_until_cleared',
10
+ message: options.message ?? 'Solve CAPTCHA in the live session, then resume.',
11
+ handledBy: options.handledBy ?? 'human',
12
+ timeoutMs: options.timeoutMs,
13
+ pollMs: options.pollMs,
14
+ };
15
+ return Promise.resolve(resolution);
16
+ };
17
+ }
18
+ function VisionSolver(options = {}) {
19
+ return () => {
20
+ const resolution = {
21
+ action: 'wait_until_cleared',
22
+ message: options.message ?? 'Waiting for CAPTCHA to clear (vision verification).',
23
+ handledBy: options.handledBy ?? 'customer_system',
24
+ timeoutMs: options.timeoutMs,
25
+ pollMs: options.pollMs,
26
+ };
27
+ return Promise.resolve(resolution);
28
+ };
29
+ }
30
+ function ExternalSolver(resolver, options = {}) {
31
+ return async (ctx) => {
32
+ await resolver(ctx);
33
+ const resolution = {
34
+ action: 'wait_until_cleared',
35
+ message: options.message ?? 'External solver invoked; waiting for clearance.',
36
+ handledBy: options.handledBy ?? 'customer_system',
37
+ timeoutMs: options.timeoutMs,
38
+ pollMs: options.pollMs,
39
+ };
40
+ return resolution;
41
+ };
42
+ }
43
+ //# sourceMappingURL=strategies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategies.js","sourceRoot":"","sources":["../../src/captcha/strategies.ts"],"names":[],"mappings":";;AASA,gDAWC;AAED,oCAWC;AAED,wCAeC;AAzCD,SAAgB,kBAAkB,CAAC,UAA2B,EAAE;IAC9D,OAAO,GAAG,EAAE;QACV,MAAM,UAAU,GAAsB;YACpC,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,iDAAiD;YAC7E,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,OAAO;YACvC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC;QACF,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAAC,UAA2B,EAAE;IACxD,OAAO,GAAG,EAAE;QACV,MAAM,UAAU,GAAsB;YACpC,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,qDAAqD;YACjF,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,iBAAiB;YACjD,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC;QACF,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAC5B,QAAqC,EACrC,UAA2B,EAAE;IAE7B,OAAO,KAAK,EAAC,GAAG,EAAC,EAAE;QACjB,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;QACpB,MAAM,UAAU,GAAsB;YACpC,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,iDAAiD;YAC7E,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,iBAAiB;YACjD,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { CaptchaDiagnostics } from '../types';
2
+ export type CaptchaPolicy = 'abort' | 'callback';
3
+ export type CaptchaAction = 'abort' | 'retry_new_session' | 'wait_until_cleared';
4
+ export type CaptchaSource = 'extension' | 'gateway' | 'runtime';
5
+ export interface CaptchaContext {
6
+ runId: string;
7
+ stepIndex: number;
8
+ url: string;
9
+ source: CaptchaSource;
10
+ captcha: CaptchaDiagnostics | null;
11
+ screenshotPath?: string;
12
+ framesDir?: string;
13
+ snapshotPath?: string;
14
+ liveSessionUrl?: string;
15
+ meta?: Record<string, string>;
16
+ }
17
+ export interface CaptchaResolution {
18
+ action: CaptchaAction;
19
+ message?: string;
20
+ handledBy?: 'human' | 'customer_system' | 'unknown';
21
+ timeoutMs?: number;
22
+ pollMs?: number;
23
+ }
24
+ export type CaptchaHandler = (ctx: CaptchaContext) => CaptchaResolution | Promise<CaptchaResolution>;
25
+ export interface CaptchaOptions {
26
+ policy?: CaptchaPolicy;
27
+ minConfidence?: number;
28
+ timeoutMs?: number;
29
+ pollMs?: number;
30
+ maxRetriesNewSession?: number;
31
+ handler?: CaptchaHandler;
32
+ resetSession?: () => Promise<void>;
33
+ }
34
+ export declare class CaptchaHandlingError extends Error {
35
+ reasonCode: string;
36
+ details?: Record<string, any>;
37
+ constructor(reasonCode: string, message: string, details?: Record<string, any>);
38
+ }
39
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/captcha/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,UAAU,CAAC;AACjD,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,mBAAmB,GAAG,oBAAoB,CAAC;AAEjF,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;AAEhE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,CAC3B,GAAG,EAAE,cAAc,KAChB,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAElB,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAK/E"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CaptchaHandlingError = void 0;
4
+ class CaptchaHandlingError extends Error {
5
+ constructor(reasonCode, message, details) {
6
+ super(message);
7
+ this.reasonCode = reasonCode;
8
+ this.details = details;
9
+ }
10
+ }
11
+ exports.CaptchaHandlingError = CaptchaHandlingError;
12
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/captcha/types.ts"],"names":[],"mappings":";;;AA0CA,MAAa,oBAAqB,SAAQ,KAAK;IAI7C,YAAY,UAAkB,EAAE,OAAe,EAAE,OAA6B;QAC5E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AATD,oDASC"}