@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.
Files changed (98) hide show
  1. package/README.md +265 -22
  2. package/dist/browser/browser.d.ts.map +1 -1
  3. package/dist/browser/browser.js +50 -14
  4. package/dist/browser/browser.js.map +1 -1
  5. package/dist/cli/index.js +2 -2
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/cli/run.d.ts.map +1 -1
  8. package/dist/cli/run.js +170 -55
  9. package/dist/cli/run.js.map +1 -1
  10. package/dist/parser/loader.d.ts +12 -3
  11. package/dist/parser/loader.d.ts.map +1 -1
  12. package/dist/parser/loader.js +53 -5
  13. package/dist/parser/loader.js.map +1 -1
  14. package/dist/parser/schema.d.ts +24 -3
  15. package/dist/parser/schema.d.ts.map +1 -1
  16. package/dist/parser/schema.js +12 -2
  17. package/dist/parser/schema.js.map +1 -1
  18. package/dist/pilot/a11y-parser.d.ts +6 -1
  19. package/dist/pilot/a11y-parser.d.ts.map +1 -1
  20. package/dist/pilot/a11y-parser.js +25 -4
  21. package/dist/pilot/a11y-parser.js.map +1 -1
  22. package/dist/pilot/assertions.d.ts +0 -4
  23. package/dist/pilot/assertions.d.ts.map +1 -1
  24. package/dist/pilot/assertions.js +173 -43
  25. package/dist/pilot/assertions.js.map +1 -1
  26. package/dist/pilot/conditions.d.ts +15 -0
  27. package/dist/pilot/conditions.d.ts.map +1 -0
  28. package/dist/pilot/conditions.js +77 -0
  29. package/dist/pilot/conditions.js.map +1 -0
  30. package/dist/pilot/datepick.d.ts +21 -0
  31. package/dist/pilot/datepick.d.ts.map +1 -0
  32. package/dist/pilot/datepick.js +187 -0
  33. package/dist/pilot/datepick.js.map +1 -0
  34. package/dist/pilot/executor.d.ts +1 -1
  35. package/dist/pilot/executor.d.ts.map +1 -1
  36. package/dist/pilot/executor.js +134 -59
  37. package/dist/pilot/executor.js.map +1 -1
  38. package/dist/pilot/llm.d.ts +2 -0
  39. package/dist/pilot/llm.d.ts.map +1 -1
  40. package/dist/pilot/llm.js +60 -3
  41. package/dist/pilot/llm.js.map +1 -1
  42. package/dist/pilot/locator.d.ts +14 -2
  43. package/dist/pilot/locator.d.ts.map +1 -1
  44. package/dist/pilot/locator.js +137 -34
  45. package/dist/pilot/locator.js.map +1 -1
  46. package/dist/pilot/message-builder.d.ts +7 -1
  47. package/dist/pilot/message-builder.d.ts.map +1 -1
  48. package/dist/pilot/message-builder.js +18 -5
  49. package/dist/pilot/message-builder.js.map +1 -1
  50. package/dist/pilot/pilot.d.ts +5 -1
  51. package/dist/pilot/pilot.d.ts.map +1 -1
  52. package/dist/pilot/pilot.js +194 -21
  53. package/dist/pilot/pilot.js.map +1 -1
  54. package/dist/pilot/prompts.d.ts +38 -3
  55. package/dist/pilot/prompts.d.ts.map +1 -1
  56. package/dist/pilot/prompts.js +315 -125
  57. package/dist/pilot/prompts.js.map +1 -1
  58. package/dist/pilot/random.d.ts +37 -0
  59. package/dist/pilot/random.d.ts.map +1 -0
  60. package/dist/pilot/random.js +55 -0
  61. package/dist/pilot/random.js.map +1 -0
  62. package/dist/pilot/response-parser.d.ts +30 -2
  63. package/dist/pilot/response-parser.d.ts.map +1 -1
  64. package/dist/pilot/response-parser.js +228 -64
  65. package/dist/pilot/response-parser.js.map +1 -1
  66. package/dist/pilot/state.d.ts +1 -1
  67. package/dist/pilot/state.d.ts.map +1 -1
  68. package/dist/pilot/state.js +170 -38
  69. package/dist/pilot/state.js.map +1 -1
  70. package/dist/planner/plan-generator.d.ts +6 -0
  71. package/dist/planner/plan-generator.d.ts.map +1 -1
  72. package/dist/planner/plan-generator.js +26 -0
  73. package/dist/planner/plan-generator.js.map +1 -1
  74. package/dist/planner/plan-runner.d.ts +3 -1
  75. package/dist/planner/plan-runner.d.ts.map +1 -1
  76. package/dist/planner/plan-runner.js +170 -22
  77. package/dist/planner/plan-runner.js.map +1 -1
  78. package/dist/planner/plan-store.d.ts +6 -0
  79. package/dist/planner/plan-store.d.ts.map +1 -1
  80. package/dist/planner/plan-store.js +27 -0
  81. package/dist/planner/plan-store.js.map +1 -1
  82. package/dist/planner/plan-types.d.ts +18 -2
  83. package/dist/planner/plan-types.d.ts.map +1 -1
  84. package/dist/reporter/types.d.ts +19 -4
  85. package/dist/reporter/types.d.ts.map +1 -1
  86. package/dist/types.d.ts +3 -3
  87. package/dist/types.d.ts.map +1 -1
  88. package/dist/types.js +1 -1
  89. package/dist/types.js.map +1 -1
  90. package/package.json +4 -1
  91. package/dist/map/diagnose.d.ts +0 -7
  92. package/dist/map/diagnose.d.ts.map +0 -1
  93. package/dist/map/diagnose.js +0 -140
  94. package/dist/map/diagnose.js.map +0 -1
  95. package/dist/parser/steps.d.ts +0 -13
  96. package/dist/parser/steps.d.ts.map +0 -1
  97. package/dist/parser/steps.js +0 -44
  98. 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":"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"}
