@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.
Files changed (47) hide show
  1. package/README.md +2 -2
  2. package/dist/cli-ui.d.ts.map +1 -1
  3. package/dist/cli-ui.js +12 -0
  4. package/dist/cli-ui.js.map +1 -1
  5. package/dist/cli.js +92 -7
  6. package/dist/cli.js.map +1 -1
  7. package/dist/config.d.ts +1 -1
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +1 -1
  10. package/dist/config.js.map +1 -1
  11. package/dist/design-audit.js +2 -2
  12. package/dist/design-audit.js.map +1 -1
  13. package/dist/index.d.ts +5 -3
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +2 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/memory/knowledge.d.ts +25 -9
  18. package/dist/memory/knowledge.d.ts.map +1 -1
  19. package/dist/memory/knowledge.js +94 -28
  20. package/dist/memory/knowledge.js.map +1 -1
  21. package/dist/memory/run-registry.d.ts +85 -0
  22. package/dist/memory/run-registry.d.ts.map +1 -0
  23. package/dist/memory/run-registry.js +144 -0
  24. package/dist/memory/run-registry.js.map +1 -0
  25. package/dist/multi-actor.d.ts +3 -3
  26. package/dist/multi-actor.d.ts.map +1 -1
  27. package/dist/multi-actor.js +3 -3
  28. package/dist/multi-actor.js.map +1 -1
  29. package/dist/runner/index.d.ts +2 -2
  30. package/dist/runner/index.d.ts.map +1 -1
  31. package/dist/runner/index.js +1 -1
  32. package/dist/runner/index.js.map +1 -1
  33. package/dist/runner/runner.d.ts +9 -5
  34. package/dist/runner/runner.d.ts.map +1 -1
  35. package/dist/runner/runner.js +71 -22
  36. package/dist/runner/runner.js.map +1 -1
  37. package/dist/runner.d.ts +2 -2
  38. package/dist/runner.d.ts.map +1 -1
  39. package/dist/runner.js +1 -1
  40. package/dist/runner.js.map +1 -1
  41. package/dist/test-runner.d.ts +1 -0
  42. package/dist/test-runner.d.ts.map +1 -1
  43. package/dist/test-runner.js +26 -2
  44. package/dist/test-runner.js.map +1 -1
  45. package/dist/types.d.ts +10 -0
  46. package/dist/types.d.ts.map +1 -1
  47. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -18,8 +18,8 @@ export { getPageMetadata } from './drivers/cdp-page-state.js';
18
18
  export type { PageMetadata } from './drivers/cdp-page-state.js';
19
19
  export { Brain } from './brain/index.js';
20
20
  export type { BrainDecision, QualityEvaluation } from './brain/index.js';
21
- export { AgentRunner, runAgent } from './runner.js';
22
- export type { RunnerOptions } from './runner.js';
21
+ export { BrowserAgent, runBrowserAgent } from './runner.js';
22
+ export type { BrowserAgentOptions } from './runner.js';
23
23
  export { TestRunner } from './test-runner.js';
24
24
  export type { TestRunnerOptions } from './test-runner.js';
25
25
  export { generateReport, compareReports } from './test-report.js';
@@ -37,13 +37,15 @@ export { detectSupervisorSignal, formatSupervisorSignal } from './supervisor/pol
37
37
  export { requestSupervisorDirective } from './supervisor/critic.js';
38
38
  export { ProjectStore } from './memory/project-store.js';
39
39
  export { AppKnowledge } from './memory/knowledge.js';
40
- export type { Fact, KnowledgeData } from './memory/knowledge.js';
40
+ export type { Fact, Session, KnowledgeData } from './memory/knowledge.js';
41
41
  export { SelectorCache } from './memory/selectors.js';
42
42
  export type { SelectorEntry } from './memory/selectors.js';
43
43
  export { TrajectoryStore } from './memory/store.js';
44
44
  export type { TrajectoryStoreOptions } from './memory/store.js';
45
45
  export { TrajectoryAnalyzer } from './memory/analyzer.js';
46
46
  export type { RunAnalysis, ActionPattern, GoalPattern, TurnWaste } from './memory/analyzer.js';
