@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 CHANGED
@@ -3,7 +3,7 @@ AUTO-GENERATED — DO NOT EDIT THIS FILE.
3
3
  Generated by `mlcl sync-docs` from the package's src/index.ts JSDoc + mlcl/registry.json.
4
4
  Edits here are overwritten on the next commit (molecule's pre-commit hook regenerates).
5
5
  To change this document, edit the module-level JSDoc in src/index.ts.
6
- Generated: 2026-10-22T07:11:20.054Z
6
+ Generated: 2026-10-23T11:49:45.764Z
7
7
  -->
8
8
 
9
9
  # @molecule/api-ai-tools
@@ -140,6 +140,13 @@ still names the deployed host (xr-molecule-flash-m103 +28:08).
140
140
 
141
141
  ```typescript
142
142
  interface LocatedCommandSegment {
143
+ /**
144
+ * Directory-scope ancestry supplied by the existing shell parse, outermost first.
145
+ * Parenthesized groups and nested `sh -c` strings have their own shell directory;
146
+ * braces share their parent's. Identities are opaque and local to this invocation.
147
+ * Absent for ordinary statements in the outer shell, preserving their existing shape.
148
+ */
149
+ shellScope?: readonly string[]
143
150
  /**
144
151
  * What the statement runs, or null when it only sets variables (`BASE=http://…` on its own):
145
152
  * that shape persists in the shell, so a caller following assignments across `;`/`&&` has to
@@ -148,6 +155,13 @@ interface LocatedCommandSegment {
148
155
  segment: CommandSegment | null
149
156
  /** The statement's own leading `NAME=value` words, as written (`TEST_MODE=fullstack`). */
150
157
  assignments: readonly string[]
158
+ /**
159
+ * Assignments whose values expand at this source statement, when different from
160
+ * inherited environment bindings. A nested `sh -c` carries outer bindings into
161
+ * every entry, but expands its caller's assignment values only before its first
162
+ * command. Absent when the ordinary `assignments` list is also the source list.
163
+ */
164
+ sourceAssignments?: readonly string[]
151
165
  /**
152
166
  * The offset in the command of the statement's first word, or null for a segment inside a
153
167
  * nested `sh -c '<command>'` string — its positions are offsets in THAT string, not in this
@@ -1284,6 +1298,14 @@ interface ToolBuildConfig {
1284
1298
  */
1285
1299
  commandBudgetMs?: number
1286
1300
 
1301
+ /**
1302
+ * Opt in to one partial diagnostic return for a task driving this known deployed URL.
1303
+ * Return null when the task already returned a wait result or its history is unknown.
1304
+ * Only a real suite command with a complete inline failure report can yield; it remains
1305
+ * running, with no exit code or completed proof. Absent leaves ordinary waits unchanged.
1306
+ */
1307
+ yieldOnFirstFailureFor?: (taskId: string) => string | null
1308
+
1287
1309
  /**
1288
1310
  * How long (ms) exec_command waits for a command it backgrounded only because the
1289
1311
  * command asked for more than {@link commandBudgetMs}, before handing back a task
@@ -1378,16 +1400,7 @@ interface ToolBuildConfig {
1378
1400
  * @returns The duration in ms, or null.
1379
1401
  */
1380
1402
  suiteRunMs?: (command: string, cwd: string) => Promise<number | null | undefined>
1381
-
1382
- /** Post-write hook (e.g. auto-format via Prettier/ESLint). Called after every write_file/edit_file. */
1383
- onAfterWrite?: (path: string) => Promise<void>
1384
-
1385
- /** Diff tracking callback. Called before writes with old/new content. */
1386
- onFileDiff?: (event: FileDiffEvent) => void
1387
-
1388
- /** Structural change callback. Called on create_directory, delete_file, rename_file. */
1389
- onFileChange?: (event: FileChangeEvent) => void
1390
- }
1403
+ // … truncated — the full declaration is in node_modules/@molecule/api-ai-tools/dist/types.d.ts
1391
1404
  ```
1392
1405
 
1393
1406
  #### `FileDiffEvent`
@@ -1465,7 +1478,10 @@ A command with the output filters after its suite runner removed.
1465
1478
  interface SuiteFilterStrip {
1466
1479
  /** The command to run. */
1467
1480
  command: string
1468
- /** The pipeline stages dropped, as written (`| grep … | tail -20`), or '' when none were. */
1481
+ /**
1482
+ * The pipeline stages dropped, as written (`| grep … | tail -20`), or '' when none were. A
1483
+ * command with several suite runs lists one group per run, joined by a space.
1484
+ */
1469
1485
  dropped: string
1470
1486
  }
1471
1487
  ```
@@ -1491,6 +1507,19 @@ interface SuiteRunPipelinePlacement {
1491
1507
  }
1492
1508
  ```
1493
1509
 
1510
+ #### `RunningLogRead`
1511
+
1512
+ A bounded, contiguous read of a running task's own log.
1513
+
1514
+ ```typescript
1515
+ interface RunningLogRead {
1516
+ /** The log's last {@link RUNNING_LOG_READ_BYTES} bytes, contiguous, as one string. */
1517
+ text: string
1518
+ /** How many bytes the WHOLE log holds, or null when the read did not answer its size. */
1519
+ bytes: number | null
1520
+ }
1521
+ ```
1522
+
1494
1523
  #### `FailedTest`
1495
1524
 
1496
1525
  One failed test, as a running suite's log names it.
@@ -1845,6 +1874,23 @@ function commandSegments(command: string): CommandSegment[]
1845
1874
 
1846
1875
  **Returns:** One entry per statement or pipeline stage that runs something, in order.
1847
1876
 
1877
+ #### `commandSubstitutions(command)`
1878
+
1879
+ The direct executable command-substitution bodies in shell text, in source order.
1880
+
1881
+ Uses the same quote, comment and heredoc boundaries as {@link executedCommands}.
1882
+ Single-quoted and escaped text is inert. Nested substitutions stay inside their
1883
+ parent's body so a caller can recurse with a separate working-directory scope
1884
+ for each body; a `cd` inside one must not affect its sibling or the outer shell.
1885
+
1886
+ ```typescript
1887
+ function commandSubstitutions(command: string): string[]
1888
+ ```
1889
+
1890
+ - `command` — The shell text to read, including any leading assignments.
1891
+
1892
+ **Returns:** Each direct `$(…)` or backtick body, without its delimiters.
1893
+
1848
1894
  #### `executedCommands(command)`
1849
1895
 
1850
1896
  Every command a shell command actually executes, at any depth — the statements themselves, the
@@ -2691,7 +2737,9 @@ positional selection the run carried (a spec file, a suite directory or a regex
2691
2737
  The re-run keeps the run's `> <file>` redirect only in the sense of keeping its OUTPUT there:
2692
2738
  the target is rewritten to a fresh sibling ({@link redirectRunnerOutputsToFreshFiles}), so a
2693
2739
  re-run never overwrites the log the run itself is the evidence for (xr-molecule-flash-m173) —
2694
- and the setup around the run keeps its own file writes untouched (xr-molecule-flash-m429).
2740
+ and the setup around the run keeps its own file writes untouched (xr-molecule-flash-m429). A
2741
+ `tail`/`head`/`cat`/`grep` chained after the run that reads that exact log is shown the fresh
2742
+ sibling instead, so the re-run displays the run it performed (xr-molecule-flash-o03).
2695
2743
 
2696
2744
  `config` is the config the run was measured under ({@link withSuiteConfig}): the narrowed re-run
2697
2745
  carries it whenever the command itself does not, so a run that dropped `--config` cannot be
@@ -2890,6 +2938,26 @@ function moleculeDistReadNote(path: string): string | null
2890
2938
 
2891
2939
  **Returns:** The note, or null when the path is not inside a package's `dist`.
2892
2940
 
2941
+ #### `registeredTaskLogCommand(taskId)`
2942
+
2943
+ The command that reads a REGISTERED background task's own log as one bounded contiguous window
2944
+ ({@link runningLogReadCommand}), with the file its launch redirects to when the launch recorded
2945
+ one.
2946
+
2947
+ The task id is the ownership: it is the handle `wait_for_task` returned, `/tmp/${taskId}.log` is
2948
+ the log this platform's launcher writes for it, and the redirect target is the file this
2949
+ process's own launch registered for that id — never a path parsed out of a command by the
2950
+ caller. A diagnosis that reads a running walk must not build a `/tmp` path of its own
2951
+ (xr-molecule-flash-l07: the wait's DISPLAY was diagnosed as if it were the log).
2952
+
2953
+ ```typescript
2954
+ function registeredTaskLogCommand(taskId: string): string | null
2955
+ ```
2956
+
2957
+ - `taskId` — The `mol-bg-…` handle the wait returned.
2958
+
2959
+ **Returns:** The read command, or null when the handle is not a task id this platform minted.
2960
+
2893
2961
  #### `shellInstalledPackageProbe(run)`
2894
2962
 
2895
2963
  Build an {@link InstalledPackageProbe} from a shell runner (a backend's
@@ -3457,17 +3525,17 @@ killed (X1 run flash-m15 lost 20 of its 60 minutes this way, 2026-10-15):
3457
3525
  It is dropped: `wait_for_task` already returns the end of the log.
3458
3526
  - any output-only filter piped after a SUITE runner (`| grep … | tail -20`), which hides the
3459
3527
  failing test's own error and leaves the pipeline's exit status — the filter's — as the run's.
3460
- Every such stage is dropped ({@link stripTrailingSuiteFilters}); `wait_for_task` already
3461
- returns the end of the full log, and a run whose tally shows a failure must never report 0
3462
- (xr-molecule-flash-m101 +25:54).
3528
+ Every such stage is dropped from EVERY suite run in the command, not only the last
3529
+ ({@link stripTrailingSuiteFilters}); `wait_for_task` already returns the end of the full log,
3530
+ and a run whose tally shows a failure must never report 0 (xr-molecule-flash-m101 +25:54).
3463
3531
  - `playwright test` with no `--reporter`, which runs the config's reporter —
3464
3532
  often `html`, which prints nothing per test. `--reporter=list` is added
3465
3533
  when the playwright run is the command's last step, piped or not: it writes each result as
3466
- it finishes, and it is the shape the platform reads a background suite back in.
3534
+ it finishes, and it is the shape the platform reads a background suite back in. Every EARLIER
3535
+ Playwright invocation gets the same reporter, so its log is readable while it walks; the
3536
+ machine `json` report stays on the last invocation.
3467
3537
 
3468
3538
  The run ends up with exactly ONE reporter that prints each failure — `list`. A run that names
3469
- any other printing reporter has it REPLACED, never joined: two of them write every test result
3470
- into the log twice, which on X1 flash-m83 (2026-10-16) made a `--reporter=list,line` run (its
3471
3539
 
3472
3540
  _(description truncated — read the full text in `node_modules/@molecule/api-ai-tools/dist/utilities.d.ts`.)_
3473
3541
 
@@ -3662,28 +3730,8 @@ function isPlaywrightRunCommand(command: string): boolean
3662
3730
 
3663
3731
  #### `stripTrailingSuiteFilters(command)`
3664
3732
 
3665
- Drop the output-only filters piped after the command's suite runner.
3666
-
3667
- A filter after the runner is not "the end of the log" the executor asked for: it hides the
3668
- failing test's own error (it usually matches none of `✘|passed|failed`), and the pipeline's exit
3669
- status becomes the FILTER's, so `… 2>&1 | grep -E "✘|passed|failed|skipped" | tail -20` came back
3670
- `exitCode: 0` for a run with a failure in it (xr-molecule-flash-m101 +25:54). The tool returns
3671
- the end of the full log anyway, so the filter only costs diagnosability.
3672
-
3673
- Only a contiguous suffix of the stages after the runner is cut, and only stages the parse proves
3674
- are output-only ({@link isOutputOnlyFilter}): a `| tee` or `| xargs` keeps its place, and a
3675
- caller that reports the run's exit code must then treat it as unknown
3676
- ({@link suiteRunPipedAfterRunner}).
3677
-
3678
- A statement after the run's own pipeline (`; echo done`, `&& echo ok`) does not protect the
3679
- filters before it: the filter is thrown away and the trailing statement is kept, so the log the
3680
- run writes still holds every failure (xr-molecule-flash-m121 — a `| tail -5; echo done` kept its
3681
- tail, and a 95-second walk's log held only the tally while the platform's own hold had handed
3682
- that command back).
3683
-
3684
- The command around the dropped stages is left as written: a group they sit in keeps its closer
3685
- (`( … | tail -25)` → `( … )`, never `( …` — xr-molecule-flash-m418 +23:31), and a stage the cut
3686
- would leave a closer dangling inside is not dropped at all.
3733
+ Drop the output-only filters piped after the command's suite runners
3734
+ ({@link suiteFilterDrops}).
3687
3735
 
3688
3736
  ```typescript
3689
3737
  function stripTrailingSuiteFilters(command: string): SuiteFilterStrip
@@ -3691,7 +3739,7 @@ function stripTrailingSuiteFilters(command: string): SuiteFilterStrip
3691
3739
 
3692
3740
  - `command` — The shell command.
3693
3741
 
3694
- **Returns:** The rewritten command and the stages dropped.
3742
+ **Returns:** The rewritten command, and the stages dropped in command order (`''` when none were).
3695
3743
 
3696
3744
  #### `suiteRunPipelinePlacement(command)`
3697
3745
 
@@ -4213,6 +4261,42 @@ function runningCauseCommand(log: string, own?: string): string
4213
4261
 
4214
4262
  **Returns:** The shell command, safe to hand to the execution backend as-is.
4215
4263
 
4264
+ #### `runningLogReadCommand(log, own)`
4265
+
4266
+ The shell command whose stdout is a bounded CONTIGUOUS read of a running task's own log: the
4267
+ log's byte size, then its last {@link RUNNING_LOG_READ_BYTES} bytes.
4268
+
4269
+ {@link runningOutputSliceCommand} is the wrong read for a diagnosis, and l07 is the finding: it
4270
+ stitches the first 40 grep-selected failure lines to the last 1 000 bytes with a blank line
4271
+ between, so the tail is DISJOINT from the headers above it. Read as one log, the last numbered
4272
+ header absorbs whatever the tail starts with — a clipped skipped-test title became the cause of
4273
+ a genuine failure (xr-molecule-flash-l07). A contiguous window can only ever hold real
4274
+ neighbouring lines of one log.
4275
+
4276
+ The size rides along so a caller can say when the window is only the log's end
4277
+ ({@link parseRunningLogRead}); without it a tail reads as the whole run.
4278
+
4279
+ ```typescript
4280
+ function runningLogReadCommand(log: string, own?: string): string
4281
+ ```
4282
+
4283
+ - `log` — The task log path.
4284
+ - `own` — A file the command redirects its own output to, if any.
4285
+
4286
+ **Returns:** The shell command, safe to hand to the execution backend as-is.
4287
+
4288
+ #### `parseRunningLogRead(stdout)`
4289
+
4290
+ The two parts of {@link runningLogReadCommand}'s answer.
4291
+
4292
+ ```typescript
4293
+ function parseRunningLogRead(stdout: string): RunningLogRead | null
4294
+ ```
4295
+
4296
+ - `stdout` — The command's stdout.
4297
+
4298
+ **Returns:** The window and the whole log's byte size, or null when the size line is absent (the read did not run, so nothing may be said about the log).
4299
+
4216
4300
  #### `repeatingFailure(log)`
4217
4301
 
4218
4302
  The cause repeating among a running suite's failures, or null.
@@ -5185,6 +5269,14 @@ Bytes of a running log a repeating-cause look reads back.
5185
5269
  const REPEATING_CAUSE_TAIL_BYTES: 40000
5186
5270
  ```
5187
5271
 
5272
+ #### `RUNNING_LOG_READ_BYTES`
5273
+
5274
+ Bytes of a running log a diagnostic note reads back: one {@link REPEATING_CAUSE_TAIL_BYTES} window.
5275
+
5276
+ ```typescript
5277
+ const RUNNING_LOG_READ_BYTES: 40000
5278
+ ```
5279
+
5188
5280
  #### `REPEATING_FAILURE_MIN`
5189
5281
 
5190
5282
  DISTINCT tests that must share one signature before a running suite's repeating cause is named.
@@ -5309,6 +5401,7 @@ Peer dependencies:
5309
5401
 
5310
5402
  - `@molecule/api-ai`
5311
5403
 
5404
+ - **`yieldOnFirstFailureFor`** can yield one still-running deployed task's concrete diagnostic; callers opt out after a prior wait result or unknown history.
5312
5405
  - **This package only defines the tools — it runs no model loop.** Hand them to
5313
5406
  the bonded AI provider (`chat({ tools, … })`) or to an
5314
5407
  `@molecule/api-ai-agents` run.
@@ -90,6 +90,18 @@ export interface ExecutedCommand {
90
90
  /** The program and its arguments as one line, what a pattern anchored at the program matches. */
91
91
  text: string;
92
92
  }
93
+ /**
94
+ * The direct executable command-substitution bodies in shell text, in source order.
95
+ *
96
+ * Uses the same quote, comment and heredoc boundaries as {@link executedCommands}.
97
+ * Single-quoted and escaped text is inert. Nested substitutions stay inside their
98
+ * parent's body so a caller can recurse with a separate working-directory scope
99
+ * for each body; a `cd` inside one must not affect its sibling or the outer shell.
100
+ *
101
+ * @param command - The shell text to read, including any leading assignments.
102
+ * @returns Each direct `$(…)` or backtick body, without its delimiters.
103
+ */
104
+ export declare function commandSubstitutions(command: string): string[];
93
105
  /**
94
106
  * Every command a shell command actually executes, at any depth — the statements themselves, the
95
107
  * body of a `sh -c '<command>'`, and the body of every command substitution (`$(…)`, backticks).
@@ -122,6 +134,13 @@ export declare function executedCommands(command: string): ExecutedCommand[];
122
134
  * still names the deployed host (xr-molecule-flash-m103 +28:08).
123
135
  */
124
136
  export interface LocatedCommandSegment {
137
+ /**
138
+ * Directory-scope ancestry supplied by the existing shell parse, outermost first.
139
+ * Parenthesized groups and nested `sh -c` strings have their own shell directory;
140
+ * braces share their parent's. Identities are opaque and local to this invocation.
141
+ * Absent for ordinary statements in the outer shell, preserving their existing shape.
142
+ */
143
+ shellScope?: readonly string[];
125
144
  /**
126
145
  * What the statement runs, or null when it only sets variables (`BASE=http://…` on its own):
127
146
  * that shape persists in the shell, so a caller following assignments across `;`/`&&` has to
@@ -130,6 +149,13 @@ export interface LocatedCommandSegment {
130
149
  segment: CommandSegment | null;
131
150
  /** The statement's own leading `NAME=value` words, as written (`TEST_MODE=fullstack`). */
132
151
  assignments: readonly string[];
152
+ /**
153
+ * Assignments whose values expand at this source statement, when different from
154
+ * inherited environment bindings. A nested `sh -c` carries outer bindings into
155
+ * every entry, but expands its caller's assignment values only before its first
156
+ * command. Absent when the ordinary `assignments` list is also the source list.
157
+ */
158
+ sourceAssignments?: readonly string[];
133
159
  /**
134
160
  * The offset in the command of the statement's first word, or null for a segment inside a
135
161
  * nested `sh -c '<command>'` string — its positions are offsets in THAT string, not in this
@@ -1 +1 @@
1
- {"version":3,"file":"command-position.d.ts","sourceRoot":"","sources":["../src/command-position.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,uFAAuF;AACvF,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAA;IACf,qFAAqF;IACrF,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IACvB,4FAA4F;IAC5F,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAgSD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM3D;AAynBD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AA8GD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE,CAIjE;AAED,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IACvB,iGAAiG;IACjG,IAAI,EAAE,MAAM,CAAA;CACb;AAmFD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAGnE;AAmCD;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;IAC9B,0FAA0F;IAC1F,WAAW,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9B;;;;OAIG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB;;;;;OAKG;IACH,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B;;;OAGG;IACH,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB;;;;OAIG;IACH,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAE/E;AAmDD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,MAAM,GAAG,IAAI,CAyDf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA6BtD;AA4GD;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOpE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,GAC1C;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAoD7C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAK/E"}
1
+ {"version":3,"file":"command-position.d.ts","sourceRoot":"","sources":["../src/command-position.ts"],"names":[],"mappings":"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"}