@molecule/api-ai-tools 1.5.20 → 1.6.2

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.
@@ -122,19 +122,18 @@ export declare function outputRedirectTarget(command: string): string | null;
122
122
  * often `html`, which prints nothing per test. `--reporter=list` is added
123
123
  * when the playwright run is the command's last step and nothing is piped or
124
124
  * redirected from it: it writes each result as it finishes, and it is the
125
- * shape the platform reads a background suite back in (`suite-fail-fast.ts`'s
126
- * fail-fast note and the Tests bar both parse `list` lines). A run that names
127
- * `--reporter=line` is switched to `list` for the same reason — `line` writes
128
- * `[n/N] <title>` with no ✓/✘ mark and no duration, so on X1 flash-m62 an
129
- * 8.3-minute walk of one suite could never trip the fail-fast note.
130
- *
131
- * A run being ITERATED on (capped, narrowed, or by file) gets `list,line` instead
132
- * of `list` alone. `list` holds every failure's error for the summary at the end,
133
- * so mid-run its log says only how long each failure took; `line` writes the body
134
- * as the failure happens, and a look at a running suite (`wait_for_task`'s
135
- * repeating-cause note, `suite-fail-fast.ts`) can then name the repeating cause by
136
- * its error message. X1 flash-m76 walked 15 tests for 4.0 minutes, every one a
137
- * `TimeoutError: page.waitForURL` from one missing `navigate('/')`.
125
+ * shape the platform reads a background suite back in.
126
+ *
127
+ * The run ends up with exactly ONE reporter that prints each failure — `list`. A run that names
128
+ * any other printing reporter has it REPLACED, never joined: two of them write every test result
129
+ * into the log twice, which on X1 flash-m83 (2026-10-16) made a `--reporter=list,line` run (its
130
+ * `line` added by this function one run earlier) report two distinct failures as "4 of this run's
131
+ * tests have already failed the same way", and the executor stopped a 139-test walk at test 21
132
+ * with a single cause in hand. `line` alone is no use either: it writes `[n/N] <title>` with no
133
+ * ✓/✘ mark and no duration, so on X1 flash-m62 an 8.3-minute walk of one suite could never trip
134
+ * the fail-fast note. A reporter set that writes a machine format to a file (`json`, `html`,
135
+ * `junit`) is the
136
+ * executor's own and is left exactly as it is — so is any reporter this build does not know.
138
137
  *
139
138
  * Only the command's last step is touched, and only its reporter, and only when that step runs
140
139
  * something: `npx playwright test --list` takes two seconds and writes nothing per test, so