47
+ export { RunRegistry } from './memory/run-registry.js';
48
+ export type { RunManifest, RunStatus, RunFilters } from './memory/run-registry.js';
47
49
  export { defineConfig, defineTests, loadConfig, mergeConfig, toAgentConfig } from './config.js';
48
50
  export type { DriverConfig } from './config.js';
49
51
  export { buildBrowserLaunchPlan } from './browser-launch.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -13,7 +13,7 @@ export { getPageMetadata } from './drivers/cdp-page-state.js';
13
13
  // Brain (LLM decision engine)
14
14
  export { Brain } from './brain/index.js';
15
15
  // Agent runner (core observe -> decide -> execute loop)
16
- export { AgentRunner, runAgent } from './runner.js';
16
+ export { BrowserAgent, runBrowserAgent } from './runner.js';
17
17
  // Test runner (suite orchestration, verification, parallelism)
18
18
  export { TestRunner } from './test-runner.js';
19
19
  export { generateReport, compareReports } from './test-report.js';
@@ -38,6 +38,7 @@ export { AppKnowledge } from './memory/knowledge.js';
38
38
  export { SelectorCache } from './memory/selectors.js';
39
39
  export { TrajectoryStore } from './memory/store.js';
40
40
  export { TrajectoryAnalyzer } from './memory/analyzer.js';
41
+ export { RunRegistry } from './memory/run-registry.js';
41
42
  // Configuration
42
43
  export { defineConfig, defineTests, loadConfig, mergeConfig, toAgentConfig } from './config.js';
43
44
  export { buildBrowserLaunchPlan } from './browser-launch.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,12 @@
1
1
  /**
2
- * App Knowledge — domain-scoped fact accumulation with confidence scoring.
2
+ * App Knowledge — domain-scoped fact accumulation with confidence scoring,
3
+ * plus rolling session history for cross-run continuity.
3
4
  *
4
- * Stores structured facts the agent discovers about a specific application,
5
- * persisted across runs. Facts have confidence scores that increase with
6
- * repeated confirmation and decay when contradicted.
5
+ * Facts: structured observations (timing, selector, pattern, quirk) that
6
+ * gain confidence with repeated confirmation and decay when contradicted.
7
7
  *
8
- * Fact types:
9
- * - timing: wait durations, animation timings, load times
10
- * - selector: reliable selectors for specific elements
11
- * - pattern: multi-step interaction patterns (auth flows, navigation)
12
- * - quirk: app-specific behaviors (shadow DOM, lazy loading, etc.)
8
+ * Sessions: ordered log of what the agent accomplished on this site.
9
+ * Enables continuation "now add feature X" knows what was already built.
13
10
  */
