@molecule/api-ai-tools 1.16.7 → 1.16.8
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 +136 -3
- package/dist/command-plan.d.ts +71 -0
- package/dist/command-plan.d.ts.map +1 -0
- package/dist/command-plan.js +116 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/suite-overlap.d.ts.map +1 -1
- package/dist/suite-overlap.js +2 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +49 -21
- package/dist/trace-artifacts.d.ts.map +1 -1
- package/dist/trace-artifacts.js +2 -1
- package/dist/utilities.d.ts +4 -1
- package/dist/utilities.d.ts.map +1 -1
- package/dist/utilities.js +14 -1
- package/package.json +1 -1
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-11-
|
|
6
|
+
Generated: 2026-11-06T03:40:01.617Z
|
|
7
7
|
-->
|
|
8
8
|
|
|
9
9
|
# @molecule/api-ai-tools
|
|
@@ -80,6 +80,36 @@ interface ForegroundBrowserProbe extends BrowserProbeLeak {
|
|
|
80
80
|
}
|
|
81
81
|
```
|
|
82
82
|
|
|
83
|
+
#### `CommandPlanStep`
|
|
84
|
+
|
|
85
|
+
One sequential command, with boundaries emitted by its launcher around execution.
|
|
86
|
+
|
|
87
|
+
```typescript
|
|
88
|
+
interface CommandPlanStep {
|
|
89
|
+
/** Launcher's stable step identity. */
|
|
90
|
+
id: string
|
|
91
|
+
/** The logical command actually executed, including launch rewrites. */
|
|
92
|
+
command: string
|
|
93
|
+
/** Printed on its own line immediately before this step runs. */
|
|
94
|
+
startMarker: string
|
|
95
|
+
/** Printed on its own line after this step settles. */
|
|
96
|
+
endMarker: string
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
#### `CommandPlan`
|
|
101
|
+
|
|
102
|
+
A wrapper's ordered commands; metadata describes execution, never proof or completion.
|
|
103
|
+
|
|
104
|
+
```typescript
|
|
105
|
+
interface CommandPlan {
|
|
106
|
+
/** Per-launch boundary identity, preventing ordinary suite output from matching a boundary. */
|
|
107
|
+
id: string
|
|
108
|
+
/** Steps execute in this order. */
|
|
109
|
+
steps: CommandPlanStep[]
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
83
113
|
#### `CommandSegment`
|
|
84
114
|
|
|
85
115
|
One statement or pipeline stage of a shell command: what it runs, and with what.
|
|
@@ -1798,6 +1828,94 @@ function browserProbeOverBudgetAdvice(probe: ForegroundBrowserProbe): string
|
|
|
1798
1828
|
|
|
1799
1829
|
**Returns:** The sentence the cut result carries.
|
|
1800
1830
|
|
|
1831
|
+
#### `createCommandPlan(steps)`
|
|
1832
|
+
|
|
1833
|
+
Give already-prepared logical commands unique log boundaries.
|
|
1834
|
+
|
|
1835
|
+
```typescript
|
|
1836
|
+
function createCommandPlan(steps: { id: string; command: string }[]): CommandPlan
|
|
1837
|
+
```
|
|
1838
|
+
|
|
1839
|
+
- `steps` — Commands in execution order.
|
|
1840
|
+
|
|
1841
|
+
**Returns:** Metadata for the wrapper and the launcher that executes its steps.
|
|
1842
|
+
|
|
1843
|
+
#### `commandWithPlan(command, plan)`
|
|
1844
|
+
|
|
1845
|
+
Preserve a wrapper's typed logical plan in its durable shell script, including across restarts.
|
|
1846
|
+
Shell comments keep this independent of the wrapper's executable, arguments and payload format.
|
|
1847
|
+
|
|
1848
|
+
```typescript
|
|
1849
|
+
function commandWithPlan(command: string, plan: CommandPlan): string
|
|
1850
|
+
```
|
|
1851
|
+
|
|
1852
|
+
- `command` — Executed wrapper.
|
|
1853
|
+
- `plan` — Commands the launcher will actually execute and delimit.
|
|
1854
|
+
|
|
1855
|
+
**Returns:** A shell command with a passive metadata header.
|
|
1856
|
+
|
|
1857
|
+
#### `commandPlan(command)`
|
|
1858
|
+
|
|
1859
|
+
Read the shared descriptor, never a launcher's private wrapper format.
|
|
1860
|
+
|
|
1861
|
+
```typescript
|
|
1862
|
+
function commandPlan(command: string): CommandPlan | null
|
|
1863
|
+
```
|
|
1864
|
+
|
|
1865
|
+
- `command` — Command or recovered task script.
|
|
1866
|
+
|
|
1867
|
+
**Returns:** A valid logical plan, or null for an ordinary command.
|
|
1868
|
+
|
|
1869
|
+
#### `logicalCommandText(command)`
|
|
1870
|
+
|
|
1871
|
+
Commands a wrapper will run, for static classification; live diagnostics use commandStepView.
|
|
1872
|
+
|
|
1873
|
+
```typescript
|
|
1874
|
+
function logicalCommandText(command: string): string
|
|
1875
|
+
```
|
|
1876
|
+
|
|
1877
|
+
- `command` — Executed command.
|
|
1878
|
+
|
|
1879
|
+
**Returns:** Logical commands in order, or the direct command unchanged.
|
|
1880
|
+
|
|
1881
|
+
#### `commandStepView(command, output)`
|
|
1882
|
+
|
|
1883
|
+
Select only the step that owns the latest log boundary. Completed steps cannot supply a live
|
|
1884
|
+
failure, target, retry policy, file selection or rerun. Before the first boundary and between
|
|
1885
|
+
steps the live command is unknown; no diagnostic is permitted.
|
|
1886
|
+
|
|
1887
|
+
```typescript
|
|
1888
|
+
function commandStepView(
|
|
1889
|
+
command: string,
|
|
1890
|
+
output: string,
|
|
1891
|
+
): {
|
|
1892
|
+
command: string
|
|
1893
|
+
output: string
|
|
1894
|
+
complete: boolean
|
|
1895
|
+
/** Unique execution step, including when adjacent steps run identical commands. */
|
|
1896
|
+
stepKey?: string
|
|
1897
|
+
}
|
|
1898
|
+
```
|
|
1899
|
+
|
|
1900
|
+
- `command` — Wrapper or direct command.
|
|
1901
|
+
- `output` — Whole log, or the boundary-preserving bounded read.
|
|
1902
|
+
|
|
1903
|
+
**Returns:** Active command and its output, plus whether the entire step's output is available.
|
|
1904
|
+
|
|
1905
|
+
#### `commandPlanLogRead(plan, limit)`
|
|
1906
|
+
|
|
1907
|
+
AWK program for a bounded read that retains the active boundary even after a long step and
|
|
1908
|
+
discards prior steps. A truncated step cannot establish a universal failure across its history.
|
|
1909
|
+
|
|
1910
|
+
```typescript
|
|
1911
|
+
function commandPlanLogRead(plan: CommandPlan, limit: number): string
|
|
1912
|
+
```
|
|
1913
|
+
|
|
1914
|
+
- `plan` — Logical plan whose boundaries the launcher emits.
|
|
1915
|
+
- `limit` — Maximum output characters retained for diagnosis.
|
|
1916
|
+
|
|
1917
|
+
**Returns:** An AWK program; callers shell-quote it like every other argument.
|
|
1918
|
+
|
|
1801
1919
|
#### `durationSeconds(word)`
|
|
1802
1920
|
|
|
1803
1921
|
The seconds a duration word stands for.
|
|
@@ -4456,7 +4574,7 @@ function failureBlocks(s: string): string[]
|
|
|
4456
4574
|
|
|
4457
4575
|
**Returns:** Each block, in order (empty when there are none).
|
|
4458
4576
|
|
|
4459
|
-
#### `runningOutputSliceCommand(log, own)`
|
|
4577
|
+
#### `runningOutputSliceCommand(log, own, command)`
|
|
4460
4578
|
|
|
4461
4579
|
The shell command whose stdout is the interesting part of a log that is still being written:
|
|
4462
4580
|
the failure lines so far (capped at {@link RUNNING_FAILURE_LINES}), then the end of the log.
|
|
@@ -4473,6 +4591,7 @@ function runningOutputSliceCommand(log: string, own?: string): string
|
|
|
4473
4591
|
|
|
4474
4592
|
- `log` — The task log path.
|
|
4475
4593
|
- `own` — A file the command redirects its own output to, if any.
|
|
4594
|
+
- `command` — Executed command, whose logical plan supplies live step boundaries if present.
|
|
4476
4595
|
|
|
4477
4596
|
**Returns:** The shell command, safe to hand to the execution backend as-is.
|
|
4478
4597
|
|
|
@@ -4488,7 +4607,7 @@ a duration — three bodies do not fit, and the repeat is invisible. This read i
|
|
|
4488
4607
|
anyone; it is parsed.
|
|
4489
4608
|
|
|
4490
4609
|
```typescript
|
|
4491
|
-
function runningCauseCommand(log: string, own?: string): string
|
|
4610
|
+
function runningCauseCommand(log: string, own?: string, command?: string): string
|
|
4492
4611
|
```
|
|
4493
4612
|
|
|
4494
4613
|
- `log` — The task log path.
|
|
@@ -5546,6 +5665,14 @@ Bytes of a running log a repeating-cause look reads back.
|
|
|
5546
5665
|
const REPEATING_CAUSE_TAIL_BYTES: 40000
|
|
5547
5666
|
```
|
|
5548
5667
|
|
|
5668
|
+
#### `COMMAND_PLAN_LOG_CHARS`
|
|
5669
|
+
|
|
5670
|
+
Whole-step history retained for wrapped plans; ordinary diagnostic logs fit inside this bound.
|
|
5671
|
+
|
|
5672
|
+
```typescript
|
|
5673
|
+
const COMMAND_PLAN_LOG_CHARS: 4000000
|
|
5674
|
+
```
|
|
5675
|
+
|
|
5549
5676
|
#### `RUNNING_LOG_READ_BYTES`
|
|
5550
5677
|
|
|
5551
5678
|
Bytes of a running log a diagnostic note reads back: one {@link REPEATING_CAUSE_TAIL_BYTES} window.
|
|
@@ -5678,6 +5805,12 @@ Peer dependencies:
|
|
|
5678
5805
|
|
|
5679
5806
|
- `@molecule/api-ai`
|
|
5680
5807
|
|
|
5808
|
+
- **Opaque command plans:** prepare each logical step with `streamingBackgroundCommand`,
|
|
5809
|
+
call `createCommandPlan`, and attach it to the executed wrapper with `commandWithPlan`.
|
|
5810
|
+
The launcher prints each step's `startMarker` and `endMarker` on their own lines around
|
|
5811
|
+
execution. `commandStepView` reads the active step for diagnostics; `logicalCommandText`
|
|
5812
|
+
exposes the planned commands for static classification. Preserve the descriptor when
|
|
5813
|
+
wrapping again. The metadata is advisory and never establishes a completed test result.
|
|
5681
5814
|
- **`yieldOnFirstFailureFor`** can yield one still-running deployed task's concrete diagnostic; callers opt out after a prior wait result or unknown history.
|
|
5682
5815
|
- **`wait_for_task` state probes report current progress without guessing log growth.**
|
|
5683
5816
|
A call shorter than one normal two-second poll omits both growth and no-growth
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/** One sequential command, with boundaries emitted by its launcher around execution. */
|
|
2
|
+
export interface CommandPlanStep {
|
|
3
|
+
/** Launcher's stable step identity. */
|
|
4
|
+
id: string;
|
|
5
|
+
/** The logical command actually executed, including launch rewrites. */
|
|
6
|
+
command: string;
|
|
7
|
+
/** Printed on its own line immediately before this step runs. */
|
|
8
|
+
startMarker: string;
|
|
9
|
+
/** Printed on its own line after this step settles. */
|
|
10
|
+
endMarker: string;
|
|
11
|
+
}
|
|
12
|
+
/** A wrapper's ordered commands; metadata describes execution, never proof or completion. */
|
|
13
|
+
export interface CommandPlan {
|
|
14
|
+
/** Per-launch boundary identity, preventing ordinary suite output from matching a boundary. */
|
|
15
|
+
id: string;
|
|
16
|
+
/** Steps execute in this order. */
|
|
17
|
+
steps: CommandPlanStep[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Give already-prepared logical commands unique log boundaries.
|
|
21
|
+
* @param steps - Commands in execution order.
|
|
22
|
+
* @returns Metadata for the wrapper and the launcher that executes its steps.
|
|
23
|
+
*/
|
|
24
|
+
export declare function createCommandPlan(steps: {
|
|
25
|
+
id: string;
|
|
26
|
+
command: string;
|
|
27
|
+
}[]): CommandPlan;
|
|
28
|
+
/**
|
|
29
|
+
* Preserve a wrapper's typed logical plan in its durable shell script, including across restarts.
|
|
30
|
+
* Shell comments keep this independent of the wrapper's executable, arguments and payload format.
|
|
31
|
+
* @param command - Executed wrapper.
|
|
32
|
+
* @param plan - Commands the launcher will actually execute and delimit.
|
|
33
|
+
* @returns A shell command with a passive metadata header.
|
|
34
|
+
*/
|
|
35
|
+
export declare function commandWithPlan(command: string, plan: CommandPlan): string;
|
|
36
|
+
/**
|
|
37
|
+
* Read the shared descriptor, never a launcher's private wrapper format.
|
|
38
|
+
* @param command - Command or recovered task script.
|
|
39
|
+
* @returns A valid logical plan, or null for an ordinary command.
|
|
40
|
+
*/
|
|
41
|
+
export declare function commandPlan(command: string): CommandPlan | null;
|
|
42
|
+
/**
|
|
43
|
+
* Commands a wrapper will run, for static classification; live diagnostics use commandStepView.
|
|
44
|
+
* @param command - Executed command.
|
|
45
|
+
* @returns Logical commands in order, or the direct command unchanged.
|
|
46
|
+
*/
|
|
47
|
+
export declare function logicalCommandText(command: string): string;
|
|
48
|
+
/**
|
|
49
|
+
* Select only the step that owns the latest log boundary. Completed steps cannot supply a live
|
|
50
|
+
* failure, target, retry policy, file selection or rerun. Before the first boundary and between
|
|
51
|
+
* steps the live command is unknown; no diagnostic is permitted.
|
|
52
|
+
* @param command - Wrapper or direct command.
|
|
53
|
+
* @param output - Whole log, or the boundary-preserving bounded read.
|
|
54
|
+
* @returns Active command and its output, plus whether the entire step's output is available.
|
|
55
|
+
*/
|
|
56
|
+
export declare function commandStepView(command: string, output: string): {
|
|
57
|
+
command: string;
|
|
58
|
+
output: string;
|
|
59
|
+
complete: boolean;
|
|
60
|
+
/** Unique execution step, including when adjacent steps run identical commands. */
|
|
61
|
+
stepKey?: string;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* AWK program for a bounded read that retains the active boundary even after a long step and
|
|
65
|
+
* discards prior steps. A truncated step cannot establish a universal failure across its history.
|
|
66
|
+
* @param plan - Logical plan whose boundaries the launcher emits.
|
|
67
|
+
* @param limit - Maximum output characters retained for diagnosis.
|
|
68
|
+
* @returns An AWK program; callers shell-quote it like every other argument.
|
|
69
|
+
*/
|
|
70
|
+
export declare function commandPlanLogRead(plan: CommandPlan, limit: number): string;
|
|
71
|
+
//# sourceMappingURL=command-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-plan.d.ts","sourceRoot":"","sources":["../src/command-plan.ts"],"names":[],"mappings":"AAIA,wFAAwF;AACxF,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAA;IACV,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAA;IACf,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAA;IACnB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,6FAA6F;AAC7F,MAAM,WAAW,WAAW;IAC1B,+FAA+F;IAC/F,EAAE,EAAE,MAAM,CAAA;IACV,mCAAmC;IACnC,KAAK,EAAE,eAAe,EAAE,CAAA;CACzB;AAKD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,WAAW,CAUvF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,MAAM,CAE1E;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CA4B/D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb;IACD,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;IACjB,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAsBA;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ3E"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/** Logical commands and ordered log boundaries for launchers that execute opaque wrappers. */
|
|
2
|
+
import { randomUUID } from 'node:crypto';
|
|
3
|
+
import { gunzipSync, gzipSync } from 'node:zlib';
|
|
4
|
+
const HEADER = '# mol-command-plan-v1 ';
|
|
5
|
+
const TRUNCATED = '__MOL_COMMAND_LOG_TRUNCATED__';
|
|
6
|
+
/**
|
|
7
|
+
* Give already-prepared logical commands unique log boundaries.
|
|
8
|
+
* @param steps - Commands in execution order.
|
|
9
|
+
* @returns Metadata for the wrapper and the launcher that executes its steps.
|
|
10
|
+
*/
|
|
11
|
+
export function createCommandPlan(steps) {
|
|
12
|
+
const id = randomUUID();
|
|
13
|
+
return {
|
|
14
|
+
id,
|
|
15
|
+
steps: steps.map((step, index) => ({
|
|
16
|
+
...step,
|
|
17
|
+
startMarker: `__MOL_COMMAND_STEP_${id}_${index}_START__`,
|
|
18
|
+
endMarker: `__MOL_COMMAND_STEP_${id}_${index}_END__`,
|
|
19
|
+
})),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Preserve a wrapper's typed logical plan in its durable shell script, including across restarts.
|
|
24
|
+
* Shell comments keep this independent of the wrapper's executable, arguments and payload format.
|
|
25
|
+
* @param command - Executed wrapper.
|
|
26
|
+
* @param plan - Commands the launcher will actually execute and delimit.
|
|
27
|
+
* @returns A shell command with a passive metadata header.
|
|
28
|
+
*/
|
|
29
|
+
export function commandWithPlan(command, plan) {
|
|
30
|
+
return `${HEADER}${gzipSync(JSON.stringify(plan)).toString('base64')}\n${command}`;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Read the shared descriptor, never a launcher's private wrapper format.
|
|
34
|
+
* @param command - Command or recovered task script.
|
|
35
|
+
* @returns A valid logical plan, or null for an ordinary command.
|
|
36
|
+
*/
|
|
37
|
+
export function commandPlan(command) {
|
|
38
|
+
const header = command.split('\n').find((line) => line.startsWith(HEADER));
|
|
39
|
+
if (!header || header.length > 1024 * 1024)
|
|
40
|
+
return null;
|
|
41
|
+
try {
|
|
42
|
+
const plan = JSON.parse(gunzipSync(Buffer.from(header.slice(HEADER.length), 'base64'), {
|
|
43
|
+
maxOutputLength: 1024 * 1024,
|
|
44
|
+
}).toString('utf8'));
|
|
45
|
+
if (!plan ||
|
|
46
|
+
!/^[a-f0-9-]{36}$/.test(plan.id) ||
|
|
47
|
+
!Array.isArray(plan.steps) ||
|
|
48
|
+
plan.steps.length === 0 ||
|
|
49
|
+
!plan.steps.every((step, index) => typeof step?.id === 'string' &&
|
|
50
|
+
typeof step.command === 'string' &&
|
|
51
|
+
step.startMarker === `__MOL_COMMAND_STEP_${plan.id}_${index}_START__` &&
|
|
52
|
+
step.endMarker === `__MOL_COMMAND_STEP_${plan.id}_${index}_END__`))
|
|
53
|
+
return null;
|
|
54
|
+
return plan;
|
|
55
|
+
}
|
|
56
|
+
catch (_error) {
|
|
57
|
+
// Metadata is advisory. An absent or malformed descriptor supplies no logical commands.
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Commands a wrapper will run, for static classification; live diagnostics use commandStepView.
|
|
63
|
+
* @param command - Executed command.
|
|
64
|
+
* @returns Logical commands in order, or the direct command unchanged.
|
|
65
|
+
*/
|
|
66
|
+
export function logicalCommandText(command) {
|
|
67
|
+
return (commandPlan(command)
|
|
68
|
+
?.steps.map((step) => step.command)
|
|
69
|
+
.join(';\n') ?? command);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Select only the step that owns the latest log boundary. Completed steps cannot supply a live
|
|
73
|
+
* failure, target, retry policy, file selection or rerun. Before the first boundary and between
|
|
74
|
+
* steps the live command is unknown; no diagnostic is permitted.
|
|
75
|
+
* @param command - Wrapper or direct command.
|
|
76
|
+
* @param output - Whole log, or the boundary-preserving bounded read.
|
|
77
|
+
* @returns Active command and its output, plus whether the entire step's output is available.
|
|
78
|
+
*/
|
|
79
|
+
export function commandStepView(command, output) {
|
|
80
|
+
const plan = commandPlan(command);
|
|
81
|
+
if (!plan)
|
|
82
|
+
return { command, output, complete: true };
|
|
83
|
+
let at = -1;
|
|
84
|
+
let selected;
|
|
85
|
+
let offset = 0;
|
|
86
|
+
for (const line of output.split('\n')) {
|
|
87
|
+
for (const step of plan.steps) {
|
|
88
|
+
if (line === step.startMarker || line === step.endMarker) {
|
|
89
|
+
at = offset + line.length + 1;
|
|
90
|
+
selected = line === step.startMarker ? step : undefined;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
offset += line.length + 1;
|
|
94
|
+
}
|
|
95
|
+
const text = selected && at >= 0 ? output.slice(at) : '';
|
|
96
|
+
return {
|
|
97
|
+
stepKey: selected?.startMarker,
|
|
98
|
+
command: selected?.command ?? '',
|
|
99
|
+
output: text.replace(`${TRUNCATED}\n`, ''),
|
|
100
|
+
complete: !text.startsWith(TRUNCATED),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* AWK program for a bounded read that retains the active boundary even after a long step and
|
|
105
|
+
* discards prior steps. A truncated step cannot establish a universal failure across its history.
|
|
106
|
+
* @param plan - Logical plan whose boundaries the launcher emits.
|
|
107
|
+
* @param limit - Maximum output characters retained for diagnosis.
|
|
108
|
+
* @returns An AWK program; callers shell-quote it like every other argument.
|
|
109
|
+
*/
|
|
110
|
+
export function commandPlanLogRead(plan, limit) {
|
|
111
|
+
const markers = plan.steps.flatMap((step) => [step.startMarker, step.endMarker]);
|
|
112
|
+
return (`BEGIN { ${markers.map((marker) => `marks["${marker}"]=1`).join('; ')} }\n` +
|
|
113
|
+
'$0 in marks { marker=$0; text=""; cut=0; next }\n' +
|
|
114
|
+
`{ text=text $0 "\\n"; if(length(text)>${limit}) { text=substr(text,length(text)-${limit}+1); cut=1 } }\n` +
|
|
115
|
+
`END { if(marker!="") { print marker; if(cut) print "${TRUNCATED}"; printf "%s",text } }`);
|
|
116
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,12 @@
|
|
|
12
12
|
* (identity, tool listing, project docs, discovered skills).
|
|
13
13
|
*
|
|
14
14
|
* @remarks
|
|
15
|
+
* - **Opaque command plans:** prepare each logical step with `streamingBackgroundCommand`,
|
|
16
|
+
* call `createCommandPlan`, and attach it to the executed wrapper with `commandWithPlan`.
|
|
17
|
+
* The launcher prints each step's `startMarker` and `endMarker` on their own lines around
|
|
18
|
+
* execution. `commandStepView` reads the active step for diagnostics; `logicalCommandText`
|
|
19
|
+
* exposes the planned commands for static classification. Preserve the descriptor when
|
|
20
|
+
* wrapping again. The metadata is advisory and never establishes a completed test result.
|
|
15
21
|
* - **`yieldOnFirstFailureFor`** can yield one still-running deployed task's concrete diagnostic; callers opt out after a prior wait result or unknown history.
|
|
16
22
|
* - **`wait_for_task` state probes report current progress without guessing log growth.**
|
|
17
23
|
* A call shorter than one normal two-second poll omits both growth and no-growth
|
|
@@ -149,6 +155,7 @@ export * from './backends/local.js';
|
|
|
149
155
|
export * from './backends/sandbox.js';
|
|
150
156
|
export * from './browser-guard.js';
|
|
151
157
|
export * from './browser-probe.js';
|
|
158
|
+
export * from './command-plan.js';
|
|
152
159
|
export * from './command-position.js';
|
|
153
160
|
export * from './cut-run.js';
|
|
154
161
|
export * from './failure-kind.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwJG;AAEH,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,YAAY,CAAA;AAC1B,cAAc,sBAAsB,CAAA;AACpC,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -12,6 +12,12 @@
|
|
|
12
12
|
* (identity, tool listing, project docs, discovered skills).
|
|
13
13
|
*
|
|
14
14
|
* @remarks
|
|
15
|
+
* - **Opaque command plans:** prepare each logical step with `streamingBackgroundCommand`,
|
|
16
|
+
* call `createCommandPlan`, and attach it to the executed wrapper with `commandWithPlan`.
|
|
17
|
+
* The launcher prints each step's `startMarker` and `endMarker` on their own lines around
|
|
18
|
+
* execution. `commandStepView` reads the active step for diagnostics; `logicalCommandText`
|
|
19
|
+
* exposes the planned commands for static classification. Preserve the descriptor when
|
|
20
|
+
* wrapping again. The metadata is advisory and never establishes a completed test result.
|
|
15
21
|
* - **`yieldOnFirstFailureFor`** can yield one still-running deployed task's concrete diagnostic; callers opt out after a prior wait result or unknown history.
|
|
16
22
|
* - **`wait_for_task` state probes report current progress without guessing log growth.**
|
|
17
23
|
* A call shorter than one normal two-second poll omits both growth and no-growth
|
|
@@ -149,6 +155,7 @@ export * from './backends/local.js';
|
|
|
149
155
|
export * from './backends/sandbox.js';
|
|
150
156
|
export * from './browser-guard.js';
|
|
151
157
|
export * from './browser-probe.js';
|
|
158
|
+
export * from './command-plan.js';
|
|
152
159
|
export * from './command-position.js';
|
|
153
160
|
export * from './cut-run.js';
|
|
154
161
|
export * from './failure-kind.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suite-overlap.d.ts","sourceRoot":"","sources":["../src/suite-overlap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;
|
|
1
|
+
{"version":3,"file":"suite-overlap.d.ts","sourceRoot":"","sources":["../src/suite-overlap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAcH;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAoB1D;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,MAAM,CAwB7E;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;AA2VD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;AAQD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAiCrF;AAkND;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAa5F;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+FAA+F;IAC/F,SAAS,EAAE,OAAO,CAAA;IAClB,oFAAoF;IACpF,MAAM,EAAE,MAAM,CAAA;IACd;;;OAGG;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"}
|
package/dist/suite-overlap.js
CHANGED
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
* @module
|
|
30
30
|
*/
|
|
31
31
|
import { posix } from 'node:path';
|
|
32
|
+
import { logicalCommandText } from './command-plan.js';
|
|
32
33
|
import { commandSegments, locatedCommandSegments, statementBoundary, } from './command-position.js';
|
|
33
34
|
import { commandRunsNoTests } from './no-test-run.js';
|
|
34
35
|
import { matchingExcludedTitles, shellQuote, suiteRunStatements } from './utilities.js';
|
|
@@ -56,7 +57,7 @@ export function withoutHeredocs(command) {
|
|
|
56
57
|
* @returns The target key.
|
|
57
58
|
*/
|
|
58
59
|
export function suiteCommandTarget(command) {
|
|
59
|
-
const text = withoutHeredocs(command);
|
|
60
|
+
const text = withoutHeredocs(logicalCommandText(command));
|
|
60
61
|
const named = /(?:\b(?:HOST|BASE_URL|PLAYWRIGHT_BASE_URL|E2E_BASE_URL)|--variable\s+host)\s*=\s*['"]?([^\s'"|;&]+)/i.exec(text)?.[1] ?? /https?:\/\/[^\s'"|;&]+/i.exec(text)?.[0];
|
|
61
62
|
if (!named)
|
|
62
63
|
return 'local';
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -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;
|
|
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;AA4B9C,OAAO,EAIL,KAAK,mBAAmB,EAEzB,MAAM,wBAAwB,CAAA;AAsC/B;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,GAAG,KAAK,CAAC,EACnD,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAmB9B;AAyLD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAahG;AAkeD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAkInE;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAEA,CAAA;AAE9B;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,QAI6C,CAAA;AA0DlF;;;;;;;;;;;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,CAwuGxF"}
|
package/dist/tools.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { posix } from 'path';
|
|
10
10
|
import { browserProbeOverBudgetAdvice, browserProbeRefusal } from './browser-probe.js';
|
|
11
|
+
import { commandPlan, commandStepView, logicalCommandText } from './command-plan.js';
|
|
11
12
|
import { endsInBackground } from './command-position.js';
|
|
12
13
|
import { commandCutRun, CUT_AT_BUDGET, cutRunSentence, suiteRunExitCode, suiteSummary, } from './cut-run.js';
|
|
13
14
|
import { addChangeSpan, changedSpan, countLines, renderEditExcerpt, renderSmallFile, } from './edit-excerpt.js';
|
|
@@ -107,6 +108,8 @@ const inlineFailuresByTask = new Set();
|
|
|
107
108
|
* resolves the failing test's `file:line` against the wrong suite.
|
|
108
109
|
*/
|
|
109
110
|
const runByTask = new Map();
|
|
111
|
+
/** Last observed logical step, so step changes also reset diagnostics between wait calls. */
|
|
112
|
+
const diagnosticStepByTask = new Map();
|
|
110
113
|
/**
|
|
111
114
|
* The background task ids each backend launched. Every map above is keyed by task id alone and is
|
|
112
115
|
* shared by every project this process serves, so a task is only ever read as THIS project's when
|
|
@@ -3615,24 +3618,21 @@ export function buildTools(backend, config) {
|
|
|
3615
3618
|
// BEFORE the loop: the running answers below are built after it closes and still need it.
|
|
3616
3619
|
let taskRecord = runByTask.get(taskId);
|
|
3617
3620
|
// Recovery knows the script, not the original cwd. Keep existing rerun hints unknown.
|
|
3618
|
-
|
|
3621
|
+
let started = taskRecord?.cwd === undefined
|
|
3619
3622
|
? undefined
|
|
3620
|
-
: { command: taskRecord.command, cwd: taskRecord.cwd };
|
|
3621
|
-
|
|
3623
|
+
: { command: logicalCommandText(taskRecord.command), cwd: taskRecord.cwd };
|
|
3624
|
+
const executedCommand = taskRecord?.command ?? recoveredCommand ?? '';
|
|
3625
|
+
if (!taskRecord && commandPlan(executedCommand)) {
|
|
3626
|
+
taskRecord = { command: executedCommand };
|
|
3627
|
+
runByTask.set(taskId, taskRecord);
|
|
3628
|
+
}
|
|
3629
|
+
let diagnosticTarget = null;
|
|
3622
3630
|
try {
|
|
3623
3631
|
const target = config?.yieldOnFirstFailureFor?.(taskId);
|
|
3624
|
-
|
|
3625
|
-
if (target && command && isSuiteRunCommand(command)) {
|
|
3632
|
+
if (target) {
|
|
3626
3633
|
const url = new URL(target);
|
|
3627
|
-
|
|
3628
|
-
|
|
3629
|
-
(url.protocol === 'https:' || url.protocol === 'http:') &&
|
|
3630
|
-
runTarget !== 'local' &&
|
|
3631
|
-
runTarget === url.host.toLowerCase();
|
|
3632
|
-
if (yieldDiagnostic && !taskRecord) {
|
|
3633
|
-
taskRecord = { command };
|
|
3634
|
-
runByTask.set(taskId, taskRecord);
|
|
3635
|
-
}
|
|
3634
|
+
if (url.protocol === 'https:' || url.protocol === 'http:')
|
|
3635
|
+
diagnosticTarget = url.host.toLowerCase();
|
|
3636
3636
|
}
|
|
3637
3637
|
}
|
|
3638
3638
|
catch (_error) {
|
|
@@ -3663,14 +3663,12 @@ export function buildTools(backend, config) {
|
|
|
3663
3663
|
break;
|
|
3664
3664
|
}
|
|
3665
3665
|
}
|
|
3666
|
-
if (repeatingCauseNoted.has(taskId))
|
|
3667
|
-
continue;
|
|
3668
3666
|
if (Date.now() - lastCauseLookAt < repeatingCauseLookMs())
|
|
3669
3667
|
continue;
|
|
3670
3668
|
lastCauseLookAt = Date.now();
|
|
3671
3669
|
let causeLog;
|
|
3672
3670
|
try {
|
|
3673
|
-
const r = await backend.run(runningCauseCommand(log, outputFileByTask.get(taskId)), {
|
|
3671
|
+
const r = await backend.run(runningCauseCommand(log, outputFileByTask.get(taskId), executedCommand), {
|
|
3674
3672
|
timeout: 10_000,
|
|
3675
3673
|
});
|
|
3676
3674
|
causeLog = r.stdout ?? '';
|
|
@@ -3679,6 +3677,32 @@ export function buildTools(backend, config) {
|
|
|
3679
3677
|
// No look at the log this tick; the next one asks again.
|
|
3680
3678
|
continue;
|
|
3681
3679
|
}
|
|
3680
|
+
const step = commandStepView(executedCommand, causeLog);
|
|
3681
|
+
causeLog = step.output;
|
|
3682
|
+
const stepIdentity = step.stepKey ?? step.command;
|
|
3683
|
+
const previousStep = diagnosticStepByTask.get(taskId);
|
|
3684
|
+
if (previousStep !== undefined && previousStep !== stepIdentity) {
|
|
3685
|
+
repeatingCauseNoted.delete(taskId);
|
|
3686
|
+
midRunLeadNoted.delete(taskId);
|
|
3687
|
+
inlineFailuresByTask.delete(taskId);
|
|
3688
|
+
midRunNote = null;
|
|
3689
|
+
}
|
|
3690
|
+
diagnosticStepByTask.set(taskId, stepIdentity);
|
|
3691
|
+
started =
|
|
3692
|
+
step.command && (taskRecord?.cwd !== undefined || commandPlan(executedCommand))
|
|
3693
|
+
? { command: step.command, cwd: taskRecord?.cwd ?? root }
|
|
3694
|
+
: undefined;
|
|
3695
|
+
if ((commandPlan(executedCommand) && !step.command) || repeatingCauseNoted.has(taskId))
|
|
3696
|
+
continue;
|
|
3697
|
+
const runTarget = suiteCommandTarget(step.command);
|
|
3698
|
+
const yieldDiagnostic = diagnosticTarget !== null &&
|
|
3699
|
+
isSuiteRunCommand(step.command) &&
|
|
3700
|
+
runTarget !== 'local' &&
|
|
3701
|
+
runTarget === diagnosticTarget;
|
|
3702
|
+
if (yieldDiagnostic && !taskRecord) {
|
|
3703
|
+
taskRecord = { command: executedCommand };
|
|
3704
|
+
runByTask.set(taskId, taskRecord);
|
|
3705
|
+
}
|
|
3682
3706
|
// The log is the evidence for what the wait may promise about it: a failure's own body
|
|
3683
3707
|
// printed under a `✘` row means the run writes each failure's report as that test fails
|
|
3684
3708
|
// (see inlineFailuresByTask).
|
|
@@ -3687,7 +3711,7 @@ export function buildTools(backend, config) {
|
|
|
3687
3711
|
const found = repeatingFailure(causeLog);
|
|
3688
3712
|
// The page-renders-nothing cause needs no repeated signature: every spec waits for its
|
|
3689
3713
|
// own first element, so the failures differ while the cause does not (m141).
|
|
3690
|
-
const universal = universalCause(causeLog, found,
|
|
3714
|
+
const universal = step.complete ? universalCause(causeLog, found, step.command) : null;
|
|
3691
3715
|
// The ONE predicate behind this decision and `repeatingFailureNote`'s wording, so the two
|
|
3692
3716
|
// cannot come to different verdicts.
|
|
3693
3717
|
const stopCause = earlyReturnCause(found, universal);
|
|
@@ -3732,7 +3756,7 @@ export function buildTools(backend, config) {
|
|
|
3732
3756
|
// `--retries=0` has no retry to wait for, so its first failure is already final.
|
|
3733
3757
|
logShowsInlineFailureBodies(causeLog, excludedTestTitles?.() ?? [], {
|
|
3734
3758
|
finalOnly: true,
|
|
3735
|
-
noRetries: namesNoRetries(
|
|
3759
|
+
noRetries: namesNoRetries(step.command),
|
|
3736
3760
|
})) {
|
|
3737
3761
|
// Completion during the log read still wins over a progress return.
|
|
3738
3762
|
exitCode = await readExit();
|
|
@@ -3771,7 +3795,9 @@ export function buildTools(backend, config) {
|
|
|
3771
3795
|
// the only reading that needs none).
|
|
3772
3796
|
if (!found)
|
|
3773
3797
|
continue;
|
|
3774
|
-
if (!midRunLeadNoted.has(taskId)) {
|
|
3798
|
+
if (!midRunLeadNoted.has(taskId) || midRunNote !== null) {
|
|
3799
|
+
// Emit the lead once per task, but refresh this wait's pending note as its log grows.
|
|
3800
|
+
// Otherwise a long wait reports its first three failures even after many more repeat.
|
|
3775
3801
|
midRunLeadNoted.add(taskId);
|
|
3776
3802
|
// A run against the sandbox's own app is changed by an edit while it walks — the two
|
|
3777
3803
|
// instructions the note and the wait's own sentence give must agree (xr-molecule-flash-
|
|
@@ -3951,7 +3977,9 @@ export function buildTools(backend, config) {
|
|
|
3951
3977
|
// failing tests instead of leaving the executor to re-run the whole suite (xr-molecule-
|
|
3952
3978
|
// flash-m101 +12:13: 139 tests, ~4 minutes, to check two fixes).
|
|
3953
3979
|
const record = runByTask.get(taskId);
|
|
3954
|
-
const run = record?.cwd === undefined
|
|
3980
|
+
const run = record?.cwd === undefined
|
|
3981
|
+
? undefined
|
|
3982
|
+
: { command: logicalCommandText(record.command), cwd: record.cwd };
|
|
3955
3983
|
// The standard machine report this launch wired, when it did (`reportByTask`). Read once per
|
|
3956
3984
|
// finished wait: it is the runner's own record of each failing test's identity and of the
|
|
3957
3985
|
// artifacts saved for that test, so a diagnosis can stop reconstructing them from the log.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-artifacts.d.ts","sourceRoot":"","sources":["../src/trace-artifacts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;
|
|
1
|
+
{"version":3,"file":"trace-artifacts.d.ts","sourceRoot":"","sources":["../src/trace-artifacts.ts"],"names":[],"mappings":"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"}
|
package/dist/trace-artifacts.js
CHANGED
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
*
|
|
30
30
|
* @module
|
|
31
31
|
*/
|
|
32
|
+
import { logicalCommandText } from './command-plan.js';
|
|
32
33
|
import { locatedCommandSegments, statementArgumentEnd } from './command-position.js';
|
|
33
34
|
import { codeWithModuleSpecifiers } from './source-code.js';
|
|
34
35
|
import { playwrightCommandTarget, suiteRunDirectory } from './suite-overlap.js';
|
|
@@ -4504,7 +4505,7 @@ function suiteTracesOnRetry(configText) {
|
|
|
4504
4505
|
* @returns True when the run allows no retry.
|
|
4505
4506
|
*/
|
|
4506
4507
|
export function namesNoRetries(command) {
|
|
4507
|
-
return playwrightOption(command, '--retries') === '0';
|
|
4508
|
+
return playwrightOption(logicalCommandText(command), '--retries') === '0';
|
|
4508
4509
|
}
|
|
4509
4510
|
/** The last value a flag has in the runner's own argument list, never in another statement. */
|
|
4510
4511
|
function playwrightOption(command, name) {
|
package/dist/utilities.d.ts
CHANGED
|
@@ -962,11 +962,14 @@ export declare const RUNNING_FAILURE_LINE_RE = "^[[:space:]]*(\u2718|\u2717|\u00
|
|
|
962
962
|
*
|
|
963
963
|
* @param log - The task log path.
|
|
964
964
|
* @param own - A file the command redirects its own output to, if any.
|
|
965
|
+
* @param command - Executed command, whose logical plan supplies live step boundaries if present.
|
|
965
966
|
* @returns The shell command, safe to hand to the execution backend as-is.
|
|
966
967
|
*/
|
|
967
968
|
export declare function runningOutputSliceCommand(log: string, own?: string): string;
|
|
968
969
|
/** Bytes of a running log a repeating-cause look reads back. */
|
|
969
970
|
export declare const REPEATING_CAUSE_TAIL_BYTES = 40000;
|
|
971
|
+
/** Whole-step history retained for wrapped plans; ordinary diagnostic logs fit inside this bound. */
|
|
972
|
+
export declare const COMMAND_PLAN_LOG_CHARS = 4000000;
|
|
970
973
|
/**
|
|
971
974
|
* The shell command whose stdout is enough of a running log to tell whether one cause is
|
|
972
975
|
* repeating: its tail, {@link REPEATING_CAUSE_TAIL_BYTES} of it.
|
|
@@ -981,7 +984,7 @@ export declare const REPEATING_CAUSE_TAIL_BYTES = 40000;
|
|
|
981
984
|
* @param own - A file the command redirects its own output to, if any.
|
|
982
985
|
* @returns The shell command, safe to hand to the execution backend as-is.
|
|
983
986
|
*/
|
|
984
|
-
export declare function runningCauseCommand(log: string, own?: string): string;
|
|
987
|
+
export declare function runningCauseCommand(log: string, own?: string, command?: string): string;
|
|
985
988
|
/** Bytes of a running log a diagnostic note reads back: one {@link REPEATING_CAUSE_TAIL_BYTES} window. */
|
|
986
989
|
export declare const RUNNING_LOG_READ_BYTES = 40000;
|
|
987
990
|
/** A bounded, contiguous read of a running task's own log. */
|
package/dist/utilities.d.ts.map
CHANGED
|
@@ -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
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* @module
|
|
6
6
|
*/
|
|
7
7
|
import { posix } from 'path';
|
|
8
|
+
import { commandPlan, commandPlanLogRead, logicalCommandText } from './command-plan.js';
|
|
8
9
|
import { commandSegments, executedCommands, locatedCommandSegments, statementArgumentEnd, statementBoundary, withoutTimeoutWrapper, } from './command-position.js';
|
|
9
10
|
import { classifyRunFailure } from './failure-kind.js';
|
|
10
11
|
import { commandRunsNoTests } from './no-test-run.js';
|
|
@@ -664,6 +665,10 @@ function isStatusOnlyStep(step) {
|
|
|
664
665
|
* when one was actually wired — or `error` when the command starts the suite more than once.
|
|
665
666
|
*/
|
|
666
667
|
export function streamingBackgroundCommand(command, context, reportPath) {
|
|
668
|
+
// Opaque launchers prepare each logical step with this same function before wrapping it.
|
|
669
|
+
// Rewriting the outer command cannot change an encoded payload and can corrupt its metadata.
|
|
670
|
+
if (commandPlan(command))
|
|
671
|
+
return { command, changes: [] };
|
|
667
672
|
// A command that runs no test is not a run to keep a growing log for: nothing about it is
|
|
668
673
|
// rewritten (flash-m79's `--list` was read as a whole-suite run end to end, and got a ~4 KB
|
|
669
674
|
// refusal to send itself again with `--max-failures=15`).
|
|
@@ -1106,6 +1111,7 @@ const SUITE_RUN_COMMANDS = [
|
|
|
1106
1111
|
* @returns One entry per suite-running statement, as the parser read it (empty when none).
|
|
1107
1112
|
*/
|
|
1108
1113
|
export function suiteRunStatements(command) {
|
|
1114
|
+
command = logicalCommandText(command);
|
|
1109
1115
|
if (commandRunsNoTests(command))
|
|
1110
1116
|
return [];
|
|
1111
1117
|
return commandSegments(command)
|
|
@@ -2673,6 +2679,7 @@ export const RUNNING_FAILURE_LINE_RE = '^[[:space:]]*(✘|✗|×|✖|✕|[0-9]+\
|
|
|
2673
2679
|
*
|
|
2674
2680
|
* @param log - The task log path.
|
|
2675
2681
|
* @param own - A file the command redirects its own output to, if any.
|
|
2682
|
+
* @param command - Executed command, whose logical plan supplies live step boundaries if present.
|
|
2676
2683
|
* @returns The shell command, safe to hand to the execution backend as-is.
|
|
2677
2684
|
*/
|
|
2678
2685
|
export function runningOutputSliceCommand(log, own) {
|
|
@@ -2682,6 +2689,8 @@ export function runningOutputSliceCommand(log, own) {
|
|
|
2682
2689
|
}
|
|
2683
2690
|
/** Bytes of a running log a repeating-cause look reads back. */
|
|
2684
2691
|
export const REPEATING_CAUSE_TAIL_BYTES = 40_000;
|
|
2692
|
+
/** Whole-step history retained for wrapped plans; ordinary diagnostic logs fit inside this bound. */
|
|
2693
|
+
export const COMMAND_PLAN_LOG_CHARS = 4_000_000;
|
|
2685
2694
|
/**
|
|
2686
2695
|
* The shell command whose stdout is enough of a running log to tell whether one cause is
|
|
2687
2696
|
* repeating: its tail, {@link REPEATING_CAUSE_TAIL_BYTES} of it.
|
|
@@ -2696,8 +2705,11 @@ export const REPEATING_CAUSE_TAIL_BYTES = 40_000;
|
|
|
2696
2705
|
* @param own - A file the command redirects its own output to, if any.
|
|
2697
2706
|
* @returns The shell command, safe to hand to the execution backend as-is.
|
|
2698
2707
|
*/
|
|
2699
|
-
export function runningCauseCommand(log, own) {
|
|
2708
|
+
export function runningCauseCommand(log, own, command) {
|
|
2700
2709
|
const read = `cat ${log}${own ? ` ${shellQuote(own)}` : ''} 2>/dev/null`;
|
|
2710
|
+
const plan = command ? commandPlan(command) : null;
|
|
2711
|
+
if (plan)
|
|
2712
|
+
return `${read} | awk ${shellQuote(commandPlanLogRead(plan, COMMAND_PLAN_LOG_CHARS))}`;
|
|
2701
2713
|
return `${read} | tail -c ${REPEATING_CAUSE_TAIL_BYTES}`;
|
|
2702
2714
|
}
|
|
2703
2715
|
/** Bytes of a running log a diagnostic note reads back: one {@link REPEATING_CAUSE_TAIL_BYTES} window. */
|
|
@@ -3610,6 +3622,7 @@ const PLAYWRIGHT_VALUE_FLAGS = new Set([
|
|
|
3610
3622
|
* suite) or the selection cannot be told.
|
|
3611
3623
|
*/
|
|
3612
3624
|
export function specFilesSelected(command) {
|
|
3625
|
+
command = logicalCommandText(command);
|
|
3613
3626
|
for (const segment of commandSegments(command)) {
|
|
3614
3627
|
if (!/^playwright\s+test\b/.test(segment.text))
|
|
3615
3628
|
continue;
|