@@ -160,13 +159,17 @@ export declare function streamingBackgroundCommand(command: string): {
160
159
  */
161
160
  export declare function isSuiteRunCommand(command: string): boolean;
162
161
  /**
163
- * Whether a command starts a Playwright run — `playwright test` in a form that runs something.
162
+ * Whether a command starts a Playwright run — a `playwright test` in command position, in a form
163
+ * that runs something.
164
164
  *
165
165
  * `npx playwright test --list` matched every `\bplaywright\s+test\b` test in the platform and was
166
166
  * then treated as a run: held (flash-m79's config check), backgrounded for a run that outlasts
167
167
  * the tool's ceiling, and rewritten with `--reporter`. A list takes two seconds, prints its lines
168
168
  * and exits, so it is none of those; {@link commandRunsNoTests} is what decides.
169
169
  *
170
+ * A `playwright test` named as an argument is not a run either (`head -30 run-tests.sh`,
171
+ * `grep -n "playwright test" e2e/README.md`): the command that runs is the reader.
172
+ *
170
173
  * @param command - The shell command.
171
174
  * @returns True when the command starts a Playwright run.
172
175
  */
@@ -283,6 +286,21 @@ export declare function findPatternArgs(pattern: string): string;
283
286
  * @returns An actionable error string, or null when `path` is a non-empty string.
284
287
  */
285
288
  export declare function pathArgError(path: unknown, tool: string): string | null;
289
+ /**
290
+ * The error for a file tool called with NO arguments at all — `edit_file {}`, the
291
+ * shape a truncated provider stream leaves behind.
292
+ *
293
+ * The path message is the wrong reading of it: "requires a non-empty path
294
+ * argument" says the call was understood and the path was left out, so the model
295
+ * retries the call it just made instead of sending the whole call again (x0
296
+ * flash-m83 +29:32: `edit_file {}`, one round lost). An empty object and a
297
+ * missing `path` are different failures and deserve different sentences.
298
+ *
299
+ * @param input - The raw tool input.
300
+ * @param tool - The tool name, for the message.
301
+ * @returns The truncation message, or null when the call carried any argument.
302
+ */
303
+ export declare function emptyCallError(input: unknown, tool: string): string | null;
286
304
  /**
287
305
  * Detect a "read/edit targeted a directory, not a file" failure from a backend
288
306
  * error message (local fs `EISDIR` or the sandbox's `cat: X: Is a directory`),
@@ -329,29 +347,79 @@ export declare function sliceLines(content: string, window?: {
329
347
  totalLines: number;
330
348
  truncated: boolean;
331
349
  } | null;
332
- /** Max search results. */
350
+ /**
351
+ * A file's text as the request counts it: the length of its JSON string.
352
+ *
353
+ * JSON escaping (`\n` → `\\n`, `"` → `\"`) costs characters, and the request
354
+ * side counts the SERIALIZED tool result. A window of 59,000 characters of
355
+ * source — 1,200 lines — arrives as ~60,200 characters of JSON, over the
356
+ * ceiling it was sized for, so a window is measured with this rather than by
357
+ * its raw text length.
358
+ *
359
+ * @param text - The text.
360
+ * @returns Its serialized length, without the surrounding quotes.
361
+ */
362
+ export declare function serializedChars(text: string): number;
363
+ /**
364
+ * How many leading lines of a file fit inside a budget of SERIALIZED chars,
365
+ * the way `read_file` sizes a window (see {@link serializedChars}).
366
+ *
367
+ * @param content - The file's full text.
368
+ * @param chars - The budget in serialized chars.
369
+ * @returns The line count, at least one.
370
+ */
371
+ export declare function linesWithinSerialized(content: string, chars: number): number;
333
372
  /**
334
373
  * Most files one batched `read_file` call returns. The cap exists so a survey
335
- * of a large tree cannot swallow the turn's context in one result; the tool
336
- * reports where it stopped so the model continues from there.
374
+ * of a large tree cannot swallow the turn's context in one result; every path
375
+ * past it is named in the result's `note` and listed with its own `error`, so
376
+ * the model continues from there.
337
377
  */
338
378
  export declare const MAX_BATCH_READ_FILES = 25;
339
379
  /**
340
- * Total content bytes one batched `read_file` call returns, across all files.
341
- * The per-file {@link MAX_READ_SIZE} still applies to each one.
380
+ * The most one `read_file` RESULT may carry, in chars of its JSON — every file
381
+ * the call returns, the envelope and the note included. That is how the request
382
+ * side counts a tool result, so it is how this tool counts one too
383
+ * ({@link serializedChars}).
384
+ *
385
+ * One tool result is ONE block in the request, and the request side caps a
386
+ * block: molecule-dev cuts any block over `MAX_TAIL_BLOCK_CHARS` (60,000) in
387
+ * place, keeping ~30 KB of each end. A batched read that crossed it lost its
388
+ * MIDDLE — the cut lands between two `"content"` values, so whole files fell
389
+ * out and the note in their place said only "N characters cut here" — while
390
+ * this tool's own note had promised each of those files that it "fits in one
391
+ * call, so it is not paged": X0 flash-m81 (2026-10-16) read ten e2e specs in
392
+ * one call (121,467 chars), lost the middle six, and bought them again in six
393
+ * further calls (52,908 chars).
394
+ *
395
+ * So the CALL gets the ceiling the request gives it. Whole files are returned
396
+ * up to it; the paths that did not fit are named in `note` and listed in
397
+ * `files` with their own `error`, the shape every other entry has. No file is
398
+ * ever cut, and no read result reaches the request-side cut. A test in
399
+ * molecule-dev's `context-fit` asserts the two ceilings still agree.
342
400
  */
343
- export declare const MAX_BATCH_READ_BYTES: number;
401
+ export declare const MAX_READ_CALL_CHARS = 60000;
402
+ /**
403
+ * Room inside one read result for what is not file content: the `path`, the
404
+ * offset/line fields, and the note.
405
+ *
406
+ * A batch sizes each file against what the call has left
407
+ * ({@link MAX_READ_CALL_CHARS} less this), so the entry that does not fit is
408
+ * caught here rather than by the request-side cut.
409
+ */
410
+ export declare const READ_RESULT_ENVELOPE_CHARS = 1000;
344
411
  /**
345
412
  * The most one read_file call returns for ONE file when no window was asked
346
- * for, in chars. Larger files come back as their first window with a note
347
- * saying how to read the rest.
413
+ * for, in serialized chars: larger files come back as their first window, with
414
+ * a note saying how to read the rest.
348
415
  *
349
416
  * MAX_READ_SIZE (5 MB) is a bound on what the tool will open, not on what it
350
417
  * should hand a model: a single batched read that returned a 1.2 MB README
351
418
  * put the next three provider calls at 366k tokens (~330k of them fresh)
352
- * against a 120k-token context cap (X0 run x5, call 26). ~80 KB is ~20–25k
353
- * tokens — a fifth of that cap, and more than any one file read usually
354
- * needs.
419
+ * against a 120k-token context cap (X0 run x5, call 26). This is the call's
420
+ * own ceiling ({@link MAX_READ_CALL_CHARS}) less the room its envelope takes,
421
+ * so one read result — one file or twenty-five — fits inside what the request
422
+ * side carries without being cut.
355
423
  */
356
424
  export declare const MAX_READ_RETURN_CHARS: number;
357
425
  /**
@@ -486,7 +554,10 @@ export declare const REPEATING_CAUSE_TAIL_BYTES = 40000;
486
554
  * @returns The shell command, safe to hand to the execution backend as-is.
487
555
  */
488
556
  export declare function runningCauseCommand(log: string, own?: string): string;
489
- /** Failures that must share one signature before a running suite's repeating cause is named. */
557
+ /**
558
+ * DISTINCT tests that must share one signature before a running suite's repeating cause is named.
559
+ * A test the log prints twice, or a test that failed twice, is still one test.
560
+ */
490
561
  export declare const REPEATING_FAILURE_MIN = 3;
491
562
  /** One failed test, as a running suite's log names it. */
492
563
  export interface FailedTest {
@@ -499,13 +570,16 @@ export interface FailedTest {
499
570
  }
500
571
  /** A cause repeating among a running suite's failures. */
501
572
  export interface RepeatingFailure {
502
- /** How many failures share the signature. */
573
+ /**
574
+ * How many DISTINCT tests share the signature — a test printed twice (two reporters in the
575
+ * log) or failed twice (a retry) is one test.
576
+ */
503
577
  count: number;
504
578
  /** The shared error line, when the log carries the failures' bodies (`line` reporter). */
505
579
  message: string | null;
506
580
  /** The shared duration in seconds, when the failures line up by how long they ran. */
507
581
  seconds: number | null;
508
- /** The failures that share it, in log order. */
582
+ /** The distinct tests that share it, in log order. */
509
583
  tests: FailedTest[];
510
584
  }
511
585
  /**
@@ -513,39 +587,135 @@ export interface RepeatingFailure {
513
587
  *
514
588
  * Playwright's `list` reporter prints one line per test as it finishes — its mark, its title
515
589
  * path and how long it ran — and defers each failure's error to the summary at the end, so
516
- * mid-run the only signature those lines carry is the duration. A `line` reporter prints the
517
- * failure bodies as they happen, and there the repeated error message itself is the signature,
518
- * which is stronger (it needs no assumption about how long a failure should take), so the
519
- * message is looked for first.
590
+ * mid-run the only signature those lines carry is the duration. Where the log carries the
591
+ * failure bodies (a `line` reporter's output, or a finished run's summary) the signature is the
592
+ * error itself — {@link failureMessage}: the error class plus the locator or the values that
593
+ * differ — which is stronger (it needs no assumption about how long a failure should take), so
594
+ * the message is looked for first and the duration is then left with the tests whose bodies the
595
+ * log does NOT carry.
520
596
  *
521
597
  * Either way the point is the same: a suite whose failures repeat one cause spends its whole
522
598
  * runtime proving that one cause, and the executor watching it can be told so at the third
523
599
  * failure instead of at the last. X1 flash-m76 walked 15 tests in 4.0 minutes where 15.6 s
524
600
  * each was the test timeout and one missing `navigate('/')` was the cause of all of them.
525
601
  *
602
+ * The quorum is of DISTINCT tests — {@link REPEATING_FAILURE_MIN} of them — because a log that
603
+ * prints each failure twice (a second reporter, a retry) had X1 flash-m83 told that four of its
604
+ * tests had failed the same way when two had, so the executor stopped a 139-test walk at test 21
605
+ * with one cause in hand (2026-10-16).
606
+ *
526
607
  * @param log - The log so far.
527
608
  * @returns The repeating cause, or null when no signature has {@link REPEATING_FAILURE_MIN}
528
- * failures behind it.
609
+ * distinct tests behind it.
529
610
  */
530
611
  export declare function repeatingFailure(log: string): RepeatingFailure | null;
531
612
  /** How many of a repeating cause's failures the note lists before it says "and N more". */
532
613
  export declare const REPEATING_FAILURE_LISTED = 5;
614
+ /** How many causes a finished run's summary lists before it says "and N more". */
615
+ export declare const FAILURE_CAUSES_LISTED = 5;
616
+ /** How many of one cause's tests that summary names before it says "and N more". */
617
+ export declare const FAILURE_CAUSE_TESTS_LISTED = 6;
618
+ /**
619
+ * Distinct spec FILES a repeating cause must span — with every failure sharing it and nothing
620
+ * passing since — before a run is called broken for the whole suite.
621
+ *
622
+ * One file's failures can be that file's own setup, so a cause confined to one file is never
623
+ * this. Across {@link UNIVERSAL_CAUSE_FILES} files, on the other hand, whatever it is is a
624
+ * property of the run rather than of a page.
625
+ */
626
+ export declare const UNIVERSAL_CAUSE_FILES = 3;
627
+ /** A repeating cause that is failing the WHOLE run — see {@link universalCause}. */
628
+ export interface UniversalCause {
629
+ /** How many distinct tests share it. */
630
+ count: number;
631
+ /** The distinct spec files they live in, in the order the log named them. */
632
+ files: string[];
633
+ }
634
+ /**
635
+ * Whether a repeating cause is failing the whole run — the one case where stopping it is the
636
+ * right call.
637
+ *
638
+ * The test is: the cause accounts for every failure the log names, it has hit
639
+ * {@link UNIVERSAL_CAUSE_FILES} spec files or more, and nothing has passed since its first
640
+ * failure. An app that is not up, a 5xx on every request, or a selector that is missing on every
641
+ * page all look like that, and every remaining test will fail the same way — so the run's
642
+ * remaining minutes measure nothing. Anything less is NOT this: a cause that stops at one file,
643
+ * or that leaves other tests passing, or that shares the run with failures of another shape,
644
+ * leaves the run with something to say, and the run is the only thing that will say it. X1
645
+ * flash-m83 (2026-10-16) stopped eight local runs at their first repeating cause over 14.5
646
+ * minutes and never finished one; three of its deploys each fixed a single cause that a finished
647
+ * run would have listed alongside the others.
648
+ *
649
+ * @param log - The log so far.
650
+ * @param found - The repeating cause {@link repeatingFailure} found in it.
651
+ * @returns The cause's count and files, or null when the run is not failing whole.
652
+ */
653
+ export declare function universalCause(log: string, found: RepeatingFailure): UniversalCause | null;
654
+ /** One cause of failure in a run, and the tests it hit. */
655
+ export interface FailureCause {
656
+ /** The error line its tests all reported, or null when only the duration ties them together. */
657
+ message: string | null;
658
+ /** The duration they shared in seconds, or null when the error line is the signature. */
659
+ seconds: number | null;
660
+ /** The distinct tests it hit, in the order the log named them. */
661
+ tests: FailedTest[];
662
+ }
533
663
  /**
534
- * The sentence that names a cause repeating among a running suite's failures, and the command
535
- * that stops the run so the cause can be fixed first.
664
+ * Every failure a run names, grouped by the cause behind it — one group per cause, with the
665
+ * tests it hit.
666
+ *
667
+ * The point is that ONE run yields EVERY cause. A Playwright report prints its failures one
668
+ * after another with no statement of which of them share a cause, so a run of 19 failures is 19
669
+ * bodies to read; X1 flash-m83 (2026-10-16) spent three deploys (6.7 minutes) each fixing a
670
+ * single cause, two of them found by runs stopped before they walked the rest.
671
+ *
672
+ * The signature is the cause itself where the log carries the failures' bodies (a finished run,
673
+ * or a `line` reporter) — {@link failureMessage}: the error class plus the locator or the values
674
+ * that differ — and how long they took where it does not (a still-running `list` log, which is
675
+ * why a duration group is labelled as a duration and not as a proven cause). A test the log
676
+ * printed twice, or failed twice, is one test.
677
+ *
678
+ * @param log - The log of a finished or running run.
679
+ * @returns The causes, the one with the most tests first.
680
+ */
681
+ export declare function failuresByCause(log: string): FailureCause[];
682
+ /**
683
+ * The one-line-per-cause summary of a finished run's failures, or null when the run named fewer
684
+ * than two of them.
685
+ *
686
+ * This is what makes a run worth finishing: every cause the run found, in the result the
687
+ * executor reads, so one round of fixes covers all of them rather than the one cause a run
688
+ * stopped early happened to reach.
689
+ *
690
+ * @param log - The finished run's output.
691
+ * @returns The note, or null.
692
+ */
693
+ export declare function failureCausesNote(log: string): string | null;
694
+ /**
695
+ * The sentence that names a cause repeating among a running suite's failures, mid-run.
536
696
  *
537
697
  * Kept here, beside {@link repeatingFailure}, so the two stay in step: every word below is about
538
- * what that function could actually see in the log.
698
+ * what that function could actually see in the log — including the count, which is of DISTINCT
699
+ * tests, so the note never names one or two tests as a cause.
700
+ *
701
+ * The note names the cause early so the executor can START FIXING while the run keeps walking,
702
+ * and it asks for the run to be stopped only when {@link universalCause} says the cause is
703
+ * failing the whole run. X1 flash-m76 (2026-10-16) spent 4.0 minutes walking 15 tests whose one
704
+ * cause was certain at the third, 47 s in, and the note answers exactly that; X1 flash-m83 then
705
+ * stopped eight runs at their first repeating cause in 14.5 minutes and never finished one, so
706
+ * the note must not say to stop when the run still has other causes to name.
539
707
  *
540
708
  * @param found - What {@link repeatingFailure} found.
541
- * @param o - The run's facts: its `taskId`, its `log` path, and `stop` — the shell command that
542
- * stops it (the pids the platform's own pid file leads to).
709
+ * @param o - The run's facts: its `taskId`, its `log` path, `stop` — the shell command that
710
+ * stops it, printed only for a {@link UniversalCause} — and `universal`, what
711
+ * {@link universalCause} found (absent means the run is not failing whole).
543
712
  * @returns The note.
544
713
  */
545
714
  export declare function repeatingFailureNote(found: RepeatingFailure, o: {
546
715
  taskId: string;
547
716
  log: string;
548
717
  stop: string;
718
+ universal?: UniversalCause | null;
549
719
  }): string;
550
720
  /**
551
721
  * Attempt a whitespace-tolerant replacement when an exact `old_string` match
@@ -1 +1 @@
1
- {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"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"}