@eidra-umain/greenlight 0.3.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 +151 -38
- 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 +19 -1
- package/dist/pilot/a11y-parser.js.map +1 -1
- package/dist/pilot/assertions.d.ts.map +1 -1
- package/dist/pilot/assertions.js +15 -0
- 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.map +1 -1
- package/dist/pilot/executor.js +108 -48
- 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 +59 -3
- package/dist/pilot/llm.js.map +1 -1
- package/dist/pilot/locator.d.ts.map +1 -1
- package/dist/pilot/locator.js +43 -0
- 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 +2 -0
- package/dist/pilot/pilot.d.ts.map +1 -1
- package/dist/pilot/pilot.js +167 -8
- package/dist/pilot/pilot.js.map +1 -1
- package/dist/pilot/prompts.d.ts +3 -2
- package/dist/pilot/prompts.d.ts.map +1 -1
- package/dist/pilot/prompts.js +156 -27
- 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 +19 -1
- package/dist/pilot/response-parser.d.ts.map +1 -1
- package/dist/pilot/response-parser.js +148 -62
- 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 +1 -0
- package/dist/planner/plan-runner.d.ts.map +1 -1
- package/dist/planner/plan-runner.js +104 -4
- 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 +17 -2
- package/dist/planner/plan-types.d.ts.map +1 -1
- package/dist/reporter/types.d.ts +15 -2
- 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/cli/run.js
CHANGED
|
@@ -4,7 +4,7 @@ import { attachConsoleCollector, attachNetworkTracker, } from "../pilot/network.
|
|
|
4
4
|
import { resolveLLMConfig, createLLMClient, } from "../pilot/llm.js";
|
|
5
5
|
import { runTestCase } from "../pilot/pilot.js";
|
|
6
6
|
import { computeTestHash, slugify } from "../planner/hasher.js";
|
|
7
|
-
import { loadHashIndex, saveHashIndex, loadPlan, savePlan, ensureGitignore, } from "../planner/plan-store.js";
|
|
7
|
+
import { loadHashIndex, saveHashIndex, loadPlan, savePlan, loadPartialPlan, savePartialPlan, deletePartialPlan, ensureGitignore, } from "../planner/plan-store.js";
|
|
8
8
|
import { createPlanRecorder } from "../planner/plan-generator.js";
|
|
9
9
|
import { runCachedPlan } from "../planner/plan-runner.js";
|
|
10
10
|
import { resolveModelConfig } from "../types.js";
|
|
@@ -20,7 +20,12 @@ function printStepResult(stepResult) {
|
|
|
20
20
|
const phases = t
|
|
21
21
|
? ` \x1b[90m[capture:${String(Math.round(t.capture))} llm:${String(Math.round(t.llm))} exec:${String(Math.round(t.execute))} post:${String(Math.round(t.postCapture))}ms]\x1b[0m`
|
|
22
22
|
: "";
|
|
23
|
-
|
|
23
|
+
// Strip internal "||" separator from datepick step names
|
|
24
|
+
const stepName = stepResult.step.includes("||") ? stepResult.step.split("||")[0] : stepResult.step;
|
|
25
|
+
const condTag = stepResult.conditionResult
|
|
26
|
+
? ` \x1b[90m[${stepResult.conditionResult.branch}]\x1b[0m`
|
|
27
|
+
: "";
|
|
28
|
+
console.log(` ${icon} ${stepName} (${dur})${phases}${condTag}`);
|
|
24
29
|
if (stepResult.error) {
|
|
25
30
|
console.log(` \x1b[31m${stepResult.error}\x1b[0m`);
|
|
26
31
|
}
|
|
@@ -97,13 +102,12 @@ export async function runCommand(config, resolvedFiles) {
|
|
|
97
102
|
console.error(err.message);
|
|
98
103
|
process.exit(1);
|
|
99
104
|
}
|
|
100
|
-
// Resolve base URL: CLI flag > deployment
|
|
101
|
-
const baseUrl = config.baseUrl
|
|
105
|
+
// Resolve base URL: CLI flag > deployment config
|
|
106
|
+
const baseUrl = config.baseUrl;
|
|
102
107
|
if (!baseUrl) {
|
|
103
|
-
console.error(`No base_url for suite "${suite.suite}". Set it in
|
|
108
|
+
console.error(`No base_url for suite "${suite.suite}". Set it in greenlight.yaml or pass --base-url.`);
|
|
104
109
|
process.exit(1);
|
|
105
110
|
}
|
|
106
|
-
suite.base_url = baseUrl;
|
|
107
111
|
// Apply suite-level model override
|
|
108
112
|
const effectiveModel = suite.model ?? config.model;
|
|
109
113
|
const suiteSlug = slugify(suite.suite);
|
|
@@ -119,22 +123,36 @@ export async function runCommand(config, resolvedFiles) {
|
|
|
119
123
|
}
|
|
120
124
|
// Load hash index for plan caching
|
|
121
125
|
const hashIndex = await loadHashIndex(cwd);
|
|
122
|
-
// LLM client — created lazily, only when a test needs
|
|
126
|
+
// LLM client — created lazily, only when a test needs pilot mode
|
|
123
127
|
let llm;
|
|
124
128
|
function getOrCreateLLM() {
|
|
125
129
|
if (!llm) {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
130
|
+
try {
|
|
131
|
+
const llmConfig = resolveLLMConfig({
|
|
132
|
+
...config,
|
|
133
|
+
model: effectiveModel,
|
|
134
|
+
});
|
|
135
|
+
llm = createLLMClient(llmConfig);
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
139
|
+
console.error(`\n \x1b[31m${msg}\x1b[0m`);
|
|
140
|
+
console.error(` Set it in a .env file or export it in your shell:`);
|
|
141
|
+
console.error(` $ export LLM_API_KEY=sk-...`);
|
|
142
|
+
process.exit(1);
|
|
143
|
+
}
|
|
131
144
|
}
|
|
132
145
|
return llm;
|
|
133
146
|
}
|
|
134
147
|
// Launch browser — in headed mode use a persistent context with the
|
|
135
|
-
// zoom extension for real
|
|
148
|
+
// zoom extension for real 50% browser zoom. In headless mode use the
|
|
136
149
|
// normal browser + context flow.
|
|
137
|
-
|
|
150
|
+
// Suite-level viewport overrides the project/default viewport.
|
|
151
|
+
const effectiveViewport = suite.viewport ?? config.viewport;
|
|
152
|
+
const browserOpts = toBrowserOptions({
|
|
153
|
+
...config,
|
|
154
|
+
viewport: effectiveViewport,
|
|
155
|
+
});
|
|
138
156
|
let browser = null;
|
|
139
157
|
let persistentContext = null;
|
|
140
158
|
try {
|
|
@@ -166,7 +184,7 @@ export async function runCommand(config, resolvedFiles) {
|
|
|
166
184
|
// Determine execution mode
|
|
167
185
|
let useCachedPlan = false;
|
|
168
186
|
let cachedPlan = null;
|
|
169
|
-
if (!config.
|
|
187
|
+
if (!config.pilot && cachedHash === testHash) {
|
|
170
188
|
cachedPlan = await loadPlan(cwd, suiteSlug, testSlug);
|
|
171
189
|
if (cachedPlan) {
|
|
172
190
|
useCachedPlan = true;
|
|
@@ -174,27 +192,25 @@ export async function runCommand(config, resolvedFiles) {
|
|
|
174
192
|
}
|
|
175
193
|
const modeLabel = useCachedPlan
|
|
176
194
|
? "\x1b[36mcached\x1b[0m"
|
|
177
|
-
: "\x1b[
|
|
195
|
+
: "\x1b[33mpilot\x1b[0m";
|
|
178
196
|
console.log(`\n Test: ${test.name} [${modeLabel}]`);
|
|
179
|
-
if (!config.
|
|
180
|
-
|
|
181
|
-
cachedHash !== testHash) {
|
|
182
|
-
console.log(` \x1b[33mPlan stale, re-discovering\x1b[0m`);
|
|
197
|
+
if (!config.pilot && cachedHash && cachedHash !== testHash) {
|
|
198
|
+
console.log(` \x1b[33mPlan stale, running pilot\x1b[0m`);
|
|
183
199
|
}
|
|
184
200
|
// Fresh context per test case (reuse persistent context in headed mode)
|
|
185
201
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
186
|
-
const context = persistentContext ?? await createContext(browser, browserOpts);
|
|
202
|
+
const context = persistentContext ?? (await createContext(browser, browserOpts));
|
|
187
203
|
const page = await createPage(context, { headed: browserOpts.headed });
|
|
188
204
|
const { drain } = attachConsoleCollector(page);
|
|
189
205
|
const { waitForNetworkIdle } = attachNetworkTracker(page);
|
|
190
206
|
globals.trace.attachToPage(page);
|
|
191
207
|
try {
|
|
192
|
-
globals.trace.log("goto",
|
|
193
|
-
await page.goto(
|
|
208
|
+
globals.trace.log("goto", baseUrl);
|
|
209
|
+
await page.goto(baseUrl);
|
|
194
210
|
}
|
|
195
211
|
catch (err) {
|
|
196
212
|
const msg = err instanceof Error ? err.message : String(err);
|
|
197
|
-
console.error(`\n \x1b[31m\u2717\x1b[0m Failed to navigate to ${
|
|
213
|
+
console.error(`\n \x1b[31m\u2717\x1b[0m Failed to navigate to ${baseUrl}: ${msg}`);
|
|
198
214
|
globals.trace.detachFromPage(page);
|
|
199
215
|
if (persistentContext) {
|
|
200
216
|
// Persistent context is shared — close pages only
|
|
@@ -209,7 +225,11 @@ export async function runCommand(config, resolvedFiles) {
|
|
|
209
225
|
let result;
|
|
210
226
|
if (useCachedPlan && cachedPlan) {
|
|
211
227
|
// Fast run — replay cached plan
|
|
212
|
-
result = await runCachedPlan(page, cachedPlan, test.name, {
|
|
228
|
+
result = await runCachedPlan(page, cachedPlan, test.name, {
|
|
229
|
+
waitForNetworkIdle,
|
|
230
|
+
onStepComplete: printStepResult,
|
|
231
|
+
consoleDrain: drain,
|
|
232
|
+
});
|
|
213
233
|
// Handle plan drift
|
|
214
234
|
if (result.drifted && config.onDrift === "rerun") {
|
|
215
235
|
console.log(` \x1b[33mPlan drift detected, re-running with LLM\x1b[0m`);
|
|
@@ -218,19 +238,24 @@ export async function runCommand(config, resolvedFiles) {
|
|
|
218
238
|
if (persistentContext) {
|
|
219
239
|
// Persistent context is shared — close pages only
|
|
220
240
|
for (const p of context.pages())
|
|
221
|
-
await p.close().catch(() => {
|
|
241
|
+
await p.close().catch(() => {
|
|
242
|
+
/* ignore */
|
|
243
|
+
});
|
|
222
244
|
}
|
|
223
245
|
else {
|
|
224
246
|
await context.close();
|
|
225
247
|
}
|
|
226
|
-
const ctx2 = persistentContext ??
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
248
|
+
const ctx2 = persistentContext ??
|
|
249
|
+
(await createContext(
|
|
250
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
251
|
+
browser, browserOpts));
|
|
252
|
+
const page2 = await createPage(ctx2, {
|
|
253
|
+
headed: browserOpts.headed,
|
|
254
|
+
});
|
|
230
255
|
const { drain: drain2 } = attachConsoleCollector(page2);
|
|
231
256
|
const { waitForNetworkIdle: waitForNetworkIdle2 } = attachNetworkTracker(page2);
|
|
232
257
|
globals.trace.attachToPage(page2);
|
|
233
|
-
await page2.goto(
|
|
258
|
+
await page2.goto(baseUrl);
|
|
234
259
|
const modelLabel = typeof effectiveModel === "string"
|
|
235
260
|
? effectiveModel
|
|
236
261
|
: `${effectiveModel.planner}/${effectiveModel.pilot}`;
|
|
@@ -242,7 +267,7 @@ export async function runCommand(config, resolvedFiles) {
|
|
|
242
267
|
waitForNetworkIdle: waitForNetworkIdle2,
|
|
243
268
|
onStepComplete: printStepResult,
|
|
244
269
|
});
|
|
245
|
-
result.mode = "
|
|
270
|
+
result.mode = "pilot";
|
|
246
271
|
if (result.status === "passed") {
|
|
247
272
|
const plan = recorder.finalize();
|
|
248
273
|
await savePlan(cwd, plan);
|
|
@@ -261,28 +286,116 @@ export async function runCommand(config, resolvedFiles) {
|
|
|
261
286
|
}
|
|
262
287
|
}
|
|
263
288
|
else {
|
|
264
|
-
//
|
|
265
|
-
const
|
|
289
|
+
// Pilot run — check for partial plan to resume from
|
|
290
|
+
const partialPlan = config.pilot
|
|
291
|
+
? await loadPartialPlan(cwd, suiteSlug, testSlug)
|
|
292
|
+
: null;
|
|
293
|
+
const hasPartial = partialPlan && partialPlan.sourceHash === testHash && partialPlan.steps.length > 0;
|
|
294
|
+
let resumeSteps = test.steps;
|
|
295
|
+
if (hasPartial && partialPlan.remainingSteps) {
|
|
296
|
+
// Replay cached steps from previous partial run
|
|
297
|
+
console.log(` \x1b[36mResuming from partial plan (${String(partialPlan.steps.length)} cached steps)\x1b[0m`);
|
|
298
|
+
const partialResult = await runCachedPlan(page, partialPlan, test.name, {
|
|
299
|
+
waitForNetworkIdle,
|
|
300
|
+
onStepComplete: printStepResult,
|
|
301
|
+
consoleDrain: drain,
|
|
302
|
+
});
|
|
303
|
+
if (partialResult.drifted || partialResult.status === "failed") {
|
|
304
|
+
// Partial plan drifted — fall back to full pilot run
|
|
305
|
+
console.log(` \x1b[33mPartial plan drifted, running full pilot\x1b[0m`);
|
|
306
|
+
await deletePartialPlan(cwd, suiteSlug, testSlug);
|
|
307
|
+
// Re-create page for clean state
|
|
308
|
+
globals.trace.detachFromPage(page);
|
|
309
|
+
if (persistentContext) {
|
|
310
|
+
for (const p of context.pages())
|
|
311
|
+
await p.close().catch(() => { });
|
|
312
|
+
}
|
|
313
|
+
else {
|
|
314
|
+
await context.close();
|
|
315
|
+
}
|
|
316
|
+
const ctx3 = persistentContext ?? (await createContext(browser, browserOpts));
|
|
317
|
+
const page3 = await createPage(ctx3, { headed: browserOpts.headed });
|
|
318
|
+
const { drain: drain3 } = attachConsoleCollector(page3);
|
|
319
|
+
const { waitForNetworkIdle: wni3 } = attachNetworkTracker(page3);
|
|
320
|
+
globals.trace.attachToPage(page3);
|
|
321
|
+
await page3.goto(baseUrl);
|
|
322
|
+
// Fall through to normal pilot below with full steps
|
|
323
|
+
// (can't reassign page/drain/waitForNetworkIdle, so recurse would be complex —
|
|
324
|
+
// for now just re-run the whole test)
|
|
325
|
+
resumeSteps = test.steps;
|
|
326
|
+
const modelLabel3 = typeof effectiveModel === "string" ? effectiveModel : `${effectiveModel.planner}/${effectiveModel.pilot}`;
|
|
327
|
+
const recorder3 = createPlanRecorder(suiteSlug, testSlug, testHash, modelLabel3);
|
|
328
|
+
result = await runTestCase(page3, { name: test.name, steps: resumeSteps }, getOrCreateLLM(), {
|
|
329
|
+
timeout: config.timeout,
|
|
330
|
+
consoleDrain: drain3,
|
|
331
|
+
recorder: recorder3,
|
|
332
|
+
waitForNetworkIdle: wni3,
|
|
333
|
+
onStepComplete: printStepResult,
|
|
334
|
+
});
|
|
335
|
+
result.mode = "pilot";
|
|
336
|
+
if (result.status === "passed") {
|
|
337
|
+
const plan = recorder3.finalize();
|
|
338
|
+
await savePlan(cwd, plan);
|
|
339
|
+
hashIndex[hashKey] = testHash;
|
|
340
|
+
hashIndexDirty = true;
|
|
341
|
+
await deletePartialPlan(cwd, suiteSlug, testSlug);
|
|
342
|
+
await ensureGitignore(cwd);
|
|
343
|
+
console.log(` \x1b[32mCached plan generated for: ${test.name}\x1b[0m`);
|
|
344
|
+
}
|
|
345
|
+
else {
|
|
346
|
+
const completed3 = result.completedInputSteps ?? 0;
|
|
347
|
+
const remaining3 = resumeSteps.slice(completed3);
|
|
348
|
+
if (remaining3.length > 0 && completed3 > 0) {
|
|
349
|
+
const partial = recorder3.finalizePartial(remaining3);
|
|
350
|
+
await savePartialPlan(cwd, partial);
|
|
351
|
+
await ensureGitignore(cwd);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
globals.trace.detachFromPage(page3);
|
|
355
|
+
if (!persistentContext)
|
|
356
|
+
await ctx3.close();
|
|
357
|
+
printTestSummary(result);
|
|
358
|
+
if (config.headed)
|
|
359
|
+
await new Promise((r) => setTimeout(r, 2000));
|
|
360
|
+
continue;
|
|
361
|
+
}
|
|
362
|
+
// Partial replay succeeded — continue with remaining steps
|
|
363
|
+
resumeSteps = partialPlan.remainingSteps;
|
|
364
|
+
console.log(` \x1b[33mSwitching to pilot for ${String(resumeSteps.length)} remaining steps\x1b[0m`);
|
|
365
|
+
}
|
|
366
|
+
const modelLabel = typeof effectiveModel === "string"
|
|
266
367
|
? effectiveModel
|
|
267
368
|
: `${effectiveModel.planner}/${effectiveModel.pilot}`;
|
|
268
|
-
const recorder = createPlanRecorder(suiteSlug, testSlug, testHash,
|
|
269
|
-
|
|
369
|
+
const recorder = createPlanRecorder(suiteSlug, testSlug, testHash, modelLabel);
|
|
370
|
+
const pilotResult = await runTestCase(page, { name: test.name, steps: resumeSteps }, getOrCreateLLM(), {
|
|
270
371
|
timeout: config.timeout,
|
|
271
372
|
consoleDrain: drain,
|
|
272
373
|
recorder,
|
|
273
374
|
waitForNetworkIdle,
|
|
274
375
|
onStepComplete: printStepResult,
|
|
275
376
|
});
|
|
276
|
-
result
|
|
277
|
-
|
|
377
|
+
result = pilotResult;
|
|
378
|
+
result.mode = "pilot";
|
|
278
379
|
if (result.status === "passed") {
|
|
279
380
|
const plan = recorder.finalize();
|
|
280
381
|
await savePlan(cwd, plan);
|
|
281
382
|
hashIndex[hashKey] = testHash;
|
|
282
383
|
hashIndexDirty = true;
|
|
384
|
+
await deletePartialPlan(cwd, suiteSlug, testSlug);
|
|
283
385
|
await ensureGitignore(cwd);
|
|
284
386
|
console.log(` \x1b[32mCached plan generated for: ${test.name}\x1b[0m`);
|
|
285
387
|
}
|
|
388
|
+
else {
|
|
389
|
+
// Save partial plan so next run can resume from here
|
|
390
|
+
const completed = result.completedInputSteps ?? 0;
|
|
391
|
+
const remaining = resumeSteps.slice(completed);
|
|
392
|
+
if (remaining.length > 0 && completed > 0) {
|
|
393
|
+
const partial = recorder.finalizePartial(remaining);
|
|
394
|
+
await savePartialPlan(cwd, partial);
|
|
395
|
+
await ensureGitignore(cwd);
|
|
396
|
+
console.log(` \x1b[33mPartial plan saved (${String(completed)}/${String(resumeSteps.length)} steps cached for next run)\x1b[0m`);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
286
399
|
}
|
|
287
400
|
printTestSummary(result);
|
|
288
401
|
if (config.headed) {
|
package/dist/cli/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
|
package/dist/parser/loader.d.ts
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import { type Suite } from "./schema.js";
|
|
2
|
+
/** Resolved suite with steps flattened to plain strings. */
|
|
3
|
+
export interface ResolvedSuite extends Omit<Suite, "tests"> {
|
|
4
|
+
tests: {
|
|
5
|
+
name: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
steps: string[];
|
|
8
|
+
}[];
|
|
9
|
+
}
|
|
2
10
|
/**
|
|
3
|
-
* Load a suite YAML file: parse, validate, expand reusable steps,
|
|
4
|
-
*
|
|
11
|
+
* Load a suite YAML file: parse, validate, expand reusable steps,
|
|
12
|
+
* flatten block conditionals, and interpolate variables.
|
|
13
|
+
* Returns a fully resolved Suite with all steps as plain strings.
|
|
5
14
|
*/
|
|
6
|
-
export declare function loadSuite(filePath: string): Promise<
|
|
15
|
+
export declare function loadSuite(filePath: string): Promise<ResolvedSuite>;
|
|
7
16
|
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/parser/loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/parser/loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,KAAK,EAAmC,MAAM,aAAa,CAAA;AAGtF,4DAA4D;AAC5D,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;IAC1D,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAA;CAChE;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAmBxE"}
|
package/dist/parser/loader.js
CHANGED
|
@@ -3,8 +3,9 @@ import { parse as parseYaml } from "yaml";
|
|
|
3
3
|
import { SuiteSchema } from "./schema.js";
|
|
4
4
|
import { interpolateSteps } from "./variables.js";
|
|
5
5
|
/**
|
|
6
|
-
* Load a suite YAML file: parse, validate, expand reusable steps,
|
|
7
|
-
*
|
|
6
|
+
* Load a suite YAML file: parse, validate, expand reusable steps,
|
|
7
|
+
* flatten block conditionals, and interpolate variables.
|
|
8
|
+
* Returns a fully resolved Suite with all steps as plain strings.
|
|
8
9
|
*/
|
|
9
10
|
export async function loadSuite(filePath) {
|
|
10
11
|
const raw = await readFile(filePath, "utf-8");
|
|
@@ -13,14 +14,62 @@ export async function loadSuite(filePath) {
|
|
|
13
14
|
const suite = SuiteSchema.parse(parsed);
|
|
14
15
|
const variables = suite.variables ?? {};
|
|
15
16
|
const reusableSteps = suite.reusable_steps ?? {};
|
|
16
|
-
// Expand reusable steps and interpolate variables
|
|
17
|
+
// Expand reusable steps, flatten conditionals, and interpolate variables
|
|
17
18
|
const resolvedTests = suite.tests.map((test) => {
|
|
18
|
-
const
|
|
19
|
+
const flattened = flattenSteps(test.steps);
|
|
20
|
+
const expanded = expandReusableSteps(flattened, reusableSteps);
|
|
19
21
|
const interpolated = interpolateSteps(expanded, variables);
|
|
20
22
|
return { ...test, steps: interpolated };
|
|
21
23
|
});
|
|
22
24
|
return { ...suite, tests: resolvedTests };
|
|
23
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Flatten block conditionals into inline conditional strings.
|
|
28
|
+
*
|
|
29
|
+
* Converts:
|
|
30
|
+
* { if: "cookie banner visible", then: ["click Accept", "wait"], else: ["check list"] }
|
|
31
|
+
* Into:
|
|
32
|
+
* "if cookie banner visible then click Accept"
|
|
33
|
+
* "if cookie banner visible then wait"
|
|
34
|
+
* (else branch not yet supported for multi-step — see below)
|
|
35
|
+
*
|
|
36
|
+
* For single-step branches, produces a proper inline conditional:
|
|
37
|
+
* "if cookie banner visible then click Accept else check list"
|
|
38
|
+
*/
|
|
39
|
+
function flattenSteps(steps) {
|
|
40
|
+
const result = [];
|
|
41
|
+
for (const step of steps) {
|
|
42
|
+
if (typeof step === "string") {
|
|
43
|
+
result.push(step);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
// Block conditional → convert to inline conditional string(s)
|
|
47
|
+
const cond = step;
|
|
48
|
+
if (cond.then.length === 1 && (!cond.else || cond.else.length <= 1)) {
|
|
49
|
+
// Simple case: single-step branches → one inline conditional
|
|
50
|
+
let inline = `if ${cond.if} then ${cond.then[0]}`;
|
|
51
|
+
if (cond.else && cond.else.length === 1) {
|
|
52
|
+
inline += ` else ${cond.else[0]}`;
|
|
53
|
+
}
|
|
54
|
+
result.push(inline);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
// Multi-step then branch: emit one conditional per then-step
|
|
58
|
+
for (const thenStep of cond.then) {
|
|
59
|
+
result.push(`if ${cond.if} then ${thenStep}`);
|
|
60
|
+
}
|
|
61
|
+
// Multi-step else branch: emit one conditional per else-step
|
|
62
|
+
// using negated condition (if NOT condition then else-step)
|
|
63
|
+
if (cond.else) {
|
|
64
|
+
for (const elseStep of cond.else) {
|
|
65
|
+
result.push(`if not ${cond.if} then ${elseStep}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return result;
|
|
72
|
+
}
|
|
24
73
|
/**
|
|
25
74
|
* Expand reusable step references.
|
|
26
75
|
* If a step string exactly matches a reusable step name, replace it
|
|
@@ -30,7 +79,6 @@ function expandReusableSteps(steps, reusableSteps) {
|
|
|
30
79
|
const result = [];
|
|
31
80
|
for (const step of steps) {
|
|
32
81
|
if (step in reusableSteps) {
|
|
33
|
-
// Recurse in case reusable steps reference other reusable steps
|
|
34
82
|
const expanded = expandReusableSteps(reusableSteps[step], reusableSteps);
|
|
35
83
|
result.push(...expanded);
|
|
36
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/parser/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAA;AACzC,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/parser/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/parser/schema.d.ts
CHANGED
|
@@ -4,11 +4,27 @@ export declare const ViewportSchema: z.ZodObject<{
|
|
|
4
4
|
width: z.ZodNumber;
|
|
5
5
|
height: z.ZodNumber;
|
|
6
6
|
}, z.core.$strip>;
|
|
7
|
+
/** A block conditional step: if/then/else with multi-step branches. */
|
|
8
|
+
export declare const ConditionalStepSchema: z.ZodObject<{
|
|
9
|
+
if: z.ZodString;
|
|
10
|
+
then: z.ZodArray<z.ZodString>;
|
|
11
|
+
else: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
/** A step is either a plain string or a block conditional. */
|
|
14
|
+
export declare const StepSchema: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
15
|
+
if: z.ZodString;
|
|
16
|
+
then: z.ZodArray<z.ZodString>;
|
|
17
|
+
else: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
18
|
+
}, z.core.$strip>]>;
|
|
7
19
|
/** A single test case: a name and ordered list of plain-English steps. */
|
|
8
20
|
export declare const TestCaseSchema: z.ZodObject<{
|
|
9
21
|
name: z.ZodString;
|
|
10
22
|
description: z.ZodOptional<z.ZodString>;
|
|
11
|
-
steps: z.ZodArray<z.ZodString
|
|
23
|
+
steps: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
24
|
+
if: z.ZodString;
|
|
25
|
+
then: z.ZodArray<z.ZodString>;
|
|
26
|
+
else: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
27
|
+
}, z.core.$strip>]>>;
|
|
12
28
|
}, z.core.$strip>;
|
|
13
29
|
/**
|
|
14
30
|
* Top-level suite definition — matches the YAML format from the spec.
|
|
@@ -18,7 +34,6 @@ export declare const TestCaseSchema: z.ZodObject<{
|
|
|
18
34
|
*/
|
|
19
35
|
export declare const SuiteSchema: z.ZodObject<{
|
|
20
36
|
suite: z.ZodString;
|
|
21
|
-
base_url: z.ZodOptional<z.ZodURL>;
|
|
22
37
|
viewport: z.ZodOptional<z.ZodObject<{
|
|
23
38
|
width: z.ZodNumber;
|
|
24
39
|
height: z.ZodNumber;
|
|
@@ -32,11 +47,17 @@ export declare const SuiteSchema: z.ZodObject<{
|
|
|
32
47
|
tests: z.ZodArray<z.ZodObject<{
|
|
33
48
|
name: z.ZodString;
|
|
34
49
|
description: z.ZodOptional<z.ZodString>;
|
|
35
|
-
steps: z.ZodArray<z.ZodString
|
|
50
|
+
steps: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
51
|
+
if: z.ZodString;
|
|
52
|
+
then: z.ZodArray<z.ZodString>;
|
|
53
|
+
else: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
54
|
+
}, z.core.$strip>]>>;
|
|
36
55
|
}, z.core.$strip>>;
|
|
37
56
|
}, z.core.$strip>;
|
|
38
57
|
/** Inferred TypeScript types from the schemas. */
|
|
39
58
|
export type Suite = z.infer<typeof SuiteSchema>;
|
|
40
59
|
export type TestCase = z.infer<typeof TestCaseSchema>;
|
|
60
|
+
export type ConditionalStep = z.infer<typeof ConditionalStepSchema>;
|
|
61
|
+
export type Step = z.infer<typeof StepSchema>;
|
|
41
62
|
export type Viewport = z.infer<typeof ViewportSchema>;
|
|
42
63
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/parser/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,2BAA2B;AAC3B,eAAO,MAAM,cAAc;;;iBAGzB,CAAA;AAEF,0EAA0E;AAC1E,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/parser/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,2BAA2B;AAC3B,eAAO,MAAM,cAAc;;;iBAGzB,CAAA;AAEF,uEAAuE;AACvE,eAAO,MAAM,qBAAqB;;;;iBAIhC,CAAA;AAEF,8DAA8D;AAC9D,eAAO,MAAM,UAAU;;;;mBAGrB,CAAA;AAEF,0EAA0E;AAC1E,eAAO,MAAM,cAAc;;;;;;;;iBAIzB,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;iBAYtB,CAAA;AAEF,kDAAkD;AAClD,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAC/C,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AACrD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACnE,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAA;AAC7C,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA"}
|
package/dist/parser/schema.js
CHANGED
|
@@ -4,11 +4,22 @@ export const ViewportSchema = z.object({
|
|
|
4
4
|
width: z.number().int().positive(),
|
|
5
5
|
height: z.number().int().positive(),
|
|
6
6
|
});
|
|
7
|
+
/** A block conditional step: if/then/else with multi-step branches. */
|
|
8
|
+
export const ConditionalStepSchema = z.object({
|
|
9
|
+
if: z.string().min(1),
|
|
10
|
+
then: z.array(z.string().min(1)).min(1),
|
|
11
|
+
else: z.array(z.string().min(1)).optional(),
|
|
12
|
+
});
|
|
13
|
+
/** A step is either a plain string or a block conditional. */
|
|
14
|
+
export const StepSchema = z.union([
|
|
15
|
+
z.string().min(1),
|
|
16
|
+
ConditionalStepSchema,
|
|
17
|
+
]);
|
|
7
18
|
/** A single test case: a name and ordered list of plain-English steps. */
|
|
8
19
|
export const TestCaseSchema = z.object({
|
|
9
20
|
name: z.string().min(1),
|
|
10
21
|
description: z.string().optional(),
|
|
11
|
-
steps: z.array(
|
|
22
|
+
steps: z.array(StepSchema).min(1),
|
|
12
23
|
});
|
|
13
24
|
/**
|
|
14
25
|
* Top-level suite definition — matches the YAML format from the spec.
|
|
@@ -18,7 +29,6 @@ export const TestCaseSchema = z.object({
|
|
|
18
29
|
*/
|
|
19
30
|
export const SuiteSchema = z.object({
|
|
20
31
|
suite: z.string().min(1),
|
|
21
|
-
base_url: z.url().optional(),
|
|
22
32
|
viewport: ViewportSchema.optional(),
|
|
23
33
|
model: z
|
|
24
34
|
.union([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/parser/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,2BAA2B;AAC3B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAA;AAEF,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/parser/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,2BAA2B;AAC3B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAA;AAEF,uEAAuE;AACvE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAA;AAEF,8DAA8D;AAC9D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC;IACjC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjB,qBAAqB;CACrB,CAAC,CAAA;AAEF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACjC,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;IACnC,KAAK,EAAE,CAAC;SACN,KAAK,CAAC;QACN,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACjB,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;KAClE,CAAC;SACD,QAAQ,EAAE;IACZ,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtD,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3E,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACrC,CAAC,CAAA"}
|
|
@@ -20,7 +20,12 @@ export interface ParsedLine {
|
|
|
20
20
|
*/
|
|
21
21
|
export declare function parseA11ySnapshot(raw: string): A11yNode[];
|
|
22
22
|
/**
|
|
23
|
-
* Format the a11y tree as a readable string with refs
|
|
23
|
+
* Format the a11y tree as a readable string with refs and enrichment data,
|
|
24
|
+
* for display and LLM consumption.
|
|
25
|
+
*
|
|
26
|
+
* Enrichment sub-lines (text, placeholder, value) appear indented below
|
|
27
|
+
* each node, giving the LLM a single correlated view of each element's
|
|
28
|
+
* identity and content.
|
|
24
29
|
*/
|
|
25
30
|
export declare function formatA11yTree(nodes: A11yNode[], indent?: number): string;
|
|
26
31
|
//# sourceMappingURL=a11y-parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a11y-parser.d.ts","sourceRoot":"","sources":["../../src/pilot/a11y-parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAsBpD,2DAA2D;AAC3D,wBAAgB,eAAe,IAAI,IAAI,CAGtC;AA0CD,MAAM,WAAW,UAAU;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACX;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAuEzD;AA4DD
|
|
1
|
+
{"version":3,"file":"a11y-parser.d.ts","sourceRoot":"","sources":["../../src/pilot/a11y-parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAsBpD,2DAA2D;AAC3D,wBAAgB,eAAe,IAAI,IAAI,CAGtC;AA0CD,MAAM,WAAW,UAAU;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACX;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAuEzD;AA4DD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,MAAM,SAAI,GAAG,MAAM,CAgCpE"}
|