zan-browser 3.0.31 → 3.0.32

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.
@@ -17,30 +17,25 @@ class AgentOrchestrator {
17
17
  ctx;
18
18
  model;
19
19
  state;
20
- constructor(registry, ctx, model) {
20
+ // Local orchestrator state (not shared with agent loop)
21
+ originalGoal = "";
22
+ seedValues = [];
23
+ startTime = 0;
24
+ constructor(registry, ctx, state, model) {
21
25
  this.registry = registry;
22
26
  this.ctx = ctx;
27
+ this.state = state;
23
28
  this.model = model;
24
- this.state = {
25
- attempts: [],
26
- visitedDomains: new Set(),
27
- triedEndpoints: new Map(),
28
- rejections: [],
29
- originalGoal: "",
30
- seedValues: [],
31
- totalStepsUsed: 0,
32
- startTime: 0,
33
- };
34
29
  }
35
30
  async run(config) {
36
31
  const maxAttempts = config.maxAttempts ?? 3;
37
32
  const maxTotalSteps = config.maxTotalSteps ?? 45;
38
33
  const progress = config.onProgress ?? (() => { });
39
- this.state.originalGoal = config.goal;
40
- this.state.seedValues = config.seedValues ?? [];
41
- this.state.startTime = Date.now();
34
+ this.originalGoal = config.goal;
35
+ this.seedValues = config.seedValues ?? [];
36
+ this.startTime = Date.now();
42
37
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
43
- const remainingSteps = maxTotalSteps - this.state.totalStepsUsed;
38
+ const remainingSteps = maxTotalSteps - this.state.totalSteps;
44
39
  if (remainingSteps <= 0)
45
40
  break;
46
41
  const stepsForAttempt = Math.min(Math.ceil(remainingSteps / (maxAttempts - attempt)), remainingSteps);
@@ -56,20 +51,16 @@ class AgentOrchestrator {
56
51
  const enrichedGoal = this.buildEnrichedGoal();
57
52
  // 2. Fresh conversation for each attempt
58
53
  const conversation = new conversation_1.ConversationHistory();
59
- // 3. Create and run AgentLoop
60
- const agent = new agent_1.AgentLoop(this.registry, this.ctx, this.model, conversation);
54
+ // 3. Create and run AgentLoop — shares DiscoveryState
55
+ const agent = new agent_1.AgentLoop(this.registry, this.ctx, this.model, this.state, conversation);
61
56
  const agentResult = await agent.run({
62
57
  goal: enrichedGoal,
63
58
  seedValues: config.seedValues,
64
59
  maxSteps: stepsForAttempt,
65
60
  onProgress: progress,
66
- priorContext: attempt > 0 ? this.buildPriorContext() : undefined,
61
+ priorContext: attempt > 0 ? this.state.summarize() : undefined,
67
62
  });
68
- // 4. Count steps used
69
- this.state.totalStepsUsed += agentResult.steps.length;
70
- // 5. Extract domains visited from steps
71
- this.extractDomains(agentResult.steps);
72
- // 6. Evaluate result — is it a reproducible endpoint?
63
+ // 4. Evaluate result — is it a reproducible endpoint?
73
64
  const endpoint = this.evaluateResult(agentResult);
74
65
  const record = {
75
66
  agentResult,
@@ -85,8 +76,8 @@ class AgentOrchestrator {
85
76
  attempts: this.state.attempts,
86
77
  bestEndpoint: endpoint,
87
78
  reason: endpoint.whyReproducible,
88
- totalSteps: this.state.totalStepsUsed,
89
- totalTime: Date.now() - this.state.startTime,
79
+ totalSteps: this.state.totalSteps,
80
+ totalTime: Date.now() - this.startTime,
90
81
  };
91
82
  }
92
83
  progress(`Attempt ${attempt + 1} failed: ${record.rejectionReason}`);
@@ -95,8 +86,8 @@ class AgentOrchestrator {
95
86
  success: false,
96
87
  attempts: this.state.attempts,
97
88
  reason: this.buildFailureSummary(),
98
- totalSteps: this.state.totalStepsUsed,
99
- totalTime: Date.now() - this.state.startTime,
89
+ totalSteps: this.state.totalSteps,
90
+ totalTime: Date.now() - this.startTime,
100
91
  };
101
92
  }
102
93
  /** Inject external feedback from the pipeline (validator, request-selector, etc.) */
@@ -104,29 +95,10 @@ class AgentOrchestrator {
104
95
  this.state.rejections.push(rejection);
105
96
  }
106
97
  // ─── Private ───────────────────────────────────────────────────────────────
107
- buildPriorContext() {
108
- const parts = [];
109
- if (this.state.visitedDomains.size > 0) {
110
- parts.push(`Domains visited: ${[...this.state.visitedDomains].join(", ")}`);
111
- }
112
- if (this.state.triedEndpoints.size > 0) {
113
- const eps = [...this.state.triedEndpoints.values()]
114
- .map((ep) => `${ep.method} ${ep.url} → ${ep.whyFailed}`)
115
- .join("; ");
116
- parts.push(`Failed endpoints: ${eps}`);
117
- }
118
- if (this.state.rejections.length > 0) {
119
- const rej = this.state.rejections
120
- .map((r) => `[${r.source}] ${r.reason}`)
121
- .join("; ");
122
- parts.push(`Pipeline rejections: ${rej}`);
123
- }
124
- return parts.join("\n");
125
- }
126
98
  buildEnrichedGoal() {
127
99
  const lines = [];
128
100
  // Core goal
129
- lines.push(`GOAL: ${this.state.originalGoal}`);
101
+ lines.push(`GOAL: ${this.originalGoal}`);
130
102
  // What counts as success
131
103
  lines.push("");
132
104
  lines.push("SUCCESS CRITERIA: Find an HTTP endpoint (API, JSON feed, or structured data URL) " +
@@ -134,48 +106,19 @@ class AgentOrchestrator {
134
106
  "DOM extractions, scraped HTML text, and framework data-transport routes (/_next/data/, " +
135
107
  "__data.json) do NOT count. The result must be a reproducible URL with a real HTTP response.");
136
108
  // Seed values context
137
- if (this.state.seedValues.length > 0) {
109
+ if (this.seedValues.length > 0) {
138
110
  lines.push("");
139
111
  lines.push("SEED VALUES (use these verbatim when searching/filling):");
140
- for (const s of this.state.seedValues) {
112
+ for (const s of this.seedValues) {
141
113
  lines.push(` • ${s.paramName} (${s.description}): "${s.exampleValue}"`);
142
114
  }
143
115
  }
144
- // Previous attempts what was tried and why it failed
145
- if (this.state.attempts.length > 0) {
116
+ // Accumulated discovery context from shared state
117
+ const stateSummary = this.state.summarize();
118
+ if (stateSummary) {
146
119
  lines.push("");
147
- lines.push("PREVIOUS ATTEMPTS (do not repeat these):");
148
- for (let i = 0; i < this.state.attempts.length; i++) {
149
- const a = this.state.attempts[i];
150
- const stepsUsed = a.agentResult.steps.length;
151
- const endedAt = a.agentResult.finalUrl;
152
- lines.push(` Attempt ${i + 1}: ${stepsUsed} steps, ended at ${endedAt}`);
153
- if (a.rejectionReason) {
154
- lines.push(` Failed because: ${a.rejectionReason}`);
155
- }
156
- }
157
- }
158
- // Pipeline feedback — specific reasons from downstream
159
- if (this.state.rejections.length > 0) {
160
- lines.push("");
161
- lines.push("PIPELINE FEEDBACK (specific reasons previous results were rejected):");
162
- for (const r of this.state.rejections) {
163
- const urlNote = r.capturedUrl ? ` (URL: ${r.capturedUrl})` : "";
164
- lines.push(` [${r.source}] ${r.reason}${urlNote}`);
165
- }
166
- }
167
- // Domains already explored
168
- if (this.state.visitedDomains.size > 0) {
169
- lines.push("");
170
- lines.push(`DOMAINS ALREADY VISITED: ${[...this.state.visitedDomains].join(", ")}`);
171
- }
172
- // Endpoints already tried and failed
173
- if (this.state.triedEndpoints.size > 0) {
174
- lines.push("");
175
- lines.push("ENDPOINTS ALREADY TRIED:");
176
- for (const [url, ep] of this.state.triedEndpoints) {
177
- lines.push(` ${ep.method} ${url} → ${ep.whyFailed}`);
178
- }
120
+ lines.push("ACCUMULATED CONTEXT:");
121
+ lines.push(stateSummary);
179
122
  }
180
123
  return lines.join("\n");
181
124
  }
@@ -187,17 +130,32 @@ class AgentOrchestrator {
187
130
  verifiedUrls.add(String(step.params.url));
188
131
  }
189
132
  }
190
- // A candidate is reproducible only if the agent consciously verified it
191
- // via fetch_url AND it scored well in the interceptor
192
133
  const candidates = [];
193
134
  const allCaptured = [
194
135
  ...agentResult.capturedRequests,
195
136
  ...(this.ctx.interceptor?.getAll() ?? []),
196
137
  ];
138
+ // Deduplicate by URL
139
+ const seenUrls = new Set();
140
+ // Path 1: fetch_url verified endpoints with score >= 50
197
141
  for (const url of verifiedUrls) {
198
142
  const match = allCaptured.find((r) => r.url === url && !r.isDomExtraction && !r.isAsset && r.score >= 50);
199
- if (match && !candidates.some((c) => c.url === url)) {
143
+ if (match && !seenUrls.has(url)) {
200
144
  candidates.push(match);
145
+ seenUrls.add(url);
146
+ }
147
+ }
148
+ // Path 2: high-score XHRs from browser navigation (THE CRITICAL FIX)
149
+ // Accepts XHRs captured by navigating and interacting — not just fetch_url verified
150
+ for (const r of allCaptured) {
151
+ if (r.score >= 60 &&
152
+ !r.isDomExtraction &&
153
+ !r.isAsset &&
154
+ r.isXHR &&
155
+ !this.state.triedEndpoints.has(r.url) &&
156
+ !seenUrls.has(r.url)) {
157
+ candidates.push(r);
158
+ seenUrls.add(r.url);
201
159
  }
202
160
  }
203
161
  // Exclude endpoints that already failed in previous attempts
@@ -221,7 +179,7 @@ class AgentOrchestrator {
221
179
  }
222
180
  buildUrlTemplate(url) {
223
181
  let template = url;
224
- for (const seed of this.state.seedValues) {
182
+ for (const seed of this.seedValues) {
225
183
  if (template.includes(seed.exampleValue)) {
226
184
  template = template.split(seed.exampleValue).join(`{${seed.paramName}}`);
227
185
  }
@@ -263,36 +221,22 @@ class AgentOrchestrator {
263
221
  }
264
222
  return "Captured requests did not meet reproducibility criteria";
265
223
  }
266
- extractDomains(steps) {
267
- for (const s of steps) {
268
- if ((s.toolName === "navigate" || s.toolName === "fetch_url") && s.params.url) {
269
- try {
270
- this.state.visitedDomains.add(new URL(String(s.params.url)).hostname);
271
- }
272
- catch { /* ignore invalid URLs */ }
273
- }
274
- }
275
- }
276
224
  recordFailedEndpoints(agentResult) {
277
225
  // Record fetch_url attempts that didn't produce a good result
278
226
  for (const step of agentResult.steps) {
279
227
  if (step.toolName === "fetch_url" && step.params.url) {
280
228
  const url = String(step.params.url);
281
229
  if (!this.state.triedEndpoints.has(url)) {
282
- this.state.triedEndpoints.set(url, {
283
- url,
284
- method: String(step.params.method ?? "GET"),
285
- whyFailed: step.result.success
286
- ? "returned data but not structured/useful enough"
287
- : String(step.result.error ?? "request failed"),
288
- });
230
+ this.state.triedEndpoints.set(url, step.result.success
231
+ ? "returned data but not structured/useful enough"
232
+ : String(step.result.error ?? "request failed"));
289
233
  }
290
234
  }
291
235
  }
292
236
  }
293
237
  buildFailureSummary() {
294
238
  const parts = [];
295
- parts.push(`Exhausted ${this.state.attempts.length} attempts (${this.state.totalStepsUsed} total steps)`);
239
+ parts.push(`Exhausted ${this.state.attempts.length} attempts (${this.state.totalSteps} total steps)`);
296
240
  if (this.state.visitedDomains.size > 0) {
297
241
  parts.push(`Visited: ${[...this.state.visitedDomains].join(", ")}`);
298
242
  }
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/agent/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/agent/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import Anthropic from "@anthropic-ai/sdk";
2
2
  import type { SeedValue } from "../types";
3
+ import type { DiscoveryState } from "./discovery-state";
3
4
  export interface Plan {
4
5
  hypothesis: string;
5
6
  firstMove: string;
6
7
  seedTransform: string;
7
8
  fallback: string;
8
9
  }
9
- export declare function buildPlan(client: Anthropic, model: string, goal: string, seedValues: SeedValue[], priorContext?: string): Promise<Plan>;
10
+ export declare function buildPlan(client: Anthropic, _model: string, goal: string, seedValues: SeedValue[], priorContext?: string, state?: DiscoveryState): Promise<Plan>;
10
11
  //# sourceMappingURL=planner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../src/agent/planner.ts"],"names":[],"mappings":"AAIA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,WAAW,IAAI;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAWD,wBAAsB,SAAS,CAC7B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,SAAS,EAAE,EACvB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CA6Cf"}
1
+ {"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../src/agent/planner.ts"],"names":[],"mappings":"AAIA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,WAAW,IAAI;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAaD,wBAAsB,SAAS,CAC7B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,SAAS,EAAE,EACvB,YAAY,CAAC,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC,CAmDf"}
@@ -4,6 +4,7 @@
4
4
  // plan. The plan is context for the agent, not control flow.
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.buildPlan = buildPlan;
7
+ const PLANNING_MODEL = "claude-haiku-4-5-20251001";
7
8
  const PLANNING_SYSTEM = `You are a planning agent. Given a data discovery goal, produce a concrete investigation plan. Be specific about what type of source to look for and how to find it. Do not execute — only plan.`;
8
9
  const DEFAULT_PLAN = {
9
10
  hypothesis: "unknown",
@@ -11,16 +12,20 @@ const DEFAULT_PLAN = {
11
12
  seedTransform: "use as-is",
12
13
  fallback: "try alternative sources via web_search",
13
14
  };
14
- async function buildPlan(client, model, goal, seedValues, priorContext) {
15
+ async function buildPlan(client, _model, goal, seedValues, priorContext, state) {
15
16
  const seedBlock = seedValues.length
16
17
  ? `\nSeed values:\n${seedValues.map((s) => ` • ${s.paramName} (${s.description}): "${s.exampleValue}"`).join("\n")}`
17
18
  : "\nNo seed values provided.";
18
19
  const contextBlock = priorContext
19
20
  ? `\nPrior attempts context:\n${priorContext}`
20
21
  : "";
22
+ const stateBlock = state
23
+ ? `\nDiscovery state:\n${state.summarize()}`
24
+ : "";
21
25
  const userPrompt = `Goal: ${goal}
22
26
  ${seedBlock}
23
27
  ${contextBlock}
28
+ ${stateBlock}
24
29
 
25
30
  Produce a JSON plan with these fields:
26
31
  {
@@ -33,7 +38,7 @@ Produce a JSON plan with these fields:
33
38
  Respond ONLY with valid JSON. No markdown, no code fences, no extra text.`;
34
39
  try {
35
40
  const response = await client.messages.create({
36
- model,
41
+ model: PLANNING_MODEL,
37
42
  max_tokens: 500,
38
43
  system: PLANNING_SYSTEM,
39
44
  messages: [{ role: "user", content: userPrompt }],
@@ -49,7 +54,8 @@ Respond ONLY with valid JSON. No markdown, no code fences, no extra text.`;
49
54
  fallback: String(parsed.fallback ?? DEFAULT_PLAN.fallback),
50
55
  };
51
56
  }
52
- catch {
57
+ catch (err) {
58
+ console.warn("[planner] failed:", err);
53
59
  return DEFAULT_PLAN;
54
60
  }
55
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/agent/planner.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,8EAA8E;AAC9E,6DAA6D;;AAqB7D,8BAmDC;AA5DD,MAAM,eAAe,GAAG,iMAAiM,CAAC;AAE1N,MAAM,YAAY,GAAS;IACzB,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,YAAY;IACvB,aAAa,EAAE,WAAW;IAC1B,QAAQ,EAAE,wCAAwC;CACnD,CAAC;AAEK,KAAK,UAAU,SAAS,CAC7B,MAAiB,EACjB,KAAa,EACb,IAAY,EACZ,UAAuB,EACvB,YAAqB;IAErB,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM;QACjC,CAAC,CAAC,mBAAmB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,WAAW,OAAO,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACrH,CAAC,CAAC,4BAA4B,CAAC;IAEjC,MAAM,YAAY,GAAG,YAAY;QAC/B,CAAC,CAAC,8BAA8B,YAAY,EAAE;QAC9C,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,UAAU,GAAG,SAAS,IAAI;EAChC,SAAS;EACT,YAAY;;;;;;;;;;0EAU4D,CAAC;IAEzE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC5C,KAAK;YACL,UAAU,EAAE,GAAG;YACf,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;SAClD,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEnC,OAAO;YACL,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,YAAY,CAAC,UAAU,CAAC;YAChE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,IAAI,YAAY,CAAC,SAAS,CAAC;YAClF,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,cAAc,IAAI,YAAY,CAAC,aAAa,CAAC;YAClG,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC;SAC3D,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,YAAY,CAAC;IACtB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/agent/planner.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,8EAA8E;AAC9E,6DAA6D;;AAwB7D,8BA0DC;AArED,MAAM,cAAc,GAAG,2BAA2B,CAAC;AAEnD,MAAM,eAAe,GAAG,iMAAiM,CAAC;AAE1N,MAAM,YAAY,GAAS;IACzB,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,YAAY;IACvB,aAAa,EAAE,WAAW;IAC1B,QAAQ,EAAE,wCAAwC;CACnD,CAAC;AAEK,KAAK,UAAU,SAAS,CAC7B,MAAiB,EACjB,MAAc,EACd,IAAY,EACZ,UAAuB,EACvB,YAAqB,EACrB,KAAsB;IAEtB,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM;QACjC,CAAC,CAAC,mBAAmB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,WAAW,OAAO,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACrH,CAAC,CAAC,4BAA4B,CAAC;IAEjC,MAAM,YAAY,GAAG,YAAY;QAC/B,CAAC,CAAC,8BAA8B,YAAY,EAAE;QAC9C,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,UAAU,GAAG,KAAK;QACtB,CAAC,CAAC,uBAAuB,KAAK,CAAC,SAAS,EAAE,EAAE;QAC5C,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,UAAU,GAAG,SAAS,IAAI;EAChC,SAAS;EACT,YAAY;EACZ,UAAU;;;;;;;;;;0EAU8D,CAAC;IAEzE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC5C,KAAK,EAAE,cAAc;YACrB,UAAU,EAAE,GAAG;YACf,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;SAClD,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEnC,OAAO;YACL,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,YAAY,CAAC,UAAU,CAAC;YAChE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,IAAI,YAAY,CAAC,SAAS,CAAC;YAClF,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,cAAc,IAAI,YAAY,CAAC,aAAa,CAAC;YAClG,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC;SAC3D,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;QACvC,OAAO,YAAY,CAAC;IACtB,CAAC;AACH,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import type { ToolResult } from "../tools/base";
2
2
  import type { Interceptor } from "../interceptor";
3
+ import type { DiscoveryState } from "./discovery-state";
3
4
  export interface StepRecord {
4
5
  toolName: string;
5
6
  params: Record<string, unknown>;
6
7
  result: ToolResult;
7
8
  }
8
- export declare function buildProgressSummary(steps: StepRecord[], startTime: number, suggestedBudget: number, interceptor: Interceptor | undefined, currentUrl: string): string;
9
+ export declare function buildProgressSummary(steps: StepRecord[], startTime: number, suggestedBudget: number, interceptor: Interceptor | undefined, currentUrl: string, state?: DiscoveryState): string;
9
10
  //# sourceMappingURL=progress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/agent/progress.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAWlD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,UAAU,EAAE,EACnB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,WAAW,GAAG,SAAS,EACpC,UAAU,EAAE,MAAM,GACjB,MAAM,CAoDR"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/agent/progress.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAWxD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,UAAU,EAAE,EACnB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,WAAW,GAAG,SAAS,EACpC,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,cAAc,GACrB,MAAM,CA2ER"}
@@ -11,7 +11,7 @@ const DATA_PRODUCING_TOOLS = new Set([
11
11
  ]);
12
12
  const BINARY_TYPES = /grpc|protobuf|proto|wasm|octet-stream|msgpack/i;
13
13
  const NOISE_TYPES = /tracking|analytics|pixel|beacon|ad[s]?[./]|doubleclick|googletag|facebook.*tr/i;
14
- function buildProgressSummary(steps, startTime, suggestedBudget, interceptor, currentUrl) {
14
+ function buildProgressSummary(steps, startTime, suggestedBudget, interceptor, currentUrl, state) {
15
15
  const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
16
16
  const hasUsefulData = steps.some((s) => DATA_PRODUCING_TOOLS.has(s.toolName) && s.result.success);
17
17
  // Domains visited — only from explicit navigate/fetch_url actions
@@ -54,7 +54,7 @@ function buildProgressSummary(steps, startTime, suggestedBudget, interceptor, cu
54
54
  }
55
55
  }
56
56
  const xhrLine = `${useful} useful (JSON/XML) / ${binary} binary (grpc/proto/wasm) / ${noise} noise (ads/tracking/assets)`;
57
- return [
57
+ const lines = [
58
58
  "PROGRESS SUMMARY:",
59
59
  `- Steps taken: ${steps.length}/${suggestedBudget} suggested budget`,
60
60
  `- Time elapsed: ${elapsed}s`,
@@ -63,6 +63,27 @@ function buildProgressSummary(steps, startTime, suggestedBudget, interceptor, cu
63
63
  `- Tools used: ${toolLine || "none"}`,
64
64
  `- Last 3 actions: ${last3 || "none"}`,
65
65
  `- XHR quality: ${xhrLine}`,
66
- ].join("\n");
66
+ ];
67
+ if (state) {
68
+ if (state.bestSignal) {
69
+ try {
70
+ const path = new URL(state.bestSignal.url).pathname;
71
+ lines.push(`- Best signal: score ${state.bestSignal.score} at ${path}`);
72
+ }
73
+ catch {
74
+ lines.push(`- Best signal: score ${state.bestSignal.score} at ${state.bestSignal.url.slice(0, 80)}`);
75
+ }
76
+ }
77
+ else {
78
+ lines.push("- Best signal: none yet");
79
+ }
80
+ if (state.consecutiveFetchWithoutSignal > 0) {
81
+ lines.push(`- Consecutive fetch without signal: ${state.consecutiveFetchWithoutSignal}/5`);
82
+ }
83
+ if (state.exhaustedDomains.size > 0) {
84
+ lines.push(`- Exhausted domains: ${[...state.exhaustedDomains].join(", ")}`);
85
+ }
86
+ }
87
+ return lines.join("\n");
67
88
  }
68
89
  //# sourceMappingURL=progress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/agent/progress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/agent/progress.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oEAAoE;AACpE,sDAAsD;;AAqBtD,oDAkFC;AAjGD,6EAA6E;AAC7E,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,mBAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe;IACzD,WAAW,EAAE,YAAY;CAC1B,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,gDAAgD,CAAC;AACtE,MAAM,WAAW,GAAG,gFAAgF,CAAC;AAQrG,SAAgB,oBAAoB,CAClC,KAAmB,EACnB,SAAiB,EACjB,eAAuB,EACvB,WAAoC,EACpC,UAAkB,EAClB,KAAsB;IAEtB,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElG,kEAAkE;IAClE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YAC9E,IAAI,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpF,iBAAiB;IACjB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE1G,wBAAwB;IACxB,MAAM,WAAW,GAAG,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAChD,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;QACxB,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACpD,MAAM,EAAE,CAAC;QACX,CAAC;aAAM,IAAI,CAAC,CAAC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YAC7D,KAAK,EAAE,CAAC;QACV,CAAC;aAAM,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAClF,MAAM,EAAE,CAAC;QACX,CAAC;aAAM,CAAC;YACN,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,MAAM,wBAAwB,MAAM,+BAA+B,KAAK,8BAA8B,CAAC;IAE1H,MAAM,KAAK,GAAG;QACZ,mBAAmB;QACnB,kBAAkB,KAAK,CAAC,MAAM,IAAI,eAAe,mBAAmB;QACpE,mBAAmB,OAAO,GAAG;QAC7B,wBAAwB,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;QACtD,oBAAoB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;QACzE,iBAAiB,QAAQ,IAAI,MAAM,EAAE;QACrC,qBAAqB,KAAK,IAAI,MAAM,EAAE;QACtC,kBAAkB,OAAO,EAAE;KAC5B,CAAC;IAEF,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;gBACpD,KAAK,CAAC,IAAI,CAAC,wBAAwB,KAAK,CAAC,UAAU,CAAC,KAAK,OAAO,IAAI,EAAE,CAAC,CAAC;YAC1E,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,CAAC,IAAI,CAAC,wBAAwB,KAAK,CAAC,UAAU,CAAC,KAAK,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YACvG,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,KAAK,CAAC,6BAA6B,GAAG,CAAC,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,uCAAuC,KAAK,CAAC,6BAA6B,IAAI,CAAC,CAAC;QAC7F,CAAC;QAED,IAAI,KAAK,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/agent/prompt.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CA8MhE"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/agent/prompt.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAqKhE"}
@@ -30,7 +30,7 @@ The ↑ marker means the request fired within 2 seconds of your last action.
30
30
 
31
31
  ─── Priority Strategy — Check for Public APIs First ──────────────────────────
32
32
 
33
- Before opening any website, always consider if a free public API exists for this data:
33
+ Before opening any website, consider if a free public API exists for this data:
34
34
 
35
35
  - Use web_search with queries like:
36
36
  "[data type] free public API no key required"
@@ -42,12 +42,6 @@ Before opening any website, always consider if a free public API exists for this
42
42
  2. If it returns structured JSON with the target data → set data_found=true immediately
43
43
  3. Skip browser navigation entirely
44
44
 
45
- - Known patterns worth trying first:
46
- * Government open data APIs (datos.gob.ar, data.gov, etc.)
47
- * RSS/Atom feeds for news sites
48
- * Public JSON endpoints for financial data
49
- * OpenMeteo, wttr.in for weather (no key needed)
50
-
51
45
  Only open the browser if no public API is found after 2 web_search attempts.
52
46
 
53
47
  ─── ${toolsBlock} ────────────────────────────────────────────────────────────
@@ -76,16 +70,8 @@ session immediately — set it only when you are certain.
76
70
 
77
71
  ─── Self-Assessment ───────────────────────────────────────────────────────────
78
72
 
79
- Before each action, read the PROGRESS SUMMARY appended to every step result and assess your progress:
80
-
81
- - If you have visited 2+ sites without finding data, try a completely different approach
82
- - If you have used the same tool 3+ times in a row without progress, switch strategy
83
- - If you have been searching/navigating for a long time without data_found, think creatively:
84
- GitHub datasets, public CSVs, government APIs, RSS feeds, Wikipedia API, direct JSON endpoints
85
- - If "Network: No useful XHR traffic detected" appears, the site is SSR — use scrape, eval_js
86
- (window.__NEXT_DATA__, window.__NUXT__), or extract_dom instead of waiting for XHR
87
- - You decide when to change strategy based on what you see in PROGRESS SUMMARY — there is
88
- no fixed step limit forcing you to stop, but be efficient and do not waste steps
73
+ Read the PROGRESS SUMMARY appended to every step result and decide if you need
74
+ to change strategy based on what you see.
89
75
 
90
76
  ─── Site Type Recognition & Strategy ──────────────────────────────────────
91
77
 
@@ -135,23 +121,11 @@ The only true dead ends are: CAPTCHA walls, OAuth flows requiring real user cred
135
121
  and endpoints that require paid API keys. Everything else is solvable with enough
136
122
  information from the error response.
137
123
 
138
- ─── Anti-Loop: Recognizing and Breaking Stalls ────────────────────────────
139
-
140
- Before each action, check whether you're making real progress or spinning in place.
141
-
142
- Signs you're stalled:
143
- - You've used the same tool repeatedly and the page state or network capture hasn't
144
- changed meaningfully between uses.
145
- - You're revisiting pages or re-trying actions you already attempted.
146
- - Your memory field keeps describing the same situation across multiple steps.
147
-
148
- When you recognize a stall, stop executing and reason explicitly in your memory about
149
- why you're stuck and what fundamentally different approach could work. "Different"
150
- means a different source, a different extraction method, or a different way of finding
151
- the data — not the same approach with minor variations.
124
+ ─── Anti-Loop ─────────────────────────────────────────────────────────────
152
125
 
153
- The goal is forward motion. If your current path isn't producing new information,
154
- abandon it and try something structurally different.
126
+ If the PROGRESS SUMMARY shows you are not making forward progress same tools
127
+ repeating, no new signal, same situation described — stop and reason about a
128
+ fundamentally different approach before acting again.
155
129
 
156
130
  ─── Rules ─────────────────────────────────────────────────────────────────────
157
131
 
@@ -188,21 +162,6 @@ abandon it and try something structurally different.
188
162
  with eval_js (framework globals, inline JSON, script tags).
189
163
  4. Visible HTML — if the data is only in the rendered markup with no API or
190
164
  embedded state, use scrape or extract_dom as a last resort.
191
- 19. fetch_url requires evidence, not navigation. You may call fetch_url any time
192
- you have a concrete reason to believe the URL exists and returns what you
193
- need — a web_search result, a URL seen in read_network_logs, an endpoint
194
- extracted from a JS bundle, or a pattern from API documentation. What is
195
- prohibited is inventing or guessing URLs with no source backing them. If
196
- three consecutive fetch_url calls fail, stop probing and change approach:
197
- navigate to the site, interact, and inspect network traffic or JS source
198
- to find real endpoints before attempting more direct calls.
199
- 20. Connection errors are permanent. If navigate or fetch_url fails with a
200
- connection-level error — SSL/TLS failure, connection refused, DNS resolution
201
- failure, timeout with no response — that site is structurally unreachable.
202
- Record it in memory as inaccessible and never retry it. These are not
203
- application errors that can be fixed with different headers or params;
204
- the server is down or doesn't exist. HTTP errors (4xx, 5xx) are different
205
- — those come from a working server and may be solvable.
206
165
 
207
166
  CRITICAL RESPONSE FORMAT:
208
167
  You MUST respond with a single valid JSON object. Your ENTIRE response must be parseable by JSON.parse().
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/agent/prompt.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0EAA0E;AAC1E,6EAA6E;AAC7E,qEAAqE;;AAKrE,8CA8MC;AAhND,0CAAwD;AAExD,SAAgB,iBAAiB,CAAC,QAAsB;IACtD,MAAM,UAAU,GAAG,QAAQ,CAAC,kBAAkB,EAAE,CAAC;IACjD,MAAM,iBAAiB,GAAG,IAAA,oCAAyB,GAAE,CAAC;IAEtD,OAAO;;;;;;EAMP,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAmCb,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oEAgKoD,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/agent/prompt.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0EAA0E;AAC1E,6EAA6E;AAC7E,qEAAqE;;AAKrE,8CAqKC;AAvKD,0CAAwD;AAExD,SAAgB,iBAAiB,CAAC,QAAsB;IACtD,MAAM,UAAU,GAAG,QAAQ,CAAC,kBAAkB,EAAE,CAAC;IACjD,MAAM,iBAAiB,GAAG,IAAA,oCAAyB,GAAE,CAAC;IAEtD,OAAO;;;;;;EAMP,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6Bb,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oEA6HoD,CAAC;AACrE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -3,6 +3,7 @@ export { Session } from "./session";
3
3
  export { ToolRegistry } from "./registry";
4
4
  export { AgentLoop } from "./agent/agent";
5
5
  export { AgentOrchestrator } from "./agent/orchestrator";
6
+ export { DiscoveryState } from "./agent/discovery-state";
6
7
  export type { Tool, ToolContext, ToolResult, JSONSchema } from "./tools/base";
7
8
  export type { AgentConfig, AgentResult, AgentStepRecord } from "./agent/agent";
8
9
  export type { ConversationMessage } from "./agent/conversation";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG9E,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC/E,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,aAAa,GACd,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EACV,eAAe,EACf,aAAa,EACb,eAAe,EACf,SAAS,EACT,WAAW,EACX,SAAS,EACT,cAAc,EACd,aAAa,EACb,QAAQ,EACR,aAAa,EACb,UAAU,EACV,WAAW,GACZ,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,UAAU,EACV,aAAa,EACb,eAAe,EACf,YAAY,GACb,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,UAAU,EACV,WAAW,EACX,UAAU,GACX,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,YAAY,EACZ,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG9E,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC/E,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,aAAa,GACd,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EACV,eAAe,EACf,aAAa,EACb,eAAe,EACf,SAAS,EACT,WAAW,EACX,SAAS,EACT,cAAc,EACd,aAAa,EACb,QAAQ,EACR,aAAa,EACb,UAAU,EACV,WAAW,GACZ,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,UAAU,EACV,aAAa,EACb,eAAe,EACf,YAAY,GACb,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,UAAU,EACV,WAAW,EACX,UAAU,GACX,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,YAAY,EACZ,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  // ─── Public API ──────────────────────────────────────────────────────────────
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.ReadNetworkLogsTool = exports.DownloadFileTool = exports.FetchUrlTool = exports.WebSearchTool = exports.ExtractDomTool = exports.ScrapeTool = exports.ObserveTool = exports.ScreenshotTool = exports.EvalJsTool = exports.WaitTool = exports.NavigateTool = exports.ScrollTool = exports.FillTool = exports.ClickTool = exports.hasStructuredData = exports.isBlacklisted = exports.AgentOrchestrator = exports.AgentLoop = exports.ToolRegistry = exports.Session = exports.RensanBrowser = void 0;
4
+ exports.ReadNetworkLogsTool = exports.DownloadFileTool = exports.FetchUrlTool = exports.WebSearchTool = exports.ExtractDomTool = exports.ScrapeTool = exports.ObserveTool = exports.ScreenshotTool = exports.EvalJsTool = exports.WaitTool = exports.NavigateTool = exports.ScrollTool = exports.FillTool = exports.ClickTool = exports.hasStructuredData = exports.isBlacklisted = exports.DiscoveryState = exports.AgentOrchestrator = exports.AgentLoop = exports.ToolRegistry = exports.Session = exports.RensanBrowser = void 0;
5
5
  var browser_1 = require("./browser");
6
6
  Object.defineProperty(exports, "RensanBrowser", { enumerable: true, get: function () { return browser_1.RensanBrowser; } });
7
7
  var session_1 = require("./session");
@@ -12,6 +12,8 @@ var agent_1 = require("./agent/agent");
12
12
  Object.defineProperty(exports, "AgentLoop", { enumerable: true, get: function () { return agent_1.AgentLoop; } });
13
13
  var orchestrator_1 = require("./agent/orchestrator");
14
14
  Object.defineProperty(exports, "AgentOrchestrator", { enumerable: true, get: function () { return orchestrator_1.AgentOrchestrator; } });
15
+ var discovery_state_1 = require("./agent/discovery-state");
16
+ Object.defineProperty(exports, "DiscoveryState", { enumerable: true, get: function () { return discovery_state_1.DiscoveryState; } });
15
17
  var blacklist_1 = require("./blacklist");
16
18
  Object.defineProperty(exports, "isBlacklisted", { enumerable: true, get: function () { return blacklist_1.isBlacklisted; } });
17
19
  var validation_1 = require("./agent/validation");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,gFAAgF;;;AAEhF,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AACtB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,uCAA0C;AAAjC,wGAAA,YAAY,OAAA;AACrB,uCAA0C;AAAjC,kGAAA,SAAS,OAAA;AAClB,qDAAyD;AAAhD,iHAAA,iBAAiB,OAAA;AAkD1B,yCAA4C;AAAnC,0GAAA,aAAa,OAAA;AACtB,iDAAuD;AAA9C,+GAAA,iBAAiB,OAAA;AAE1B,+EAA+E;AAC/E,+CAAkD;AAAzC,kGAAA,SAAS,OAAA;AAClB,6CAAgD;AAAvC,gGAAA,QAAQ,OAAA;AACjB,iDAAoD;AAA3C,oGAAA,UAAU,OAAA;AACnB,qDAAwD;AAA/C,wGAAA,YAAY,OAAA;AACrB,6CAAgD;AAAvC,gGAAA,QAAQ,OAAA;AACjB,mDAAqD;AAA5C,qGAAA,UAAU,OAAA;AACnB,yDAA4D;AAAnD,4GAAA,cAAc,OAAA;AACvB,gDAAmD;AAA1C,sGAAA,WAAW,OAAA;AACpB,8CAAiD;AAAxC,oGAAA,UAAU,OAAA;AACnB,wDAA0D;AAAjD,6GAAA,cAAc,OAAA;AACvB,yDAA2D;AAAlD,2GAAA,aAAa,OAAA;AACtB,uDAAyD;AAAhD,yGAAA,YAAY,OAAA;AACrB,+DAAiE;AAAxD,iHAAA,gBAAgB,OAAA;AACzB,uEAAwE;AAA/D,wHAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,gFAAgF;;;AAEhF,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AACtB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,uCAA0C;AAAjC,wGAAA,YAAY,OAAA;AACrB,uCAA0C;AAAjC,kGAAA,SAAS,OAAA;AAClB,qDAAyD;AAAhD,iHAAA,iBAAiB,OAAA;AAC1B,2DAAyD;AAAhD,iHAAA,cAAc,OAAA;AAkDvB,yCAA4C;AAAnC,0GAAA,aAAa,OAAA;AACtB,iDAAuD;AAA9C,+GAAA,iBAAiB,OAAA;AAE1B,+EAA+E;AAC/E,+CAAkD;AAAzC,kGAAA,SAAS,OAAA;AAClB,6CAAgD;AAAvC,gGAAA,QAAQ,OAAA;AACjB,iDAAoD;AAA3C,oGAAA,UAAU,OAAA;AACnB,qDAAwD;AAA/C,wGAAA,YAAY,OAAA;AACrB,6CAAgD;AAAvC,gGAAA,QAAQ,OAAA;AACjB,mDAAqD;AAA5C,qGAAA,UAAU,OAAA;AACnB,yDAA4D;AAAnD,4GAAA,cAAc,OAAA;AACvB,gDAAmD;AAA1C,sGAAA,WAAW,OAAA;AACpB,8CAAiD;AAAxC,oGAAA,UAAU,OAAA;AACnB,wDAA0D;AAAjD,6GAAA,cAAc,OAAA;AACvB,yDAA2D;AAAlD,2GAAA,aAAa,OAAA;AACtB,uDAAyD;AAAhD,yGAAA,YAAY,OAAA;AACrB,+DAAiE;AAAxD,iHAAA,gBAAgB,OAAA;AACzB,uEAAwE;AAA/D,wHAAA,mBAAmB,OAAA"}