@molecule/api-ai-tools 1.14.2 → 1.14.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/README.md CHANGED
@@ -3,7 +3,7 @@ AUTO-GENERATED — DO NOT EDIT THIS FILE.
3
3
  Generated by `mlcl sync-docs` from the package's src/index.ts JSDoc + mlcl/registry.json.
4
4
  Edits here are overwritten on the next commit (molecule's pre-commit hook regenerates).
5
5
  To change this document, edit the module-level JSDoc in src/index.ts.
6
- Generated: 2026-10-23T11:49:45.764Z
6
+ Generated: 2026-10-24T07:21:35.435Z
7
7
  -->
8
8
 
9
9
  # @molecule/api-ai-tools
@@ -550,6 +550,21 @@ interface DiagnosisRunContext {
550
550
  * `excludedTestTitles` gives the rest of the platform.
551
551
  */
552
552
  approvedExclusions?: readonly string[]
553
+ /**
554
+ * Whether the caller is STARTING this command as the graded proof itself — the run the app is
555
+ * judged by, composed and launched by the platform — rather than the executor's own diagnosis.
556
+ *
557
+ * A redeploy's proof is the targeted set the last walk left: its command names the failures it
558
+ * re-runs (`file:line`, and the specs they live in), so it reads as a narrowed run. That
559
+ * selection is the proof's own scope, so the graded run keeps the suite's retries instead of
560
+ * walking each failure once the way a diagnosis does. Only the selection is excused — a failed
561
+ * cap, a title filter, a last-failed set and a local targeted selection stay diagnoses whatever the caller
562
+ * says here — and only a command the PLATFORM composes and launches is ever the proof.
563
+ *
564
+ * Host code marks the launch input with {@link PLATFORM_PROOF} rather than a JSON key: tool
565
+ * input a model sends is JSON, and JSON has no symbol keys, so no model call can claim this.
566
+ */
567
+ platformProof?: boolean
553
568
  }
554
569
  ```
555
570
 
@@ -2726,13 +2741,15 @@ function withSuiteConfig(command: string, config: string | null | undefined): st
2726
2741
 
2727
2742
  **Returns:** The command with the flag, or the command unchanged.
2728
2743
 
2729
- #### `scopedRerunCommand(command, locations, excluded, config, cwd, env)`
2744
+ #### `scopedRerunCommand(command, locations, excluded, config, cwd, env, options)`
2730
2745
 
2731
2746
  The whole-suite command made scoped to the tests it should re-run instead: the same
2732
2747
  invocation — same launcher, same settings — with the named `file:line`s in place of every
2733
2748
  positional selection the run carried (a spec file, a suite directory or a regex filter),
2734
2749
  `--last-failed` dropped (it re-runs the tests that never ran too, X1 flash-m60) and
2735
- `--retries=0` set (a re-run of a known failure does not need to pay for retries).
2750
+ `--retries=0` set (a re-run of a known failure does not need to pay for retries) — except the
2751
+ re-run of a run against a DEPLOYED URL, which keeps the suite's own retries and tracing
2752
+ (`options.suiteSettings`).
2736
2753
 
2737
2754
  The re-run keeps the run's `> <file>` redirect only in the sense of keeping its OUTPUT there:
2738
2755
  the target is rewritten to a fresh sibling ({@link redirectRunnerOutputsToFreshFiles}), so a
@@ -2754,6 +2771,7 @@ function scopedRerunCommand(
2754
2771
  config?: string | null,
2755
2772
  cwd?: string | null,
2756
2773
  env?: readonly RunEnvSetting[],
2774
+ options?: { suiteSettings?: boolean },
2757
2775
  ): string
2758
2776
  ```
2759
2777
 
@@ -2763,6 +2781,7 @@ function scopedRerunCommand(
2763
2781
  - `config` — The config the run loaded, when the caller knows it; added when the command does not name one.
2764
2782
  - `cwd` — The directory `exec_command` was given, when it was; the base a location is resolved against when the command does not `cd` anywhere.
2765
2783
  - `env` — The settings the REQUEST requires of the suite and this run left out ({@link withRunEnv}): the re-run carries them, so a re-run of a run measured in the wrong mode is not measured in that mode again (xr-molecule-flash-m182 +12:06).
2784
+ - `options` — `suiteSettings` for the re-run of a run against a DEPLOYED URL: it keeps the suite's own retries and tracing instead of the diagnosis ones. The graded measurement is the suite's own settings, and a retry is what leaves a failing test's trace there; the platform's `--retries=0` and its `--trace=retain-on-failure` are both a stricter measurement than the one that was graded, and on X1 xr-molecule-flash-h15 the recording alone turned three budget-bound deployed tests into timeouts.
2766
2785
 
2767
2786
  **Returns:** The scoped command, or the command unchanged when it runs no Playwright suite.
2768
2787
 
@@ -2806,6 +2825,18 @@ function suiteRunInTheWay(candidate: { target: string }, inFlight: readonly T[])
2806
2825
 
2807
2826
  **Returns:** The first run in the way, or null.
2808
2827
 
2828
+ #### `isPlatformProofLaunch(input)`
2829
+
2830
+ Whether an `exec_command` input object carries the host's {@link PLATFORM_PROOF} mark.
2831
+
2832
+ ```typescript
2833
+ function isPlatformProofLaunch(input: unknown): boolean
2834
+ ```
2835
+
2836
+ - `input` — The tool input as the handler received it.
2837
+
2838
+ **Returns:** True only for a launch host code marked; false for anything a model sent.
2839
+
2809
2840
  #### `isDiagnosisRun(command, context)`
2810
2841
 
2811
2842
  Whether a command walks a PART of a suite instead of all of it: a cap that stops it at a failure
@@ -2839,9 +2870,9 @@ function isDiagnosisRun(command: string, context?: DiagnosisRunContext): boolean
2839
2870
  ```
2840
2871
 
2841
2872
  - `command` — The command as the executor sent it.
2842
- - `context` — The request's approved exclusions, when the caller knows them.
2873
+ - `context` — The request's approved exclusions and whether this command IS the graded proof, when the caller knows them. A whole local walk still covers the whole suite; the launcher's separate local-target policy disables its retries. This predicate classifies narrowed selections and their proof purpose.
2843
2874
 
2844
- **Returns:** True when the run is a diagnosis or a re-run, not the whole suite.
2875
+ **Returns:** True when the run is a diagnosis or a re-run, not the whole suite or a deployed proof selection.
2845
2876
 
2846
2877
  #### `discoverSkills(backend)`
2847
2878
 
@@ -3278,20 +3309,25 @@ function suiteRecordsTraces(configText: string): boolean
3278
3309
  #### `diagnosisTraceCommand(args)`
3279
3310
 
3280
3311
  The command a Playwright run needs to leave a readable trace behind, when the suite's config
3281
- would record none.
3312
+ would record none — except a run that can serve as proof, whose own settings are left alone.
3282
3313
 
3283
3314
  The failing tests' requests are only readable if the run wrote them down (see the module doc),
3284
3315
  and the config is where the decision about that lives — the platform does not edit the suite's
3285
- config, so it passes the flag instead, on every Playwright run that starts tests and does not
3286
- already decide its own `--trace`. That includes the whole-suite proof run, which an earlier
3287
- version of this function skipped on the reasoning that its flags are graded: the flag changes
3288
- what is RETAINED, not what passes. `retain-on-failure` keeps the trace only of a test that
3289
- fails — Playwright records it and deletes it when the test passes (playwright's
3290
- `_shouldAbandonTrace` unlinks the temporary trace files of a passing test) — so a green proof
3291
- run keeps nothing extra. A failing one keeps the network log its failures need.
3292
- xr-molecule-flash-m163 (+24:58) is why the proof run is no longer skipped: its one deployed
3293
- failure left only an `error-context.md`, the executor spent the next calls hunting a `trace.zip`
3294
- that could not exist, and then shipped a guessed fix.
3316
+ config, so it passes the flag instead, on a Playwright run that starts tests, does not already
3317
+ decide its own `--trace`, and whose config keeps no trace for its failures.
3318
+
3319
+ A run that can serve as PROOF is the exception: the graded measurement is the suite's own
3320
+ settings, so it keeps its own tracing and retries. That was measured, not assumed — on one
3321
+ sandbox in X1 xr-molecule-flash-h15 (+46:53 → +49:30) the same build ran a three-test deployed
3322
+ subset 3/3 timed out under this flag (17.6–17.9 s against a 15 s per-test budget) and the whole
3323
+ file passed 14/14 without it (10.9–12.1 s). `retain-on-failure` RETAINS only a failing test's
3324
+ trace (Playwright's `_shouldAbandonTrace` unlinks a passing test's), but it RECORDS every
3325
+ action of every test, and for a test near its per-test budget that recording is the difference
3326
+ between passing and timing out. m163 (+24:58) is the failure this flag was added for: its
3327
+ deployed proof run left only an `error-context.md` because the suite traces
3328
+ `on-first-retry` and the run had no retries. That need is met without the flag — the graded
3329
+
3330
+ _(description truncated — read the full text in `node_modules/@molecule/api-ai-tools/dist/trace-artifacts.d.ts`.)_
3295
3331
 
3296
3332
  ```typescript
3297
3333
  function diagnosisTraceCommand(args: {
@@ -3548,7 +3584,7 @@ function streamingBackgroundCommand(
3548
3584
  ```
3549
3585
 
3550
3586
  - `command` — The command as the executor sent it.
3551
- - `context` — What the caller knows beyond the command: the tests the person's request excludes by name ({@link DiagnosisRunContext}). A `--grep-invert` of exactly those is the request's own scope, not a diagnosis, so it keeps the suite's retries on a deployed proof (xr-molecule-flash-m170 +33:16).
3587
+ - `context` — What the caller knows beyond the command: the tests the person's request excludes by name, and whether this command IS the platform's graded proof ({@link DiagnosisRunContext}). A `--grep-invert` of exactly those exclusions is the request's own scope, not a diagnosis, so it keeps the suite's retries on a deployed proof (xr-molecule-flash-m170 +33:16) — and a proof the platform itself composed and launched keeps them whatever its scope, targeted set included (xr-molecule-flash-l48 +26:35).
3552
3588
  - `reportPath` — Where this run should write Playwright's standard `json` report, when the caller keeps one ({@link ./playwright-report.js}). The reporter is added to the run's own reporter set, never in place of one, and its output goes to that file through `PLAYWRIGHT_JSON_OUTPUT_FILE` — so the log, the executors' own reporters and every verdict stay exactly as they are. Omitted, or a run whose reporter set is not this function's to place (already names `json`, sets the variable itself, or whose runner cannot be located), leaves the command untouched and the result's `reportPath` unset.
3553
3589
 
3554
3590
  **Returns:** The command to run, one sentence per change made (empty when none), and the report path when one was actually wired — or `error` when the command starts the suite more than once.
@@ -4330,7 +4366,7 @@ function repeatingFailure(log: string): RepeatingFailure | null
4330
4366
 
4331
4367
  **Returns:** The repeating cause, or null when no signature has {@link REPEATING_FAILURE_MIN} distinct tests behind it.
4332
4368
 
4333
- #### `logShowsInlineFailureBodies(log)`
4369
+ #### `logShowsInlineFailureBodies(log, excluded)`
4334
4370
 
4335
4371
  Whether the log read so far carries a failure's own body under a `✘` row — the evidence that a
4336
4372
  run prints each failure's error as that test fails ({@link PLAYWRIGHT_FAILURES_INLINE_ENV}).
@@ -4347,13 +4383,20 @@ running wait must not be told "as it fails" about a log whose bodies only appear
4347
4383
  During a wait the run has not ended (the exit file is read first), so a block beside a `✘` row
4348
4384
  is one the reporter printed inline.
4349
4385
 
4386
+ A body for a test the request EXCLUDES is not that evidence: its failure does not count for
4387
+ this request ({@link matchingExcludedTitles}), so a wait that handed it over as the diagnostic
4388
+ spent a model round trip and 8 k of partial log on a test the same result says to ignore —
4389
+ exactly what xr-molecule-flash-h13 (+19:06) did twice while the platform's proof was still
4390
+ walking.
4391
+
4350
4392
  ```typescript
4351
- function logShowsInlineFailureBodies(log: string): boolean
4393
+ function logShowsInlineFailureBodies(log: string, excluded?: readonly string[]): boolean
4352
4394
  ```
4353
4395
 
4354
4396
  - `log` — A log, or the slice of one a wait reads.
4397
+ - `excluded` — The test titles the request carves out, if the caller knows them.
4355
4398
 
4356
- **Returns:** True when a `✘` row's own test has a failure body under it.
4399
+ **Returns:** True when a `✘` row's own test, outside the request's exclusions, has a failure body under it.
4357
4400
 
4358
4401
  #### `specFilesSelected(command)`
4359
4402
 
@@ -4602,6 +4645,10 @@ The command that re-runs the tests at `locations` the way the run IN FLIGHT ran
4602
4645
  invocation, in the same directory, narrowed to those tests — or null when the running command
4603
4646
  is not a Playwright run this can narrow.
4604
4647
 
4648
+ A run against a DEPLOYED URL keeps the suite's own retries and tracing in its re-run
4649
+ ({@link scopedRerunCommand} `suiteSettings`): the deployed measurement is the one the deploy is
4650
+ graded on, and neither the platform's `--retries=0` nor its recording `--trace` belongs on it.
4651
+
4605
4652
  The `locations` are the paths the run's own log printed, which are relative to the directory
4606
4653
  that run started in, so the composer resolves them there ({@link scopedRerunCommand}): the
4607
4654
  command names that directory unless it already changes into one of its own, because the
@@ -4870,6 +4917,21 @@ short settle (`sleep 2; curl …`) is a legitimate thing to run.
4870
4917
  const MIN_PEEK_SLEEP_SECONDS: 5
4871
4918
  ```
4872
4919
 
4920
+ #### `PLATFORM_PROOF`
4921
+
4922
+ The key host code sets on an `exec_command` input object to mark the launch as the platform's
4923
+ own graded proof ({@link DiagnosisRunContext} `platformProof`).
4924
+
4925
+ A SYMBOL, deliberately: a model's tool input is JSON, and JSON cannot carry a symbol key, so a
4926
+ model can never forge this mark — a `platform_proof` key it writes into its own JSON is just an
4927
+ unknown input key, and the handler ignores it. Object spreads through a consumer's wrappers, and
4928
+ this package's own input normalization, keep symbol-keyed properties, so the host's intent
4929
+ survives the real launch path.
4930
+
4931
+ ```typescript
4932
+ const PLATFORM_PROOF: typeof PLATFORM_PROOF
4933
+ ```
4934
+
4873
4935
  #### `SPLIT_WORK_ADVICE`
4874
4936
 
4875
4937
  The closing advice on an over-budget message for a command that is not a test
@@ -82,7 +82,9 @@ export declare function withSuiteConfig(command: string, config: string | null |
82
82
  * invocation — same launcher, same settings — with the named `file:line`s in place of every
83
83
  * positional selection the run carried (a spec file, a suite directory or a regex filter),
84
84
  * `--last-failed` dropped (it re-runs the tests that never ran too, X1 flash-m60) and
85
- * `--retries=0` set (a re-run of a known failure does not need to pay for retries).
85
+ * `--retries=0` set (a re-run of a known failure does not need to pay for retries) — except the
86
+ * re-run of a run against a DEPLOYED URL, which keeps the suite's own retries and tracing
87
+ * (`options.suiteSettings`).
86
88
  *
87
89
  * The re-run keeps the run's `> <file>` redirect only in the sense of keeping its OUTPUT there:
88
90
  * the target is rewritten to a fresh sibling ({@link redirectRunnerOutputsToFreshFiles}), so a
@@ -112,9 +114,17 @@ export declare function withSuiteConfig(command: string, config: string | null |
112
114
  * @param env - The settings the REQUEST requires of the suite and this run left out
113
115
  * ({@link withRunEnv}): the re-run carries them, so a re-run of a run measured in the wrong
114
116
  * mode is not measured in that mode again (xr-molecule-flash-m182 +12:06).
117
+ * @param options - `suiteSettings` for the re-run of a run against a DEPLOYED URL: it keeps the
118
+ * suite's own retries and tracing instead of the diagnosis ones. The graded measurement is the
119
+ * suite's own settings, and a retry is what leaves a failing test's trace there; the platform's
120
+ * `--retries=0` and its `--trace=retain-on-failure` are both a stricter measurement than the
121
+ * one that was graded, and on X1 xr-molecule-flash-h15 the recording alone turned three
122
+ * budget-bound deployed tests into timeouts.
115
123
  * @returns The scoped command, or the command unchanged when it runs no Playwright suite.
116
124
  */
117
- export declare function scopedRerunCommand(command: string, locations: readonly string[], excluded?: readonly string[], config?: string | null, cwd?: string | null, env?: readonly RunEnvSetting[]): string;
125
+ export declare function scopedRerunCommand(command: string, locations: readonly string[], excluded?: readonly string[], config?: string | null, cwd?: string | null, env?: readonly RunEnvSetting[], options?: {
126
+ suiteSettings?: boolean;
127
+ }): string;
118
128
  /** One `NAME=value` the request requires of a suite run. */
119
129
  export interface RunEnvSetting {
120
130
  name: string;
@@ -181,7 +191,40 @@ export interface DiagnosisRunContext {
181
191
  * `excludedTestTitles` gives the rest of the platform.
182
192
  */
183
193
  approvedExclusions?: readonly string[];
194
+ /**
195
+ * Whether the caller is STARTING this command as the graded proof itself — the run the app is
196
+ * judged by, composed and launched by the platform — rather than the executor's own diagnosis.
197
+ *
198
+ * A redeploy's proof is the targeted set the last walk left: its command names the failures it
199
+ * re-runs (`file:line`, and the specs they live in), so it reads as a narrowed run. That
200
+ * selection is the proof's own scope, so the graded run keeps the suite's retries instead of
201
+ * walking each failure once the way a diagnosis does. Only the selection is excused — a failed
202
+ * cap, a title filter, a last-failed set and a local targeted selection stay diagnoses whatever the caller
203
+ * says here — and only a command the PLATFORM composes and launches is ever the proof.
204
+ *
205
+ * Host code marks the launch input with {@link PLATFORM_PROOF} rather than a JSON key: tool
206
+ * input a model sends is JSON, and JSON has no symbol keys, so no model call can claim this.
207
+ */
208
+ platformProof?: boolean;
184
209
  }
210
+ /**
211
+ * The key host code sets on an `exec_command` input object to mark the launch as the platform's
212
+ * own graded proof ({@link DiagnosisRunContext} `platformProof`).
213
+ *
214
+ * A SYMBOL, deliberately: a model's tool input is JSON, and JSON cannot carry a symbol key, so a
215
+ * model can never forge this mark — a `platform_proof` key it writes into its own JSON is just an
216
+ * unknown input key, and the handler ignores it. Object spreads through a consumer's wrappers, and
217
+ * this package's own input normalization, keep symbol-keyed properties, so the host's intent
218
+ * survives the real launch path.
219
+ */
220
+ export declare const PLATFORM_PROOF: unique symbol;
221
+ /**
222
+ * Whether an `exec_command` input object carries the host's {@link PLATFORM_PROOF} mark.
223
+ *
224
+ * @param input - The tool input as the handler received it.
225
+ * @returns True only for a launch host code marked; false for anything a model sent.
226
+ */
227
+ export declare function isPlatformProofLaunch(input: unknown): boolean;
185
228
  /**
186
229
  * Whether a command walks a PART of a suite instead of all of it: a cap that stops it at a failure
187
230
  * count, the failures the last run printed (`--last-failed`, `--only-changed`), a title filter, or
@@ -217,9 +260,21 @@ export interface DiagnosisRunContext {
217
260
  * that exclusion, the rewriter added `--retries=0` to it, and the run lost the suite's retries on
218
261
  * the one walk where a network blip is likeliest.
219
262
  *
263
+ * A command the PLATFORM composed and launched AS the graded proof keeps the suite's retries for
264
+ * the SELECTION it composed — the failures a redeploy re-runs, named as files and `file:line`
265
+ * ({@link DiagnosisRunContext} `platformProof`). Only that selection is excused: a cap, a title
266
+ * filter, a last-failed set and a local targeted selection stay diagnoses, so the mark cannot turn a walk of
267
+ * part of the suite into the graded measurement. Which targets are local is
268
+ * {@link suiteCommandTarget}'s answer, and the launch rewrite asks it on the same reading
269
+ * ({@link ./utilities.js} `streamingBackgroundCommand`).
270
+ *
220
271
  * @param command - The command as the executor sent it.
221
- * @param context - The request's approved exclusions, when the caller knows them.
222
- * @returns True when the run is a diagnosis or a re-run, not the whole suite.
272
+ * @param context - The request's approved exclusions and whether this command IS the graded
273
+ * proof, when the caller knows them.
274
+ * A whole local walk still covers the whole suite; the launcher's separate local-target policy
275
+ * disables its retries. This predicate classifies narrowed selections and their proof purpose.
276
+ *
277
+ * @returns True when the run is a diagnosis or a re-run, not the whole suite or a deployed proof selection.
223
278
  */
224
279
  export declare function isDiagnosisRun(command: string, context?: DiagnosisRunContext): boolean;
225
280
  //# sourceMappingURL=suite-overlap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"suite-overlap.d.ts","sourceRoot":"","sources":["../src/suite-overlap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAaH;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAoB1D;AAKD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAS1F;AA4VD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,QAAQ,GAAE,SAAS,MAAM,EAAO,EAChC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EACtB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,EACnB,GAAG,GAAE,SAAS,aAAa,EAAO,GACjC,MAAM,CAgDR;AAED,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAmCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,SAAS,aAAa,EAAO,GAAG,MAAM,CAe3F;AAwOD;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+FAA+F;IAC/F,SAAS,EAAE,OAAO,CAAA;IAClB,oFAAoF;IACpF,MAAM,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,gBAAgB,EACzD,SAAS,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EAC7B,QAAQ,EAAE,SAAS,CAAC,EAAE,GACrB,CAAC,GAAG,IAAI,CAMV;AA2FD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACvC;AAmCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAYtF"}
1
+ {"version":3,"file":"suite-overlap.d.ts","sourceRoot":"","sources":["../src/suite-overlap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAaH;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAoB1D;AAKD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAS1F;AA4VD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,QAAQ,GAAE,SAAS,MAAM,EAAO,EAChC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EACtB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,EACnB,GAAG,GAAE,SAAS,aAAa,EAAO,EAClC,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GACxC,MAAM,CA2DR;AAED,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAmCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,SAAS,aAAa,EAAO,GAAG,MAAM,CAe3F;AAwOD;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+FAA+F;IAC/F,SAAS,EAAE,OAAO,CAAA;IAClB,oFAAoF;IACpF,MAAM,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,gBAAgB,EACzD,SAAS,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EAC7B,QAAQ,EAAE,SAAS,CAAC,EAAE,GACrB,CAAC,GAAG,IAAI,CAMV;AAqHD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC;;;;;;;;;;;;;OAaG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,EAAE,OAAO,MAA4D,CAAA;AAEhG;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAM7D;AAmCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CA2BtF"}
@@ -445,7 +445,9 @@ function redirectRunnerOutputsToFreshFiles(command) {
445
445
  * invocation — same launcher, same settings — with the named `file:line`s in place of every
446
446
  * positional selection the run carried (a spec file, a suite directory or a regex filter),
447
447
  * `--last-failed` dropped (it re-runs the tests that never ran too, X1 flash-m60) and
448
- * `--retries=0` set (a re-run of a known failure does not need to pay for retries).
448
+ * `--retries=0` set (a re-run of a known failure does not need to pay for retries) — except the
449
+ * re-run of a run against a DEPLOYED URL, which keeps the suite's own retries and tracing
450
+ * (`options.suiteSettings`).
449
451
  *
450
452
  * The re-run keeps the run's `> <file>` redirect only in the sense of keeping its OUTPUT there:
451
453
  * the target is rewritten to a fresh sibling ({@link redirectRunnerOutputsToFreshFiles}), so a
@@ -475,9 +477,15 @@ function redirectRunnerOutputsToFreshFiles(command) {
475
477
  * @param env - The settings the REQUEST requires of the suite and this run left out
476
478
  * ({@link withRunEnv}): the re-run carries them, so a re-run of a run measured in the wrong
477
479
  * mode is not measured in that mode again (xr-molecule-flash-m182 +12:06).
480
+ * @param options - `suiteSettings` for the re-run of a run against a DEPLOYED URL: it keeps the
481
+ * suite's own retries and tracing instead of the diagnosis ones. The graded measurement is the
482
+ * suite's own settings, and a retry is what leaves a failing test's trace there; the platform's
483
+ * `--retries=0` and its `--trace=retain-on-failure` are both a stricter measurement than the
484
+ * one that was graded, and on X1 xr-molecule-flash-h15 the recording alone turned three
485
+ * budget-bound deployed tests into timeouts.
478
486
  * @returns The scoped command, or the command unchanged when it runs no Playwright suite.
479
487
  */
480
- export function scopedRerunCommand(command, locations, excluded = [], config, cwd, env = []) {
488
+ export function scopedRerunCommand(command, locations, excluded = [], config, cwd, env = [], options = {}) {
481
489
  const run = playwrightStatement(command);
482
490
  if (run === null)
483
491
  return command;
@@ -508,13 +516,22 @@ export function scopedRerunCommand(command, locations, excluded = [], config, cw
508
516
  // nothing — "No tests found" — so every location is rendered in a form Playwright can match
509
517
  // ({@link playwrightLocations}).
510
518
  const narrowed = playwrightLocations(locations, command, cwd);
511
- const dropped = dropSupersededSelections(args, narrowed)
519
+ // The recording flag the platform adds to a run whose config keeps no trace
520
+ // (`trace-artifacts.ts` `DIAGNOSIS_TRACE_FLAG`). It costs every test its recording, so a re-run
521
+ // measured with the suite's settings does not carry it.
522
+ const platformRecordingTrace = /\s*--trace=retain-on-failure(?![\w-])/g;
523
+ const keptSettings = options.suiteSettings === true;
524
+ const dropped = (keptSettings
525
+ ? dropSupersededSelections(args, narrowed).replace(platformRecordingTrace, '')
526
+ : dropSupersededSelections(args, narrowed))
512
527
  // `--last-failed` re-runs the tests that never ran too (flash-m60); its `--last-failed-file`
513
528
  // sibling only moves the file it reads and is a real option of the re-run.
514
529
  .replace(/\s*--last-failed(?!-)/g, '')
515
530
  .replace(/\s*--retries(?:[= ]\d+)?/g, '');
531
+ // A re-run of a deployed run measures what the suite measures: its own retries (which is what
532
+ // leaves a failing test's retry trace), never the diagnosis `--retries=0`.
516
533
  const scoped = command.slice(0, run.afterRunner) +
517
- ` ${narrowed.join(' ')} --retries=0${carry}${invert}` +
534
+ ` ${narrowed.join(' ')}${keptSettings ? '' : ' --retries=0'}${carry}${invert}` +
518
535
  dropped;
519
536
  // A command that starts the suite AGAIN after this statement is a chain of walks, not a re-run:
520
537
  // everything from the next suite runner on is dropped, so the composed command carries ONE walk.
@@ -865,10 +882,34 @@ function playwrightStatement(command) {
865
882
  return null;
866
883
  }
867
884
  /**
868
- * What narrows a Playwright run to a part of the suite: a named file or line, a title filter, or
869
- * the tests the run before it printed (`--last-failed`, `--only-changed`).
885
+ * What narrows a Playwright run to a part of the suite by naming the failures themselves: spec
886
+ * files and `file:line` locations. These are the selections a redeploy's targeted proof is
887
+ * composed from.
870
888
  */
871
- const NARROWED_RUN = /\.(?:spec|test)\.[cm]?[jt]sx?\b|\.[cm]?[jt]sx?:\d+|(?:^|\s)(?:-g|--grep(?:-invert)?|--last-failed|--only-changed)\b/;
889
+ const NAMED_SELECTION = /\.(?:spec|test)\.[cm]?[jt]sx?\b|\.[cm]?[jt]sx?:\d+/;
890
+ /**
891
+ * What narrows a Playwright run by a title filter, or by the failures the run before it printed.
892
+ * These are diagnoses however the run was launched. A cap is a diagnosis too, but
893
+ * {@link boundsFailures} reads it before this point because its own "no cap" spelling
894
+ * (`--max-failures=0`) has to be told apart.
895
+ */
896
+ const FILTERED_SELECTION = /(?:^|\s)(?:-g|--grep|--grep-invert|-G|--last-failed|--only-changed)\b/;
897
+ /**
898
+ * What narrows a Playwright run to a part of the suite: either of the two above. Built from their
899
+ * own sources so the two readings cannot drift apart.
900
+ */
901
+ const NARROWED_RUN = new RegExp(`(?:${NAMED_SELECTION.source})|(?:${FILTERED_SELECTION.source})`);
902
+ /**
903
+ * Whether a narrowed invocation is narrowed ONLY by the failures it names — the selection the
904
+ * platform composes a redeploy's proof from ({@link NAMED_SELECTION}) — rather than by a title
905
+ * filter or a last-failed set ({@link FILTERED_SELECTION}).
906
+ *
907
+ * @param run - The Playwright invocation's command-position text, without a `--grep-invert`.
908
+ * @returns True when files/lines are the only narrowing.
909
+ */
910
+ function namesOnlySelection(run) {
911
+ return NAMED_SELECTION.test(run) && !FILTERED_SELECTION.test(run);
912
+ }
872
913
  /**
873
914
  * A `--grep-invert` (or its `-G` alias) with the pattern Playwright takes: quoted or bare, `=` or
874
915
  * whitespace between flag and value, the last occurrence winning as it does on the runner's own
@@ -899,6 +940,28 @@ function grepInvertPattern(run) {
899
940
  function withoutGrepInvert(run) {
900
941
  return run.replace(GREP_INVERT_VALUE, ' ');
901
942
  }
943
+ /**
944
+ * The key host code sets on an `exec_command` input object to mark the launch as the platform's
945
+ * own graded proof ({@link DiagnosisRunContext} `platformProof`).
946
+ *
947
+ * A SYMBOL, deliberately: a model's tool input is JSON, and JSON cannot carry a symbol key, so a
948
+ * model can never forge this mark — a `platform_proof` key it writes into its own JSON is just an
949
+ * unknown input key, and the handler ignores it. Object spreads through a consumer's wrappers, and
950
+ * this package's own input normalization, keep symbol-keyed properties, so the host's intent
951
+ * survives the real launch path.
952
+ */
953
+ export const PLATFORM_PROOF = Symbol.for('@molecule/api-ai-tools/platform-proof');
954
+ /**
955
+ * Whether an `exec_command` input object carries the host's {@link PLATFORM_PROOF} mark.
956
+ *
957
+ * @param input - The tool input as the handler received it.
958
+ * @returns True only for a launch host code marked; false for anything a model sent.
959
+ */
960
+ export function isPlatformProofLaunch(input) {
961
+ return (typeof input === 'object' &&
962
+ input !== null &&
963
+ input[PLATFORM_PROOF] === true);
964
+ }
902
965
  /**
903
966
  * The Playwright invocation's text when the command starts one, or null.
904
967
  *
@@ -965,11 +1028,25 @@ function boundsFailures(command) {
965
1028
  * that exclusion, the rewriter added `--retries=0` to it, and the run lost the suite's retries on
966
1029
  * the one walk where a network blip is likeliest.
967
1030
  *
1031
+ * A command the PLATFORM composed and launched AS the graded proof keeps the suite's retries for
1032
+ * the SELECTION it composed — the failures a redeploy re-runs, named as files and `file:line`
1033
+ * ({@link DiagnosisRunContext} `platformProof`). Only that selection is excused: a cap, a title
1034
+ * filter, a last-failed set and a local targeted selection stay diagnoses, so the mark cannot turn a walk of
1035
+ * part of the suite into the graded measurement. Which targets are local is
1036
+ * {@link suiteCommandTarget}'s answer, and the launch rewrite asks it on the same reading
1037
+ * ({@link ./utilities.js} `streamingBackgroundCommand`).
1038
+ *
968
1039
  * @param command - The command as the executor sent it.
969
- * @param context - The request's approved exclusions, when the caller knows them.
970
- * @returns True when the run is a diagnosis or a re-run, not the whole suite.
1040
+ * @param context - The request's approved exclusions and whether this command IS the graded
1041
+ * proof, when the caller knows them.
1042
+ * A whole local walk still covers the whole suite; the launcher's separate local-target policy
1043
+ * disables its retries. This predicate classifies narrowed selections and their proof purpose.
1044
+ *
1045
+ * @returns True when the run is a diagnosis or a re-run, not the whole suite or a deployed proof selection.
971
1046
  */
972
1047
  export function isDiagnosisRun(command, context) {
1048
+ // A cap bounds the walk whatever launched it. `--max-failures=0` is Playwright's own "no cap"
1049
+ // ({@link boundsFailures}), so the uncapped spelling is not read as a diagnosis here.
973
1050
  if (boundsFailures(command))
974
1051
  return true;
975
1052
  const run = playwrightRun(command);
@@ -980,10 +1057,20 @@ export function isDiagnosisRun(command, context) {
980
1057
  if (commandRunsNoTests(run))
981
1058
  return true;
982
1059
  const inverted = grepInvertPattern(run);
983
- if (inverted === null)
984
- return NARROWED_RUN.test(run);
985
1060
  // A file, a line, a `-g`, `--last-failed` … narrows the run whatever the inversion also drops.
986
- if (NARROWED_RUN.test(withoutGrepInvert(run)))
1061
+ const selection = inverted === null ? run : withoutGrepInvert(run);
1062
+ if (NARROWED_RUN.test(selection)) {
1063
+ // The platform's own proof keeps the suite's retries for the failures it re-runs — the one
1064
+ // selection a redeploy composes. Every other narrower is still a diagnosis: a filter or a
1065
+ // last-failed set measures a part of the suite, capped or not.
1066
+ if (context?.platformProof === true &&
1067
+ namesOnlySelection(selection) &&
1068
+ suiteCommandTarget(command) !== 'local')
1069
+ return false;
987
1070
  return true;
1071
+ }
1072
+ if (inverted === null)
1073
+ return false;
1074
+ // No selector or filter narrows the run: only the inversion's own scope can make it a diagnosis.
988
1075
  return matchingExcludedTitles(inverted, context?.approvedExclusions ?? []).length === 0;
989
1076
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAgS9C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAahG;AAudD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAiInE;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAEA,CAAA;AAE9B;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,QAI6C,CAAA;AA2DlF;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUhE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGtE;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,qBAAqB;IACpC,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,8FAA8F;IAC9F,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAA;AAoBpF;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,CAAC,GACxE,qBAAqB,CAkBvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,qBAAqB,GAC5B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiCxB;AA2GD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,MAAM,EAAE,CA4iGxF"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAgS9C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAahG;AAudD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAiInE;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAEA,CAAA;AAE9B;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,QAI6C,CAAA;AA2DlF;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUhE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGtE;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,qBAAqB;IACpC,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,8FAA8F;IAC9F,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAA;AAoBpF;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,CAAC,GACxE,qBAAqB,CAkBvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,qBAAqB,GAC5B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiCxB;AA2GD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,MAAM,EAAE,CAwjGxF"}
package/dist/tools.js CHANGED
@@ -701,7 +701,7 @@ async function backgroundTaskState(backend, command, seconds, ceilingMs) {
701
701
  slice,
702
702
  };
703
703
  }
704
- import { suiteCommandTarget } from './suite-overlap.js';
704
+ import { isPlatformProofLaunch, suiteCommandTarget } from './suite-overlap.js';
705
705
  import { diagnosisTraceCommand } from './trace-artifacts.js';
706
706
  import { addedRedactionMask, BRACE_GLOB_HINT, checkBlockedCommand, declaredBudgetSeconds, DEFAULT_SEARCH_EXCLUDED_DIRS, directoryReadHint, earlyReturnCause, emptyCallError, expandBraceGlob, failureCausesNote, findPathArgs, findPatternArgs, fusedLine, htmlOutline, isCommandTimeout, isEnvFilePath, isOutsideRoot, isPlaywrightRunCommand, isReadOnlyInspection, isSuiteRunCommand, 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, READ_RESULT_ENVELOPE_CHARS, redactSecrets, redactSecretsInCode, repeatedSuiteRunError, repeatingFailure, repeatingFailureNote, resolvePath, RUNNING_FAILURE_LINES, runningCauseCommand, runningLogReadCommand, runningOutputSliceCommand, searchTimeoutError, serializedChars, shellQuote, sliceLines, SMALL_FILE_WHOLE_CHARS, streamingBackgroundCommand, stripControlChars, suiteRunBudgetCommand, suiteRunConfigCommand, suiteRunPipelinePlacement, suiteRunPriorityLaunch, TOOL_RESULT_CHARS, truncateMiddle, universalCause, whitespaceTolerantReplace, withoutSuiteTimeout, withPlaywrightRunReport, } from './utilities.js';
707
707
  /**
@@ -2912,7 +2912,16 @@ export function buildTools(backend, config) {
2912
2912
  // restart (see reportByTask). A run whose reporter set is not this tool's to place — or
2913
2913
  // one that already writes a report of its own — comes back with no report path and is
2914
2914
  // launched exactly as before.
2915
- const streaming = streamingBackgroundCommand(command, { approvedExclusions: excludedTestTitles?.() ?? [] }, playwrightReportPathFor(id));
2915
+ //
2916
+ // Whether this launch IS the platform's graded proof is a HOST fact, read off the symbol
2917
+ // `PLATFORM_PROOF` that only host code can set on the input object — not from a JSON key
2918
+ // in the model's arguments, which the model would control (a `platform_proof` key it
2919
+ // writes is an unknown input key and is ignored). A launch without the mark is read
2920
+ // exactly as before.
2921
+ const streaming = streamingBackgroundCommand(command, {
2922
+ approvedExclusions: excludedTestTitles?.() ?? [],
2923
+ platformProof: isPlatformProofLaunch(input),
2924
+ }, playwrightReportPathFor(id));
2916
2925
  // A command that starts the suite more than once is refused here, before anything is
2917
2926
  // written or launched: each walk measures the same code, and only the last is rewritten
2918
2927
  // (X1 xr-molecule-flash-m157 +14:02 — two whole walks chained with `;`).
@@ -3591,7 +3600,10 @@ export function buildTools(backend, config) {
3591
3600
  if (yieldDiagnostic &&
3592
3601
  taskRecord &&
3593
3602
  !taskRecord.diagnosticYielded &&
3594
- logShowsInlineFailureBodies(causeLog)) {
3603
+ // A failure the request excludes by name is not a diagnostic to hand back — the same
3604
+ // matcher the finished run's causes note drops it with, so the wait keeps running and
3605
+ // the one yield stays available for a failure that counts (xr-molecule-flash-h13).
3606
+ logShowsInlineFailureBodies(causeLog, excludedTestTitles?.() ?? [])) {
3595
3607
  // Completion during the log read still wins over a progress return.
3596
3608
  exitCode = await readExit();
3597
3609
  if (exitCode !== null)
@@ -854,20 +854,30 @@ export interface DiagnosisTraceRewrite {
854
854
  }
855
855
  /**
856
856
  * The command a Playwright run needs to leave a readable trace behind, when the suite's config
857
- * would record none.
857
+ * would record none — except a run that can serve as proof, whose own settings are left alone.
858
858
  *
859
859
  * The failing tests' requests are only readable if the run wrote them down (see the module doc),
860
860
  * and the config is where the decision about that lives — the platform does not edit the suite's
861
- * config, so it passes the flag instead, on every Playwright run that starts tests and does not
862
- * already decide its own `--trace`. That includes the whole-suite proof run, which an earlier
863
- * version of this function skipped on the reasoning that its flags are graded: the flag changes
864
- * what is RETAINED, not what passes. `retain-on-failure` keeps the trace only of a test that
865
- * fails — Playwright records it and deletes it when the test passes (playwright's
866
- * `_shouldAbandonTrace` unlinks the temporary trace files of a passing test) — so a green proof
867
- * run keeps nothing extra. A failing one keeps the network log its failures need.
868
- * xr-molecule-flash-m163 (+24:58) is why the proof run is no longer skipped: its one deployed
869
- * failure left only an `error-context.md`, the executor spent the next calls hunting a `trace.zip`
870
- * that could not exist, and then shipped a guessed fix.
861
+ * config, so it passes the flag instead, on a Playwright run that starts tests, does not already
862
+ * decide its own `--trace`, and whose config keeps no trace for its failures.
863
+ *
864
+ * A run that can serve as PROOF is the exception: the graded measurement is the suite's own
865
+ * settings, so it keeps its own tracing and retries. That was measured, not assumed — on one
866
+ * sandbox in X1 xr-molecule-flash-h15 (+46:53 → +49:30) the same build ran a three-test deployed
867
+ * subset 3/3 timed out under this flag (17.6–17.9 s against a 15 s per-test budget) and the whole
868
+ * file passed 14/14 without it (10.9–12.1 s). `retain-on-failure` RETAINS only a failing test's
869
+ * trace (Playwright's `_shouldAbandonTrace` unlinks a passing test's), but it RECORDS every
870
+ * action of every test, and for a test near its per-test budget that recording is the difference
871
+ * between passing and timing out. m163 (+24:58) is the failure this flag was added for: its
872
+ * deployed proof run left only an `error-context.md` because the suite traces
873
+ * `on-first-retry` and the run had no retries. That need is met without the flag — the graded
874
+ * deployed run keeps the suite's own retries, so a failing test leaves its retry's trace — and
875
+ * the platform's re-run note carries `--trace=on` for a run that did leave none.
876
+ *
877
+ * Which runs are proof-capable is {@link suiteCommandTarget}'s answer: a run against a deployed
878
+ * URL. A LOCAL run is never left to its config, because the launcher gives every local run
879
+ * `--retries=0` (`@molecule/api-ai-tools` `streamingBackgroundCommand`), so its retry trace would
880
+ * never happen. A run that pins `--retries=0` itself is in the same position, whatever its target.
871
881
  *
872
882
  * @param args - The command, the directory it starts in, and the backend's file read.
873
883
  * @returns The command to run and the sentence to report, or the command unchanged.
@@ -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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"}
@@ -30,6 +30,7 @@
30
30
  * @module
31
31
  */
32
32
  import { locatedCommandSegments, statementArgumentEnd } from './command-position.js';
33
+ import { suiteCommandTarget } from './suite-overlap.js';
33
34
  import { isPlaywrightRunCommand, redactSecrets } from './utilities.js';
34
35
  /** How many traces one read reports, newest first. */
35
36
  export const MAX_TRACE_ARTIFACTS = 12;
@@ -4469,6 +4470,38 @@ export function suiteRecordsTraces(configText) {
4469
4470
  const text = configText.replace(/\/\*[\s\S]*?\*\//g, '').replace(/(^|[^:])\/\/[^\n]*/g, '$1');
4470
4471
  return [...text.matchAll(TRACE_SETTING)].some((m) => RECORDING_TRACE_MODES.includes(m[1] ?? ''));
4471
4472
  }
4473
+ /** The trace modes that record only when a test is RETRIED (`on-first-retry`, `on-all-retries`). */
4474
+ const RETRY_TRACE_MODES = ['on-first-retry', 'on-all-retries'];
4475
+ /**
4476
+ * The trace mode a config records a RETRY with (`on-first-retry`, `on-all-retries`), or null.
4477
+ *
4478
+ * These modes are not "no trace": a test that fails and is retried leaves the trace of its retry
4479
+ * (`…-chromium-retry1/trace.zip`), which is exactly the artifact a failure's cause is read from.
4480
+ * They record nothing only when the run allows no retry at all — and that is the run this platform
4481
+ * completes with a flag, never the run whose settings are the graded measurement.
4482
+ *
4483
+ * @param configText - The config's source, or '' when none could be read.
4484
+ * @returns The mode as the config spells it, or null when it records no retry trace.
4485
+ */
4486
+ function suiteTracesOnRetry(configText) {
4487
+ const text = configText.replace(/\/\*[\s\S]*?\*\//g, '').replace(/(^|[^:])\/\/[^\n]*/g, '$1');
4488
+ for (const m of text.matchAll(TRACE_SETTING)) {
4489
+ const mode = m[1] ?? '';
4490
+ if (RETRY_TRACE_MODES.includes(mode))
4491
+ return mode;
4492
+ }
4493
+ return null;
4494
+ }
4495
+ /**
4496
+ * Whether the run itself pins `--retries=0` (either spelling): a run that cannot retry records no
4497
+ * retry trace, so it still needs one recorded for it.
4498
+ *
4499
+ * @param command - The shell command.
4500
+ * @returns True when the run allows no retry.
4501
+ */
4502
+ function namesNoRetries(command) {
4503
+ return /(?:^|[\s;&|(])--retries(?:=|\s+)['"]?0(?![\d.])/.test(command);
4504
+ }
4472
4505
  /** The `--trace` flag this platform adds, and the only value it adds it with. */
4473
4506
  export const DIAGNOSIS_TRACE_FLAG = '--trace=retain-on-failure';
4474
4507
  /**
@@ -4571,20 +4604,30 @@ async function readRunConfig(command, cwd, readFile) {
4571
4604
  }
4572
4605
  /**
4573
4606
  * The command a Playwright run needs to leave a readable trace behind, when the suite's config
4574
- * would record none.
4607
+ * would record none — except a run that can serve as proof, whose own settings are left alone.
4575
4608
  *
4576
4609
  * The failing tests' requests are only readable if the run wrote them down (see the module doc),
4577
4610
  * and the config is where the decision about that lives — the platform does not edit the suite's
4578
- * config, so it passes the flag instead, on every Playwright run that starts tests and does not
4579
- * already decide its own `--trace`. That includes the whole-suite proof run, which an earlier
4580
- * version of this function skipped on the reasoning that its flags are graded: the flag changes
4581
- * what is RETAINED, not what passes. `retain-on-failure` keeps the trace only of a test that
4582
- * fails — Playwright records it and deletes it when the test passes (playwright's
4583
- * `_shouldAbandonTrace` unlinks the temporary trace files of a passing test) — so a green proof
4584
- * run keeps nothing extra. A failing one keeps the network log its failures need.
4585
- * xr-molecule-flash-m163 (+24:58) is why the proof run is no longer skipped: its one deployed
4586
- * failure left only an `error-context.md`, the executor spent the next calls hunting a `trace.zip`
4587
- * that could not exist, and then shipped a guessed fix.
4611
+ * config, so it passes the flag instead, on a Playwright run that starts tests, does not already
4612
+ * decide its own `--trace`, and whose config keeps no trace for its failures.
4613
+ *
4614
+ * A run that can serve as PROOF is the exception: the graded measurement is the suite's own
4615
+ * settings, so it keeps its own tracing and retries. That was measured, not assumed — on one
4616
+ * sandbox in X1 xr-molecule-flash-h15 (+46:53 → +49:30) the same build ran a three-test deployed
4617
+ * subset 3/3 timed out under this flag (17.6–17.9 s against a 15 s per-test budget) and the whole
4618
+ * file passed 14/14 without it (10.9–12.1 s). `retain-on-failure` RETAINS only a failing test's
4619
+ * trace (Playwright's `_shouldAbandonTrace` unlinks a passing test's), but it RECORDS every
4620
+ * action of every test, and for a test near its per-test budget that recording is the difference
4621
+ * between passing and timing out. m163 (+24:58) is the failure this flag was added for: its
4622
+ * deployed proof run left only an `error-context.md` because the suite traces
4623
+ * `on-first-retry` and the run had no retries. That need is met without the flag — the graded
4624
+ * deployed run keeps the suite's own retries, so a failing test leaves its retry's trace — and
4625
+ * the platform's re-run note carries `--trace=on` for a run that did leave none.
4626
+ *
4627
+ * Which runs are proof-capable is {@link suiteCommandTarget}'s answer: a run against a deployed
4628
+ * URL. A LOCAL run is never left to its config, because the launcher gives every local run
4629
+ * `--retries=0` (`@molecule/api-ai-tools` `streamingBackgroundCommand`), so its retry trace would
4630
+ * never happen. A run that pins `--retries=0` itself is in the same position, whatever its target.
4588
4631
  *
4589
4632
  * @param args - The command, the directory it starts in, and the backend's file read.
4590
4633
  * @returns The command to run and the sentence to report, or the command unchanged.
@@ -4599,6 +4642,13 @@ export async function diagnosisTraceCommand(args) {
4599
4642
  const config = await readRunConfig(args.command, args.cwd, args.readFile);
4600
4643
  if (suiteRecordsTraces(config))
4601
4644
  return unchanged;
4645
+ // A proof-capable run keeps the suite's own tracing and retries: its retry trace is the artifact
4646
+ // a failure is read from, and recording every action would change what the measurement says.
4647
+ const retryTrace = suiteTracesOnRetry(config);
4648
+ if (retryTrace !== null &&
4649
+ suiteCommandTarget(args.command) !== 'local' &&
4650
+ !namesNoRetries(args.command))
4651
+ return unchanged;
4602
4652
  // The flag goes into the Playwright step's own argument list, at the end of it — an option of
4603
4653
  // the run itself, whatever the command opens with, whatever pipes or redirects its output, and
4604
4654
  // before the `)` that may close a subshell around it. Appended at the end of the whole command
@@ -4613,9 +4663,12 @@ export async function diagnosisTraceCommand(args) {
4613
4663
  return unchanged;
4614
4664
  return {
4615
4665
  command: `${args.command.slice(0, at)} ${DIAGNOSIS_TRACE_FLAG}${args.command.slice(at)}`,
4616
- change: `Added \`${DIAGNOSIS_TRACE_FLAG}\`: the suite's config records no trace for a failure` +
4617
- `${/trace:/.test(config) ? '' : ' (it sets none)'}, and a failing test's own network log is ` +
4618
- 'what the platform reads the cause from. It keeps a trace only for a test that fails, so a ' +
4619
- 'green run retains nothing.',
4666
+ change: `Added \`${DIAGNOSIS_TRACE_FLAG}\`: ` +
4667
+ (retryTrace === null
4668
+ ? `the suite's config records no trace for a failure${/trace:/.test(config) ? '' : ' (it sets none)'}`
4669
+ : `the suite records traces only on a retry (\`${retryTrace}\`), and this run allows none`) +
4670
+ ", and a failing test's own network log is what the platform reads the cause from. It keeps " +
4671
+ 'a trace only for a test that fails; the recording still runs for every action of every test ' +
4672
+ 'and slows each one, so measure a timing budget once with `--trace=off` before changing the app.',
4620
4673
  };
4621
4674
  }
@@ -232,9 +232,11 @@ export declare const PLAYWRIGHT_FAILURES_INLINE_ENV = "PLAYWRIGHT_LIST_PRINT_FAI
232
232
  *
233
233
  * @param command - The command as the executor sent it.
234
234
  * @param context - What the caller knows beyond the command: the tests the person's request
235
- * excludes by name ({@link DiagnosisRunContext}). A `--grep-invert` of exactly those is the
235
+ * excludes by name, and whether this command IS the platform's graded proof
236
+ * ({@link DiagnosisRunContext}). A `--grep-invert` of exactly those exclusions is the
236
237
  * request's own scope, not a diagnosis, so it keeps the suite's retries on a deployed proof
237
- * (xr-molecule-flash-m170 +33:16).
238
+ * (xr-molecule-flash-m170 +33:16) — and a proof the platform itself composed and launched
239
+ * keeps them whatever its scope, targeted set included (xr-molecule-flash-l48 +26:35).
238
240
  * @param reportPath - Where this run should write Playwright's standard `json` report, when the
239
241
  * caller keeps one ({@link ./playwright-report.js}). The reporter is added to the run's own
240
242
  * reporter set, never in place of one, and its output goes to that file through
@@ -1058,10 +1060,18 @@ export declare function repeatingFailure(log: string): RepeatingFailure | null;
1058
1060
  * During a wait the run has not ended (the exit file is read first), so a block beside a `✘` row
1059
1061
  * is one the reporter printed inline.
1060
1062
  *
1063
+ * A body for a test the request EXCLUDES is not that evidence: its failure does not count for
1064
+ * this request ({@link matchingExcludedTitles}), so a wait that handed it over as the diagnostic
1065
+ * spent a model round trip and 8 k of partial log on a test the same result says to ignore —
1066
+ * exactly what xr-molecule-flash-h13 (+19:06) did twice while the platform's proof was still
1067
+ * walking.
1068
+ *
1061
1069
  * @param log - A log, or the slice of one a wait reads.
1062
- * @returns True when a `✘` row's own test has a failure body under it.
1070
+ * @param excluded - The test titles the request carves out, if the caller knows them.
1071
+ * @returns True when a `✘` row's own test, outside the request's exclusions, has a failure body
1072
+ * under it.
1063
1073
  */
1064
- export declare function logShowsInlineFailureBodies(log: string): boolean;
1074
+ export declare function logShowsInlineFailureBodies(log: string, excluded?: readonly string[]): boolean;
1065
1075
  /** How many of a repeating cause's failures the note lists before it says "and N more". */
1066
1076
  export declare const REPEATING_FAILURE_LISTED = 5;
1067
1077
  /**
@@ -1416,6 +1426,10 @@ regressedSpecs?: readonly string[]): string | null;
1416
1426
  * invocation, in the same directory, narrowed to those tests — or null when the running command
1417
1427
  * is not a Playwright run this can narrow.
1418
1428
  *
1429
+ * A run against a DEPLOYED URL keeps the suite's own retries and tracing in its re-run
1430
+ * ({@link scopedRerunCommand} `suiteSettings`): the deployed measurement is the one the deploy is
1431
+ * graded on, and neither the platform's `--retries=0` nor its recording `--trace` belongs on it.
1432
+ *
1419
1433
  * The `locations` are the paths the run's own log printed, which are relative to the directory
1420
1434
  * that run started in, so the composer resolves them there ({@link scopedRerunCommand}): the
1421
1435
  * command names that directory unless it already changes into one of its own, because the
@@ -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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"}
package/dist/utilities.js CHANGED
@@ -649,9 +649,11 @@ function isStatusOnlyStep(step) {
649
649
  *
650
650
  * @param command - The command as the executor sent it.
651
651
  * @param context - What the caller knows beyond the command: the tests the person's request
652
- * excludes by name ({@link DiagnosisRunContext}). A `--grep-invert` of exactly those is the
652
+ * excludes by name, and whether this command IS the platform's graded proof
653
+ * ({@link DiagnosisRunContext}). A `--grep-invert` of exactly those exclusions is the
653
654
  * request's own scope, not a diagnosis, so it keeps the suite's retries on a deployed proof
654
- * (xr-molecule-flash-m170 +33:16).
655
+ * (xr-molecule-flash-m170 +33:16) — and a proof the platform itself composed and launched
656
+ * keeps them whatever its scope, targeted set included (xr-molecule-flash-l48 +26:35).
655
657
  * @param reportPath - Where this run should write Playwright's standard `json` report, when the
656
658
  * caller keeps one ({@link ./playwright-report.js}). The reporter is added to the run's own
657
659
  * reporter set, never in place of one, and its output goes to that file through
@@ -787,6 +789,13 @@ export function streamingBackgroundCommand(command, context, reportPath) {
787
789
  // {@link isDiagnosisRun}'s answer and nobody else's: the platform's notes ask the same
788
790
  // function, so a run cannot be a diagnosis to one of them and the whole suite to the other.
789
791
  // Which targets are local is {@link suiteCommandTarget}'s answer.
792
+ //
793
+ // A run the PLATFORM composed and launched as the graded proof keeps the suite's retries for
794
+ // the selection it composed — the failures a redeploy re-runs, named as files and `file:line`
795
+ // ({@link isDiagnosisRun} reads the host mark). It does NOT excuse a cap, a title filter or a
796
+ // last-failed set: those read as a diagnosis on that same reading, so the mark cannot turn a
797
+ // walk of part of the suite into the graded measurement. A LOCAL target is never the graded
798
+ // deployed run either, whatever launched it.
790
799
  const diagnosis = isDiagnosisRun(lastStep, context);
791
800
  const localTarget = suiteCommandTarget(lastStep) === 'local';
792
801
  // The last step's reporters: one printer, and it is `list`. Every branch below only ever moves
@@ -3071,10 +3080,18 @@ export function repeatingFailure(log) {
3071
3080
  * During a wait the run has not ended (the exit file is read first), so a block beside a `✘` row
3072
3081
  * is one the reporter printed inline.
3073
3082
  *
3083
+ * A body for a test the request EXCLUDES is not that evidence: its failure does not count for
3084
+ * this request ({@link matchingExcludedTitles}), so a wait that handed it over as the diagnostic
3085
+ * spent a model round trip and 8 k of partial log on a test the same result says to ignore —
3086
+ * exactly what xr-molecule-flash-h13 (+19:06) did twice while the platform's proof was still
3087
+ * walking.
3088
+ *
3074
3089
  * @param log - A log, or the slice of one a wait reads.
3075
- * @returns True when a `✘` row's own test has a failure body under it.
3090
+ * @param excluded - The test titles the request carves out, if the caller knows them.
3091
+ * @returns True when a `✘` row's own test, outside the request's exclusions, has a failure body
3092
+ * under it.
3076
3093
  */
3077
- export function logShowsInlineFailureBodies(log) {
3094
+ export function logShowsInlineFailureBodies(log, excluded = []) {
3078
3095
  const text = log.replace(ANSI_SGR, '');
3079
3096
  const failed = new Set(distinctTests(failedTests(text)).map(retrylessTestKey));
3080
3097
  if (failed.size === 0)
@@ -3084,6 +3101,9 @@ export function logShowsInlineFailureBodies(log) {
3084
3101
  if (m === null)
3085
3102
  continue;
3086
3103
  const { where, title } = splitTitlePath(m[1] ?? '');
3104
+ const heading = where === '' ? title : `${where} › ${title}`;
3105
+ if (matchingExcludedTitles(heading, excluded).length > 0)
3106
+ continue;
3087
3107
  if (failed.has(retrylessTestKey({ where, title, seconds: null })))
3088
3108
  return true;
3089
3109
  }
@@ -4264,6 +4284,10 @@ function omittedCausesRecap(omitted, run, excluded) {
4264
4284
  * invocation, in the same directory, narrowed to those tests — or null when the running command
4265
4285
  * is not a Playwright run this can narrow.
4266
4286
  *
4287
+ * A run against a DEPLOYED URL keeps the suite's own retries and tracing in its re-run
4288
+ * ({@link scopedRerunCommand} `suiteSettings`): the deployed measurement is the one the deploy is
4289
+ * graded on, and neither the platform's `--retries=0` nor its recording `--trace` belongs on it.
4290
+ *
4267
4291
  * The `locations` are the paths the run's own log printed, which are relative to the directory
4268
4292
  * that run started in, so the composer resolves them there ({@link scopedRerunCommand}): the
4269
4293
  * command names that directory unless it already changes into one of its own, because the
@@ -4286,7 +4310,12 @@ export function rerunOfRunningSuite(run, locations, excluded = []) {
4286
4310
  // The run's own directory is the base a relative failure location resolves against: the
4287
4311
  // reporter prints it from where the runner started, and Playwright matches file arguments
4288
4312
  // against absolute paths (xr-molecule-flash-m118 +16:34, m124 +18:38).
4289
- const scoped = scopedRerunCommand(run.command, locations, excluded, run.config, run.cwd, run.env ?? []);
4313
+ const scoped = scopedRerunCommand(run.command, locations, excluded, run.config, run.cwd, run.env ?? [],
4314
+ // A run against a DEPLOYED URL is re-run with the suite's own retries and tracing: that is
4315
+ // the measurement the deploy is graded on, and the platform's `--retries=0` plus its
4316
+ // `--trace=retain-on-failure` made it a stricter one — on X1 xr-molecule-flash-h15 the
4317
+ // recording alone turned three budget-bound deployed tests into timeouts.
4318
+ { suiteSettings: suiteCommandTarget(run.command) !== 'local' });
4290
4319
  if (scoped === run.command)
4291
4320
  return null;
4292
4321
  if (!run.cwd || commandSegments(withoutHeredocs(run.command)).some((s) => s.program === 'cd'))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@molecule/api-ai-tools",
3
- "version": "1.14.2",
3
+ "version": "1.14.3",
4
4
  "description": "Shared AI agent tools with backend abstraction for sandbox and local execution",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",