@molecule/api-ai-tools 1.13.1 → 1.14.1
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 +135 -42
- package/dist/command-position.d.ts +26 -0
- package/dist/command-position.d.ts.map +1 -1
- package/dist/command-position.js +314 -59
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/suite-overlap.d.ts +3 -1
- package/dist/suite-overlap.d.ts.map +1 -1
- package/dist/suite-overlap.js +130 -7
- package/dist/tools.d.ts +15 -0
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +91 -20
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utilities.d.ts +49 -28
- package/dist/utilities.d.ts.map +1 -1
- package/dist/utilities.js +317 -70
- package/package.json +1 -1
package/dist/suite-overlap.js
CHANGED
|
@@ -180,9 +180,10 @@ function applyTextEdits(command, edits) {
|
|
|
180
180
|
* @param statement - The statement's text.
|
|
181
181
|
* @param offset - The statement's offset in the command.
|
|
182
182
|
* @param words - The command's word spans.
|
|
183
|
+
* @param fresh - The exact old file → fresh file mapping the edits make, filled in here.
|
|
183
184
|
* @returns The edits, in statement order.
|
|
184
185
|
*/
|
|
185
|
-
function freshRedirectEdits(statement, offset, words) {
|
|
186
|
+
function freshRedirectEdits(statement, offset, words, fresh) {
|
|
186
187
|
const edits = [];
|
|
187
188
|
for (const match of statement.matchAll(FILE_REDIRECT)) {
|
|
188
189
|
const before = match[1] ?? '';
|
|
@@ -203,7 +204,9 @@ function freshRedirectEdits(statement, offset, words) {
|
|
|
203
204
|
continue;
|
|
204
205
|
const quote = single !== undefined || double !== undefined ? 1 : 0;
|
|
205
206
|
const start = offset + (match.index ?? 0) + before.length + op.length + space.length + quote;
|
|
206
|
-
|
|
207
|
+
const rewritten = `${target}.rerun.log`;
|
|
208
|
+
fresh.set(target, rewritten);
|
|
209
|
+
edits.push({ start, end: start + target.length, text: rewritten });
|
|
207
210
|
}
|
|
208
211
|
return edits;
|
|
209
212
|
}
|
|
@@ -217,9 +220,10 @@ function freshRedirectEdits(statement, offset, words) {
|
|
|
217
220
|
*
|
|
218
221
|
* @param statement - The stage's text.
|
|
219
222
|
* @param offset - The stage's offset in the command.
|
|
223
|
+
* @param fresh - The exact old file → fresh file mapping the edits make, filled in here.
|
|
220
224
|
* @returns The edits, in stage order.
|
|
221
225
|
*/
|
|
222
|
-
function freshTeeEdits(statement, offset) {
|
|
226
|
+
function freshTeeEdits(statement, offset, fresh) {
|
|
223
227
|
const words = [...statement.matchAll(ARGUMENT_WORD)].map((match) => ({
|
|
224
228
|
text: match[0],
|
|
225
229
|
start: offset + (match.index ?? 0),
|
|
@@ -233,10 +237,12 @@ function freshTeeEdits(statement, offset) {
|
|
|
233
237
|
if (!bare || bare.startsWith('-') || DEVICE_TARGET.test(bare))
|
|
234
238
|
continue;
|
|
235
239
|
const quote = /^['"]/.test(word.text) ? 1 : 0;
|
|
240
|
+
const rewritten = `${bare}.rerun.log`;
|
|
241
|
+
fresh.set(bare, rewritten);
|
|
236
242
|
edits.push({
|
|
237
243
|
start: word.start + quote,
|
|
238
244
|
end: word.start + word.text.length - quote,
|
|
239
|
-
text:
|
|
245
|
+
text: rewritten,
|
|
240
246
|
});
|
|
241
247
|
}
|
|
242
248
|
return edits;
|
|
@@ -283,6 +289,113 @@ function runnerOutputStatements(command) {
|
|
|
283
289
|
}
|
|
284
290
|
return statements;
|
|
285
291
|
}
|
|
292
|
+
/**
|
|
293
|
+
* Readers whose non-flag operands are ALL files: a display of the run's own report. Every one of
|
|
294
|
+
* them is read-only, so moving its operand with the file it reads cannot change what it does.
|
|
295
|
+
*/
|
|
296
|
+
const FILE_READERS = new Set(['cat', 'head', 'tail']);
|
|
297
|
+
/**
|
|
298
|
+
* grep-family readers: their first non-flag operand is the pattern, and the words after it are the
|
|
299
|
+
* files they display — unless a `-e`/`-f` flag named the pattern already.
|
|
300
|
+
*/
|
|
301
|
+
const GREP_READERS = new Set(['egrep', 'fgrep', 'grep']);
|
|
302
|
+
/** grep's pattern flags: the word after one is a pattern (or a pattern file), never a file. */
|
|
303
|
+
const GREP_PATTERN_FLAGS = new Set(['-e', '--regexp', '-f', '--file']);
|
|
304
|
+
/**
|
|
305
|
+
* The postlude statements that DISPLAY the run's own report, with the exact file that run wrote
|
|
306
|
+
* pointed at the fresh sibling the re-run writes instead.
|
|
307
|
+
*
|
|
308
|
+
* xr-molecule-flash-o03 (2026-10-22; the stale-READ arm m248 filed at +25:55): the recipe the
|
|
309
|
+
* platform handed the executor ended `> /tmp/e2e-local.log.rerun.log 2>&1; echo EXIT=$?; tail -80
|
|
310
|
+
* /tmp/e2e-local.log`. The writer moved to the fresh sibling and the trailing tail did not, so the
|
|
311
|
+
* narrowed re-run displayed the walk it was narrowed FROM — the builder followed that recipe at
|
|
312
|
+
* +19:16 and read the previous walk's failures as the result of the run it had just done.
|
|
313
|
+
*
|
|
314
|
+
* Only the EXACT file a runner statement (or its `tee`) wrote moves, and only in a statement AFTER
|
|
315
|
+
* the run: the setup in front of it keeps every byte (m429), and a read of any other file is left
|
|
316
|
+
* alone. The value is compared whole — `/tmp/full.log` never matches `/tmp/full.log.bak` — and
|
|
317
|
+
* inside shell quotes the operand's own quoting survives (`"/tmp/my walk.log"` stays quoted).
|
|
318
|
+
*
|
|
319
|
+
* The bound is deliberate: a display this reader set does not recognise (a `wc`, a path held in a
|
|
320
|
+
* variable, a path the command builds) is left exactly as written rather than guessed at. Those
|
|
321
|
+
* shapes are not the ones the platform emits, and rewriting a word by resemblance is how m429's
|
|
322
|
+
* setup redirect was corrupted.
|
|
323
|
+
*
|
|
324
|
+
* @param command - The composed command.
|
|
325
|
+
* @param statements - The statements carrying the run's own output.
|
|
326
|
+
* @param fresh - The exact old file → fresh file mapping the redirect edits made.
|
|
327
|
+
* @returns The edits, in statement order.
|
|
328
|
+
*/
|
|
329
|
+
function freshReportReadEdits(command, statements, fresh) {
|
|
330
|
+
if (fresh.size === 0)
|
|
331
|
+
return [];
|
|
332
|
+
const after = Math.max(...statements.map((statement) => statement.end));
|
|
333
|
+
const edits = [];
|
|
334
|
+
for (const entry of locatedCommandSegments(command)) {
|
|
335
|
+
const segment = entry.segment;
|
|
336
|
+
const start = entry.start;
|
|
337
|
+
const end = entry.end;
|
|
338
|
+
const programOffset = entry.programOffset;
|
|
339
|
+
// Only a statement the parse placed and that runs AFTER the walk can display its report.
|
|
340
|
+
if (segment === null || start === null || end === null)
|
|
341
|
+
continue;
|
|
342
|
+
if (start < after || programOffset === null)
|
|
343
|
+
continue;
|
|
344
|
+
const allFiles = FILE_READERS.has(segment.program);
|
|
345
|
+
const grep = GREP_READERS.has(segment.program);
|
|
346
|
+
if (!allFiles && !grep)
|
|
347
|
+
continue;
|
|
348
|
+
const text = command.slice(start, end);
|
|
349
|
+
const words = [...text.matchAll(ARGUMENT_WORD)].map((match) => ({
|
|
350
|
+
text: match[0],
|
|
351
|
+
start: start + (match.index ?? 0),
|
|
352
|
+
}));
|
|
353
|
+
// The program word's own span, so the walk starts exactly where the parse says it does.
|
|
354
|
+
const program = words.findIndex((word) => word.start === programOffset);
|
|
355
|
+
if (program < 0)
|
|
356
|
+
continue;
|
|
357
|
+
/** grep still owes its pattern: the first bare operand is that pattern, not a file. */
|
|
358
|
+
let patternPending = grep;
|
|
359
|
+
for (let i = program + 1; i < words.length; i += 1) {
|
|
360
|
+
const word = words[i];
|
|
361
|
+
if (word === undefined)
|
|
362
|
+
break;
|
|
363
|
+
if (ARGUMENT_REDIRECT_OPERATOR.test(word.text)) {
|
|
364
|
+
// The operator's target is where the display WRITES, not a file it reads.
|
|
365
|
+
i += 1;
|
|
366
|
+
continue;
|
|
367
|
+
}
|
|
368
|
+
if (ARGUMENT_REDIRECT.test(word.text))
|
|
369
|
+
continue;
|
|
370
|
+
const flag = unquoted(word.text);
|
|
371
|
+
if (flag.startsWith('-') && flag !== '-') {
|
|
372
|
+
if (grep) {
|
|
373
|
+
if (GREP_PATTERN_FLAGS.has(flag)) {
|
|
374
|
+
patternPending = false;
|
|
375
|
+
i += 1;
|
|
376
|
+
}
|
|
377
|
+
else if (/^(?:--(?:regexp|file)=|-[ef].)/.test(flag))
|
|
378
|
+
patternPending = false;
|
|
379
|
+
}
|
|
380
|
+
continue;
|
|
381
|
+
}
|
|
382
|
+
if (patternPending) {
|
|
383
|
+
patternPending = false;
|
|
384
|
+
continue;
|
|
385
|
+
}
|
|
386
|
+
const to = fresh.get(unquoted(word.text));
|
|
387
|
+
if (to === undefined)
|
|
388
|
+
continue;
|
|
389
|
+
const quote = /^['"]/.test(word.text) ? 1 : 0;
|
|
390
|
+
edits.push({
|
|
391
|
+
start: word.start + quote,
|
|
392
|
+
end: word.start + word.text.length - quote,
|
|
393
|
+
text: to,
|
|
394
|
+
});
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
return edits;
|
|
398
|
+
}
|
|
286
399
|
/**
|
|
287
400
|
* The command with the SUITE RUN's own log files pointed at fresh siblings, and nothing else
|
|
288
401
|
* changed.
|
|
@@ -302,6 +415,12 @@ function runnerOutputStatements(command) {
|
|
|
302
415
|
* source asset it lays down are the same shape: their targets stay byte-for-byte, and so does
|
|
303
416
|
* every statement chained after the run (`; echo EXIT $? > /tmp/done`).
|
|
304
417
|
*
|
|
418
|
+
* Every statement chained after the run (`; echo EXIT $? > /tmp/done`) is postlude and keeps its
|
|
419
|
+
* own writes, but the DISPLAY of the run's report is part of the same run: a `tail`, `head`, `cat`
|
|
420
|
+
* or `grep` after the run that reads the exact file it wrote is pointed at the fresh sibling too
|
|
421
|
+
* ({@link freshReportReadEdits}), so a re-run shows its own output instead of the walk's
|
|
422
|
+
* (xr-molecule-flash-o03).
|
|
423
|
+
*
|
|
305
424
|
* @param command - The composed command.
|
|
306
425
|
* @returns The command whose suite-run redirects write to a fresh target.
|
|
307
426
|
*/
|
|
@@ -311,12 +430,14 @@ function redirectRunnerOutputsToFreshFiles(command) {
|
|
|
311
430
|
return command;
|
|
312
431
|
const words = wordSpans(command);
|
|
313
432
|
const edits = [];
|
|
433
|
+
const fresh = new Map();
|
|
314
434
|
for (const statement of statements) {
|
|
315
435
|
const text = command.slice(statement.start, statement.end);
|
|
316
|
-
edits.push(...freshRedirectEdits(text, statement.start, words));
|
|
436
|
+
edits.push(...freshRedirectEdits(text, statement.start, words, fresh));
|
|
317
437
|
if (statement.tee)
|
|
318
|
-
edits.push(...freshTeeEdits(text, statement.start));
|
|
438
|
+
edits.push(...freshTeeEdits(text, statement.start, fresh));
|
|
319
439
|
}
|
|
440
|
+
edits.push(...freshReportReadEdits(command, statements, fresh));
|
|
320
441
|
return applyTextEdits(command, edits);
|
|
321
442
|
}
|
|
322
443
|
/**
|
|
@@ -329,7 +450,9 @@ function redirectRunnerOutputsToFreshFiles(command) {
|
|
|
329
450
|
* The re-run keeps the run's `> <file>` redirect only in the sense of keeping its OUTPUT there:
|
|
330
451
|
* the target is rewritten to a fresh sibling ({@link redirectRunnerOutputsToFreshFiles}), so a
|
|
331
452
|
* re-run never overwrites the log the run itself is the evidence for (xr-molecule-flash-m173) —
|
|
332
|
-
* and the setup around the run keeps its own file writes untouched (xr-molecule-flash-m429).
|
|
453
|
+
* and the setup around the run keeps its own file writes untouched (xr-molecule-flash-m429). A
|
|
454
|
+
* `tail`/`head`/`cat`/`grep` chained after the run that reads that exact log is shown the fresh
|
|
455
|
+
* sibling instead, so the re-run displays the run it performed (xr-molecule-flash-o03).
|
|
333
456
|
*
|
|
334
457
|
* `config` is the config the run was measured under ({@link withSuiteConfig}): the narrowed re-run
|
|
335
458
|
* carries it whenever the command itself does not, so a run that dropped `--config` cannot be
|
package/dist/tools.d.ts
CHANGED
|
@@ -59,6 +59,21 @@ export declare const SUITE_OVER_BUDGET_ADVICE: string;
|
|
|
59
59
|
* @returns The note, or null when the path is not inside a package's `dist`.
|
|
60
60
|
*/
|
|
61
61
|
export declare function moleculeDistReadNote(path: string): string | null;
|
|
62
|
+
/**
|
|
63
|
+
* The command that reads a REGISTERED background task's own log as one bounded contiguous window
|
|
64
|
+
* ({@link runningLogReadCommand}), with the file its launch redirects to when the launch recorded
|
|
65
|
+
* one.
|
|
66
|
+
*
|
|
67
|
+
* The task id is the ownership: it is the handle `wait_for_task` returned, `/tmp/${taskId}.log` is
|
|
68
|
+
* the log this platform's launcher writes for it, and the redirect target is the file this
|
|
69
|
+
* process's own launch registered for that id — never a path parsed out of a command by the
|
|
70
|
+
* caller. A diagnosis that reads a running walk must not build a `/tmp` path of its own
|
|
71
|
+
* (xr-molecule-flash-l07: the wait's DISPLAY was diagnosed as if it were the log).
|
|
72
|
+
*
|
|
73
|
+
* @param taskId - The `mol-bg-…` handle the wait returned.
|
|
74
|
+
* @returns The read command, or null when the handle is not a task id this platform minted.
|
|
75
|
+
*/
|
|
76
|
+
export declare function registeredTaskLogCommand(taskId: string): string | null;
|
|
62
77
|
/**
|
|
63
78
|
* What the filesystem says about a write target under `node_modules` — the half
|
|
64
79
|
* of the decision a path's spelling cannot make.
|
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;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;
|
|
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"}
|
package/dist/tools.js
CHANGED
|
@@ -703,7 +703,7 @@ async function backgroundTaskState(backend, command, seconds, ceilingMs) {
|
|
|
703
703
|
}
|
|
704
704
|
import { suiteCommandTarget } from './suite-overlap.js';
|
|
705
705
|
import { diagnosisTraceCommand } from './trace-artifacts.js';
|
|
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, 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';
|
|
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
|
/**
|
|
708
708
|
* How long exec_command waits for a command it backgrounded only because the
|
|
709
709
|
* command asked for more than the tool's ceiling, before handing back a task id.
|
|
@@ -840,6 +840,25 @@ export function moleculeDistReadNote(path) {
|
|
|
840
840
|
? ' The declarations above are generated from it.'
|
|
841
841
|
: ' For one signature, read the matching .d.ts file.'));
|
|
842
842
|
}
|
|
843
|
+
/**
|
|
844
|
+
* The command that reads a REGISTERED background task's own log as one bounded contiguous window
|
|
845
|
+
* ({@link runningLogReadCommand}), with the file its launch redirects to when the launch recorded
|
|
846
|
+
* one.
|
|
847
|
+
*
|
|
848
|
+
* The task id is the ownership: it is the handle `wait_for_task` returned, `/tmp/${taskId}.log` is
|
|
849
|
+
* the log this platform's launcher writes for it, and the redirect target is the file this
|
|
850
|
+
* process's own launch registered for that id — never a path parsed out of a command by the
|
|
851
|
+
* caller. A diagnosis that reads a running walk must not build a `/tmp` path of its own
|
|
852
|
+
* (xr-molecule-flash-l07: the wait's DISPLAY was diagnosed as if it were the log).
|
|
853
|
+
*
|
|
854
|
+
* @param taskId - The `mol-bg-…` handle the wait returned.
|
|
855
|
+
* @returns The read command, or null when the handle is not a task id this platform minted.
|
|
856
|
+
*/
|
|
857
|
+
export function registeredTaskLogCommand(taskId) {
|
|
858
|
+
if (!TASK_ID.test(taskId))
|
|
859
|
+
return null;
|
|
860
|
+
return runningLogReadCommand(`/tmp/${taskId}.log`, outputFileByTask.get(taskId));
|
|
861
|
+
}
|
|
843
862
|
/**
|
|
844
863
|
* The `node_modules` entry a path goes through, and the package name after it
|
|
845
864
|
* (`null` when the path IS the entry).
|
|
@@ -2385,12 +2404,14 @@ export function buildTools(backend, config) {
|
|
|
2385
2404
|
r.new_string !== '' &&
|
|
2386
2405
|
!r.new_string.endsWith('\n'));
|
|
2387
2406
|
const syntax = await syntaxErrorAfterWrite(path);
|
|
2388
|
-
//
|
|
2389
|
-
//
|
|
2390
|
-
//
|
|
2391
|
-
//
|
|
2392
|
-
//
|
|
2393
|
-
//
|
|
2407
|
+
// A parse error and a dropped line break are two OBSERVATIONS, not one
|
|
2408
|
+
// accident. A join only sometimes breaks the syntax (same-line JSX siblings
|
|
2409
|
+
// parse), and the diagnostic usually comes from something else in the same
|
|
2410
|
+
// edit — flash-l20 +17:26 dropped the boundary while inserting an opening
|
|
2411
|
+
// fragment it never closed; the advisory blamed the join, and restoring only
|
|
2412
|
+
// the newline returned the same unmatched-fragment error. So show where the
|
|
2413
|
+
// lines joined and hand over the parser's own diagnostic, and ask whether the
|
|
2414
|
+
// join was intended instead of prescribing a newline-only repair.
|
|
2394
2415
|
const which = dropped.length === 1
|
|
2395
2416
|
? `replacement ${dropped[0].position}`
|
|
2396
2417
|
: `replacements ${dropped.map((r) => r.position).join(', ')}`;
|
|
@@ -2403,17 +2424,18 @@ export function buildTools(backend, config) {
|
|
|
2403
2424
|
const shownFused = fused
|
|
2404
2425
|
.map((l) => ` ${l.line}: ${l.text.length > 200 ? `${l.text.slice(0, 200)}…` : l.text}`)
|
|
2405
2426
|
.join('\n');
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
|
|
2427
|
+
// Only claim a join the final file proves (`located`), never one inferred from
|
|
2428
|
+
// the replacements alone: a replacement can drop a newline that ended a line
|
|
2429
|
+
// with a BLANK line after it, in which case nothing joined (flash-m62).
|
|
2430
|
+
const fusedNote = syntax.syntaxError && located.length > 0
|
|
2431
|
+
? 'A replacement removed a line break. Check whether the join was intended; the ' +
|
|
2432
|
+
'parser diagnostic below may have another cause.\n' +
|
|
2433
|
+
`Joined by ${which}:\n` +
|
|
2434
|
+
shownFused +
|
|
2411
2435
|
(fusedOmitted > 0
|
|
2412
|
-
? `\n (${fusedOmitted} more
|
|
2436
|
+
? `\n (${fusedOmitted} more joined line(s) — read_file ${path})`
|
|
2413
2437
|
: '') +
|
|
2414
|
-
`\
|
|
2415
|
-
"else about it). Editing the FUSED LINE's text instead fuses the next line the same " +
|
|
2416
|
-
`way (flash-m55: three edits in a row).\n${syntax.syntaxError}`
|
|
2438
|
+
`\n${syntax.syntaxError}`
|
|
2417
2439
|
: null;
|
|
2418
2440
|
return {
|
|
2419
2441
|
path,
|
|
@@ -3293,6 +3315,7 @@ export function buildTools(backend, config) {
|
|
|
3293
3315
|
// server-side costs no round trip and no context.
|
|
3294
3316
|
async wait_for_task(input) {
|
|
3295
3317
|
const taskId = typeof input.taskId === 'string' ? input.taskId.trim() : '';
|
|
3318
|
+
let recoveredCommand;
|
|
3296
3319
|
// An id another project launched is not this project's to wait on — its files are in that
|
|
3297
3320
|
// project's sandbox, so a wait here would poll for an exit file that never appears, and its
|
|
3298
3321
|
// wait time would count against that project's own stuck clock (xr-molecule-flash-m208
|
|
@@ -3329,6 +3352,7 @@ export function buildTools(backend, config) {
|
|
|
3329
3352
|
outputFileProbed.add(taskId);
|
|
3330
3353
|
try {
|
|
3331
3354
|
const script = await backend.readFile(`/tmp/${taskId}.sh`);
|
|
3355
|
+
recoveredCommand = script;
|
|
3332
3356
|
const target = outputRedirectTarget(script);
|
|
3333
3357
|
// A relative target was written against the command's own cwd, which
|
|
3334
3358
|
// the handle does not carry; the project root is where a background
|
|
@@ -3459,7 +3483,31 @@ export function buildTools(backend, config) {
|
|
|
3459
3483
|
// and its overlap hold refused that exact run 23 s later) — and so a run narrowed to a
|
|
3460
3484
|
// file or two is judged against what it selected (xr-molecule-flash-m119 +42:08). Read
|
|
3461
3485
|
// BEFORE the loop: the running answers below are built after it closes and still need it.
|
|
3462
|
-
|
|
3486
|
+
let taskRecord = runByTask.get(taskId);
|
|
3487
|
+
// Recovery knows the script, not the original cwd. Keep existing rerun hints unknown.
|
|
3488
|
+
const started = taskRecord?.cwd === undefined
|
|
3489
|
+
? undefined
|
|
3490
|
+
: { command: taskRecord.command, cwd: taskRecord.cwd };
|
|
3491
|
+
let yieldDiagnostic = false;
|
|
3492
|
+
try {
|
|
3493
|
+
const target = config?.yieldOnFirstFailureFor?.(taskId);
|
|
3494
|
+
const command = taskRecord?.command ?? recoveredCommand;
|
|
3495
|
+
if (target && command && isSuiteRunCommand(command)) {
|
|
3496
|
+
const url = new URL(target);
|
|
3497
|
+
const runTarget = suiteCommandTarget(command);
|
|
3498
|
+
yieldDiagnostic =
|
|
3499
|
+
(url.protocol === 'https:' || url.protocol === 'http:') &&
|
|
3500
|
+
runTarget !== 'local' &&
|
|
3501
|
+
runTarget === url.host.toLowerCase();
|
|
3502
|
+
if (yieldDiagnostic && !taskRecord) {
|
|
3503
|
+
taskRecord = { command };
|
|
3504
|
+
runByTask.set(taskId, taskRecord);
|
|
3505
|
+
}
|
|
3506
|
+
}
|
|
3507
|
+
}
|
|
3508
|
+
catch (_error) {
|
|
3509
|
+
// Unknown consumer history/target does not change an ordinary wait.
|
|
3510
|
+
}
|
|
3463
3511
|
let midRunNote = null;
|
|
3464
3512
|
let lastCauseLookAt = startedAt - repeatingCauseLookMs();
|
|
3465
3513
|
let lastEndLookAt = startedAt - TASK_END_LOOK_MS;
|
|
@@ -3510,8 +3558,6 @@ export function buildTools(backend, config) {
|
|
|
3510
3558
|
// The page-renders-nothing cause needs no repeated signature: every spec waits for its
|
|
3511
3559
|
// own first element, so the failures differ while the cause does not (m141).
|
|
3512
3560
|
const universal = universalCause(causeLog, found, started?.command);
|
|
3513
|
-
if (!found && !universal)
|
|
3514
|
-
continue;
|
|
3515
3561
|
// The ONE predicate behind this decision and `repeatingFailureNote`'s wording, so the two
|
|
3516
3562
|
// cannot come to different verdicts.
|
|
3517
3563
|
const stopCause = earlyReturnCause(found, universal);
|
|
@@ -3542,6 +3588,30 @@ export function buildTools(backend, config) {
|
|
|
3542
3588
|
}),
|
|
3543
3589
|
};
|
|
3544
3590
|
}
|
|
3591
|
+
if (yieldDiagnostic &&
|
|
3592
|
+
taskRecord &&
|
|
3593
|
+
!taskRecord.diagnosticYielded &&
|
|
3594
|
+
logShowsInlineFailureBodies(causeLog)) {
|
|
3595
|
+
// Completion during the log read still wins over a progress return.
|
|
3596
|
+
exitCode = await readExit();
|
|
3597
|
+
if (exitCode !== null)
|
|
3598
|
+
break;
|
|
3599
|
+
// Another wait can yield while this sandbox read is pending.
|
|
3600
|
+
if (taskRecord.diagnosticYielded)
|
|
3601
|
+
continue;
|
|
3602
|
+
taskRecord.diagnosticYielded = true;
|
|
3603
|
+
const earlyMs = Date.now() - startedAt;
|
|
3604
|
+
waitedByTask.set(taskId, waitedBefore + earlyMs);
|
|
3605
|
+
return {
|
|
3606
|
+
taskId,
|
|
3607
|
+
status: 'running',
|
|
3608
|
+
waitedMs: earlyMs,
|
|
3609
|
+
outputSoFar: sanitizeOutput(truncateMiddle(causeLog, MAX_OUTPUT_SIZE)),
|
|
3610
|
+
note: 'A failure report is available, but this task is still running. This is partial ' +
|
|
3611
|
+
'log output, not a completed result. Local edits do not change this deployed ' +
|
|
3612
|
+
'build; leave the task running and collect its final result.',
|
|
3613
|
+
};
|
|
3614
|
+
}
|
|
3545
3615
|
// A lead: this wait goes on, and the finding rides its result as a note — the executor has
|
|
3546
3616
|
// to keep waiting for the run's own result, so it must not be told one in the status. The
|
|
3547
3617
|
// look keeps running for the same reason: an app that goes down mid-run turns a shared
|
|
@@ -3728,7 +3798,8 @@ export function buildTools(backend, config) {
|
|
|
3728
3798
|
// How this run was started, so the note can hand over the narrowed re-run of exactly its
|
|
3729
3799
|
// failing tests instead of leaving the executor to re-run the whole suite (xr-molecule-
|
|
3730
3800
|
// flash-m101 +12:13: 139 tests, ~4 minutes, to check two fixes).
|
|
3731
|
-
const
|
|
3801
|
+
const record = runByTask.get(taskId);
|
|
3802
|
+
const run = record?.cwd === undefined ? undefined : { command: record.command, cwd: record.cwd };
|
|
3732
3803
|
// The standard machine report this launch wired, when it did (`reportByTask`). Read once per
|
|
3733
3804
|
// finished wait: it is the runner's own record of each failing test's identity and of the
|
|
3734
3805
|
// artifacts saved for that test, so a diagnosis can stop reconstructing them from the log.
|
package/dist/types.d.ts
CHANGED
|
@@ -142,6 +142,13 @@ export interface ToolBuildConfig {
|
|
|
142
142
|
* little under that outer timeout. Unset = no budget.
|
|
143
143
|
*/
|
|
144
144
|
commandBudgetMs?: number;
|
|
145
|
+
/**
|
|
146
|
+
* Opt in to one partial diagnostic return for a task driving this known deployed URL.
|
|
147
|
+
* Return null when the task already returned a wait result or its history is unknown.
|
|
148
|
+
* Only a real suite command with a complete inline failure report can yield; it remains
|
|
149
|
+
* running, with no exit code or completed proof. Absent leaves ordinary waits unchanged.
|
|
150
|
+
*/
|
|
151
|
+
yieldOnFirstFailureFor?: (taskId: string) => string | null;
|
|
145
152
|
/**
|
|
146
153
|
* How long (ms) exec_command waits for a command it backgrounded only because the
|
|
147
154
|
* command asked for more than {@link commandBudgetMs}, before handing back a task
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/utilities.d.ts
CHANGED
|
@@ -185,13 +185,15 @@ export declare const PLAYWRIGHT_FAILURES_INLINE_ENV = "PLAYWRIGHT_LIST_PRINT_FAI
|
|
|
185
185
|
* It is dropped: `wait_for_task` already returns the end of the log.
|
|
186
186
|
* - any output-only filter piped after a SUITE runner (`| grep … | tail -20`), which hides the
|
|
187
187
|
* failing test's own error and leaves the pipeline's exit status — the filter's — as the run's.
|
|
188
|
-
* Every such stage is dropped
|
|
189
|
-
* returns the end of the full log,
|
|
190
|
-
* (xr-molecule-flash-m101 +25:54).
|
|
188
|
+
* Every such stage is dropped from EVERY suite run in the command, not only the last
|
|
189
|
+
* ({@link stripTrailingSuiteFilters}); `wait_for_task` already returns the end of the full log,
|
|
190
|
+
* and a run whose tally shows a failure must never report 0 (xr-molecule-flash-m101 +25:54).
|
|
191
191
|
* - `playwright test` with no `--reporter`, which runs the config's reporter —
|
|
192
192
|
* often `html`, which prints nothing per test. `--reporter=list` is added
|
|
193
193
|
* when the playwright run is the command's last step, piped or not: it writes each result as
|
|
194
|
-
* it finishes, and it is the shape the platform reads a background suite back in.
|
|
194
|
+
* it finishes, and it is the shape the platform reads a background suite back in. Every EARLIER
|
|
195
|
+
* Playwright invocation gets the same reporter, so its log is readable while it walks; the
|
|
196
|
+
* machine `json` report stays on the last invocation.
|
|
195
197
|
*
|
|
196
198
|
* The run ends up with exactly ONE reporter that prints each failure — `list`. A run that names
|
|
197
199
|
* any other printing reporter has it REPLACED, never joined: two of them write every test result
|
|
@@ -393,35 +395,18 @@ export declare function isPlaywrightRunCommand(command: string): boolean;
|
|
|
393
395
|
export interface SuiteFilterStrip {
|
|
394
396
|
/** The command to run. */
|
|
395
397
|
command: string;
|
|
396
|
-
/**
|
|
398
|
+
/**
|
|
399
|
+
* The pipeline stages dropped, as written (`| grep … | tail -20`), or '' when none were. A
|
|
400
|
+
* command with several suite runs lists one group per run, joined by a space.
|
|
401
|
+
*/
|
|
397
402
|
dropped: string;
|
|
398
403
|
}
|
|
399
404
|
/**
|
|
400
|
-
* Drop the output-only filters piped after the command's suite
|
|
401
|
-
*
|
|
402
|
-
* A filter after the runner is not "the end of the log" the executor asked for: it hides the
|
|
403
|
-
* failing test's own error (it usually matches none of `✘|passed|failed`), and the pipeline's exit
|
|
404
|
-
* status becomes the FILTER's, so `… 2>&1 | grep -E "✘|passed|failed|skipped" | tail -20` came back
|
|
405
|
-
* `exitCode: 0` for a run with a failure in it (xr-molecule-flash-m101 +25:54). The tool returns
|
|
406
|
-
* the end of the full log anyway, so the filter only costs diagnosability.
|
|
407
|
-
*
|
|
408
|
-
* Only a contiguous suffix of the stages after the runner is cut, and only stages the parse proves
|
|
409
|
-
* are output-only ({@link isOutputOnlyFilter}): a `| tee` or `| xargs` keeps its place, and a
|
|
410
|
-
* caller that reports the run's exit code must then treat it as unknown
|
|
411
|
-
* ({@link suiteRunPipedAfterRunner}).
|
|
412
|
-
*
|
|
413
|
-
* A statement after the run's own pipeline (`; echo done`, `&& echo ok`) does not protect the
|
|
414
|
-
* filters before it: the filter is thrown away and the trailing statement is kept, so the log the
|
|
415
|
-
* run writes still holds every failure (xr-molecule-flash-m121 — a `| tail -5; echo done` kept its
|
|
416
|
-
* tail, and a 95-second walk's log held only the tally while the platform's own hold had handed
|
|
417
|
-
* that command back).
|
|
418
|
-
*
|
|
419
|
-
* The command around the dropped stages is left as written: a group they sit in keeps its closer
|
|
420
|
-
* (`( … | tail -25)` → `( … )`, never `( …` — xr-molecule-flash-m418 +23:31), and a stage the cut
|
|
421
|
-
* would leave a closer dangling inside is not dropped at all.
|
|
405
|
+
* Drop the output-only filters piped after the command's suite runners
|
|
406
|
+
* ({@link suiteFilterDrops}).
|
|
422
407
|
*
|
|
423
408
|
* @param command - The shell command.
|
|
424
|
-
* @returns The rewritten command and the stages dropped.
|
|
409
|
+
* @returns The rewritten command, and the stages dropped in command order (`''` when none were).
|
|
425
410
|
*/
|
|
426
411
|
export declare function stripTrailingSuiteFilters(command: string): SuiteFilterStrip;
|
|
427
412
|
/** Whether a finished run's exit code belongs to a stage after the suite runner. */
|
|
@@ -964,6 +949,42 @@ export declare const REPEATING_CAUSE_TAIL_BYTES = 40000;
|
|
|
964
949
|
* @returns The shell command, safe to hand to the execution backend as-is.
|
|
965
950
|
*/
|
|
966
951
|
export declare function runningCauseCommand(log: string, own?: string): string;
|
|
952
|
+
/** Bytes of a running log a diagnostic note reads back: one {@link REPEATING_CAUSE_TAIL_BYTES} window. */
|
|
953
|
+
export declare const RUNNING_LOG_READ_BYTES = 40000;
|
|
954
|
+
/** A bounded, contiguous read of a running task's own log. */
|
|
955
|
+
export interface RunningLogRead {
|
|
956
|
+
/** The log's last {@link RUNNING_LOG_READ_BYTES} bytes, contiguous, as one string. */
|
|
957
|
+
text: string;
|
|
958
|
+
/** How many bytes the WHOLE log holds, or null when the read did not answer its size. */
|
|
959
|
+
bytes: number | null;
|
|
960
|
+
}
|
|
961
|
+
/**
|
|
962
|
+
* The shell command whose stdout is a bounded CONTIGUOUS read of a running task's own log: the
|
|
963
|
+
* log's byte size, then its last {@link RUNNING_LOG_READ_BYTES} bytes.
|
|
964
|
+
*
|
|
965
|
+
* {@link runningOutputSliceCommand} is the wrong read for a diagnosis, and l07 is the finding: it
|
|
966
|
+
* stitches the first 40 grep-selected failure lines to the last 1 000 bytes with a blank line
|
|
967
|
+
* between, so the tail is DISJOINT from the headers above it. Read as one log, the last numbered
|
|
968
|
+
* header absorbs whatever the tail starts with — a clipped skipped-test title became the cause of
|
|
969
|
+
* a genuine failure (xr-molecule-flash-l07). A contiguous window can only ever hold real
|
|
970
|
+
* neighbouring lines of one log.
|
|
971
|
+
*
|
|
972
|
+
* The size rides along so a caller can say when the window is only the log's end
|
|
973
|
+
* ({@link parseRunningLogRead}); without it a tail reads as the whole run.
|
|
974
|
+
*
|
|
975
|
+
* @param log - The task log path.
|
|
976
|
+
* @param own - A file the command redirects its own output to, if any.
|
|
977
|
+
* @returns The shell command, safe to hand to the execution backend as-is.
|
|
978
|
+
*/
|
|
979
|
+
export declare function runningLogReadCommand(log: string, own?: string): string;
|
|
980
|
+
/**
|
|
981
|
+
* The two parts of {@link runningLogReadCommand}'s answer.
|
|
982
|
+
*
|
|
983
|
+
* @param stdout - The command's stdout.
|
|
984
|
+
* @returns The window and the whole log's byte size, or null when the size line is absent (the
|
|
985
|
+
* read did not run, so nothing may be said about the log).
|
|
986
|
+
*/
|
|
987
|
+
export declare function parseRunningLogRead(stdout: string): RunningLogRead | null;
|
|
967
988
|
/**
|
|
968
989
|
* DISTINCT tests that must share one signature before a running suite's repeating cause is named.
|
|
969
990
|
* A test the log prints twice, or a test that failed twice, is still one test.
|
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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"}
|