zan-browser 2.0.6 → 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ai.d.ts CHANGED
@@ -1,10 +1,46 @@
1
- import type { ObserveResult, AgentAction, SeedValue } from "./types";
1
+ import type { ObserveResult, AgentAction, SeedValue, CapturedRequest } from "./types";
2
+ export interface ConversationMessage {
3
+ role: "user" | "assistant";
4
+ content: string;
5
+ }
6
+ export interface AgentResponse {
7
+ memory: string;
8
+ next_goal: string;
9
+ reasoning: string;
10
+ data_found: boolean;
11
+ action: AgentAction;
12
+ }
13
+ export interface StepInput {
14
+ url: string;
15
+ actionSpace: string;
16
+ capturedRequests: CapturedRequest[];
17
+ navigationGoal: string;
18
+ strategy: "load-capture" | "search" | "multi-step";
19
+ stepNumber: number;
20
+ maxSteps: number;
21
+ seedValues?: SeedValue[];
22
+ actionResult?: string;
23
+ }
24
+ export declare const NAVIGATION_SYSTEM_PROMPT = "You are a browser navigation agent for zan-browser. Your mission is to discover APIs by navigating websites exactly like a real human user, triggering the network requests that return the data described in the navigation goal.\n\nYou observe the page as an ActionSpace \u2014 a compact, structured view of interactive elements \u2014 along with captured XHR requests scored by their relevance to the goal. You decide one action at a time.\n\n\u2500\u2500\u2500 ActionSpace Format \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nEach line represents one element:\n\n B1[:] \"Search flights\" \u2190 button, ID = B1\n L3[:] \"Flights > One-way\" \u2190 link, ID = L3\n I2[:] placeholder=\"From city\" \u2190 input field, ID = I2\n S4[:] selected=\"Economy\" \u2190 select element, ID = S4\n T1[:] \"Your message here\" \u2190 textarea, ID = T1\n C2[:] checked=false \"Newsletter\" \u2190 checkbox, ID = C2\n _[:] \"42 results found\" \u2190 non-interactive text (labels, headings)\n Scroll: 1400px hidden below \u2190 content hidden below the viewport\n\nIDs (B1, L3, I2 \u2026) are assigned fresh on every step.\nAn ID from a previous step is INVALID. Never reference a past ID.\nAlways read the current ActionSpace before choosing an element.\n\n\u2500\u2500\u2500 XHR Scores \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nEvery captured request is scored 0\u2013100 for relevance to the goal:\n\n 80\u2013100 High-value data API \u2014 structured JSON, likely triggered by user action\n 50\u201379 Potentially useful \u2014 API-shaped URL, JSON content type\n 20\u201349 Low-signal \u2014 config, feature flags, initialization, analytics\n 0\u201319 Noise \u2014 tracking pixels, CDN assets, fonts, thumbnails\n\nThe \u2191 marker means the request fired within 2 seconds of your last action.\nUse scores to judge whether useful data has already been captured before deciding to navigate further.\n\n\u2500\u2500\u2500 Navigation Strategies \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nload-capture\n The page likely fires data requests on load or on minimal interaction.\n Check if any captured XHR already has score \u2265 60 \u2014 if yes, set data_found=true.\n If not, look for controls (country selectors, filters, tabs, date pickers) that\n could trigger additional data loads. Avoid navigating away from the page.\n\nsearch\n The page has a search input. Find it, fill it with the seed value exactly as\n given, then handle any autocomplete dropdown (click the first relevant result).\n If no dropdown appears, submit with the form button or Enter. Confirm that\n post-submit XHRs with score \u2265 60 carry the target data.\n\nmulti-step\n Reaching the target content requires navigating through menus, tabs, sections,\n or filters. Move methodically toward the content described in the goal. After\n each action, check for new high-score XHRs. Stop as soon as target data is\n captured \u2014 do not continue navigating unnecessarily.\n\n\u2500\u2500\u2500 Response Format \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nRespond ONLY with valid JSON. No markdown, no code fences, no extra text.\n\n{\n \"memory\": \"What I have tried, what worked, what failed, what I have ruled out\",\n \"next_goal\": \"What the next action is specifically intended to achieve\",\n \"reasoning\": \"Why I chose this action over the other available alternatives\",\n \"data_found\": false,\n \"action\": {\n \"type\": \"click\" | \"fill\" | \"scroll\" | \"wait\" | \"navigate\" | \"done\" | \"impossible\",\n \"elementId\": \"B3\", \u2190 for click / fill \u2014 exact ID from current ActionSpace\n \"value\": \"search term\", \u2190 for fill only\n \"direction\": \"down\", \u2190 for scroll only (\"up\" | \"down\")\n \"amount\": 300, \u2190 optional pixels for scroll\n \"ms\": 1500, \u2190 for wait only\n \"url\": \"https://...\", \u2190 for navigate only\n \"reason\": \"one-line reason\"\n }\n}\n\nSet data_found to true ONLY when high-score XHRs (\u2265 60) confirm that the data\ndescribed in the goal has been captured. Setting data_found=true terminates the\nsession immediately \u2014 set it only when you are certain.\n\n\u2500\u2500\u2500 Rules \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n1. One action per response. Never list multiple actions.\n2. IDs reset every step. Never reuse an ID from a prior step.\n3. data_found: true means immediate termination. Set it only when certain.\n4. Dismiss popups, cookie banners, and overlays before other interactions.\n5. If a modal is open, interact with it or close it (Escape) before anything else.\n6. Use seed values verbatim when filling inputs \u2014 do not rephrase or approximate.\n7. If the page shows errors or \"no results\", return done to allow retry with the\n next seed value.\n8. Prefer clicking visible elements over direct URL navigation (navigate loses\n captured page state).\n9. If the page is still loading, return wait with ms: 1500.\n10. Return impossible only for structural blockers: CAPTCHA with no bypass,\n mandatory login with no credentials provided, feature not present on the site.\n11. Reason like a real user. Click what you can see. Do not invent element IDs.";
2
25
  export declare class AIClient {
3
26
  private client;
4
27
  private model;
5
28
  constructor(apiKey: string, model?: string);
29
+ decideNextAction(input: StepInput, history: ConversationMessage[]): Promise<{
30
+ response: AgentResponse;
31
+ updatedHistory: ConversationMessage[];
32
+ }>;
33
+ decideNextActionFromScreenshot(input: StepInput, screenshotBase64: string, history: ConversationMessage[]): Promise<{
34
+ response: AgentResponse;
35
+ updatedHistory: ConversationMessage[];
36
+ }>;
6
37
  decideFromObservation(goal: string, observation: ObserveResult, history: string[], seedValues?: SeedValue[]): Promise<AgentAction>;
7
38
  decideFromScreenshot(goal: string, screenshotBase64: string, history: string[], seedValues?: SeedValue[]): Promise<AgentAction>;
39
+ private buildStepMessage;
40
+ private formatCapturedRequests;
41
+ private pruneHistory;
42
+ private parseAgentResponse;
43
+ private parseActionFromParsed;
8
44
  private parseAction;
9
45
  }
