zan-browser 2.0.5 → 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 +37 -1
- package/dist/ai.d.ts.map +1 -1
- package/dist/ai.js +312 -24
- package/dist/ai.js.map +1 -1
- package/dist/navigator.d.ts.map +1 -1
- package/dist/navigator.js +82 -24
- package/dist/navigator.js.map +1 -1
- package/package.json +1 -1
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;
|
|
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
|
-
//
|
|
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
|
-
|
|
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
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
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 {
|
|
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":"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"}
|
package/dist/navigator.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
|
283
|
-
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
|
|
318
|
-
if (
|
|
319
|
-
|
|
320
|
-
|
|
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
|
-
|
|
327
|
-
|
|
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:
|
|
383
|
-
newRequestCount
|
|
431
|
+
result: stepResult,
|
|
432
|
+
newRequestCount,
|
|
384
433
|
errorMessages: postErrors,
|
|
385
434
|
});
|
|
386
|
-
|
|
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 {
|
package/dist/navigator.js.map
CHANGED
|
@@ -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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"}
|