@molecule/api-ai-tools 1.10.1 → 1.10.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/tools.js CHANGED
@@ -32,16 +32,16 @@ const logBytesByTask = new Map();
32
32
  /** The file a background command writes its own output to, when it redirects it. */
33
33
  const outputFileByTask = new Map();
34
34
  /**
35
- * Task ids whose launch put the suite on {@link PLAYWRIGHT_FAILURES_INLINE_ENV} — the inline
36
- * failure switch, announced by the launch's own change list and written as an `export` at the
37
- * head of the command.
35
+ * Task ids whose log has SHOWN a failure's own body under a `✘` row — the inline failure switch's
36
+ * effect, read from the log itself ({@link logShowsInlineFailureBodies}).
38
37
  *
39
- * The wait note may promise that each failure's own error sits under its ✘ line only when the run
40
- * was actually given the switch: a run whose shape withheld the rewrite prints its failures only
41
- * in the end-of-run summary, and the note that promised inline reports sent the model grepping a
42
- * file they were not in (the m99 class, recurring at xr-molecule-flash-m173 +17:07, +39:14).
43
- * Process memory, like {@link outputFileByTask}: a task this process did not launch recovers it
44
- * from the script on disk, which carries the rewritten command.
38
+ * The wait note may promise that each failure's own error sits under its ✘ line only when the
39
+ * log actually carries one: a run printing its failures only in the end-of-run summary would send
40
+ * the model grepping a file they were not in (the m99 class, recurring at xr-molecule-flash-m173
41
+ * +17:07, +39:14). The command's shape cannot answer that question — every background launch is
42
+ * given the switch, and the executor's own wrapper passes it on — so the evidence is the log, read
43
+ * during the wait (xr-molecule-flash-m191: a wrapper-launched run's cause reached the model 7
44
+ * minutes late because nothing read the log for it).
45
45
  */
46
46
  const inlineFailuresByTask = new Set();
