@eidra-umain/greenlight 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +265 -22
- package/dist/browser/browser.d.ts.map +1 -1
- package/dist/browser/browser.js +50 -14
- package/dist/browser/browser.js.map +1 -1
- package/dist/cli/index.js +2 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +170 -55
- package/dist/cli/run.js.map +1 -1
- package/dist/parser/loader.d.ts +12 -3
- package/dist/parser/loader.d.ts.map +1 -1
- package/dist/parser/loader.js +53 -5
- package/dist/parser/loader.js.map +1 -1
- package/dist/parser/schema.d.ts +24 -3
- package/dist/parser/schema.d.ts.map +1 -1
- package/dist/parser/schema.js +12 -2
- package/dist/parser/schema.js.map +1 -1
- package/dist/pilot/a11y-parser.d.ts +6 -1
- package/dist/pilot/a11y-parser.d.ts.map +1 -1
- package/dist/pilot/a11y-parser.js +25 -4
- package/dist/pilot/a11y-parser.js.map +1 -1
- package/dist/pilot/assertions.d.ts +0 -4
- package/dist/pilot/assertions.d.ts.map +1 -1
- package/dist/pilot/assertions.js +173 -43
- package/dist/pilot/assertions.js.map +1 -1
- package/dist/pilot/conditions.d.ts +15 -0
- package/dist/pilot/conditions.d.ts.map +1 -0
- package/dist/pilot/conditions.js +77 -0
- package/dist/pilot/conditions.js.map +1 -0
- package/dist/pilot/datepick.d.ts +21 -0
- package/dist/pilot/datepick.d.ts.map +1 -0
- package/dist/pilot/datepick.js +187 -0
- package/dist/pilot/datepick.js.map +1 -0
- package/dist/pilot/executor.d.ts +1 -1
- package/dist/pilot/executor.d.ts.map +1 -1
- package/dist/pilot/executor.js +134 -59
- package/dist/pilot/executor.js.map +1 -1
- package/dist/pilot/llm.d.ts +2 -0
- package/dist/pilot/llm.d.ts.map +1 -1
- package/dist/pilot/llm.js +60 -3
- package/dist/pilot/llm.js.map +1 -1
- package/dist/pilot/locator.d.ts +14 -2
- package/dist/pilot/locator.d.ts.map +1 -1
- package/dist/pilot/locator.js +137 -34
- package/dist/pilot/locator.js.map +1 -1
- package/dist/pilot/message-builder.d.ts +7 -1
- package/dist/pilot/message-builder.d.ts.map +1 -1
- package/dist/pilot/message-builder.js +18 -5
- package/dist/pilot/message-builder.js.map +1 -1
- package/dist/pilot/pilot.d.ts +5 -1
- package/dist/pilot/pilot.d.ts.map +1 -1
- package/dist/pilot/pilot.js +194 -21
- package/dist/pilot/pilot.js.map +1 -1
- package/dist/pilot/prompts.d.ts +38 -3
- package/dist/pilot/prompts.d.ts.map +1 -1
- package/dist/pilot/prompts.js +315 -125
- package/dist/pilot/prompts.js.map +1 -1
- package/dist/pilot/random.d.ts +37 -0
- package/dist/pilot/random.d.ts.map +1 -0
- package/dist/pilot/random.js +55 -0
- package/dist/pilot/random.js.map +1 -0
- package/dist/pilot/response-parser.d.ts +30 -2
- package/dist/pilot/response-parser.d.ts.map +1 -1
- package/dist/pilot/response-parser.js +228 -64
- package/dist/pilot/response-parser.js.map +1 -1
- package/dist/pilot/state.d.ts +1 -1
- package/dist/pilot/state.d.ts.map +1 -1
- package/dist/pilot/state.js +170 -38
- package/dist/pilot/state.js.map +1 -1
- package/dist/planner/plan-generator.d.ts +6 -0
- package/dist/planner/plan-generator.d.ts.map +1 -1
- package/dist/planner/plan-generator.js +26 -0
- package/dist/planner/plan-generator.js.map +1 -1
- package/dist/planner/plan-runner.d.ts +3 -1
- package/dist/planner/plan-runner.d.ts.map +1 -1
- package/dist/planner/plan-runner.js +170 -22
- package/dist/planner/plan-runner.js.map +1 -1
- package/dist/planner/plan-store.d.ts +6 -0
- package/dist/planner/plan-store.d.ts.map +1 -1
- package/dist/planner/plan-store.js +27 -0
- package/dist/planner/plan-store.js.map +1 -1
- package/dist/planner/plan-types.d.ts +18 -2
- package/dist/planner/plan-types.d.ts.map +1 -1
- package/dist/reporter/types.d.ts +19 -4
- package/dist/reporter/types.d.ts.map +1 -1
- package/dist/types.d.ts +3 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +4 -1
- package/dist/map/diagnose.d.ts +0 -7
- package/dist/map/diagnose.d.ts.map +0 -1
- package/dist/map/diagnose.js +0 -140
- package/dist/map/diagnose.js.map +0 -1
- package/dist/parser/steps.d.ts +0 -13
- package/dist/parser/steps.d.ts.map +0 -1
- package/dist/parser/steps.js +0 -44
- package/dist/parser/steps.js.map +0 -1
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Date/time picker resolver — parses relative time expressions with chrono-node
|
|
3
|
+
* and maps them to concrete actions against date picker elements in the a11y tree.
|
|
4
|
+
* No LLM calls needed.
|
|
5
|
+
*/
|
|
6
|
+
import * as chrono from "chrono-node";
|
|
7
|
+
import Fuse from "fuse.js";
|
|
8
|
+
import { globals } from "../globals.js";
|
|
9
|
+
/** Roles that represent date/time picker sections. */
|
|
10
|
+
const PICKER_ROLES = new Set(["spinbutton", "textbox"]);
|
|
11
|
+
/** Labels for date/time sections (case-insensitive matching). */
|
|
12
|
+
const SECTION_PATTERNS = [
|
|
13
|
+
{ label: /\bday\b/i, extract: (d) => String(d.getDate()).padStart(2, "0") },
|
|
14
|
+
{ label: /\bmonth\b/i, extract: (d) => String(d.getMonth() + 1).padStart(2, "0") },
|
|
15
|
+
{ label: /\byear\b/i, extract: (d) => String(d.getFullYear()) },
|
|
16
|
+
{ label: /\bhour/i, extract: (d) => String(d.getHours()).padStart(2, "0") },
|
|
17
|
+
{ label: /\bminute/i, extract: (d) => String(d.getMinutes()).padStart(2, "0") },
|
|
18
|
+
{ label: /\bsecond/i, extract: (d) => String(d.getSeconds()).padStart(2, "0") },
|
|
19
|
+
{
|
|
20
|
+
label: /\bmeridiem\b|\b[ap]m\b/i,
|
|
21
|
+
extract: (d) => (d.getHours() >= 12 ? "PM" : "AM"),
|
|
22
|
+
},
|
|
23
|
+
];
|
|
24
|
+
/**
|
|
25
|
+
* Find date/time picker groups in the a11y tree.
|
|
26
|
+
* A picker group is a `group` node containing spinbutton/textbox children
|
|
27
|
+
* with date/time-related labels (Day, Month, Year, Hours, Minutes).
|
|
28
|
+
*/
|
|
29
|
+
function findPickerGroups(nodes) {
|
|
30
|
+
const groups = [];
|
|
31
|
+
function walk(list) {
|
|
32
|
+
for (const node of list) {
|
|
33
|
+
if (node.role === "group" && node.children) {
|
|
34
|
+
const sections = node.children.filter((c) => PICKER_ROLES.has(c.role) && !c.ref.startsWith("_") &&
|
|
35
|
+
SECTION_PATTERNS.some((p) => p.label.test(c.name)));
|
|
36
|
+
if (sections.length >= 2) {
|
|
37
|
+
groups.push({ name: node.name || "", sections });
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (node.children)
|
|
41
|
+
walk(node.children);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
walk(nodes);
|
|
45
|
+
return groups;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Find a single native date/time input (type="date", "datetime-local", "time")
|
|
49
|
+
* in the a11y tree by matching step text keywords.
|
|
50
|
+
*/
|
|
51
|
+
function findNativeDateInput(nodes, stepLower) {
|
|
52
|
+
function walk(list) {
|
|
53
|
+
for (const node of list) {
|
|
54
|
+
if (PICKER_ROLES.has(node.role) && !node.ref.startsWith("_")) {
|
|
55
|
+
const nameLower = node.name.toLowerCase();
|
|
56
|
+
// Match if the node name contains date/time-related keywords from the step
|
|
57
|
+
if ((stepLower.includes("date") && nameLower.includes("date")) ||
|
|
58
|
+
(stepLower.includes("time") && (nameLower.includes("time") || nameLower.includes("hour"))) ||
|
|
59
|
+
nameLower.includes("date") || nameLower.includes("time")) {
|
|
60
|
+
return node;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (node.children) {
|
|
64
|
+
const found = walk(node.children);
|
|
65
|
+
if (found)
|
|
66
|
+
return found;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
return walk(nodes);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Resolve a date picker step into concrete actions.
|
|
75
|
+
* Parses the relative time expression with chrono-node, finds the picker
|
|
76
|
+
* elements in the a11y tree, and returns pre-resolved type actions.
|
|
77
|
+
*
|
|
78
|
+
* @param step The original step text (e.g. "set the start time to 10 minutes from now")
|
|
79
|
+
* @param a11yTree The current page's accessibility tree
|
|
80
|
+
* @param groupHint Group name to target (e.g. "End date and time"). In pilot mode
|
|
81
|
+
* this comes from the LLM which can see the page. In cached mode the groups
|
|
82
|
+
* are the same as during discovery so matching by name is reliable.
|
|
83
|
+
* @returns Array of pre-resolved PlannedSteps with type actions and refs
|
|
84
|
+
*/
|
|
85
|
+
export function resolveDatePick(step, a11yTree, groupHint) {
|
|
86
|
+
// Extract time expression if separated by "||"
|
|
87
|
+
// Format: "full step description||time expression"
|
|
88
|
+
let description = step;
|
|
89
|
+
let timeExpr = step;
|
|
90
|
+
const sepIdx = step.indexOf("||");
|
|
91
|
+
if (sepIdx !== -1) {
|
|
92
|
+
description = step.slice(0, sepIdx);
|
|
93
|
+
timeExpr = step.slice(sepIdx + 2);
|
|
94
|
+
}
|
|
95
|
+
// Parse the date/time from the time expression
|
|
96
|
+
const parsed = chrono.parseDate(timeExpr);
|
|
97
|
+
if (!parsed) {
|
|
98
|
+
throw new Error(`Could not parse a date/time from: "${timeExpr}"`);
|
|
99
|
+
}
|
|
100
|
+
if (globals.debug) {
|
|
101
|
+
console.log(` [datepick] Expression: "${timeExpr}" → ${parsed.toISOString()} (local: ${parsed.toLocaleString()})`);
|
|
102
|
+
}
|
|
103
|
+
const stepLower = description.toLowerCase();
|
|
104
|
+
const results = [];
|
|
105
|
+
// Strategy 1: Sectioned picker (MUI v7, etc.) — group with spinbuttons
|
|
106
|
+
const groups = findPickerGroups(a11yTree);
|
|
107
|
+
if (groups.length > 0) {
|
|
108
|
+
let targetGroup = groups[0];
|
|
109
|
+
if (groups.length > 1) {
|
|
110
|
+
if (groupHint) {
|
|
111
|
+
// Use the LLM-provided group hint (exact or fuzzy match)
|
|
112
|
+
const exact = groups.find((g) => g.name === groupHint);
|
|
113
|
+
if (exact) {
|
|
114
|
+
targetGroup = exact;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
const fuse = new Fuse(groups, { keys: ["name"], threshold: 0.6 });
|
|
118
|
+
const match = fuse.search(groupHint);
|
|
119
|
+
if (match.length > 0)
|
|
120
|
+
targetGroup = match[0].item;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
// No hint — score each group by how many of its name words
|
|
125
|
+
// appear in the step description. This is more reliable than
|
|
126
|
+
// Fuse.js full-string matching because descriptions contain
|
|
127
|
+
// noise like "1 hour from now" that dilutes fuzzy scores.
|
|
128
|
+
let bestGroup = groups[0];
|
|
129
|
+
let bestScore = 0;
|
|
130
|
+
for (const g of groups) {
|
|
131
|
+
const groupWords = g.name.toLowerCase().split(/\s+/).filter((w) => w.length > 2);
|
|
132
|
+
const score = groupWords.filter((w) => stepLower.includes(w)).length;
|
|
133
|
+
if (score > bestScore) {
|
|
134
|
+
bestScore = score;
|
|
135
|
+
bestGroup = g;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
targetGroup = bestGroup;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if (globals.debug) {
|
|
142
|
+
console.log(` [datepick] Target group: "${targetGroup.name}" (${String(targetGroup.sections.length)} sections)`);
|
|
143
|
+
}
|
|
144
|
+
// Map each section to a type action
|
|
145
|
+
for (const section of targetGroup.sections) {
|
|
146
|
+
for (const pattern of SECTION_PATTERNS) {
|
|
147
|
+
if (pattern.label.test(section.name)) {
|
|
148
|
+
const value = pattern.extract(parsed);
|
|
149
|
+
const action = { action: "type", ref: section.ref, value };
|
|
150
|
+
results.push({
|
|
151
|
+
step: `type ${section.ref} = "${value}"`,
|
|
152
|
+
action,
|
|
153
|
+
});
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
if (results.length > 0)
|
|
159
|
+
return results;
|
|
160
|
+
}
|
|
161
|
+
// Strategy 2: Native date/time input — single element
|
|
162
|
+
const nativeInput = findNativeDateInput(a11yTree, stepLower);
|
|
163
|
+
if (nativeInput) {
|
|
164
|
+
// Determine format from input type/name
|
|
165
|
+
const nameLower = nativeInput.name.toLowerCase();
|
|
166
|
+
let value;
|
|
167
|
+
if (nameLower.includes("time") && !nameLower.includes("date")) {
|
|
168
|
+
// Time only
|
|
169
|
+
value = `${String(parsed.getHours()).padStart(2, "0")}:${String(parsed.getMinutes()).padStart(2, "0")}`;
|
|
170
|
+
}
|
|
171
|
+
else if (nameLower.includes("date") && !nameLower.includes("time")) {
|
|
172
|
+
// Date only
|
|
173
|
+
value = `${String(parsed.getFullYear())}-${String(parsed.getMonth() + 1).padStart(2, "0")}-${String(parsed.getDate()).padStart(2, "0")}`;
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
// Datetime
|
|
177
|
+
value = `${String(parsed.getFullYear())}-${String(parsed.getMonth() + 1).padStart(2, "0")}-${String(parsed.getDate()).padStart(2, "0")}T${String(parsed.getHours()).padStart(2, "0")}:${String(parsed.getMinutes()).padStart(2, "0")}`;
|
|
178
|
+
}
|
|
179
|
+
results.push({
|
|
180
|
+
step: `type ${nativeInput.ref} = "${value}"`,
|
|
181
|
+
action: { action: "type", ref: nativeInput.ref, value },
|
|
182
|
+
});
|
|
183
|
+
return results;
|
|
184
|
+
}
|
|
185
|
+
throw new Error(`Could not find a date/time picker in the accessibility tree for: "${step}"`);
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=datepick.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datepick.js","sourceRoot":"","sources":["../../src/pilot/datepick.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,IAAI,MAAM,SAAS,CAAA;AAG1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,sDAAsD;AACtD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAA;AAEvD,iEAAiE;AACjE,MAAM,gBAAgB,GAAsD;IAC3E,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;IAC3E,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;IAClF,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE;IAC/D,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;IAC3E,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;IAC/E,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;IAC/E;QACC,KAAK,EAAE,yBAAyB;QAChC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;KAClD;CACD,CAAA;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,KAAiB;IAC1C,MAAM,MAAM,GAA6C,EAAE,CAAA;IAE3D,SAAS,IAAI,CAAC,IAAgB;QAC7B,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;oBACxD,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CACnD,CAAA;gBACD,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;gBACjD,CAAC;YACF,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACvC,CAAC;IACF,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,CAAA;IACX,OAAO,MAAM,CAAA;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAAC,KAAiB,EAAE,SAAiB;IAChE,SAAS,IAAI,CAAC,IAAgB;QAC7B,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;gBACzC,2EAA2E;gBAC3E,IACC,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC1D,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC1F,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EACvD,CAAC;oBACF,OAAO,IAAI,CAAA;gBACZ,CAAC;YACF,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBACjC,IAAI,KAAK;oBAAE,OAAO,KAAK,CAAA;YACxB,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAA;IACZ,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;AACnB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,QAAoB,EAAE,SAAkB;IACrF,+CAA+C;IAC/C,mDAAmD;IACnD,IAAI,WAAW,GAAG,IAAI,CAAA;IACtB,IAAI,QAAQ,GAAG,IAAI,CAAA;IACnB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QACnB,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QACnC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAClC,CAAC;IAED,+CAA+C;IAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IACzC,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,GAAG,CAAC,CAAA;IACnE,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,iCAAiC,QAAQ,OAAO,MAAM,CAAC,WAAW,EAAE,YAAY,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;IACxH,CAAC;IAED,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;IAC3C,MAAM,OAAO,GAAkB,EAAE,CAAA;IAEjC,uEAAuE;IACvE,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACzC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,IAAI,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,SAAS,EAAE,CAAC;gBACf,yDAAyD;gBACzD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;gBACtD,IAAI,KAAK,EAAE,CAAC;oBACX,WAAW,GAAG,KAAK,CAAA;gBACpB,CAAC;qBAAM,CAAC;oBACP,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAA;oBACjE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;oBACpC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;wBAAE,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;gBAClD,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,2DAA2D;gBAC3D,6DAA6D;gBAC7D,4DAA4D;gBAC5D,0DAA0D;gBAC1D,IAAI,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;gBACzB,IAAI,SAAS,GAAG,CAAC,CAAA;gBACjB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;oBACxB,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;oBAChF,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;oBACpE,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;wBACvB,SAAS,GAAG,KAAK,CAAA;wBACjB,SAAS,GAAG,CAAC,CAAA;oBACd,CAAC;gBACF,CAAC;gBACD,WAAW,GAAG,SAAS,CAAA;YACxB,CAAC;QACF,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,mCAAmC,WAAW,CAAC,IAAI,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACtH,CAAC;QAED,oCAAoC;QACpC,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC5C,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;gBACxC,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;oBACrC,MAAM,MAAM,GAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,CAAA;oBAClE,OAAO,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,QAAQ,OAAO,CAAC,GAAG,OAAO,KAAK,GAAG;wBACxC,MAAM;qBACN,CAAC,CAAA;oBACF,MAAK;gBACN,CAAC;YACF,CAAC;QACF,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,OAAO,CAAA;IACvC,CAAC;IAED,sDAAsD;IACtD,MAAM,WAAW,GAAG,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;IAC5D,IAAI,WAAW,EAAE,CAAC;QACjB,wCAAwC;QACxC,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;QAChD,IAAI,KAAa,CAAA;QACjB,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/D,YAAY;YACZ,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;QACxG,CAAC;aAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACtE,YAAY;YACZ,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;QACzI,CAAC;aAAM,CAAC;YACP,WAAW;YACX,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;QACvO,CAAC;QAED,OAAO,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,QAAQ,WAAW,CAAC,GAAG,OAAO,KAAK,GAAG;YAC5C,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE;SACvD,CAAC,CAAA;QACF,OAAO,OAAO,CAAA;IACf,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,qEAAqE,IAAI,GAAG,CAAC,CAAA;AAC9F,CAAC"}
|
package/dist/pilot/executor.d.ts
CHANGED
|
@@ -17,5 +17,5 @@ export declare function runWithNavigationHandling(page: Page, action: () => Prom
|
|
|
17
17
|
export declare function executeAction(page: Page, action: Action, a11yTree: A11yNode[], _valueStore?: Map<string, string>, mapContext?: {
|
|
18
18
|
state?: MapState;
|
|
19
19
|
adapter?: MapAdapter;
|
|
20
|
-
}): Promise<ExecutionResult>;
|
|
20
|
+
}, stepHint?: string): Promise<ExecutionResult>;
|
|
21
21
|
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/pilot/executor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAW,MAAM,YAAY,CAAA;AAC/C,OAAO,KAAK,EACX,MAAM,EACN,QAAQ,EACR,eAAe,EACf,QAAQ,EAER,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/pilot/executor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAW,MAAM,YAAY,CAAA;AAC/C,OAAO,KAAK,EACX,MAAM,EACN,QAAQ,EACR,eAAe,EACf,QAAQ,EAER,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAcjD;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC9C,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GACzB,OAAO,CAAC,IAAI,CAAC,CAiBf;AAoED;;GAEG;AACH,wBAAsB,aAAa,CAClC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAAE,EACpB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,UAAU,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,QAAQ,CAAC;IAAC,OAAO,CAAC,EAAE,UAAU,CAAA;CAAE,EACvD,QAAQ,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC,CAihB1B"}
|
package/dist/pilot/executor.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Action executor — translates LLM Action objects into Playwright browser calls.
|
|
3
3
|
*/
|
|
4
|
+
import Fuse from "fuse.js";
|
|
4
5
|
import { globals } from "../globals.js";
|
|
5
|
-
import { resolveLocator, resolveActionTarget, extractSelectorInfo, } from "./locator.js";
|
|
6
|
+
import { resolveLocator, resolveActionTarget, extractSelectorInfo, findNodeByRef, } from "./locator.js";
|
|
6
7
|
import { checkCheckbox } from "./checkbox.js";
|
|
7
8
|
import { executeAssertion } from "./assertions.js";
|
|
8
9
|
/**
|
|
@@ -30,57 +31,100 @@ export async function runWithNavigationHandling(page, action) {
|
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
33
|
/**
|
|
33
|
-
*
|
|
34
|
-
* matches any of the given keywords. Used as a fallback when the LLM
|
|
35
|
-
* returns a remember action without specifying a target element.
|
|
34
|
+
* Flatten an a11y node tree into a flat array.
|
|
36
35
|
*/
|
|
37
|
-
function
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const name = node.name.toLowerCase();
|
|
43
|
-
// Check if the name contains a number
|
|
44
|
-
if (/\d/.test(name)) {
|
|
45
|
-
// Check if any keyword matches
|
|
46
|
-
const matches = lowerKeywords.some((kw) => name.includes(kw));
|
|
47
|
-
if (matches) {
|
|
48
|
-
// Prefer shorter, more specific matches
|
|
49
|
-
if (!bestMatch || node.name.length < bestMatch.length) {
|
|
50
|
-
bestMatch = node.name;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
36
|
+
function flattenNodes(nodes) {
|
|
37
|
+
const result = [];
|
|
38
|
+
function walk(list) {
|
|
39
|
+
for (const node of list) {
|
|
40
|
+
result.push(node);
|
|
54
41
|
if (node.children)
|
|
55
42
|
walk(node.children);
|
|
56
43
|
}
|
|
57
44
|
}
|
|
58
45
|
walk(nodes);
|
|
59
|
-
return
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Search the enriched a11y tree for a value matching a query string.
|
|
50
|
+
* Uses Fuse.js fuzzy matching against node name, placeholder, visibleText,
|
|
51
|
+
* and value. When the best match is an input with a value, returns the
|
|
52
|
+
* value (what was typed) rather than the label.
|
|
53
|
+
*
|
|
54
|
+
* Used as a fallback when the LLM returns a remember action without
|
|
55
|
+
* specifying a target element.
|
|
56
|
+
*/
|
|
57
|
+
function findValueInTree(nodes, keywords) {
|
|
58
|
+
const flat = flattenNodes(nodes).filter((n) => !n.ref.startsWith("_"));
|
|
59
|
+
if (flat.length === 0)
|
|
60
|
+
return "";
|
|
61
|
+
const query = keywords.join(" ");
|
|
62
|
+
const fuse = new Fuse(flat, {
|
|
63
|
+
keys: [
|
|
64
|
+
{ name: "name", weight: 2 },
|
|
65
|
+
{ name: "placeholder", weight: 1.5 },
|
|
66
|
+
{ name: "visibleText", weight: 1 },
|
|
67
|
+
{ name: "value", weight: 0.5 },
|
|
68
|
+
],
|
|
69
|
+
threshold: 0.4,
|
|
70
|
+
includeScore: true,
|
|
71
|
+
});
|
|
72
|
+
const results = fuse.search(query);
|
|
73
|
+
if (globals.debug && results.length > 0) {
|
|
74
|
+
console.log(` [remember] Fuse.js top matches for "${query}":`);
|
|
75
|
+
for (const r of results.slice(0, 3)) {
|
|
76
|
+
console.log(` - [${r.item.ref}] "${r.item.name}" value="${r.item.value ?? ""}" (score: ${String(r.score?.toFixed(3))})`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (results.length > 0) {
|
|
80
|
+
const best = results[0].item;
|
|
81
|
+
// Prefer the input value (what was typed) over the label
|
|
82
|
+
if (best.value)
|
|
83
|
+
return best.value;
|
|
84
|
+
if (best.visibleText)
|
|
85
|
+
return best.visibleText;
|
|
86
|
+
return best.name;
|
|
87
|
+
}
|
|
88
|
+
// No fuzzy match — return the first non-empty value field
|
|
89
|
+
for (const node of flat) {
|
|
90
|
+
if (node.value)
|
|
91
|
+
return node.value;
|
|
92
|
+
}
|
|
93
|
+
return "";
|
|
60
94
|
}
|
|
61
95
|
/**
|
|
62
96
|
* Execute a single Action against the browser page.
|
|
63
97
|
*/
|
|
64
|
-
export async function executeAction(page, action, a11yTree, _valueStore, mapContext) {
|
|
98
|
+
export async function executeAction(page, action, a11yTree, _valueStore, mapContext, stepHint) {
|
|
65
99
|
const start = performance.now();
|
|
66
100
|
let rememberedValue;
|
|
67
101
|
let resolvedSelector;
|
|
68
102
|
try {
|
|
69
103
|
switch (action.action) {
|
|
70
104
|
case "click": {
|
|
71
|
-
const locator = await resolveActionTarget(page, action, a11yTree);
|
|
105
|
+
const locator = await resolveActionTarget(page, action, a11yTree, stepHint);
|
|
72
106
|
resolvedSelector = await extractSelectorInfo(page, action, a11yTree, locator);
|
|
107
|
+
// Wait for the element to be visible and stable before clicking.
|
|
108
|
+
// Menus and dropdowns may still be animating when the step starts.
|
|
109
|
+
await locator.waitFor({ state: "visible", timeout: 5000 });
|
|
110
|
+
// Fail fast if the target is a disabled button — don't wait 30s
|
|
111
|
+
// for Playwright's built-in enabled check to time out.
|
|
112
|
+
const isDisabled = await locator.isDisabled().catch(() => false);
|
|
113
|
+
if (isDisabled) {
|
|
114
|
+
const label = (await locator.textContent().catch(() => "unknown")) ?? "unknown";
|
|
115
|
+
throw new Error(`Cannot click disabled element "${label.trim()}"`);
|
|
116
|
+
}
|
|
73
117
|
await runWithNavigationHandling(page, () => locator.click());
|
|
74
118
|
break;
|
|
75
119
|
}
|
|
76
120
|
case "check": {
|
|
77
|
-
const locator = await resolveActionTarget(page, action, a11yTree);
|
|
121
|
+
const locator = await resolveActionTarget(page, action, a11yTree, stepHint);
|
|
78
122
|
resolvedSelector = await extractSelectorInfo(page, action, a11yTree, locator);
|
|
79
123
|
await checkCheckbox(page, locator, true);
|
|
80
124
|
break;
|
|
81
125
|
}
|
|
82
126
|
case "uncheck": {
|
|
83
|
-
const locator = await resolveActionTarget(page, action, a11yTree);
|
|
127
|
+
const locator = await resolveActionTarget(page, action, a11yTree, stepHint);
|
|
84
128
|
resolvedSelector = await extractSelectorInfo(page, action, a11yTree, locator);
|
|
85
129
|
await checkCheckbox(page, locator, false);
|
|
86
130
|
break;
|
|
@@ -89,34 +133,62 @@ export async function executeAction(page, action, a11yTree, _valueStore, mapCont
|
|
|
89
133
|
if (!action.value) {
|
|
90
134
|
throw new Error("type action requires a value");
|
|
91
135
|
}
|
|
92
|
-
const locator = await resolveActionTarget(page, action, a11yTree);
|
|
136
|
+
const locator = await resolveActionTarget(page, action, a11yTree, stepHint);
|
|
93
137
|
resolvedSelector = await extractSelectorInfo(page, action, a11yTree, locator);
|
|
94
|
-
//
|
|
95
|
-
//
|
|
96
|
-
//
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
138
|
+
// Detect the element type to choose the right input strategy.
|
|
139
|
+
// MUI spinbuttons (contentEditable sections) and native date
|
|
140
|
+
// inputs need fill() instead of char-by-char typing.
|
|
141
|
+
const ariaRole = await locator.getAttribute("role").catch(() => null);
|
|
142
|
+
const inputType = await locator.getAttribute("type").catch(() => null);
|
|
143
|
+
// Also check the a11y tree node's role (more reliable than DOM
|
|
144
|
+
// attribute for elements resolved by ref).
|
|
145
|
+
const a11yRole = action.ref ? findNodeByRef(a11yTree, action.ref)?.role : null;
|
|
146
|
+
const isSpinbutton = ariaRole === "spinbutton" || a11yRole === "spinbutton";
|
|
147
|
+
const isDateInput = inputType === "date" || inputType === "datetime-local" || inputType === "time";
|
|
148
|
+
if (isSpinbutton || isDateInput) {
|
|
149
|
+
// Spinbuttons (MUI date picker sections) and native date
|
|
150
|
+
// inputs: click to focus, then use fill() which sets the
|
|
151
|
+
// value programmatically — char-by-char doesn't work on
|
|
152
|
+
// contentEditable spinbuttons or formatted date inputs.
|
|
153
|
+
await locator.click({ force: true });
|
|
154
|
+
try {
|
|
155
|
+
await locator.fill(action.value);
|
|
110
156
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
//
|
|
114
|
-
|
|
157
|
+
catch {
|
|
158
|
+
// fill() may fail on contentEditable — fall back to
|
|
159
|
+
// select-all + type which works on some implementations
|
|
160
|
+
const selectAll = process.platform === "darwin" ? "Meta+a" : "Control+a";
|
|
161
|
+
await page.keyboard.press(selectAll);
|
|
162
|
+
await page.keyboard.type(action.value, { delay: 30 });
|
|
115
163
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
164
|
+
if (globals.debug) {
|
|
165
|
+
console.log(` [type] Used fill() for ${isSpinbutton ? "spinbutton" : "date input"}`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
// Regular inputs: use real keypresses — click to focus,
|
|
170
|
+
// select-all + delete to clear, then type char by char.
|
|
171
|
+
// This looks like a real user and triggers all JS event
|
|
172
|
+
// handlers (React onChange, custom validation, etc.).
|
|
173
|
+
// Use force:true — inputs often have decorative overlays.
|
|
174
|
+
await locator.click({ force: true });
|
|
175
|
+
const selectAll = process.platform === "darwin" ? "Meta+a" : "Control+a";
|
|
176
|
+
await page.keyboard.press(selectAll);
|
|
177
|
+
await page.keyboard.press("Backspace");
|
|
178
|
+
await page.keyboard.type(action.value, { delay: 30 });
|
|
179
|
+
// Verify the value landed correctly. Use evaluate on the
|
|
180
|
+
// active element to avoid locator actionability timeouts.
|
|
181
|
+
const actual = await page.evaluate(() => {
|
|
182
|
+
const el = document.activeElement;
|
|
183
|
+
return el?.value ?? "";
|
|
184
|
+
}).catch(() => "");
|
|
185
|
+
if (actual !== action.value) {
|
|
186
|
+
if (globals.debug) {
|
|
187
|
+
console.log(` [type] Value drifted: got "${actual}", expected "${action.value}" — correcting`);
|
|
188
|
+
}
|
|
189
|
+
await page.keyboard.press(selectAll);
|
|
190
|
+
await page.keyboard.press("Backspace");
|
|
191
|
+
await page.keyboard.type(action.value, { delay: 30 });
|
|
120
192
|
}
|
|
121
193
|
}
|
|
122
194
|
break;
|
|
@@ -125,7 +197,7 @@ export async function executeAction(page, action, a11yTree, _valueStore, mapCont
|
|
|
125
197
|
if (!action.value) {
|
|
126
198
|
throw new Error("select action requires a value");
|
|
127
199
|
}
|
|
128
|
-
const locator = await resolveActionTarget(page, action, a11yTree);
|
|
200
|
+
const locator = await resolveActionTarget(page, action, a11yTree, stepHint);
|
|
129
201
|
resolvedSelector = await extractSelectorInfo(page, action, a11yTree, locator);
|
|
130
202
|
// Try native <select> first; if the element is a custom dropdown
|
|
131
203
|
// (button/div with aria-haspopup), click to open it then click
|
|
@@ -256,7 +328,7 @@ export async function executeAction(page, action, a11yTree, _valueStore, mapCont
|
|
|
256
328
|
if (!action.value) {
|
|
257
329
|
throw new Error("autocomplete action requires a value");
|
|
258
330
|
}
|
|
259
|
-
const locator = await resolveActionTarget(page, action, a11yTree);
|
|
331
|
+
const locator = await resolveActionTarget(page, action, a11yTree, stepHint);
|
|
260
332
|
resolvedSelector = await extractSelectorInfo(page, action, a11yTree, locator);
|
|
261
333
|
if (globals.debug) {
|
|
262
334
|
console.log(` [autocomplete] Typing "${action.value}" into field (target: ${action.ref ?? action.text ?? "unknown"})`);
|
|
@@ -267,10 +339,12 @@ export async function executeAction(page, action, a11yTree, _valueStore, mapCont
|
|
|
267
339
|
console.log(` [autocomplete] Will select first suggestion`);
|
|
268
340
|
}
|
|
269
341
|
}
|
|
270
|
-
// Click to focus, then type character by character to trigger autocomplete
|
|
271
|
-
await locator.click();
|
|
272
|
-
|
|
273
|
-
await
|
|
342
|
+
// Click to focus, clear, then type character by character to trigger autocomplete
|
|
343
|
+
await locator.click({ force: true });
|
|
344
|
+
const acSelectAll = process.platform === "darwin" ? "Meta+a" : "Control+a";
|
|
345
|
+
await page.keyboard.press(acSelectAll);
|
|
346
|
+
await page.keyboard.press("Backspace");
|
|
347
|
+
await page.keyboard.type(action.value, { delay: 50 });
|
|
274
348
|
if (globals.debug) {
|
|
275
349
|
console.log(` [autocomplete] Typed "${action.value}", waiting for suggestions...`);
|
|
276
350
|
}
|
|
@@ -401,9 +475,10 @@ export async function executeAction(page, action, a11yTree, _valueStore, mapCont
|
|
|
401
475
|
case "remember": {
|
|
402
476
|
let capturedText;
|
|
403
477
|
if (action.ref || action.text) {
|
|
404
|
-
const locator = await resolveActionTarget(page, action, a11yTree);
|
|
478
|
+
const locator = await resolveActionTarget(page, action, a11yTree, stepHint);
|
|
405
479
|
resolvedSelector = await extractSelectorInfo(page, action, a11yTree, locator);
|
|
406
|
-
|
|
480
|
+
// Try inputValue() first (for inputs/textareas), fall back to textContent
|
|
481
|
+
capturedText = (await locator.inputValue().catch(() => null) ?? await locator.textContent() ?? "").trim();
|
|
407
482
|
// If the variable name or step implies we need a number but
|
|
408
483
|
// the captured text has none, the LLM likely picked the wrong
|
|
409
484
|
// element. Fall back to keyword search in the a11y tree.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/pilot/executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/pilot/executor.ts"],"names":[],"mappings":"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"}
|
package/dist/pilot/llm.d.ts
CHANGED
|
@@ -24,6 +24,8 @@ export interface LLMClient {
|
|
|
24
24
|
* into multiple atomic actions. Returns a flat list of planned steps.
|
|
25
25
|
*/
|
|
26
26
|
planSteps(steps: string[]): Promise<PlannedStep[]>;
|
|
27
|
+
/** Evaluate a condition against the live page state. Returns true/false. */
|
|
28
|
+
evaluateCondition(condition: string, conditionType: string, pageState: PageState): Promise<boolean>;
|
|
27
29
|
/** Resolve a single step using the page state and a11y tree. */
|
|
28
30
|
resolveStep(step: string, pageState: PageState): Promise<Action>;
|
|
29
31
|
/**
|
package/dist/pilot/llm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../src/pilot/llm.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAG7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAUtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAGpE,4DAA4D;AAC5D,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEvD,wCAAwC;AACxC,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,WAAW,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,gCAAgC;AAChC,MAAM,WAAW,SAAS;IACzB;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAClD,gEAAgE;IAChE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAChE;;;;OAIG;IACH,UAAU,CACT,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,GACR,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IACzB,4DAA4D;IAC5D,YAAY,IAAI,IAAI,CAAA;CACpB;AAED,sDAAsD;AACtD,wBAAgB,aAAa,IAAI,MAAM,CAQtC;AAED,gEAAgE;AAChE,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../src/pilot/llm.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAG7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAUtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAGpE,4DAA4D;AAC5D,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEvD,wCAAwC;AACxC,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,WAAW,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,gCAAgC;AAChC,MAAM,WAAW,SAAS;IACzB;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAClD,4EAA4E;IAC5E,iBAAiB,CAChB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,OAAO,CAAC,CAAA;IACnB,gEAAgE;IAChE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAChE;;;;OAIG;IACH,UAAU,CACT,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,GACR,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IACzB,4DAA4D;IAC5D,YAAY,IAAI,IAAI,CAAA;CACpB;AAED,sDAAsD;AACtD,wBAAgB,aAAa,IAAI,MAAM,CAQtC;AAED,gEAAgE;AAChE,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,eAAe,CAStE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CA+QlE"}
|