10
46
  //# sourceMappingURL=ai.d.ts.map
package/dist/ai.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIrE,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,EAAE,MAAM,EAAE,KAAK,SAAgB;IAM3C,qBAAqB,CACzB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,aAAa,EAC1B,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,CAAC,EAAE,SAAS,EAAE,GACvB,OAAO,CAAC,WAAW,CAAC;IAiEjB,oBAAoB,CACxB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,CAAC,EAAE,SAAS,EAAE,GACvB,OAAO,CAAC,WAAW,CAAC;IAkEvB,OAAO,CAAC,WAAW;CA2BpB"}
1
+ {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAWtF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,cAAc,GAAG,QAAQ,GAAG,YAAY,CAAC;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,eAAO,MAAM,wBAAwB,+wNA6F2C,CAAC;AAIjF,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,EAAE,MAAM,EAAE,KAAK,SAAgB;IAU3C,gBAAgB,CACpB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,mBAAmB,EAAE,GAC7B,OAAO,CAAC;QAAE,QAAQ,EAAE,aAAa,CAAC;QAAC,cAAc,EAAE,mBAAmB,EAAE,CAAA;KAAE,CAAC;IAgCxE,8BAA8B,CAClC,KAAK,EAAE,SAAS,EAChB,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,mBAAmB,EAAE,GAC7B,OAAO,CAAC;QAAE,QAAQ,EAAE,aAAa,CAAC;QAAC,cAAc,EAAE,mBAAmB,EAAE,CAAA;KAAE,CAAC;IAwCxE,qBAAqB,CACzB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,aAAa,EAC1B,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,CAAC,EAAE,SAAS,EAAE,GACvB,OAAO,CAAC,WAAW,CAAC;IAiEjB,oBAAoB,CACxB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,CAAC,EAAE,SAAS,EAAE,GACvB,OAAO,CAAC,WAAW,CAAC;IAkEvB,OAAO,CAAC,gBAAgB;IAkCxB,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,kBAAkB;IAyC1B,OAAO,CAAC,qBAAqB;IAkD7B,OAAO,CAAC,WAAW;CAcpB"}
package/dist/ai.js CHANGED
@@ -3,9 +3,109 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.AIClient = void 0;
6
+ exports.AIClient = exports.NAVIGATION_SYSTEM_PROMPT = void 0;
7
7
  const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
8
8
  const DEFAULT_MODEL = "claude-haiku-4-5-20251001";
9
+ // How many user+assistant pairs to keep beyond the first message.
10
+ // First message (task context) is always preserved.
11
+ // 6 pairs = 12 messages + 1 initial = 13 messages max in history.
12
+ const MAX_HISTORY_PAIRS = 6;
13
+ // ─── System Prompt ────────────────────────────────────────────────────────────
14
+ exports.NAVIGATION_SYSTEM_PROMPT = `You are a browser navigation agent for zan-browser. Your mission is to discover APIs by navigating websites exactly like a real human user, triggering the network requests that return the data described in the navigation goal.
15
+
16
+ You observe the page as an ActionSpace — a compact, structured view of interactive elements — along with captured XHR requests scored by their relevance to the goal. You decide one action at a time.
17
+
18
+ ─── ActionSpace Format ────────────────────────────────────────────────────────
19
+
20
+ Each line represents one element:
21
+
22
+ B1[:] "Search flights" ← button, ID = B1
23
+ L3[:] "Flights > One-way" ← link, ID = L3
24
+ I2[:] placeholder="From city" ← input field, ID = I2
25
+ S4[:] selected="Economy" ← select element, ID = S4
26
+ T1[:] "Your message here" ← textarea, ID = T1
27
+ C2[:] checked=false "Newsletter" ← checkbox, ID = C2
28
+ _[:] "42 results found" ← non-interactive text (labels, headings)
29
+ Scroll: 1400px hidden below ← content hidden below the viewport
30
+
31
+ IDs (B1, L3, I2 …) are assigned fresh on every step.
32
+ An ID from a previous step is INVALID. Never reference a past ID.
33
+ Always read the current ActionSpace before choosing an element.
34
+
35
+ ─── XHR Scores ────────────────────────────────────────────────────────────────
36
+
37
+ Every captured request is scored 0–100 for relevance to the goal:
38
+
39
+ 80–100 High-value data API — structured JSON, likely triggered by user action
40
+ 50–79 Potentially useful — API-shaped URL, JSON content type
41
+ 20–49 Low-signal — config, feature flags, initialization, analytics
42
+ 0–19 Noise — tracking pixels, CDN assets, fonts, thumbnails
43
+
44
+ The ↑ marker means the request fired within 2 seconds of your last action.
45
+ Use scores to judge whether useful data has already been captured before deciding to navigate further.
46
+
47
+ ─── Navigation Strategies ────────────────────────────────────────────────────
48
+
49
+ load-capture
50
+ The page likely fires data requests on load or on minimal interaction.
51
+ Check if any captured XHR already has score ≥ 60 — if yes, set data_found=true.
52
+ If not, look for controls (country selectors, filters, tabs, date pickers) that
53
+ could trigger additional data loads. Avoid navigating away from the page.
54
+
55
+ search
56
+ The page has a search input. Find it, fill it with the seed value exactly as
57
+ given, then handle any autocomplete dropdown (click the first relevant result).
58
+ If no dropdown appears, submit with the form button or Enter. Confirm that
59
+ post-submit XHRs with score ≥ 60 carry the target data.
60
+
61
+ multi-step
62
+ Reaching the target content requires navigating through menus, tabs, sections,
63
+ or filters. Move methodically toward the content described in the goal. After
64
+ each action, check for new high-score XHRs. Stop as soon as target data is
65
+ captured — do not continue navigating unnecessarily.
66
+
67
+ ─── Response Format ───────────────────────────────────────────────────────────
68
+
69
+ Respond ONLY with valid JSON. No markdown, no code fences, no extra text.
70
+
71
+ {
72
+ "memory": "What I have tried, what worked, what failed, what I have ruled out",
73
+ "next_goal": "What the next action is specifically intended to achieve",
74
+ "reasoning": "Why I chose this action over the other available alternatives",
75
+ "data_found": false,
76
+ "action": {
77
+ "type": "click" | "fill" | "scroll" | "wait" | "navigate" | "done" | "impossible",
78
+ "elementId": "B3", ← for click / fill — exact ID from current ActionSpace
79
+ "value": "search term", ← for fill only
80
+ "direction": "down", ← for scroll only ("up" | "down")
81
+ "amount": 300, ← optional pixels for scroll
82
+ "ms": 1500, ← for wait only
83
+ "url": "https://...", ← for navigate only
84
+ "reason": "one-line reason"
85
+ }
86
+ }
87
+
88
+ Set data_found to true ONLY when high-score XHRs (≥ 60) confirm that the data
89
+ described in the goal has been captured. Setting data_found=true terminates the
90
+ session immediately — set it only when you are certain.
91
+
92
+ ─── Rules ─────────────────────────────────────────────────────────────────────
93
+
94
+ 1. One action per response. Never list multiple actions.
95
+ 2. IDs reset every step. Never reuse an ID from a prior step.
96
+ 3. data_found: true means immediate termination. Set it only when certain.
97
+ 4. Dismiss popups, cookie banners, and overlays before other interactions.
98
+ 5. If a modal is open, interact with it or close it (Escape) before anything else.
99
+ 6. Use seed values verbatim when filling inputs — do not rephrase or approximate.
100
+ 7. If the page shows errors or "no results", return done to allow retry with the
101
+ next seed value.
102
+ 8. Prefer clicking visible elements over direct URL navigation (navigate loses
103
+ captured page state).
104
+ 9. If the page is still loading, return wait with ms: 1500.
105
+ 10. Return impossible only for structural blockers: CAPTCHA with no bypass,
106
+ mandatory login with no credentials provided, feature not present on the site.
107
+ 11. Reason like a real user. Click what you can see. Do not invent element IDs.`;
108
+ // ─── AIClient ─────────────────────────────────────────────────────────────────
9
109
  class AIClient {
10
110
  client;
11
111
  model;
@@ -13,7 +113,68 @@ class AIClient {
13
113
  this.client = new sdk_1.default({ apiKey });
14
114
  this.model = model;
15
115
  }
16
- // Decide the next action given the observed DOM state (text first, no screenshot)
116
+ // ─── Multi-turn navigation decision ───────────────────────────────────────
117
+ // Each call appends one user message and returns the updated history
118
+ // (now ending with the new assistant response).
119
+ // history must always end with an assistant message or be empty.
120
+ async decideNextAction(input, history) {
121
+ const userMessage = this.buildStepMessage(input);
122
+ const pruned = this.pruneHistory(history);
123
+ const messages = [
124
+ ...pruned.map(m => ({ role: m.role, content: m.content })),
125
+ { role: "user", content: userMessage },
126
+ ];
127
+ const apiResponse = await this.client.messages.create({
128
+ model: this.model,
129
+ max_tokens: 800,
130
+ system: exports.NAVIGATION_SYSTEM_PROMPT,
131
+ messages,
132
+ });
133
+ const text = apiResponse.content[0].type === "text" ? apiResponse.content[0].text : "{}";
134
+ const parsed = this.parseAgentResponse(text);
135
+ const updatedHistory = [
136
+ ...pruned,
137
+ { role: "user", content: userMessage },
138
+ { role: "assistant", content: text },
139
+ ];
140
+ return { response: parsed, updatedHistory };
141
+ }
142
+ // ─── Screenshot fallback (multi-turn aware) ───────────────────────────────
143
+ // Used when observe() finds no visible elements.
144
+ // The image is sent only for this call; only the text is stored in history.
145
+ async decideNextActionFromScreenshot(input, screenshotBase64, history) {
146
+ const userMessage = this.buildStepMessage(input, true);
147
+ const pruned = this.pruneHistory(history);
148
+ const apiMessages = [
149
+ ...pruned.map(m => ({ role: m.role, content: m.content })),
150
+ {
151
+ role: "user",
152
+ content: [
153
+ {
154
+ type: "image",
155
+ source: { type: "base64", media_type: "image/jpeg", data: screenshotBase64 },
156
+ },
157
+ { type: "text", text: userMessage },
158
+ ],
159
+ },
160
+ ];
161
+ const apiResponse = await this.client.messages.create({
162
+ model: this.model,
163
+ max_tokens: 800,
164
+ system: exports.NAVIGATION_SYSTEM_PROMPT,
165
+ messages: apiMessages,
166
+ });
167
+ const text = apiResponse.content[0].type === "text" ? apiResponse.content[0].text : "{}";
168
+ const parsed = this.parseAgentResponse(text);
169
+ // Store text-only representation in history (image is ephemeral)
170
+ const updatedHistory = [
171
+ ...pruned,
172
+ { role: "user", content: `[screenshot] ${userMessage}` },
173
+ { role: "assistant", content: text },
174
+ ];
175
+ return { response: parsed, updatedHistory };
176
+ }
177
+ // ─── Legacy single-turn methods (used by session.act()) ──────────────────
17
178
  async decideFromObservation(goal, observation, history, seedValues) {
18
179
  const historyText = history.length > 0
19
180
  ? `\nPREVIOUS STEPS:\n${history.slice(-5).join("\n")}`
@@ -127,32 +288,159 @@ Respond with JSON (no markdown, no code fences):
127
288
  const text = response.content[0].type === "text" ? response.content[0].text : "";
128
289
  return this.parseAction(text);
129
290
  }
130
- // ─── Private ─────────────────────────────────────────────────────────────────
131
- parseAction(raw) {
291
+ // ─── Private helpers ──────────────────────────────────────────────────────
292
+ buildStepMessage(input, isScreenshot = false) {
293
+ const parts = [];
294
+ // Step 1: include full task context so the model always has it at the top
295
+ // of the conversation regardless of history pruning.
296
+ if (input.stepNumber === 1) {
297
+ const seedLines = input.seedValues && input.seedValues.length > 0
298
+ ? `\nSeed values:\n${input.seedValues
299
+ .map(s => ` • ${s.paramName} (${s.description}): "${s.exampleValue}"`)
300
+ .join("\n")}`
301
+ : "";
302
+ parts.push(`NAVIGATION TASK\nGoal: ${input.navigationGoal}\nStrategy: ${input.strategy}\nStep budget: ${input.maxSteps}${seedLines}`);
303
+ }
304
+ parts.push(`STEP ${input.stepNumber} / ${input.maxSteps} | URL: ${input.url}`);
305
+ if (input.actionResult) {
306
+ parts.push(`Previous action result: ${input.actionResult}`);
307
+ }
308
+ if (!isScreenshot) {
309
+ parts.push(`Current page state:\n${input.actionSpace}`);
310
+ }
311
+ else {
312
+ parts.push("Current page state: [screenshot — ActionSpace found no visible elements]");
313
+ }
314
+ parts.push(this.formatCapturedRequests(input.capturedRequests));
315
+ return parts.join("\n\n");
316
+ }
317
+ formatCapturedRequests(requests) {
318
+ if (requests.length === 0)
319
+ return "Captured XHRs: none yet.";
320
+ const top = [...requests]
321
+ .sort((a, b) => b.score - a.score)
322
+ .slice(0, 10);
323
+ const lines = top.map(r => {
324
+ const marker = r.triggeredByAction ? " ↑" : " ";
325
+ const kb = r.responseBody
326
+ ? ` ${(r.responseBody.length / 1024).toFixed(1)}KB`
327
+ : "";
328
+ const ct = r.contentType ? ` ${r.contentType.split(";")[0]}` : "";
329
+ return ` [${r.score}]${marker} ${r.method} ${r.url}${ct}${kb}`;
330
+ });
331
+ const overflow = requests.length > 10 ? `\n … and ${requests.length - 10} more` : "";
332
+ return (`Captured XHRs (${requests.length} total, top by score):\n` +
333
+ lines.join("\n") +
334
+ overflow);
335
+ }
336
+ // Keep the first message (task context) + last MAX_HISTORY_PAIRS pairs.
337
+ pruneHistory(history) {
338
+ const maxMessages = 1 + MAX_HISTORY_PAIRS * 2;
339
+ if (history.length <= maxMessages)
340
+ return history;
341
+ return [history[0], ...history.slice(-(MAX_HISTORY_PAIRS * 2))];
342
+ }
343
+ parseAgentResponse(raw) {
132
344
  try {
133
- const cleaned = raw.replace(/```json\n?/g, "").replace(/```\n?/g, "").trim();
134
- const parsed = JSON.parse(cleaned);
135
- switch (parsed.type) {
136
- case "click":
137
- return { type: "click", elementId: parsed.elementId ?? "", reason: parsed.reason ?? "" };
138
- case "fill":
139
- return { type: "fill", elementId: parsed.elementId ?? "", value: parsed.value ?? "", reason: parsed.reason ?? "" };
140
- case "scroll":
141
- return { type: "scroll", direction: parsed.direction ?? "down", amount: parsed.amount, reason: parsed.reason ?? "" };
142
- case "wait":
143
- return { type: "wait", ms: parsed.ms ?? 1000, reason: parsed.reason ?? "" };
144
- case "navigate":
145
- return { type: "navigate", url: parsed.url ?? "", reason: parsed.reason ?? "" };
146
- case "done":
147
- return { type: "done", reason: parsed.reason ?? "" };
148
- case "impossible":
149
- return { type: "impossible", reason: parsed.reason ?? "could not achieve goal" };
150
- default:
151
- return { type: "impossible", reason: `unknown action type: ${parsed.type}` };
345
+ const cleaned = raw
346
+ .replace(/```json\n?/g, "")
347
+ .replace(/```\n?/g, "")
348
+ .trim();
349
+ const obj = JSON.parse(cleaned);
350
+ // New wrapper format
351
+ if (obj.action && typeof obj.memory === "string") {
352
+ return {
353
+ memory: obj.memory,
354
+ next_goal: obj.next_goal ?? "",
355
+ reasoning: obj.reasoning ?? "",
356
+ data_found: obj.data_found === true,
357
+ action: this.parseActionFromParsed(obj.action),
358
+ };
152
359
  }
360
+ // Fallback: bare action object (model didn't follow new format)
361
+ return {
362
+ memory: "",
363
+ next_goal: "",
364
+ reasoning: String(obj.reason ?? ""),
365
+ data_found: false,
366
+ action: this.parseActionFromParsed(obj),
367
+ };
368
+ }
369
+ catch {
370
+ return {
371
+ memory: "",
372
+ next_goal: "",
373
+ reasoning: "",
374
+ data_found: false,
375
+ action: {
376
+ type: "impossible",
377
+ reason: `failed to parse response: ${raw.slice(0, 100)}`,
378
+ },
379
+ };
380
+ }
381
+ }
382
+ parseActionFromParsed(obj) {
383
+ switch (obj.type) {
384
+ case "click":
385
+ return {
386
+ type: "click",
387
+ elementId: String(obj.elementId ?? ""),
388
+ reason: String(obj.reason ?? ""),
389
+ };
390
+ case "fill":
391
+ return {
392
+ type: "fill",
393
+ elementId: String(obj.elementId ?? ""),
394
+ value: String(obj.value ?? ""),
395
+ reason: String(obj.reason ?? ""),
396
+ };
397
+ case "scroll":
398
+ return {
399
+ type: "scroll",
400
+ direction: obj.direction ?? "down",
401
+ amount: obj.amount,
402
+ reason: String(obj.reason ?? ""),
403
+ };
404
+ case "wait":
405
+ return {
406
+ type: "wait",
407
+ ms: Number(obj.ms ?? 1000),
408
+ reason: String(obj.reason ?? ""),
409
+ };
410
+ case "navigate":
411
+ return {
412
+ type: "navigate",
413
+ url: String(obj.url ?? ""),
414
+ reason: String(obj.reason ?? ""),
415
+ };
416
+ case "done":
417
+ return { type: "done", reason: String(obj.reason ?? "") };
418
+ case "impossible":
419
+ return {
420
+ type: "impossible",
421
+ reason: String(obj.reason ?? "could not achieve goal"),
422
+ };
423
+ default:
424
+ return {
425
+ type: "impossible",
426
+ reason: `unknown action type: ${String(obj.type)}`,
427
+ };
428
+ }
429
+ }
430
+ // Used by legacy decideFromObservation / decideFromScreenshot
431
+ parseAction(raw) {
432
+ try {
433
+ const cleaned = raw
434
+ .replace(/```json\n?/g, "")
435
+ .replace(/```\n?/g, "")
436
+ .trim();
437
+ return this.parseActionFromParsed(JSON.parse(cleaned));
153
438
  }
154
439
  catch {
155
- return { type: "impossible", reason: `failed to parse AI response: ${raw.slice(0, 100)}` };
440
+ return {
441
+ type: "impossible",
442
+ reason: `failed to parse AI response: ${raw.slice(0, 100)}`,
443
+ };
156
444
  }
157
445
  }
158
446
  }
package/dist/ai.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA0C;AAG1C,MAAM,aAAa,GAAG,2BAA2B,CAAC;AAElD,kEAAkE;AAClE,oDAAoD;AACpD,kEAAkE;AAClE,MAAM,iBAAiB,GAAG,CAAC,CAAC;AA6B5B,iFAAiF;AAEpE,QAAA,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gFA6FwC,CAAC;AAEjF,iFAAiF;AAEjF,MAAa,QAAQ;IACX,MAAM,CAAY;IAClB,KAAK,CAAS;IAEtB,YAAY,MAAc,EAAE,KAAK,GAAG,aAAa;QAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,aAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,6EAA6E;IAC7E,qEAAqE;IACrE,gDAAgD;IAChD,iEAAiE;IAEjE,KAAK,CAAC,gBAAgB,CACpB,KAAgB,EAChB,OAA8B;QAE9B,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE1C,MAAM,QAAQ,GAA6B;YACzC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAA4B,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAClF,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;SACvC,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACpD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,GAAG;YACf,MAAM,EAAE,gCAAwB;YAChC,QAAQ;SACT,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACzF,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAE7C,MAAM,cAAc,GAA0B;YAC5C,GAAG,MAAM;YACT,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;YACtC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE;SACrC,CAAC;QAEF,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAC9C,CAAC;IAED,6EAA6E;IAC7E,iDAAiD;IACjD,4EAA4E;IAE5E,KAAK,CAAC,8BAA8B,CAClC,KAAgB,EAChB,gBAAwB,EACxB,OAA8B;QAE9B,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE1C,MAAM,WAAW,GAA6B;YAC5C,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAA4B,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAClF;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,OAAO;wBACb,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,EAAE;qBAC7E;oBACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE;iBACpC;aACF;SACF,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACpD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,GAAG;YACf,MAAM,EAAE,gCAAwB;YAChC,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACzF,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAE7C,iEAAiE;QACjE,MAAM,cAAc,GAA0B;YAC5C,GAAG,MAAM;YACT,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,WAAW,EAAE,EAAE;YACxD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE;SACrC,CAAC;QAEF,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAC9C,CAAC;IAED,4EAA4E;IAE5E,KAAK,CAAC,qBAAqB,CACzB,IAAY,EACZ,WAA0B,EAC1B,OAAiB,EACjB,UAAwB;QAExB,MAAM,WAAW,GACf,OAAO,CAAC,MAAM,GAAG,CAAC;YAChB,CAAC,CAAC,sBAAsB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACtD,CAAC,CAAC,EAAE,CAAC;QAET,MAAM,WAAW,GACf,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YACjC,CAAC,CAAC,2BAA2B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,WAAW,WAAW,CAAC,CAAC,YAAY,yCAAyC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACnK,CAAC,CAAC,EAAE,CAAC;QAET,MAAM,MAAM,GAAG;;;;;;;;;;;;;QAaX,IAAI;EACV,WAAW,GAAG,WAAW;;;EAGzB,WAAW,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;EAwBhB,CAAC;QAEC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACjD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,GAAG;YACf,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;SAC9C,CAAC,CAAC;QAEH,MAAM,IAAI,GACR,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,IAAY,EACZ,gBAAwB,EACxB,OAAiB,EACjB,UAAwB;QAExB,MAAM,WAAW,GACf,OAAO,CAAC,MAAM,GAAG,CAAC;YAChB,CAAC,CAAC,sBAAsB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACtD,CAAC,CAAC,EAAE,CAAC;QAET,MAAM,WAAW,GACf,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YACjC,CAAC,CAAC,2BAA2B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,WAAW,WAAW,CAAC,CAAC,YAAY,yCAAyC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACnK,CAAC,CAAC,EAAE,CAAC;QAET,MAAM,MAAM,GAAG;;;;QAIX,IAAI;EACV,WAAW,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;EAoBzB,CAAC;QAEC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACjD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,GAAG;YACf,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,OAAO;4BACb,MAAM,EAAE;gCACN,IAAI,EAAE,QAAQ;gCACd,UAAU,EAAE,YAAY;gCACxB,IAAI,EAAE,gBAAgB;6BACvB;yBACF;wBACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;qBAC/B;iBACF;aACF;SACF,CAAC,CAAC;QAEH,MAAM,IAAI,GACR,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,6EAA6E;IAErE,gBAAgB,CAAC,KAAgB,EAAE,YAAY,GAAG,KAAK;QAC7D,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,0EAA0E;QAC1E,qDAAqD;QACrD,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,SAAS,GACb,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;gBAC7C,CAAC,CAAC,mBAAmB,KAAK,CAAC,UAAU;qBAChC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,WAAW,OAAO,CAAC,CAAC,YAAY,GAAG,CAAC;qBACtE,IAAI,CAAC,IAAI,CAAC,EAAE;gBACjB,CAAC,CAAC,EAAE,CAAC;YACT,KAAK,CAAC,IAAI,CACR,0BAA0B,KAAK,CAAC,cAAc,eAAe,KAAK,CAAC,QAAQ,kBAAkB,KAAK,CAAC,QAAQ,GAAG,SAAS,EAAE,CAC1H,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,UAAU,MAAM,KAAK,CAAC,QAAQ,aAAa,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAEjF,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,wBAAwB,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;QACzF,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAEhE,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAEO,sBAAsB,CAAC,QAA2B;QACxD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,0BAA0B,CAAC;QAE7D,MAAM,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC;aACtB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;aACjC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEhB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACxB,MAAM,MAAM,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACjD,MAAM,EAAE,GAAG,CAAC,CAAC,YAAY;gBACvB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;gBACnD,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,OAAO,MAAM,CAAC,CAAC,KAAK,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GACZ,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,aAAa,QAAQ,CAAC,MAAM,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvE,OAAO,CACL,kBAAkB,QAAQ,CAAC,MAAM,0BAA0B;YAC3D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAChB,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,wEAAwE;IAChE,YAAY,CAAC,OAA8B;QACjD,MAAM,WAAW,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,CAAC;QAC9C,IAAI,OAAO,CAAC,MAAM,IAAI,WAAW;YAAE,OAAO,OAAO,CAAC;QAClD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAEO,kBAAkB,CAAC,GAAW;QACpC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG;iBAChB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;iBAC1B,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;iBACtB,IAAI,EAAE,CAAC;YACV,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEhC,qBAAqB;YACrB,IAAI,GAAG,CAAC,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACjD,OAAO;oBACL,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE;oBAC9B,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE;oBAC9B,UAAU,EAAE,GAAG,CAAC,UAAU,KAAK,IAAI;oBACnC,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC;iBAC/C,CAAC;YACJ,CAAC;YAED,gEAAgE;YAChE,OAAO;gBACL,MAAM,EAAE,EAAE;gBACV,SAAS,EAAE,EAAE;gBACb,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;gBACnC,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC;aACxC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,MAAM,EAAE,EAAE;gBACV,SAAS,EAAE,EAAE;gBACb,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE;oBACN,IAAI,EAAE,YAAY;oBAClB,MAAM,EAAE,6BAA6B,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;iBACzD;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,qBAAqB,CAAC,GAA4B;QACxD,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,OAAO;gBACV,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;oBACtC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;iBACjC,CAAC;YACJ,KAAK,MAAM;gBACT,OAAO;oBACL,IAAI,EAAE,MAAM;oBACZ,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;oBACtC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;oBAC9B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;iBACjC,CAAC;YACJ,KAAK,QAAQ;gBACX,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,SAAS,EAAG,GAAG,CAAC,SAA2B,IAAI,MAAM;oBACrD,MAAM,EAAE,GAAG,CAAC,MAA4B;oBACxC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;iBACjC,CAAC;YACJ,KAAK,MAAM;gBACT,OAAO;oBACL,IAAI,EAAE,MAAM;oBACZ,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC;oBAC1B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;iBACjC,CAAC;YACJ,KAAK,UAAU;gBACb,OAAO;oBACL,IAAI,EAAE,UAAU;oBAChB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;oBAC1B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;iBACjC,CAAC;YACJ,KAAK,MAAM;gBACT,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;YAC5D,KAAK,YAAY;gBACf,OAAO;oBACL,IAAI,EAAE,YAAY;oBAClB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,wBAAwB,CAAC;iBACvD,CAAC;YACJ;gBACE,OAAO;oBACL,IAAI,EAAE,YAAY;oBAClB,MAAM,EAAE,wBAAwB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;iBACnD,CAAC;QACN,CAAC;IACH,CAAC;IAED,8DAA8D;IACtD,WAAW,CAAC,GAAW;QAC7B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG;iBAChB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;iBAC1B,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;iBACtB,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,gCAAgC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;aAC5D,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAtZD,4BAsZC"}
@@ -1 +1 @@
1
- {"version":3,"file":"navigator.d.ts","sourceRoot":"","sources":["../src/navigator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAe,MAAM,SAAS,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AAItB,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,QAAQ,GAAG,YAAY,GAAG,MAAM,CAAC;AAEnF,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;CAC1B;AAyBD,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,EAAE,CAAW;gBAGnB,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,EAAE,EAAE,QAAQ;IAUR,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAuBrD,sBAAsB;YA+BtB,yBAAyB;YAmNzB,iBAAiB;YAuJjB,aAAa;YAiEb,oBAAoB;YAkBpB,oBAAoB;IAuBlC,OAAO,CAAC,aAAa;CAetB"}
1
+ {"version":3,"file":"navigator.d.ts","sourceRoot":"","sources":["../src/navigator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAe,MAAM,SAAS,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAkC,MAAM,MAAM,CAAC;AACrE,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AAItB,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,QAAQ,GAAG,YAAY,GAAG,MAAM,CAAC;AAEnF,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;CAC1B;AAyBD,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,EAAE,CAAW;gBAGnB,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,EAAE,EAAE,QAAQ;IAUR,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAuBrD,sBAAsB;YA+BtB,yBAAyB;YAoNzB,iBAAiB;YAwNjB,aAAa;YAiEb,oBAAoB;YAkBpB,oBAAoB;IAuBlC,OAAO,CAAC,aAAa;CAetB"}
package/dist/navigator.js CHANGED
@@ -50,7 +50,7 @@ class SmartNavigator {
50
50
  case "search":
51
51
  return this.strategySearchInteraction(config);
52
52
  case "multi-step":
53
- return this.strategyMultiStep(config);
53
+ return this.strategyMultiStep(config, "multi-step");
54
54
  default:
55
55
  return this.strategySearchInteraction(config); // safe default
56
56
  }
@@ -78,7 +78,7 @@ class SmartNavigator {
78
78
  // - If good data was already captured on load, Claude will say "done" immediately
79
79
  // - If the page needs navigation (country selector, search form, etc.), Claude navigates
80
80
  config.onProgress?.("Page loaded — letting Claude assess and navigate if needed...");
81
- return this.strategyMultiStep(config);
81
+ return this.strategyMultiStep(config, "load-capture");
82
82
  }
83
83
  // ─── Strategy: Search Interaction ─────────────────────────────────────────────
84
84
  // For sites with a search box: fill input → handle autocomplete → submit → capture
@@ -275,14 +275,20 @@ class SmartNavigator {
275
275
  }
276
276
  // Nothing found via search — try multi-step as last resort
277
277
  config.onProgress?.("Search interaction failed, trying AI navigation...");
278
- return this.strategyMultiStep(config);
278
+ return this.strategyMultiStep(config, "multi-step");
279
279
  }
280
280
  // ─── Strategy: Multi-step AI Navigation ───────────────────────────────────────
281
281
  // For complex sites: AI observes → decides → acts → re-observes.
282
- // One action per step with full re-observation (Notte pattern).
283
- async strategyMultiStep(config) {
282
+ // One action per step, full re-observation each time (Notte pattern).
283
+ // Conversation history is maintained across steps as real multi-turn messages.
284
+ async strategyMultiStep(config, resolvedStrategy = "multi-step") {
284
285
  const steps = [];
285
286
  const seedStrings = config.seedValues.map((s) => String(s.exampleValue));
287
+ // Multi-turn conversation state.
288
+ // history alternates: [user, assistant, user, assistant, ...]
289
+ // Always ends with assistant (or empty). decideNextAction appends user + assistant.
290
+ let history = [];
291
+ let prevActionResult;
286
292
  const context = {
287
293
  stepNumber: 0,
288
294
  history: steps,
@@ -298,7 +304,7 @@ class SmartNavigator {
298
304
  const errorMessages = await this.observer.detectErrors();
299
305
  // Build structured perception
300
306
  const perception = (0, perception_1.buildPerception)(observation, forms, autocompleteItems, errorMessages, this.interceptor.getAll(), seedStrings);
301
- // Early termination check
307
+ // Deterministic early termination: interceptor already confirmed data
302
308
  if (perception.networkSummary.hasSeedValueInResponses) {
303
309
  config.onProgress?.("Seed value found in responses — stopping");
304
310
  return {
@@ -310,23 +316,60 @@ class SmartNavigator {
310
316
  earlyTerminated: true,
311
317
  };
312
318
  }
313
- // Format perception for LLM
319
+ // Format perception for LLM (ActionSpace + network + form context)
314
320
  const perceptionText = (0, perception_1.formatPerceptionForLLM)(perception, context);
315
- // Ask AI what to do
321
+ // Build StepInput for the AI
322
+ const stepInput = {
323
+ url: this.page.url(),
324
+ actionSpace: perceptionText,
325
+ capturedRequests: this.interceptor.getAll(),
326
+ navigationGoal: config.navigationGoal,
327
+ strategy: resolvedStrategy,
328
+ stepNumber: i + 1,
329
+ maxSteps: config.maxSteps,
330
+ seedValues: config.seedValues,
331
+ actionResult: prevActionResult,
332
+ };
333
+ // Ask AI what to do (multi-turn)
316
334
  let action;
317
- let usedScreenshot = false;
318
- if (observation.elements.filter((e) => e.visible).length > 0) {
319
- action = await this.ai.decideFromObservation(config.navigationGoal, { ...observation, text: perceptionText }, // override text with structured perception
320
- steps.map((s) => `Step ${s.step}: ${s.action} → ${s.result}`), config.seedValues);
335
+ const hasVisibleElements = observation.elements.filter((e) => e.visible).length > 0;
336
+ if (hasVisibleElements) {
337
+ const { response, updatedHistory } = await this.ai.decideNextAction(stepInput, history);
338
+ history = updatedHistory;
339
+ action = response.action;
340
+ // AI-driven early termination: agent is confident data is captured
341
+ if (response.data_found) {
342
+ config.onProgress?.("Agent signalled data_found — stopping");
343
+ return {
344
+ success: true,
345
+ requests: this.interceptor.getUseful(3),
346
+ steps,
347
+ finalUrl: this.page.url(),
348
+ reason: response.reasoning || action.reason,
349
+ earlyTerminated: true,
350
+ };
351
+ }
321
352
  }
322
353
  else {
323
- // Fallback to screenshot
354
+ // Fallback to screenshot when no visible elements found
324
355
  const screenshot = await this.page.screenshot({ type: "jpeg", quality: 80, encoding: "base64" });
325
356
  const base64 = typeof screenshot === "string" ? screenshot : screenshot.toString("base64");
326
- action = await this.ai.decideFromScreenshot(config.navigationGoal, base64, steps.map((s) => `Step ${s.step}: ${s.action} → ${s.result}`), config.seedValues);
327
- usedScreenshot = true;
357
+ const { response, updatedHistory } = await this.ai.decideNextActionFromScreenshot(stepInput, base64, history);
358
+ history = updatedHistory;
359
+ action = response.action;
360
+ if (response.data_found) {
361
+ config.onProgress?.("Agent signalled data_found (screenshot) — stopping");
362
+ return {
363
+ success: true,
364
+ requests: this.interceptor.getUseful(3),
365
+ steps,
366
+ finalUrl: this.page.url(),
367
+ reason: response.reasoning || action.reason,
368
+ earlyTerminated: true,
369
+ };
370
+ }
328
371
  }
329
- // Terminal states
372
+ // Terminal states returned by the action itself
330
373
  if (action.type === "done") {
331
374
  const captured = this.interceptor.getUseful(3);
332
375
  // Reject premature "done" if only init/config requests were captured.
@@ -336,15 +379,20 @@ class SmartNavigator {
336
379
  const onlyInitRequests = captured.length > 0 && captured.every(r => INIT_PATTERNS.test(r.url));
337
380
  const hasStepsLeft = config.maxSteps - i > 2;
338
381
  if (onlyInitRequests && hasStepsLeft) {
382
+ const rejectionNote = "Only initialization/config requests captured. Must interact with search or filters to get actual data.";
339
383
  steps.push({
340
384
  step: i + 1,
341
385
  action: "done-rejected",
342
386
  result: "no-change",
343
387
  newRequestCount: 0,
344
- errorMessages: [
345
- "Only initialization/config requests captured. Must interact with search or filters to get actual data.",
346
- ],
388
+ errorMessages: [rejectionNote],
347
389
  });
390
+ // Inject the rejection as a user message so the model learns from it
391
+ history = [
392
+ ...history,
393
+ { role: "user", content: `Action rejected: ${rejectionNote}` },
394
+ ];
395
+ prevActionResult = `done rejected — ${rejectionNote}`;
348
396
  config.onProgress?.("Rejecting premature done — only init requests, need interaction...");
349
397
  continue;
350
398
  }
@@ -367,23 +415,33 @@ class SmartNavigator {
367
415
  earlyTerminated: false,
368
416
  };
369
417
  }
370
- // Execute action
418
+ // Execute action and measure new network activity
371
419
  const requestsBefore = this.interceptor.getAll().length;
372
420
  await this.executeAction(action);
373
- // Wait after interaction (2s — shorter than initial)
374
421
  await this.waitForNetworkSettle("interaction");
375
422
  const requestsAfter = this.interceptor.getAll().length;
423
+ const newRequestCount = requestsAfter - requestsBefore;
376
424
  const postErrors = await this.observer.detectErrors();
425
+ const stepResult = newRequestCount > 0 ? "new-requests" : postErrors.length > 0 ? "error" : "no-change";
377
426
  steps.push({
378
427
  step: i + 1,
379
428
  action: action.type,
380
429
  elementId: "elementId" in action ? action.elementId : undefined,
381
430
  value: "value" in action ? action.value : undefined,
382
- result: requestsAfter > requestsBefore ? "new-requests" : postErrors.length > 0 ? "error" : "no-change",
383
- newRequestCount: requestsAfter - requestsBefore,
431
+ result: stepResult,
432
+ newRequestCount,
384
433
  errorMessages: postErrors,
385
434
  });
386
- config.onProgress?.(`Step ${i + 1}: ${action.type} ${requestsAfter - requestsBefore} new requests`);
435
+ // Build the action result string for the next step's user message
436
+ const elementDesc = "elementId" in action ? ` ${action.elementId}` : "";
437
+ const valueDesc = "value" in action && action.value
438
+ ? ` → "${action.value}"`
439
+ : "";
440
+ const errorDesc = postErrors.length > 0
441
+ ? `; errors: [${postErrors.slice(0, 2).join(", ")}]`
442
+ : "";
443
+ prevActionResult = `${action.type}${elementDesc}${valueDesc} — ${newRequestCount} new XHR${newRequestCount !== 1 ? "s" : ""}${errorDesc}`;
444
+ config.onProgress?.(`Step ${i + 1}: ${action.type}${elementDesc} → ${newRequestCount} new requests`);
387
445
  }
388
446
  // Max steps reached
389
447
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"navigator.js","sourceRoot":"","sources":["../src/navigator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"navigator.js","sourceRoot":"","sources":["../src/navigator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zan-browser",
3
- "version": "2.0.6",
3
+ "version": "2.0.7",
4
4
  "description": "AI-powered cloud browser library with observe-first, screenshot-as-fallback pattern",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",