@molecule/api-ai-tools 1.5.18 → 1.5.19
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 +278 -2
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +5 -3
- package/dist/system-prompt.js +1 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +150 -5
- package/dist/types.d.ts +16 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utilities.d.ts +188 -0
- package/dist/utilities.d.ts.map +1 -1
- package/dist/utilities.js +484 -12
- package/package.json +2 -2
package/dist/utilities.d.ts
CHANGED
|
@@ -128,6 +128,14 @@ export declare function outputRedirectTarget(command: string): string | null;
|
|
|
128
128
|
* `[n/N] <title>` with no ✓/✘ mark and no duration, so on X1 flash-m62 an
|
|
129
129
|
* 8.3-minute walk of one suite could never trip the fail-fast note.
|
|
130
130
|
*
|
|
131
|
+
* A run being ITERATED on (capped, narrowed, or by file) gets `list,line` instead
|
|
132
|
+
* of `list` alone. `list` holds every failure's error for the summary at the end,
|
|
133
|
+
* so mid-run its log says only how long each failure took; `line` writes the body
|
|
134
|
+
* as the failure happens, and a look at a running suite (`wait_for_task`'s
|
|
135
|
+
* repeating-cause note, `suite-fail-fast.ts`) can then name the repeating cause by
|
|
136
|
+
* its error message. X1 flash-m76 walked 15 tests for 4.0 minutes, every one a
|
|
137
|
+
* `TimeoutError: page.waitForURL` from one missing `navigate('/')`.
|
|
138
|
+
*
|
|
131
139
|
* Only the command's last step is touched, and only its reporter.
|
|
132
140
|
*
|
|
133
141
|
* @param command - The command as the executor sent it.
|
|
@@ -137,6 +145,45 @@ export declare function streamingBackgroundCommand(command: string): {
|
|
|
137
145
|
command: string;
|
|
138
146
|
changes: string[];
|
|
139
147
|
};
|
|
148
|
+
/**
|
|
149
|
+
* Whether a command runs a whole test suite — a Playwright, Vitest or Hurl run
|
|
150
|
+
* — rather than a build, an install or a one-off script.
|
|
151
|
+
*
|
|
152
|
+
* @param command - The shell command.
|
|
153
|
+
* @returns True when the command starts one of those runners.
|
|
154
|
+
*/
|
|
155
|
+
export declare function isSuiteRunCommand(command: string): boolean;
|
|
156
|
+
/**
|
|
157
|
+
* Start a background suite run at lower CPU and IO priority, so the sandbox it
|
|
158
|
+
* shares with everything else stays responsive to what the executor does next.
|
|
159
|
+
*
|
|
160
|
+
* A whole-suite Playwright run saturates the one container the app's Vite
|
|
161
|
+
* server, its API process and every other command also live in: on X1 flash-m75
|
|
162
|
+
* the model backgrounded a 139-test run at +36:23 and the two-word shell
|
|
163
|
+
* command it sent next — tick its plan file — returned nothing for 2 min 40 s,
|
|
164
|
+
* measured on the chat payload and on the live-stream follower independently.
|
|
165
|
+
* The backgrounding note is right that the executor should go do other work;
|
|
166
|
+
* what it cannot promise is that the sandbox will let it.
|
|
167
|
+
*
|
|
168
|
+
* `nice -n 10` lowers the run's CPU share and `ionice -c3` its IO class. Both
|
|
169
|
+
* are PROBED in the sandbox by RUNNING them, not with `command -v`: a syscall a
|
|
170
|
+
* container's seccomp policy refuses leaves `-v` passing while the real run
|
|
171
|
+
* fails. Each is applied only if its probe passed, so a sandbox with neither,
|
|
172
|
+
* or with only one, runs the suite exactly as it did before. Playwright's own
|
|
173
|
+
* workers are children of this shell and inherit both (niceness and IO class
|
|
174
|
+
* are inherited across fork/exec).
|
|
175
|
+
*
|
|
176
|
+
* Only a command the caller has already detached reaches this: foreground
|
|
177
|
+
* commands are never touched.
|
|
178
|
+
*
|
|
179
|
+
* @param command - The command as the executor sent it; the suite detection reads this.
|
|
180
|
+
* @param launch - The shell line that would start it, with no prefix of its own.
|
|
181
|
+
* @returns The line to run, and one sentence for the tool note ('' when unchanged).
|
|
182
|
+
*/
|
|
183
|
+
export declare function suiteRunPriorityLaunch(command: string, launch: string): {
|
|
184
|
+
launch: string;
|
|
185
|
+
note: string;
|
|
186
|
+
};
|
|
140
187
|
/**
|
|
141
188
|
* Check if a command is blocked for security reasons. Returns error message or null if allowed.
|
|
142
189
|
*
|
|
@@ -184,6 +231,28 @@ export declare function isOutsideRoot(path: string, projectRoot: string): boolea
|
|
|
184
231
|
* @returns `true` when the pattern contains only allowed characters.
|
|
185
232
|
*/
|
|
186
233
|
export declare function isValidGlob(pattern: string): boolean;
|
|
234
|
+
/**
|
|
235
|
+
* The `find` predicate for a `find_files` pattern.
|
|
236
|
+
*
|
|
237
|
+
* `find -name` compares a pattern against a file's BASENAME, so a pattern
|
|
238
|
+
* containing a slash (`helpers/*`, `e2e/*.spec.ts`, `src` + `**` + `/App.tsx`)
|
|
239
|
+
* can never match and the tool answers `[]` (xr-molecule-flash-m77, on two
|
|
240
|
+
* calls in one run). Such a pattern is matched with `-path` instead: an fnmatch
|
|
241
|
+
* glob over the whole printed path, whose `*` crosses `/` — the rule
|
|
242
|
+
* `.gitignore` uses, and the reason a bare `helpers/*` means "a `helpers/`
|
|
243
|
+
* directory anywhere below the root". The pattern is anchored with a leading
|
|
244
|
+
* `*` then `/` ("any parent") so the search root — an absolute
|
|
245
|
+
* `/workspace/<app>` in a sandbox — need not be spelled out.
|
|
246
|
+
*
|
|
247
|
+
* A doubled-star directory segment keeps its usual meaning of ZERO or more
|
|
248
|
+
* directories; `-path` alone would demand at least one, so the pattern is also
|
|
249
|
+
* emitted with each such segment removed.
|
|
250
|
+
*
|
|
251
|
+
* @param pattern - A pattern already accepted by {@link isValidGlob}.
|
|
252
|
+
* @returns A `find` predicate: `-name '…'` for a bare name, else one or more
|
|
253
|
+
* `-path '…'` alternatives, ORed inside parens when there is more than one.
|
|
254
|
+
*/
|
|
255
|
+
export declare function findPatternArgs(pattern: string): string;
|
|
187
256
|
/**
|
|
188
257
|
* Validate a file tool's `path` argument is a non-empty string. A weak model
|
|
189
258
|
* sometimes omits it or passes a non-string, which would otherwise crash
|
|
@@ -273,6 +342,47 @@ export declare const MAX_READ_RETURN_CHARS: number;
|
|
|
273
342
|
* file under it "fits in ONE call", and a smaller bound here broke that promise (X1 flash-m67).
|
|
274
343
|
*/
|
|
275
344
|
export declare const SMALL_FILE_WHOLE_CHARS: number;
|
|
345
|
+
/**
|
|
346
|
+
* How large an HTML document must be before a whole-file read is replaced by its
|
|
347
|
+
* outLINE — much smaller than {@link MAX_READ_RETURN_CHARS}, because the cost of
|
|
348
|
+
* an HTML read is almost never worth it.
|
|
349
|
+
*
|
|
350
|
+
* An entry document is boilerplate the reader rarely needs in full: meta tags,
|
|
351
|
+
* stylesheet and preload links, a `<style>` block, and a handful of `<script>`
|
|
352
|
+
* tags. The parts an executor acts on — the body's structure, where a script is
|
|
353
|
+
* loaded — are all visible in an outline of one line per tag. X0 flash-m77 paid
|
|
354
|
+
* 63,735 chars for one such read: ~60 KB of it was the IDE's own preview bridges,
|
|
355
|
+
* and the read pushed the transcript past its context cap, so the e2e specs the
|
|
356
|
+
* executor had just read were trimmed to summaries and it read the whole suite
|
|
357
|
+
* again — twice (findings, +01:23 and +02:56). The scaffold now keeps those
|
|
358
|
+
* bridges in separate files, but a template's own head is still ~5-12 KB, and a
|
|
359
|
+
* static-site or SSR entry can be far more.
|
|
360
|
+
*
|
|
361
|
+
* The outline is not a truncation: the note beside it names the exact
|
|
362
|
+
* offset/limit that returns the whole document in one call.
|
|
363
|
+
*/
|
|
364
|
+
export declare const MAX_HTML_INLINE_CHARS: number;
|
|
365
|
+
/** Most lines an HTML outline prints before it stops and says so. */
|
|
366
|
+
export declare const MAX_HTML_OUTLINE_LINES = 200;
|
|
367
|
+
/** Whether `text` is an HTML document (a doctype or an `<html` root tag). */
|
|
368
|
+
export declare function looksLikeHtml(text: string): boolean;
|
|
369
|
+
/**
|
|
370
|
+
* An OUTLINE of an HTML document: its head's tags and the tags that open each
|
|
371
|
+
* body section, one per line, with line numbers.
|
|
372
|
+
*
|
|
373
|
+
* Line-based on purpose — a parser would be a dependency and an attack surface
|
|
374
|
+
* for a read that only has to be *navigable*. A line is shown when it starts with
|
|
375
|
+
* `<` after trimming, which is what keeps the inside of a `<style>` block, a
|
|
376
|
+
* `<script>` body or a prerendered text section out of the outline while keeping
|
|
377
|
+
* every tag the document is built from. Long lines (a minified tag, a data URI)
|
|
378
|
+
* are cut, and the whole outline is capped, so a pathological document cannot
|
|
379
|
+
* turn one read into another wall of text.
|
|
380
|
+
*
|
|
381
|
+
* @param text - The document's full text.
|
|
382
|
+
* @param label - What to call the document in the outline's header (its path).
|
|
383
|
+
* @returns The outline — or null when `text` is not an HTML document.
|
|
384
|
+
*/
|
|
385
|
+
export declare function htmlOutline(text: string, label?: string): string | null;
|
|
276
386
|
/** Max search results. */
|
|
277
387
|
export declare const MAX_SEARCH_RESULTS = 50;
|
|
278
388
|
/** Max find results. */
|
|
@@ -341,6 +451,84 @@ export declare const RUNNING_FAILURE_LINE_RE = "^[[:space:]]*(\u2718|\u2717|\u00
|
|
|
341
451
|
* @returns The shell command, safe to hand to the execution backend as-is.
|
|
342
452
|
*/
|
|
343
453
|
export declare function runningOutputSliceCommand(log: string, own?: string): string;
|
|
454
|
+
/** Bytes of a running log a repeating-cause look reads back. */
|
|
455
|
+
export declare const REPEATING_CAUSE_TAIL_BYTES = 40000;
|
|
456
|
+
/**
|
|
457
|
+
* The shell command whose stdout is enough of a running log to tell whether one cause is
|
|
458
|
+
* repeating: its tail, {@link REPEATING_CAUSE_TAIL_BYTES} of it.
|
|
459
|
+
*
|
|
460
|
+
* {@link runningOutputSliceCommand} is the wrong read for this: it keeps only the FIRST 40
|
|
461
|
+
* failure lines plus 1 000 bytes, so on a run whose failures print a body each — which is what
|
|
462
|
+
* a `line` reporter does, and the only form that names the cause as an error message rather than
|
|
463
|
+
* a duration — three bodies do not fit, and the repeat is invisible. This read is not shown to
|
|
464
|
+
* anyone; it is parsed.
|
|
465
|
+
*
|
|
466
|
+
* @param log - The task log path.
|
|
467
|
+
* @param own - A file the command redirects its own output to, if any.
|
|
468
|
+
* @returns The shell command, safe to hand to the execution backend as-is.
|
|
469
|
+
*/
|
|
470
|
+
export declare function runningCauseCommand(log: string, own?: string): string;
|
|
471
|
+
/** Failures that must share one signature before a running suite's repeating cause is named. */
|
|
472
|
+
export declare const REPEATING_FAILURE_MIN = 3;
|
|
473
|
+
/** One failed test, as a running suite's log names it. */
|
|
474
|
+
export interface FailedTest {
|
|
475
|
+
/** The location the log writes (`specs/e2e/articles.spec.ts:32`), or '' when it writes none. */
|
|
476
|
+
where: string;
|
|
477
|
+
/** The test's own title — the last segment of its title path. */
|
|
478
|
+
title: string;
|
|
479
|
+
/** How long it ran before failing, in seconds, or null when the log does not say. */
|
|
480
|
+
seconds: number | null;
|
|
481
|
+
}
|
|
482
|
+
/** A cause repeating among a running suite's failures. */
|
|
483
|
+
export interface RepeatingFailure {
|
|
484
|
+
/** How many failures share the signature. */
|
|
485
|
+
count: number;
|
|
486
|
+
/** The shared error line, when the log carries the failures' bodies (`line` reporter). */
|
|
487
|
+
message: string | null;
|
|
488
|
+
/** The shared duration in seconds, when the failures line up by how long they ran. */
|
|
489
|
+
seconds: number | null;
|
|
490
|
+
/** The failures that share it, in log order. */
|
|
491
|
+
tests: FailedTest[];
|
|
492
|
+
}
|
|
493
|
+
/**
|
|
494
|
+
* The cause repeating among a running suite's failures, or null.
|
|
495
|
+
*
|
|
496
|
+
* Playwright's `list` reporter prints one line per test as it finishes — its mark, its title
|
|
497
|
+
* path and how long it ran — and defers each failure's error to the summary at the end, so
|
|
498
|
+
* mid-run the only signature those lines carry is the duration. A `line` reporter prints the
|
|
499
|
+
* failure bodies as they happen, and there the repeated error message itself is the signature,
|
|
500
|
+
* which is stronger (it needs no assumption about how long a failure should take), so the
|
|
501
|
+
* message is looked for first.
|
|
502
|
+
*
|
|
503
|
+
* Either way the point is the same: a suite whose failures repeat one cause spends its whole
|
|
504
|
+
* runtime proving that one cause, and the executor watching it can be told so at the third
|
|
505
|
+
* failure instead of at the last. X1 flash-m76 walked 15 tests in 4.0 minutes where 15.6 s
|
|
506
|
+
* each was the test timeout and one missing `navigate('/')` was the cause of all of them.
|
|
507
|
+
*
|
|
508
|
+
* @param log - The log so far.
|
|
509
|
+
* @returns The repeating cause, or null when no signature has {@link REPEATING_FAILURE_MIN}
|
|
510
|
+
* failures behind it.
|
|
511
|
+
*/
|
|
512
|
+
export declare function repeatingFailure(log: string): RepeatingFailure | null;
|
|
513
|
+
/** How many of a repeating cause's failures the note lists before it says "and N more". */
|
|
514
|
+
export declare const REPEATING_FAILURE_LISTED = 5;
|
|
515
|
+
/**
|
|
516
|
+
* The sentence that names a cause repeating among a running suite's failures, and the command
|
|
517
|
+
* that stops the run so the cause can be fixed first.
|
|
518
|
+
*
|
|
519
|
+
* Kept here, beside {@link repeatingFailure}, so the two stay in step: every word below is about
|
|
520
|
+
* what that function could actually see in the log.
|
|
521
|
+
*
|
|
522
|
+
* @param found - What {@link repeatingFailure} found.
|
|
523
|
+
* @param o - The run's facts: its `taskId`, its `log` path, and `stop` — the shell command that
|
|
524
|
+
* stops it (the pids the platform's own pid file leads to).
|
|
525
|
+
* @returns The note.
|
|
526
|
+
*/
|
|
527
|
+
export declare function repeatingFailureNote(found: RepeatingFailure, o: {
|
|
528
|
+
taskId: string;
|
|
529
|
+
log: string;
|
|
530
|
+
stop: string;
|
|
531
|
+
}): string;
|
|
344
532
|
/**
|
|
345
533
|
* Attempt a whitespace-tolerant replacement when an exact `old_string` match
|
|
346
534
|
* failed. Finds a contiguous run of lines in `content` whose per-line
|
package/dist/utilities.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAS5C;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,GAAG,MAAM,KAAG,MAEE,CAAA;AAuGhD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAErD;AAKD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAsCzD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,MAAM,CAUpF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAElE;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWnE;AAQD
|
|
1
|
+
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"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"}
|