47
47
  /**
@@ -548,7 +548,7 @@ async function backgroundTaskState(backend, command, seconds, ceilingMs) {
548
548
  }
549
549
  import { suiteCommandTarget } from './suite-overlap.js';
550
550
  import { diagnosisTraceCommand } from './trace-artifacts.js';
551
- import { checkBlockedCommand, declaredBudgetSeconds, DEFAULT_SEARCH_EXCLUDED_DIRS, directoryReadHint, earlyReturnCause, emptyCallError, failureCausesNote, findPathArgs, findPatternArgs, fusedLine, htmlOutline, isCommandTimeout, isEnvFilePath, isOutsideRoot, isPlaywrightRunCommand, isSuiteRunCommand, isValidGlob, linesWithinSerialized, literalDirPrefix, MAX_BATCH_READ_FILES, MAX_FIND_RESULTS, MAX_HTML_INLINE_CHARS, MAX_OUTPUT_SIZE, MAX_READ_CALL_CHARS, MAX_READ_RETURN_CHARS, MAX_READ_SIZE, MAX_SEARCH_CONTEXT_LINES, MAX_SEARCH_RESULTS, MAX_WRITE_SIZE, outputIsWithheldUntilExit, outputRedirectTarget, parseCheckCommand, parseCheckProblem, pathArgError, PLAYWRIGHT_FAILURES_INLINE_ENV, printsOnlySource, READ_RESULT_ENVELOPE_CHARS, redactSecrets, redactSecretsInCode, repeatedSuiteRunError, repeatingFailure, repeatingFailureNote, resolvePath, RUNNING_FAILURE_LINES, runningCauseCommand, runningOutputSliceCommand, searchTimeoutError, serializedChars, shellQuote, sliceLines, SMALL_FILE_WHOLE_CHARS, streamingBackgroundCommand, stripControlChars, suiteRunBudgetCommand, suiteRunPipelinePlacement, suiteRunPriorityLaunch, TOOL_RESULT_CHARS, truncateMiddle, universalCause, whitespaceTolerantReplace, withoutSuiteTimeout, } from './utilities.js';
551
+ import { checkBlockedCommand, declaredBudgetSeconds, DEFAULT_SEARCH_EXCLUDED_DIRS, directoryReadHint, earlyReturnCause, emptyCallError, failureCausesNote, findPathArgs, findPatternArgs, fusedLine, htmlOutline, isCommandTimeout, isEnvFilePath, isOutsideRoot, isPlaywrightRunCommand, isSuiteRunCommand, isValidGlob, linesWithinSerialized, literalDirPrefix, logShowsInlineFailureBodies, MAX_BATCH_READ_FILES, MAX_FIND_RESULTS, MAX_HTML_INLINE_CHARS, MAX_OUTPUT_SIZE, MAX_READ_CALL_CHARS, MAX_READ_RETURN_CHARS, MAX_READ_SIZE, MAX_SEARCH_CONTEXT_LINES, MAX_SEARCH_RESULTS, MAX_WRITE_SIZE, outputIsWithheldUntilExit, outputRedirectTarget, parseCheckCommand, parseCheckProblem, pathArgError, printsOnlySource, READ_RESULT_ENVELOPE_CHARS, redactSecrets, redactSecretsInCode, repeatedSuiteRunError, repeatingFailure, repeatingFailureNote, resolvePath, RUNNING_FAILURE_LINES, runningCauseCommand, runningOutputSliceCommand, searchTimeoutError, serializedChars, shellQuote, sliceLines, SMALL_FILE_WHOLE_CHARS, streamingBackgroundCommand, stripControlChars, suiteRunBudgetCommand, suiteRunConfigCommand, suiteRunPipelinePlacement, suiteRunPriorityLaunch, TOOL_RESULT_CHARS, truncateMiddle, universalCause, whitespaceTolerantReplace, withoutSuiteTimeout, } from './utilities.js';
552
552
  /**
553
553
  * How long exec_command waits for a command it backgrounded only because the
554
554
  * command asked for more than the tool's ceiling, before handing back a task id.
@@ -556,14 +556,32 @@ import { checkBlockedCommand, declaredBudgetSeconds, DEFAULT_SEARCH_EXCLUDED_DIR
556
556
  const OVER_CEILING_GRACE_MS = 45_000;
557
557
  /**
558
558
  * The machine-readable mark on a result whose run carried the supplied suite's own settings
559
- * ({@link ToolBuildConfig.suiteBudget}) — the flags actually written, so a consumer's notes can
560
- * treat those settings as equal to the suite's instead of re-reading the config.
559
+ * ({@link ToolBuildConfig.suiteBudget}) — the flags and derived config actually written, every
560
+ * pinned value, and the RESIDUAL drift, so a consumer's notes can treat those settings as equal to
561
+ * the suite's instead of re-reading the config, and can see which ones this run still measures
562
+ * differently.
561
563
  *
562
- * @param pinned - The flags put on the command.
563
- * @returns The result field, or nothing when no flag was placed.
564
+ * @param outcome - What the placement put on the command.
565
+ * @returns The result field, or nothing when nothing was placed and nothing differs.
564
566
  */