14
11
  export interface Fact {
15
12
  type: 'timing' | 'selector' | 'pattern' | 'quirk';
@@ -19,9 +16,24 @@ export interface Fact {
19
16
  sources: number;
20
17
  lastSeen: string;
21
18
  }
19
+ export interface Session {
20
+ /** Orchestrator-provided or auto-generated ID */
21
+ id: string;
22
+ /** The goal that was given */
23
+ goal: string;
24
+ /** Agent's own natural language result or failure reason */
25
+ outcome: string;
26
+ success: boolean;
27
+ /** Where the browser ended up */
28
+ finalUrl: string;
29
+ timestamp: string;
30
+ turnsUsed: number;
31
+ durationMs: number;
32
+ }
22
33
  export interface KnowledgeData {
23
34
  domain: string;
24
35
  facts: Fact[];
36
+ sessions: Session[];
25
37
  updatedAt: string;
26
38
  }
27
39
  export declare class AppKnowledge {
@@ -46,6 +58,10 @@ export declare class AppKnowledge {
46
58
  key: string;
47
59
  value: string;
48
60
  }>): void;
61
+ /** Get all sessions, newest first */
62
+ getSessions(): Session[];
63
+ /** Append a session to the rolling log. Keeps the last MAX_SESSIONS entries. */
64
+ recordSession(session: Session): void;
49
65
  /** Format knowledge for injection into brain context */
50
66
  formatForBrain(): string;
51
67
  /** Persist to disk */
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/memory/knowledge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,IAAI,CAAgB;gBAEhB,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAKxC,oDAAoD;IACpD,QAAQ,CAAC,aAAa,SAAM,GAAG,IAAI,EAAE;IAIrC,mCAAmC;IACnC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,aAAa,SAAM,GAAG,IAAI,EAAE;IAI/D,8CAA8C;IAC9C,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAI1D;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAkChE,+DAA+D;IAC/D,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAMnF,wDAAwD;IACxD,cAAc,IAAI,MAAM;IAwBxB,sBAAsB;IACtB,IAAI,IAAI,IAAI;IAIZ,OAAO,CAAC,IAAI;CAUb"}
1
+ {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/memory/knowledge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,iDAAiD;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,IAAI,CAAgB;gBAEhB,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAOxC,oDAAoD;IACpD,QAAQ,CAAC,aAAa,SAAM,GAAG,IAAI,EAAE;IAIrC,mCAAmC;IACnC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,aAAa,SAAM,GAAG,IAAI,EAAE;IAI/D,8CAA8C;IAC9C,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAI1D;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IA+BhE,+DAA+D;IAC/D,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAQnF,qCAAqC;IACrC,WAAW,IAAI,OAAO,EAAE;IAIxB,gFAAgF;IAChF,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAarC,wDAAwD;IACxD,cAAc,IAAI,MAAM;IAmDxB,sBAAsB;IACtB,IAAI,IAAI,IAAI;IAIZ,OAAO,CAAC,IAAI;CAkCb"}
@@ -1,17 +1,15 @@
1
1
  /**
2
- * App Knowledge — domain-scoped fact accumulation with confidence scoring.
2
+ * App Knowledge — domain-scoped fact accumulation with confidence scoring,
3
+ * plus rolling session history for cross-run continuity.
3
4
  *
4
- * Stores structured facts the agent discovers about a specific application,
5
- * persisted across runs. Facts have confidence scores that increase with
6
- * repeated confirmation and decay when contradicted.
5
+ * Facts: structured observations (timing, selector, pattern, quirk) that
6
+ * gain confidence with repeated confirmation and decay when contradicted.
7
7
  *
8
- * Fact types:
9
- * - timing: wait durations, animation timings, load times
10
- * - selector: reliable selectors for specific elements
11
- * - pattern: multi-step interaction patterns (auth flows, navigation)
12
- * - quirk: app-specific behaviors (shadow DOM, lazy loading, etc.)
8
+ * Sessions: ordered log of what the agent accomplished on this site.
9
+ * Enables continuation "now add feature X" knows what was already built.
13
10
  */
14
11
  import { existsSync, readFileSync, writeFileSync } from 'fs';
12
+ const MAX_SESSIONS = 5;
15
13
  export class AppKnowledge {
16
14
  path;
17
15
  data;
@@ -19,6 +17,7 @@ export class AppKnowledge {
19
17
  this.path = path;
20
18
  this.data = this.load(domain);
21
19
  }
20
+ // ── Facts ──
22
21
  /** Get all facts with confidence above threshold */
23
22
  getFacts(minConfidence = 0.3) {
24
23
  return this.data.facts.filter(f => f.confidence >= minConfidence);
@@ -41,13 +40,11 @@ export class AppKnowledge {
41
40
  const now = new Date().toISOString();
42
41
  if (existing) {
43
42
  if (existing.value === value) {
44
- // Confirm — boost confidence (asymptotic toward 1.0)
45
43
  existing.confidence = Math.min(1.0, existing.confidence + (1 - existing.confidence) * 0.2);
46
44
  existing.sources++;
47
45
  existing.lastSeen = now;
48
46
  }
49
47
  else {
50
- // Contradict — decay old, add new
51
48
  existing.confidence *= 0.5;
52
49
  this.data.facts.push({
53
50
  type, key, value,
@@ -65,7 +62,6 @@ export class AppKnowledge {
65
62
  lastSeen: now,
66
63
  });
67
64
  }
68
- // Prune low-confidence facts
69
65
  this.data.facts = this.data.facts.filter(f => f.confidence >= 0.1);
70
66
  this.data.updatedAt = now;
71
67
  }
@@ -75,25 +71,71 @@ export class AppKnowledge {
75
71
  this.recordFact(f.type, f.key, f.value);
76
72
  }
77
73
  }
74
+ // ── Sessions ──
75
+ /** Get all sessions, newest first */
76
+ getSessions() {
77
+ return [...this.data.sessions].sort((a, b) => b.timestamp.localeCompare(a.timestamp));
78
+ }
79
+ /** Append a session to the rolling log. Keeps the last MAX_SESSIONS entries. */
80
+ recordSession(session) {
81
+ this.data.sessions.push(session);
82
+ // Keep only the most recent sessions
83
+ if (this.data.sessions.length > MAX_SESSIONS) {
84
+ this.data.sessions = this.data.sessions
85
+ .sort((a, b) => b.timestamp.localeCompare(a.timestamp))
86
+ .slice(0, MAX_SESSIONS);
87
+ }
88
+ this.data.updatedAt = new Date().toISOString();
89
+ }
90
+ // ── Brain injection ──
78
91
  /** Format knowledge for injection into brain context */
79
92
  formatForBrain() {
80
- const facts = this.getFacts(0.5); // Only high-confidence facts
81
- if (facts.length === 0)
82
- return '';
83
- const grouped = new Map();
84
- for (const f of facts) {
85
- const group = grouped.get(f.type) || [];
86
- group.push(f);
87
- grouped.set(f.type, group);
93
+ const lines = [];
94
+ // Sessions first — most valuable for continuations
95
+ const sessions = this.getSessions();
96
+ if (sessions.length > 0) {
97
+ const count = sessions.length;
98
+ lines.push(`SESSION HISTORY (${count} previous run${count !== 1 ? 's' : ''} on this site):`);
99
+ for (let i = 0; i < sessions.length; i++) {
100
+ const s = sessions[i];
101
+ const icon = s.success ? '✓' : '✗';
102
+ const ts = s.timestamp.slice(0, 16).replace('T', ' ');
103
+ const stats = `${s.turnsUsed} turns, ${Math.round(s.durationMs / 1000)}s`;
104
+ if (i < 2) {
105
+ // Recent sessions: full detail
106
+ lines.push(`[${ts}] ${icon} "${s.goal}" → ${s.outcome} (${stats})`);
107
+ if (s.finalUrl)
108
+ lines.push(` Final URL: ${s.finalUrl}`);
109
+ }
110
+ else {
111
+ // Older sessions: one line
112
+ lines.push(`[${ts}] ${icon} "${s.goal}" → ${s.outcome.slice(0, 80)}${s.outcome.length > 80 ? '…' : ''} (${stats})`);
113
+ }
114
+ }
88
115
  }
89
- const lines = ['APP KNOWLEDGE (learned from previous runs):'];
90
- for (const [type, typeFacts] of grouped) {
91
- lines.push(` ${type.toUpperCase()}:`);
92
- for (const f of typeFacts.sort((a, b) => b.confidence - a.confidence)) {
93
- const conf = (f.confidence * 100).toFixed(0);
94
- lines.push(` - ${f.key}: ${f.value} (${conf}% confidence, ${f.sources} observations)`);
116
+ // Facts
117
+ const facts = this.getFacts(0.5);
118
+ const nonSessionFacts = facts;
119
+ if (nonSessionFacts.length > 0) {
120
+ if (lines.length > 0)
121
+ lines.push('');
122
+ lines.push('APP KNOWLEDGE (learned from previous runs):');
123
+ const grouped = new Map();
124
+ for (const f of nonSessionFacts) {
125
+ const group = grouped.get(f.type) || [];
126
+ group.push(f);
127
+ grouped.set(f.type, group);
128
+ }
129
+ for (const [type, typeFacts] of grouped) {
130
+ lines.push(` ${type.toUpperCase()}:`);
131
+ for (const f of typeFacts.sort((a, b) => b.confidence - a.confidence)) {
132
+ const conf = (f.confidence * 100).toFixed(0);
133
+ lines.push(` - ${f.key}: ${f.value} (${conf}% confidence, ${f.sources} observations)`);
134
+ }
95
135
  }
96
136
  }
137
+ if (lines.length === 0)
138
+ return '';
97
139
  return lines.join('\n');
98
140
  }
99
141
  /** Persist to disk */
@@ -103,13 +145,37 @@ export class AppKnowledge {
103
145
  load(domain) {
104
146
  if (existsSync(this.path)) {
105
147
  try {
106
- return JSON.parse(readFileSync(this.path, 'utf-8'));
148
+ const raw = JSON.parse(readFileSync(this.path, 'utf-8'));
149
+ // Migrate: old format may not have sessions array, or may have
150
+ // session-type facts from the previous implementation
151
+ if (!raw.sessions)
152
+ raw.sessions = [];
153
+ // Migrate session-type facts from previous implementation to sessions array
154
+ if (raw.facts) {
155
+ const sessionFacts = raw.facts.filter(f => f.type === 'session');
156
+ if (sessionFacts.length > 0) {
157
+ for (const sf of sessionFacts) {
158
+ raw.sessions.push({
159
+ id: `migrated_${Date.now()}`,
160
+ goal: sf.key === 'latest' ? '(previous run)' : sf.key,
161
+ outcome: sf.value,
162
+ success: true,
163
+ finalUrl: '',
164
+ timestamp: sf.lastSeen,
165
+ turnsUsed: 0,
166
+ durationMs: 0,
167
+ });
168
+ }
169
+ raw.facts = raw.facts.filter(f => f.type !== 'session');
170
+ }
171
+ }
172
+ return raw;
107
173
  }
108
174
  catch {
109
175
  // Corrupted file — start fresh
110
176
  }
111
177
  }
112
- return { domain, facts: [], updatedAt: new Date().toISOString() };
178
+ return { domain, facts: [], sessions: [], updatedAt: new Date().toISOString() };
113
179
  }
114
180
  }
115
181
  //# sourceMappingURL=knowledge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/memory/knowledge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../src/memory/knowledge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Run Registry — orchestration-facing run manifest storage.
3
+ *
4
+ * Provides a structured API for external orchestrators (Foreman) to
5
+ * enumerate, inspect, resume, and fork browser agent runs.
6
+ *
7
+ * Separate from AppKnowledge: knowledge.json is the LLM-facing memory
8
+ * substrate, runs/*.json is the orchestration-facing substrate.
9
+ */
10
+ export type RunStatus = 'running' | 'completed' | 'failed';
11
+ export interface RunManifest {
12
+ runId: string;
13
+ sessionId?: string;
14
+ parentRunId?: string;
15
+ status: RunStatus;
16
+ goal: string;
17
+ domain: string;
18
+ startUrl?: string;
19
+ finalUrl?: string;
20
+ currentUrl?: string;
21
+ startedAt: string;
22
+ updatedAt: string;
23
+ completedAt?: string;
24
+ success?: boolean;
25
+ summary?: string;
26
+ artifactPaths: string[];
27
+ turnCount: number;
28
+ result?: string;
29
+ reason?: string;
30
+ }
31
+ export interface RunFilters {
32
+ domain?: string;
33
+ sessionId?: string;
34
+ status?: RunStatus;
35
+ limit?: number;
36
+ }
37
+ export declare class RunRegistry {
38
+ private dir;
39
+ constructor(memoryDir: string);
40
+ /** Create a new run manifest at start. Returns the runId. */
41
+ startRun(opts: {
42
+ runId: string;
43
+ sessionId?: string;
44
+ parentRunId?: string;
45
+ goal: string;
46
+ domain: string;
47
+ startUrl?: string;
48
+ }): string;
49
+ /** Update a run manifest (e.g., on completion or failure). */
50
+ updateRun(runId: string, updates: Partial<Omit<RunManifest, 'runId' | 'startedAt'>>): RunManifest | undefined;
51
+ /** Complete a run with final results. */
52
+ completeRun(runId: string, result: {
53
+ success: boolean;
54
+ finalUrl?: string;
55
+ summary?: string;
56
+ result?: string;
57
+ reason?: string;
58
+ turnCount: number;
59
+ artifactPaths?: string[];
60
+ }): RunManifest | undefined;
61
+ /** Get a single run by ID. */
62
+ getRun(runId: string): RunManifest | undefined;
63
+ /** List runs matching optional filters, newest first. */
64
+ listRuns(filters?: RunFilters): RunManifest[];
65
+ /** Build a resume scenario from a previous run. */
66
+ buildResumeScenario(runId: string, newGoal?: string): {
67
+ goal: string;
68
+ startUrl: string;
69
+ sessionId?: string;
70
+ parentRunId: string;
71
+ } | undefined;
72
+ /** Build a fork scenario — new sessionId, inherits startUrl from parent. */
73
+ buildForkScenario(runId: string, goal: string): {
74
+ goal: string;
75
+ startUrl: string;
76
+ sessionId: string;
77
+ parentRunId: string;
78
+ } | undefined;
79
+ /** Generate a unique run ID. */
80
+ static generateRunId(): string;
81
+ private manifestPath;
82
+ private write;
83
+ private ensureDir;
84
+ }
85
+ //# sourceMappingURL=run-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-registry.d.ts","sourceRoot":"","sources":["../../src/memory/run-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Run Registry — orchestration-facing run manifest storage.
3
+ *
4
+ * Provides a structured API for external orchestrators (Foreman) to
5
+ * enumerate, inspect, resume, and fork browser agent runs.
6
+ *
7
+ * Separate from AppKnowledge: knowledge.json is the LLM-facing memory
8
+ * substrate, runs/*.json is the orchestration-facing substrate.
9
+ */
10
+ import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from 'fs';
11
+ import { join } from 'path';
12
+ export class RunRegistry {
13
+ dir;
14
+ constructor(memoryDir) {
15
+ this.dir = join(memoryDir, 'agent-runs');
16
+ }
17
+ /** Create a new run manifest at start. Returns the runId. */
18
+ startRun(opts) {
19
+ this.ensureDir();
20
+ const manifest = {
21
+ runId: opts.runId,
22
+ sessionId: opts.sessionId,
23
+ parentRunId: opts.parentRunId,
24
+ status: 'running',
25
+ goal: opts.goal,
26
+ domain: opts.domain,
27
+ startUrl: opts.startUrl,
28
+ startedAt: new Date().toISOString(),
29
+ updatedAt: new Date().toISOString(),
30
+ artifactPaths: [],
31
+ turnCount: 0,
32
+ };
33
+ this.write(manifest);
34
+ return opts.runId;
35
+ }
36
+ /** Update a run manifest (e.g., on completion or failure). */
37
+ updateRun(runId, updates) {
38
+ const manifest = this.getRun(runId);
39
+ if (!manifest)
40
+ return undefined;
41
+ Object.assign(manifest, updates, { updatedAt: new Date().toISOString() });
42
+ this.write(manifest);
43
+ return manifest;
44
+ }
45
+ /** Complete a run with final results. */
46
+ completeRun(runId, result) {
47
+ return this.updateRun(runId, {
48
+ status: result.success ? 'completed' : 'failed',
49
+ success: result.success,
50
+ finalUrl: result.finalUrl,
51
+ summary: result.summary,
52
+ result: result.result,
53
+ reason: result.reason,
54
+ turnCount: result.turnCount,
55
+ artifactPaths: result.artifactPaths || [],
56
+ completedAt: new Date().toISOString(),
57
+ });
58
+ }
59
+ /** Get a single run by ID. */
60
+ getRun(runId) {
61
+ const path = this.manifestPath(runId);
62
+ if (!existsSync(path))
63
+ return undefined;
64
+ try {
65
+ return JSON.parse(readFileSync(path, 'utf-8'));
66
+ }
67
+ catch {
68
+ return undefined;
69
+ }
70
+ }
71
+ /** List runs matching optional filters, newest first. */
72
+ listRuns(filters) {
73
+ if (!existsSync(this.dir))
74
+ return [];
75
+ const files = readdirSync(this.dir).filter(f => f.endsWith('.json'));
76
+ let manifests = [];
77
+ for (const file of files) {
78
+ try {
79
+ const m = JSON.parse(readFileSync(join(this.dir, file), 'utf-8'));
80
+ manifests.push(m);
81
+ }
82
+ catch {
83
+ // skip corrupted
84
+ }
85
+ }
86
+ if (filters?.domain) {
87
+ manifests = manifests.filter(m => m.domain === filters.domain);
88
+ }
89
+ if (filters?.sessionId) {
90
+ manifests = manifests.filter(m => m.sessionId === filters.sessionId);
91
+ }
92
+ if (filters?.status) {
93
+ manifests = manifests.filter(m => m.status === filters.status);
94
+ }
95
+ manifests.sort((a, b) => b.updatedAt.localeCompare(a.updatedAt));
96
+ if (filters?.limit && filters.limit > 0) {
97
+ manifests = manifests.slice(0, filters.limit);
98
+ }
99
+ return manifests;
100
+ }
101
+ /** Build a resume scenario from a previous run. */
102
+ buildResumeScenario(runId, newGoal) {
103
+ const manifest = this.getRun(runId);
104
+ if (!manifest)
105
+ return undefined;
106
+ return {
107
+ goal: newGoal || manifest.goal,
108
+ startUrl: manifest.finalUrl || manifest.startUrl || '',
109
+ sessionId: manifest.sessionId,
110
+ parentRunId: manifest.runId,
111
+ };
112
+ }
113
+ /** Build a fork scenario — new sessionId, inherits startUrl from parent. */
114
+ buildForkScenario(runId, goal) {
115
+ const manifest = this.getRun(runId);
116
+ if (!manifest)
117
+ return undefined;
118
+ return {
119
+ goal,
120
+ startUrl: manifest.finalUrl || manifest.startUrl || '',
121
+ sessionId: `fork_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`,
122
+ parentRunId: manifest.runId,
123
+ };
124
+ }
125
+ /** Generate a unique run ID. */
126
+ static generateRunId() {
127
+ return `run_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
128
+ }
129
+ manifestPath(runId) {
130
+ // Sanitize runId for filesystem safety
131
+ const safe = runId.replace(/[^a-zA-Z0-9_-]/g, '_');
132
+ return join(this.dir, `${safe}.json`);
133
+ }
134
+ write(manifest) {
135
+ this.ensureDir();
136
+ writeFileSync(this.manifestPath(manifest.runId), JSON.stringify(manifest, null, 2));
137
+ }
138
+ ensureDir() {
139
+ if (!existsSync(this.dir)) {
140
+ mkdirSync(this.dir, { recursive: true });
141
+ }
142
+ }
143
+ }
144
+ //# sourceMappingURL=run-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-registry.js","sourceRoot":"","sources":["../../src/memory/run-registry.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@
29
29
  import type { Browser, BrowserContext, BrowserContextOptions, Page } from 'playwright';
30
30
  import { PlaywrightDriver } from './drivers/playwright.js';
31
31
  import type { PlaywrightDriverOptions } from './drivers/playwright.js';
32
- import { AgentRunner } from './runner.js';
32
+ import { BrowserAgent } from './runner.js';
33
33
  import type { Scenario, AgentConfig, AgentResult, Turn } from './types.js';
34
34
  import type { ProjectStore } from './memory/project-store.js';
35
35
  export interface ActorConfig {
@@ -61,7 +61,7 @@ export declare class Actor {
61
61
  private _driver;
62
62
  private _runner;
63
63
  private _results;
64
- constructor(name: string, _context: BrowserContext, _page: Page, _driver: PlaywrightDriver, _runner: AgentRunner);
64
+ constructor(name: string, _context: BrowserContext, _page: Page, _driver: PlaywrightDriver, _runner: BrowserAgent);
65
65
  /** Run a scenario with this actor's agent. Results accumulate across calls. */
66
66
  run(scenario: Scenario): Promise<AgentResult>;
67
67
  /** Raw Playwright page for direct operations / assertions */
@@ -82,7 +82,7 @@ export declare class MultiActorSession {
82
82
  /**
83
83
  * Create a session with isolated browser contexts per actor.
84
84
  *
85
- * 1. Creates BrowserContext + Page + PlaywrightDriver + AgentRunner per actor
85
+ * 1. Creates BrowserContext + Page + PlaywrightDriver + BrowserAgent per actor
86
86
  * 2. Calls setup() hooks if provided
87
87
  * 3. Returns session ready for orchestration
88
88
  */