@@ -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;AAYjD;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC9C,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GACzB,OAAO,CAAC,IAAI,CAAC,CAiBf;AAiCD;;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,GACrD,OAAO,CAAC,eAAe,CAAC,CAwe1B"}
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"}
@@ -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
- * Search the a11y tree for a node whose name contains a number and
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 findValueInTree(nodes, keywords) {
38
- const lowerKeywords = keywords.map((k) => k.toLowerCase());
39
- let bestMatch = "";
40
- function walk(nodeList) {
41
- for (const node of nodeList) {
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 bestMatch;
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
- // Click to focus, clear existing value, then type character by
95
- // character. pressSequentially dispatches real keydown/keypress/
96
- // keyup/input events per keystroke, which is required for
97
- // frameworks that rely on JS input events (React onChange, custom
98
- // validation, etc.). fill() bypasses these.
99
- await locator.click();
100
- await locator.fill("");
101
- await locator.pressSequentially(action.value, { delay: 30 });
102
- // Verify the value landed correctly. Async UI (search dropdowns,
103
- // autocomplete overlays) can steal focus or trigger re-renders
104
- // that swallow the last keystrokes. If the value drifted, re-focus
105
- // and type the missing suffix.
106
- const actual = await locator.inputValue().catch(() => "");
107
- if (actual !== action.value) {
108
- if (globals.debug) {
109
- console.log(` [type] Value drifted: got "${actual}", expected "${action.value}" — correcting`);
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
- await locator.click();
112
- if (action.value.startsWith(actual)) {
113
- // Only the tail is missing append it
114
- await locator.pressSequentially(action.value.slice(actual.length), { delay: 30 });
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
- else {
117
- // Value is garbled clear and retype
118
- await locator.fill("");
119
- await locator.pressSequentially(action.value, { delay: 30 });
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
- await locator.fill("");
273
- await locator.pressSequentially(action.value, { delay: 50 });
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
- capturedText = (await locator.textContent() ?? "").trim();
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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"}
@@ -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
  /**
@@ -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,CAYtE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CA8MlE"}
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"}