565
- function suiteBudgetField(pinned) {
566
- return pinned.length === 0 ? {} : { suiteBudget: { pinned: [...pinned] } };
567
+ function suiteBudgetField(outcome) {
568
+ const field = {};
569
+ if (outcome.pinned.length > 0)
570
+ field.pinned = [...outcome.pinned];
571
+ if (outcome.config !== null)
572
+ field.config = outcome.config;
573
+ // A derived config that was NOT placed carries nothing: its values are then residual drift.
574
+ const values = outcome.config === null ? {} : { ...outcome.values };
575
+ if (Object.keys(values).length > 0)
576
+ field.values = values;
577
+ const carried = new Set([
578
+ ...outcome.pinned.map((flag) => flag.slice(2).split('=')[0] ?? ''),
579
+ ...Object.keys(values),
580
+ ]);
581
+ const drift = Object.fromEntries(Object.entries(outcome.drift).filter(([key]) => !carried.has(key)));
582
+ if (Object.keys(drift).length > 0)
583
+ field.drift = drift;
584
+ return Object.keys(field).length === 0 ? {} : { suiteBudget: field };
567
585
  }
568
586
  /**
569
587
  * The closing advice on an over-budget message for a command that is not a test
@@ -2530,7 +2548,7 @@ export function buildTools(backend, config) {
2530
2548
  // its base live); this tool only writes the flags where they belong. Before the background
2531
2549
  // branch, so a task launch and a foreground run carry them alike.
2532
2550
  let budgetNote = null;
2533
- let budgetPinned = [];
2551
+ const budget = { pinned: [], config: null, values: {}, drift: {} };
2534
2552
  if (config?.suiteBudget !== undefined && isPlaywrightRunCommand(command)) {
2535
2553
  try {
2536
2554
  const pin = await config.suiteBudget(command, cwd);
@@ -2539,8 +2557,19 @@ export function buildTools(backend, config) {
2539
2557
  if (pin.flags.length > 0) {
2540
2558
  const pinned = suiteRunBudgetCommand(command, pin.flags);
2541
2559
  command = pinned.command;
2542
- budgetPinned = pinned.placed;
2560
+ budget.pinned = pinned.placed;
2561
+ }
2562
+ // The settings with no Playwright flag are carried by a config the consumer wrote
2563
+ // outside the supplied suite: this run loads that one instead of the config it named.
2564
+ if (pin.config !== undefined && pin.config !== '') {
2565
+ const configured = suiteRunConfigCommand(command, pin.config);
2566
+ if (configured.placed) {
2567
+ command = configured.command;
2568
+ budget.config = pin.config;
2569
+ }
2543
2570
  }
2571
+ budget.values = pin.values ?? {};
2572
+ budget.drift = pin.drift ?? {};
2544
2573
  }
2545
2574
  }
2546
2575
  catch (_error) {
@@ -2637,10 +2666,9 @@ export function buildTools(backend, config) {
2637
2666
  const ownFile = ownTarget === null ? null : posix.resolve(cwd, ownTarget);
2638
2667
  if (ownFile)
2639
2668
  outputFileByTask.set(id, ownFile);
2640
- // Whether the run's failures print as they fail, so a wait can promise that only when
2641
- // it is true (see inlineFailuresByTask).
2642
- if (streaming.command.startsWith(`export ${PLAYWRIGHT_FAILURES_INLINE_ENV}=1; `))
2643
- inlineFailuresByTask.add(id);
2669
+ // Nothing is recorded about the inline-failure switch here: every background launch is
2670
+ // given it, so the command says nothing about what the log will carry. A wait reads the
2671
+ // log itself (see inlineFailuresByTask).
2644
2672
  runByTask.set(id, { command: streaming.command, cwd });
2645
2673
  await backend.writeFile(script, `${streaming.command}\n`);
2646
2674
  // The clock the grace return below reports a stopped run against: the command is
@@ -2732,7 +2760,7 @@ export function buildTools(backend, config) {
2732
2760
  ...(pipeNote === null ? {} : { exitCodeNote: pipeNote }),
2733
2761
  ...(output.length > MAX_OUTPUT_SIZE ? { truncated: true, fullOutput: log } : {}),
2734
2762
  ...(notes.length ? { note: notes.join(' ') } : {}),
2735
- ...suiteBudgetField(budgetPinned),
2763
+ ...suiteBudgetField(budget),
2736
2764
  };
2737
2765
  }
2738
2766
  await new Promise((r) => setTimeout(r, 1_500));
@@ -2743,7 +2771,7 @@ export function buildTools(backend, config) {
2743
2771
  log,
2744
2772
  exitFile,
2745
2773
  ...(peekedTask?.slice.trim() ? { outputSoFar: sanitizeOutput(peekedTask.slice) } : {}),
2746
- ...suiteBudgetField(budgetPinned),
2774
+ ...suiteBudgetField(budget),
2747
2775
  note: (sleepNote ? `${sleepNote} ` : '') +
2748
2776
  (budgetNote ? `${budgetNote} ` : '') +
2749
2777
  (overCeiling
@@ -2873,7 +2901,7 @@ export function buildTools(backend, config) {
2873
2901
  exitCode: result.exitCode,
2874
2902
  ...(exitCodeNote === null ? {} : { exitCodeNote }),
2875
2903
  ...(peekedTask?.slice.trim() ? { outputSoFar: sanitizeOutput(peekedTask.slice) } : {}),
2876
- ...suiteBudgetField(budgetPinned),
2904
+ ...suiteBudgetField(budget),
2877
2905
  ...(sleepNote || ceilingNote || traced.change || budgetNote
2878
2906
  ? {
2879
2907
  note: [sleepNote, ceilingNote, traced.change, budgetNote].filter(Boolean).join(' '),
@@ -2964,11 +2992,6 @@ export function buildTools(backend, config) {
2964
2992
  // already resolved and stays as written.
2965
2993
  if (target)
2966
2994
  outputFileByTask.set(taskId, posix.resolve(root, target));
2967
- // The rewritten command is on disk with the `export` head it was given: a task this
2968
- // process did not launch still says whether its failures print as they fail
2969
- // (see inlineFailuresByTask).
2970
- if (script.startsWith(`export ${PLAYWRIGHT_FAILURES_INLINE_ENV}=1; `))
2971
- inlineFailuresByTask.add(taskId);
2972
2995
  }
2973
2996
  catch (_error) {
2974
2997
  // No script under that id: this process did not start the task, so
@@ -3118,6 +3141,11 @@ export function buildTools(backend, config) {
3118
3141
  // No look at the log this tick; the next one asks again.
3119
3142
  continue;
3120
3143
  }
3144
+ // The log is the evidence for what the wait may promise about it: a failure's own body
3145
+ // printed under a `✘` row means the run writes each failure's report as that test fails
3146
+ // (see inlineFailuresByTask).
3147
+ if (!inlineFailuresByTask.has(taskId) && logShowsInlineFailureBodies(causeLog))
3148
+ inlineFailuresByTask.add(taskId);
3121
3149
  const found = repeatingFailure(causeLog);
3122
3150
  // The page-renders-nothing cause needs no repeated signature: every spec waits for its
3123
3151
  // own first element, so the failures differ while the cause does not (m141).
@@ -3209,6 +3237,12 @@ export function buildTools(backend, config) {
3209
3237
  // No slice: the notes still say how to peek, and the task id still
3210
3238
  // carries how long the command has been running.
3211
3239
  }
3240
+ // The slice is the log's own text, so it answers what the note may promise: a body under
3241
+ // a `✘` row means this run prints each failure's report as that test fails (see
3242
+ // inlineFailuresByTask). Read here as well as in the cause look, because a wait shorter
3243
+ // than the look's interval never takes one.
3244
+ if (!inlineFailuresByTask.has(taskId) && logShowsInlineFailureBodies(soFar))
3245
+ inlineFailuresByTask.add(taskId);
3212
3246
  // ONE sentence of facts, each said once, then what to do next: the lead
3213
3247
  // this branch used to write ("Still running after 342s of waiting, and its
3214
3248
  // output is still growing (71839 bytes) — slow, not stuck") restated the
@@ -189,6 +189,16 @@ export interface TraceMissingText {
189
189
  method: string;
190
190
  /** The path of the response that carried it (`/api/tags`). */
191
191
  path: string;
192
+ /**
193
+ * Whether the trace PROVES the page dropped the text: the named response is a successful GET
194
+ * of the collection that started after the last navigation, and the text is absent from the
195
+ * page's own failure snapshot ({@link traceArtifactsScript}).
196
+ *
197
+ * Absent when the evidence is weaker — a creation POST carried the text (m194's button failure
198
+ * was not a missing article), the snapshot still showed it, or the trace recorded no clock —
199
+ * and the note then says only that a response contained the text.
200
+ */
201
+ dropped?: true;
192
202
  }
