@tangle-network/browser-agent-driver 0.8.7 → 0.10.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 +2 -2
- package/dist/cli-ui.d.ts.map +1 -1
- package/dist/cli-ui.js +12 -0
- package/dist/cli-ui.js.map +1 -1
- package/dist/cli.js +92 -7
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/design-audit.js +2 -2
- package/dist/design-audit.js.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/memory/knowledge.d.ts +25 -9
- package/dist/memory/knowledge.d.ts.map +1 -1
- package/dist/memory/knowledge.js +94 -28
- package/dist/memory/knowledge.js.map +1 -1
- package/dist/memory/run-registry.d.ts +85 -0
- package/dist/memory/run-registry.d.ts.map +1 -0
- package/dist/memory/run-registry.js +144 -0
- package/dist/memory/run-registry.js.map +1 -0
- package/dist/multi-actor.d.ts +3 -3
- package/dist/multi-actor.d.ts.map +1 -1
- package/dist/multi-actor.js +3 -3
- package/dist/multi-actor.js.map +1 -1
- package/dist/runner/index.d.ts +2 -2
- package/dist/runner/index.d.ts.map +1 -1
- package/dist/runner/index.js +1 -1
- package/dist/runner/index.js.map +1 -1
- package/dist/runner/runner.d.ts +9 -5
- package/dist/runner/runner.d.ts.map +1 -1
- package/dist/runner/runner.js +71 -22
- package/dist/runner/runner.js.map +1 -1
- package/dist/runner.d.ts +2 -2
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +1 -1
- package/dist/runner.js.map +1 -1
- package/dist/test-runner.d.ts +1 -0
- package/dist/test-runner.d.ts.map +1 -1
- package/dist/test-runner.js +26 -2
- package/dist/test-runner.js.map +1 -1
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-actor.d.ts","sourceRoot":"","sources":["../src/multi-actor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"multi-actor.d.ts","sourceRoot":"","sources":["../src/multi-actor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAI9D,MAAM,WAAW,WAAW;IAC1B,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;IAC9D,yEAAyE;IACzE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,6EAA6E;IAC7E,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACnC,0DAA0D;IAC1D,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,uDAAuD;IACvD,aAAa,CAAC,EAAE,uBAAuB,CAAC;CACzC;AAED,MAAM,WAAW,uBAAuB;IACtC,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpC,0EAA0E;IAC1E,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,uEAAuE;IACvE,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACjD,gDAAgD;IAChD,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAID,qBAAa,KAAK;IAId,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;IAPjB,OAAO,CAAC,QAAQ,CAAqB;gBAG1B,IAAI,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,IAAI,EACX,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,YAAY;IAG/B,+EAA+E;IACzE,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC;IAMnD,6DAA6D;IAC7D,IAAI,IAAI,IAAI,IAAI,CAEf;IAED,mDAAmD;IACnD,IAAI,OAAO,IAAI,cAAc,CAE5B;IAED,mDAAmD;IACnD,IAAI,MAAM,IAAI,gBAAgB,CAE7B;IAED,yCAAyC;IACzC,IAAI,OAAO,IAAI,SAAS,WAAW,EAAE,CAEpC;IAED,sDAAsD;IACtD,IAAI,UAAU,IAAI,WAAW,GAAG,SAAS,CAExC;CACF;AAID,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO;IAIP;;;;;;OAMG;WACU,MAAM,CACjB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,iBAAiB,CAAC;IAyD7B,iEAAiE;IACjE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAW1B;;;;;OAKG;IACG,QAAQ,CACZ,GAAG,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,GAClD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAUpC,mEAAmE;IAC7D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB5B,yDAAyD;IACzD,IAAI,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC,CAMjD;IAED,+BAA+B;IAC/B,IAAI,SAAS,IAAI,KAAK,EAAE,CAEvB;IAED,kBAAkB;IAClB,IAAI,UAAU,IAAI,MAAM,EAAE,CAEzB;CACF"}
|
package/dist/multi-actor.js
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
* ```
|
|
28
28
|
*/
|
|
29
29
|
import { PlaywrightDriver } from './drivers/playwright.js';
|
|
30
|
-
import {
|
|
30
|
+
import { BrowserAgent } from './runner.js';
|
|
31
31
|
// ── Actor ──
|
|
32
32
|
export class Actor {
|
|
33
33
|
name;
|
|
@@ -80,7 +80,7 @@ export class MultiActorSession {
|
|
|
80
80
|
/**
|
|
81
81
|
* Create a session with isolated browser contexts per actor.
|
|
82
82
|
*
|
|
83
|
-
* 1. Creates BrowserContext + Page + PlaywrightDriver +
|
|
83
|
+
* 1. Creates BrowserContext + Page + PlaywrightDriver + BrowserAgent per actor
|
|
84
84
|
* 2. Calls setup() hooks if provided
|
|
85
85
|
* 3. Returns session ready for orchestration
|
|
86
86
|
*/
|
|
@@ -115,7 +115,7 @@ export class MultiActorSession {
|
|
|
115
115
|
onTurn,
|
|
116
116
|
projectStore: config.projectStore,
|
|
117
117
|
};
|
|
118
|
-
const runner = new
|
|
118
|
+
const runner = new BrowserAgent(runnerOpts);
|
|
119
119
|
// Run actor setup hook (e.g., manual login flow)
|
|
120
120
|
if (actorCfg.setup) {
|
|
121
121
|
await actorCfg.setup(page);
|
package/dist/multi-actor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-actor.js","sourceRoot":"","sources":["../src/multi-actor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"multi-actor.js","sourceRoot":"","sources":["../src/multi-actor.ts"],"names":[],"mappings":"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"}
|
package/dist/runner/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Runner barrel — re-exports all public symbols from the runner submodules.
|
|
3
3
|
*/
|
|
4
|
-
export {
|
|
5
|
-
export type {
|
|
4
|
+
export { BrowserAgent, runBrowserAgent } from './runner.js';
|
|
5
|
+
export type { BrowserAgentOptions } from './runner.js';
|
|
6
6
|
export { withRetry } from './utils.js';
|
|
7
7
|
export { buildSearchResultsGuidance, rankSearchCandidates, buildVisibleLinkRecommendation, getVisibleLinkRecommendation, getRankedVisibleLinkCandidates, } from './search-guidance.js';
|
|
8
8
|
export { buildGoalVerificationClaim, collectSearchWorkflowEvidence, shouldAcceptSearchWorkflowCompletion, shouldAcceptScriptBackedCompletion, detectCompletionContentTypeMismatch, } from './goal-verification.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runner/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runner/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC5D,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,8BAA8B,EAC9B,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,oCAAoC,EACpC,kCAAkC,EAClC,mCAAmC,GACpC,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,iCAAiC,EACjC,yCAAyC,GAC1C,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,yBAAyB,EACzB,6BAA6B,EAC7B,8BAA8B,EAC9B,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,kCAAkC,EAClC,yBAAyB,EACzB,6BAA6B,EAC7B,sCAAsC,EACtC,iCAAiC,EACjC,sCAAsC,GACvC,MAAM,gBAAgB,CAAC"}
|
package/dist/runner/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Runner barrel — re-exports all public symbols from the runner submodules.
|
|
3
3
|
*/
|
|
4
4
|
// Core runner
|
|
5
|
-
export {
|
|
5
|
+
export { BrowserAgent, runBrowserAgent } from './runner.js';
|
|
6
6
|
// Utilities
|
|
7
7
|
export { withRetry } from './utils.js';
|
|
8
8
|
// Search guidance
|
package/dist/runner/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runner/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc;AACd,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runner/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc;AACd,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG5D,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,kBAAkB;AAClB,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,8BAA8B,EAC9B,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,sBAAsB,CAAC;AAE9B,oBAAoB;AACpB,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,oCAAoC,EACpC,kCAAkC,EAClC,mCAAmC,GACpC,MAAM,wBAAwB,CAAC;AAEhC,gBAAgB;AAChB,OAAO,EACL,iCAAiC,EACjC,yCAAyC,GAC1C,MAAM,oBAAoB,CAAC;AAE5B,QAAQ;AACR,OAAO,EACL,yBAAyB,EACzB,6BAA6B,EAC7B,8BAA8B,EAC9B,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,YAAY;AACZ,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,kCAAkC,EAClC,yBAAyB,EACzB,6BAA6B,EAC7B,sCAAsC,EACtC,iCAAiC,EACjC,sCAAsC,GACvC,MAAM,gBAAgB,CAAC"}
|
package/dist/runner/runner.d.ts
CHANGED
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
import type { Driver } from '../drivers/types.js';
|
|
13
13
|
import type { Scenario, AgentConfig, AgentResult, Turn } from '../types.js';
|
|
14
14
|
import type { ProjectStore } from '../memory/project-store.js';
|
|
15
|
-
|
|
15
|
+
import { RunRegistry } from '../memory/run-registry.js';
|
|
16
|
+
export interface BrowserAgentOptions {
|
|
16
17
|
driver: Driver;
|
|
17
18
|
config?: AgentConfig;
|
|
18
19
|
/** Called after each turn */
|
|
@@ -23,8 +24,10 @@ export interface RunnerOptions {
|
|
|
23
24
|
referenceTrajectory?: string;
|
|
24
25
|
/** Project memory store — enables knowledge + selector persistence */
|
|
25
26
|
projectStore?: ProjectStore;
|
|
27
|
+
/** Run registry for orchestration-facing manifests */
|
|
28
|
+
runRegistry?: RunRegistry;
|
|
26
29
|
}
|
|
27
|
-
export declare class
|
|
30
|
+
export declare class BrowserAgent {
|
|
28
31
|
private driver;
|
|
29
32
|
private brain;
|
|
30
33
|
private config;
|
|
@@ -32,13 +35,14 @@ export declare class AgentRunner {
|
|
|
32
35
|
private onPhaseTiming?;
|
|
33
36
|
private referenceTrajectory?;
|
|
34
37
|
private projectStore?;
|
|
38
|
+
private runRegistry?;
|
|
35
39
|
private knowledge?;
|
|
36
40
|
private selectorCache?;
|
|
37
41
|
private cachedPostState;
|
|
38
|
-
constructor(options:
|
|
42
|
+
constructor(options: BrowserAgentOptions);
|
|
39
43
|
run(scenario: Scenario): Promise<AgentResult>;
|
|
40
44
|
private selectFollowUpActions;
|
|
41
|
-
/** Persist knowledge
|
|
45
|
+
/** Persist knowledge, selector cache, and session history to disk */
|
|
42
46
|
private saveMemory;
|
|
43
47
|
/**
|
|
44
48
|
* Verify that an action had the expected effect.
|
|
@@ -63,5 +67,5 @@ export declare class AgentRunner {
|
|
|
63
67
|
private attachDecisionScreenshot;
|
|
64
68
|
}
|
|
65
69
|
/** Convenience function */
|
|
66
|
-
export declare function
|
|
70
|
+
export declare function runBrowserAgent(driver: Driver, scenario: Scenario, options?: Omit<BrowserAgentOptions, 'driver'>): Promise<AgentResult>;
|
|
67
71
|
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/runner/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAuC,MAAM,aAAa,CAAC;AAKjH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/runner/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAuC,MAAM,aAAa,CAAC;AAKjH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAqB/D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AA0CxD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC9B,wDAAwD;IACxD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACnG,wDAAwD;IACxD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sEAAsE;IACtE,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,sDAAsD;IACtD,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAuB;IACtC,OAAO,CAAC,aAAa,CAAC,CAAqF;IAC3G,OAAO,CAAC,mBAAmB,CAAC,CAAS;IACrC,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,SAAS,CAAC,CAAe;IACjC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,eAAe,CAAwB;gBAEnC,OAAO,EAAE,mBAAmB;IAWlC,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC;IAwqCnD,OAAO,CAAC,qBAAqB;IA2B7B,qEAAqE;IACrE,OAAO,CAAC,UAAU;IAclB;;;;;;;;;;;;OAYG;YACW,YAAY;YA2EZ,+BAA+B;YAgE/B,mCAAmC;YAwCnC,6BAA6B;YA4C7B,qCAAqC;YAqBrC,4BAA4B;YA4B5B,4BAA4B;YAkC5B,wBAAwB;CASvC;AAED,2BAA2B;AAC3B,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,GAC5C,OAAO,CAAC,WAAW,CAAC,CAGtB"}
|
package/dist/runner/runner.js
CHANGED
|
@@ -29,6 +29,21 @@ import { buildGoalVerificationClaim, collectSearchWorkflowEvidence, shouldAccept
|
|
|
29
29
|
import { detectAiTanglePartnerTemplateVisibleState, detectAiTangleVerifiedOutputState, shouldEscalateVision } from './page-analysis.js';
|
|
30
30
|
import { shouldUseVisibleLinkScout, shouldUseVisibleLinkScoutPage, shouldUseBoundedBranchExplorer, inspectBranchPreview, scoreBranchPreview } from './scout.js';
|
|
31
31
|
import { buildOverrideProducers, buildScoutLinkRecommendationText, buildBranchLinkRecommendationText } from './overrides.js';
|
|
32
|
+
import { RunRegistry } from '../memory/run-registry.js';
|
|
33
|
+
/** Build a structured session record from a completed run */
|
|
34
|
+
function buildSession(scenario, result) {
|
|
35
|
+
const lastTurn = result.turns[result.turns.length - 1];
|
|
36
|
+
return {
|
|
37
|
+
id: scenario.sessionId || `session_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`,
|
|
38
|
+
goal: scenario.goal,
|
|
39
|
+
outcome: result.result || result.reason || (result.success ? 'Goal achieved' : 'Failed'),
|
|
40
|
+
success: result.success,
|
|
41
|
+
finalUrl: lastTurn?.state?.url || scenario.startUrl || '',
|
|
42
|
+
timestamp: new Date().toISOString(),
|
|
43
|
+
turnsUsed: result.turns.length,
|
|
44
|
+
durationMs: result.totalMs,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
32
47
|
const DEFAULT_MAX_TURNS = 20;
|
|
33
48
|
const DEFAULT_RETRIES = 3;
|
|
34
49
|
const DEFAULT_RETRY_DELAY_MS = 1000;
|
|
@@ -51,7 +66,7 @@ const DEFI_BRAIN_CONTEXT = '\nWALLET/DeFi MODE ACTIVE — crypto app patterns:\n
|
|
|
51
66
|
'- NATIVE ETH: Prefer native ETH over wrapped tokens (WETH) when possible — avoids ERC-20 spending approval steps.\n' +
|
|
52
67
|
'- NETWORK SELECTOR: Do NOT change the network/chain. If a network dropdown opens accidentally, close it immediately.\n' +
|
|
53
68
|
'- COOKIE BANNERS: Dismiss immediately via Escape or Reject button — don\'t spend multiple turns on consent dialogs.\n';
|
|
54
|
-
export class
|
|
69
|
+
export class BrowserAgent {
|
|
55
70
|
driver;
|
|
56
71
|
brain;
|
|
57
72
|
config;
|
|
@@ -59,6 +74,7 @@ export class AgentRunner {
|
|
|
59
74
|
onPhaseTiming;
|
|
60
75
|
referenceTrajectory;
|
|
61
76
|
projectStore;
|
|
77
|
+
runRegistry;
|
|
62
78
|
knowledge;
|
|
63
79
|
selectorCache;
|
|
64
80
|
cachedPostState;
|
|
@@ -70,6 +86,7 @@ export class AgentRunner {
|
|
|
70
86
|
this.onPhaseTiming = options.onPhaseTiming;
|
|
71
87
|
this.referenceTrajectory = options.referenceTrajectory;
|
|
72
88
|
this.projectStore = options.projectStore;
|
|
89
|
+
this.runRegistry = options.runRegistry;
|
|
73
90
|
}
|
|
74
91
|
async run(scenario) {
|
|
75
92
|
const maxTurns = scenario.maxTurns || DEFAULT_MAX_TURNS;
|
|
@@ -79,11 +96,43 @@ export class AgentRunner {
|
|
|
79
96
|
const startTime = Date.now();
|
|
80
97
|
const phaseTimings = {};
|
|
81
98
|
const runState = new RunState(maxTurns);
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
99
|
+
const runId = scenario.sessionId
|
|
100
|
+
? `${scenario.sessionId}_${Date.now()}`
|
|
101
|
+
: RunRegistry.generateRunId();
|
|
102
|
+
const domain = safeHostname(scenario.startUrl || '') || 'unknown';
|
|
103
|
+
const buildResult = (result) => {
|
|
104
|
+
const agentResult = {
|
|
105
|
+
...result,
|
|
106
|
+
phaseTimings,
|
|
107
|
+
wasteMetrics: deriveWasteMetrics(turns, runState.verificationRejectionCount, runState.firstSufficientEvidenceTurn),
|
|
108
|
+
};
|
|
109
|
+
this.saveMemory(scenario, agentResult);
|
|
110
|
+
// Complete run manifest
|
|
111
|
+
const lastTurn = agentResult.turns[agentResult.turns.length - 1];
|
|
112
|
+
this.runRegistry?.completeRun(runId, {
|
|
113
|
+
success: agentResult.success,
|
|
114
|
+
finalUrl: lastTurn?.state?.url,
|
|
115
|
+
summary: agentResult.result || agentResult.reason,
|
|
116
|
+
result: agentResult.result,
|
|
117
|
+
reason: agentResult.reason,
|
|
118
|
+
turnCount: agentResult.turns.length,
|
|
119
|
+
});
|
|
120
|
+
return agentResult;
|
|
121
|
+
};
|
|
122
|
+
// Wrap onTurn to include mid-run manifest updates (every 3 turns)
|
|
123
|
+
const originalOnTurn = this.onTurn;
|
|
124
|
+
this.onTurn = (turn) => {
|
|
125
|
+
originalOnTurn?.(turn);
|
|
126
|
+
if (this.runRegistry && turns.length % 3 === 0) {
|
|
127
|
+
try {
|
|
128
|
+
this.runRegistry.updateRun(runId, {
|
|
129
|
+
turnCount: turns.length,
|
|
130
|
+
currentUrl: turn.state?.url,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
catch { /* best-effort */ }
|
|
134
|
+
}
|
|
135
|
+
};
|
|
87
136
|
// Reset brain history for fresh scenario
|
|
88
137
|
this.brain.reset();
|
|
89
138
|
this.cachedPostState = undefined;
|
|
@@ -102,6 +151,15 @@ export class AgentRunner {
|
|
|
102
151
|
phaseTimings.initialNavigateMs = Date.now() - navigateStartedAt;
|
|
103
152
|
this.onPhaseTiming?.('navigate', phaseTimings.initialNavigateMs);
|
|
104
153
|
}
|
|
154
|
+
// Write run manifest at start
|
|
155
|
+
this.runRegistry?.startRun({
|
|
156
|
+
runId,
|
|
157
|
+
sessionId: scenario.sessionId,
|
|
158
|
+
parentRunId: scenario.parentRunId,
|
|
159
|
+
goal: scenario.goal,
|
|
160
|
+
domain,
|
|
161
|
+
startUrl: scenario.startUrl,
|
|
162
|
+
});
|
|
105
163
|
const supervisorConfig = {
|
|
106
164
|
enabled: this.config.supervisor?.enabled ?? DEFAULT_SUPERVISOR.enabled,
|
|
107
165
|
model: this.config.supervisor?.model || this.config.model || 'gpt-5.4',
|
|
@@ -237,7 +295,6 @@ export class AgentRunner {
|
|
|
237
295
|
};
|
|
238
296
|
turns.push(blockerTurn);
|
|
239
297
|
this.onTurn?.(blockerTurn);
|
|
240
|
-
this.saveMemory();
|
|
241
298
|
return buildResult({
|
|
242
299
|
success: false,
|
|
243
300
|
reason,
|
|
@@ -257,7 +314,6 @@ export class AgentRunner {
|
|
|
257
314
|
};
|
|
258
315
|
turns.push(blockerTurn);
|
|
259
316
|
this.onTurn?.(blockerTurn);
|
|
260
|
-
this.saveMemory();
|
|
261
317
|
return buildResult({
|
|
262
318
|
success: false,
|
|
263
319
|
reason,
|
|
@@ -396,7 +452,6 @@ export class AgentRunner {
|
|
|
396
452
|
};
|
|
397
453
|
turns.push(supervisorTurn);
|
|
398
454
|
this.onTurn?.(supervisorTurn);
|
|
399
|
-
this.saveMemory();
|
|
400
455
|
return buildResult({
|
|
401
456
|
success: false,
|
|
402
457
|
reason,
|
|
@@ -437,7 +492,6 @@ export class AgentRunner {
|
|
|
437
492
|
turns.push(supervisorTurn);
|
|
438
493
|
this.onTurn?.(supervisorTurn);
|
|
439
494
|
if (runState.hasConsecutiveErrorThreshold) {
|
|
440
|
-
this.saveMemory();
|
|
441
495
|
return buildResult({
|
|
442
496
|
success: false,
|
|
443
497
|
reason: `${runState.consecutiveErrors} consecutive errors after supervisor action: ${actionError}`,
|
|
@@ -446,7 +500,6 @@ export class AgentRunner {
|
|
|
446
500
|
});
|
|
447
501
|
}
|
|
448
502
|
if (runState.isErrorBudgetExhausted) {
|
|
449
|
-
this.saveMemory();
|
|
450
503
|
return buildResult({
|
|
451
504
|
success: false,
|
|
452
505
|
reason: `Error budget exhausted (${runState.totalErrors}/${runState.maxTotalErrors}) after supervisor action`,
|
|
@@ -782,7 +835,6 @@ export class AgentRunner {
|
|
|
782
835
|
// Both gates passed
|
|
783
836
|
turns.push(turn);
|
|
784
837
|
this.onTurn?.(turn);
|
|
785
|
-
this.saveMemory();
|
|
786
838
|
runState.firstSufficientEvidenceTurn ??= i;
|
|
787
839
|
return buildResult({
|
|
788
840
|
success: true,
|
|
@@ -802,7 +854,6 @@ export class AgentRunner {
|
|
|
802
854
|
// Goal verified (or skipped), no quality gate
|
|
803
855
|
turns.push(turn);
|
|
804
856
|
this.onTurn?.(turn);
|
|
805
|
-
this.saveMemory();
|
|
806
857
|
runState.firstSufficientEvidenceTurn ??= i;
|
|
807
858
|
return buildResult({
|
|
808
859
|
success: true,
|
|
@@ -815,7 +866,6 @@ export class AgentRunner {
|
|
|
815
866
|
if (action.action === 'abort') {
|
|
816
867
|
turns.push(turn);
|
|
817
868
|
this.onTurn?.(turn);
|
|
818
|
-
this.saveMemory();
|
|
819
869
|
return buildResult({
|
|
820
870
|
success: false,
|
|
821
871
|
reason: action.reason,
|
|
@@ -995,7 +1045,6 @@ export class AgentRunner {
|
|
|
995
1045
|
turns.push(turn);
|
|
996
1046
|
this.onTurn?.(turn);
|
|
997
1047
|
if (runState.hasConsecutiveErrorThreshold) {
|
|
998
|
-
this.saveMemory();
|
|
999
1048
|
return buildResult({
|
|
1000
1049
|
success: false,
|
|
1001
1050
|
reason: `${runState.consecutiveErrors} consecutive errors: ${error}`,
|
|
@@ -1004,7 +1053,6 @@ export class AgentRunner {
|
|
|
1004
1053
|
});
|
|
1005
1054
|
}
|
|
1006
1055
|
if (runState.isErrorBudgetExhausted) {
|
|
1007
|
-
this.saveMemory();
|
|
1008
1056
|
return buildResult({
|
|
1009
1057
|
success: false,
|
|
1010
1058
|
reason: `Error budget exhausted (${runState.totalErrors}/${runState.maxTotalErrors} total errors): ${error}`,
|
|
@@ -1017,8 +1065,6 @@ export class AgentRunner {
|
|
|
1017
1065
|
}
|
|
1018
1066
|
}
|
|
1019
1067
|
}
|
|
1020
|
-
// Persist memory before returning
|
|
1021
|
-
this.saveMemory();
|
|
1022
1068
|
// Max turns reached
|
|
1023
1069
|
return buildResult({
|
|
1024
1070
|
success: false,
|
|
@@ -1050,9 +1096,12 @@ export class AgentRunner {
|
|
|
1050
1096
|
}
|
|
1051
1097
|
return selected;
|
|
1052
1098
|
}
|
|
1053
|
-
/** Persist knowledge
|
|
1054
|
-
saveMemory() {
|
|
1099
|
+
/** Persist knowledge, selector cache, and session history to disk */
|
|
1100
|
+
saveMemory(scenario, result) {
|
|
1055
1101
|
try {
|
|
1102
|
+
if (this.knowledge && scenario && result) {
|
|
1103
|
+
this.knowledge.recordSession(buildSession(scenario, result));
|
|
1104
|
+
}
|
|
1056
1105
|
this.knowledge?.save();
|
|
1057
1106
|
this.selectorCache?.save();
|
|
1058
1107
|
}
|
|
@@ -1355,8 +1404,8 @@ export class AgentRunner {
|
|
|
1355
1404
|
}
|
|
1356
1405
|
}
|
|
1357
1406
|
/** Convenience function */
|
|
1358
|
-
export async function
|
|
1359
|
-
const runner = new
|
|
1407
|
+
export async function runBrowserAgent(driver, scenario, options) {
|
|
1408
|
+
const runner = new BrowserAgent({ driver, ...options });
|
|
1360
1409
|
return runner.run(scenario);
|
|
1361
1410
|
}
|
|
1362
1411
|
//# sourceMappingURL=runner.js.map
|