193
203
  /**
194
204
  * A write the trace recorded answering a boolean field, and a LATER GET of the same resource
@@ -213,6 +223,39 @@ export interface TraceReadContradiction {
213
223
  /** The later GET of the same resource (`GET /api/profiles/x`). */
214
224
  read: TraceRequest;
215
225
  }
226
+ /**
227
+ * A visibility failure whose locator RESOLVED: Playwright calls an element with a zero-size box
228
+ * "hidden" even when it is painted, so the useful fact is why the box is empty. The trace's own
229
+ * failure snapshot carries the element's children — read here, never guessed.
230
+ */
231
+ export interface TraceHiddenBox {
232
+ /** The locator the assertion printed (`locator('a.navbar-brand')`), or the element it names. */
233
+ locator: string;
234
+ /** The element's tag, lowercased (`a`). */
235
+ tag: string;
236
+ /** The element's own inline style, when the snapshot carries one. */
237
+ style?: string;
238
+ /**
239
+ * The `<img>` the element wraps when that image is its only element child and the element has
240
+ * no text of its own: the size the box would collapse to.
241
+ */
242
+ image?: {
243
+ /** The image's `src`, bounded. */
244
+ src?: string;
245
+ /** Its `width` attribute. */
246
+ width?: string;
247
+ /** Its `height` attribute. */
248
+ height?: string;
249
+ /** Its inline `style`. */
250
+ style?: string;
251
+ /** Its `class`. */
252
+ className?: string;
253
+ /** Its `alt` text. */
254
+ alt?: string;
255
+ };
256
+ /** True when the element has no text and no element children at all. */
257
+ empty?: true;
258
+ }
216
259
  /** What one trace says: the test it belongs to, the requests it made, and its console lines. */
217
260
  export interface TraceArtifact {
218
261
  /** The failure's spec file, relative to the run's directory, when the trace names one. */
@@ -298,6 +341,13 @@ export interface TraceArtifact {
298
341
  * and on traces read before this field existed.
299
342
  */
300
343
  readContradiction?: TraceReadContradiction;
344
+ /**
345
+ * A visibility failure whose locator RESOLVED into an empty box — Playwright's "hidden" — with
346
+ * the element's children read from the failure snapshot ({@link TraceHiddenBox}). The note uses
347
+ * it to name why the box is empty (an `<img>` with no CSS size, a textless element) instead of
348
+ * leaving the run to probe computed styles (xr-molecule-flash-m197).
349
+ */
350
+ hiddenBox?: TraceHiddenBox;
301
351
  }
302
352
  /** How many traces one read reports, newest first. */
303
353
  export declare const MAX_TRACE_ARTIFACTS = 12;
@@ -476,6 +526,21 @@ export interface TraceRunReport {
476
526
  * @returns True when the path names a credential exchange.
477
527
  */
478
528
  export declare function isCredentialExchangePath(path: string, authEndpoints?: readonly string[]): boolean;
529
+ /**
530
+ * The sentence a "hidden" visibility failure earns when the trace proved WHY the box is empty.
531
+ *
532
+ * Playwright calls an element with a zero-size box hidden even when it is painted, so the answer
533
+ * is in the element's children. `a.navbar-brand` on xr-molecule-flash-m197 was 0×4 px because its
534
+ * only child was `<img src="/conduit-logo.svg" height="26">`: an SVG with a `viewBox` and no
535
+ * width/height has no intrinsic size, and the `height` attribute loses to Tailwind's preflight
536
+ * (`img { max-width: 100%; height: auto }`), which the scaffold's own `index.css` imports. The
537
+ * note said only "the cause is in the page", and the run spent over four minutes rasterising an
538
+ * SVG to PNG. Only what the snapshot shows is claimed ({@link TraceHiddenBox}).
539
+ *
540
+ * @param items - The traces {@link parseTraceArtifacts} read.
541
+ * @returns The sentence, or null when no failure carries a hidden-box reading.
542
+ */
543
+ export declare function hiddenBoxNote(items: readonly TraceArtifact[]): string | null;
479
544
  /**
480
545
  * The note a failed suite run's result carries: what each failing test's page actually sent, and
481
546
  * what came back.
@@ -1 +1 @@
1
- {"version":3,"file":"trace-artifacts.d.ts","sourceRoot":"","sources":["../src/trace-artifacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trace-artifacts.d.ts","sourceRoot":"","sources":["../src/trace-artifacts.ts"],"names":[],"mappings":"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"}