velocious 1.0.604 → 1.0.606

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.
Files changed (53) hide show
  1. package/README.md +26 -10
  2. package/build/background-jobs/main.js +6 -1
  3. package/build/cli/commands/test/timing-manifest/merge.js +14 -0
  4. package/build/environment-handlers/base.js +9 -0
  5. package/build/environment-handlers/node/cli/commands/test/timing-manifest/merge.js +108 -0
  6. package/build/environment-handlers/node/cli/commands/test.js +48 -7
  7. package/build/environment-handlers/node.js +10 -0
  8. package/build/src/background-jobs/main.d.ts.map +1 -1
  9. package/build/src/background-jobs/main.js +8 -2
  10. package/build/src/cli/commands/test/timing-manifest/merge.d.ts +10 -0
  11. package/build/src/cli/commands/test/timing-manifest/merge.d.ts.map +1 -0
  12. package/build/src/cli/commands/test/timing-manifest/merge.js +13 -0
  13. package/build/src/environment-handlers/base.d.ts +6 -0
  14. package/build/src/environment-handlers/base.d.ts.map +1 -1
  15. package/build/src/environment-handlers/base.js +9 -1
  16. package/build/src/environment-handlers/node/cli/commands/test/timing-manifest/merge.d.ts +32 -0
  17. package/build/src/environment-handlers/node/cli/commands/test/timing-manifest/merge.d.ts.map +1 -0
  18. package/build/src/environment-handlers/node/cli/commands/test/timing-manifest/merge.js +97 -0
  19. package/build/src/environment-handlers/node/cli/commands/test.d.ts +3 -3
  20. package/build/src/environment-handlers/node/cli/commands/test.d.ts.map +1 -1
  21. package/build/src/environment-handlers/node/cli/commands/test.js +36 -9
  22. package/build/src/environment-handlers/node.d.ts +6 -0
  23. package/build/src/environment-handlers/node.d.ts.map +1 -1
  24. package/build/src/environment-handlers/node.js +10 -1
  25. package/build/src/testing/test-profile-output.d.ts +11 -0
  26. package/build/src/testing/test-profile-output.d.ts.map +1 -1
  27. package/build/src/testing/test-profile-output.js +21 -7
  28. package/build/src/testing/test-profiler.d.ts.map +1 -1
  29. package/build/src/testing/test-profiler.js +3 -2
  30. package/build/src/testing/test-suite-splitter.d.ts +33 -0
  31. package/build/src/testing/test-suite-splitter.d.ts.map +1 -1
  32. package/build/src/testing/test-suite-splitter.js +84 -8
  33. package/build/src/testing/timing-manifest.d.ts +94 -0
  34. package/build/src/testing/timing-manifest.d.ts.map +1 -0
  35. package/build/src/testing/timing-manifest.js +284 -0
  36. package/build/testing/test-profile-output.js +23 -8
  37. package/build/testing/test-profiler.js +2 -1
  38. package/build/testing/test-suite-splitter.js +91 -7
  39. package/build/testing/timing-manifest.js +346 -0
  40. package/build/tsconfig.tsbuildinfo +1 -1
  41. package/package.json +1 -1
  42. package/scripts/bootstrap-provider-runtime.sh +249 -0
  43. package/scripts/verify-docker-dev-environment.js +219 -29
  44. package/src/background-jobs/main.js +6 -1
  45. package/src/cli/commands/test/timing-manifest/merge.js +14 -0
  46. package/src/environment-handlers/base.js +9 -0
  47. package/src/environment-handlers/node/cli/commands/test/timing-manifest/merge.js +108 -0
  48. package/src/environment-handlers/node/cli/commands/test.js +48 -7
  49. package/src/environment-handlers/node.js +10 -0
  50. package/src/testing/test-profile-output.js +23 -8
  51. package/src/testing/test-profiler.js +2 -1
  52. package/src/testing/test-suite-splitter.js +91 -7
  53. package/src/testing/timing-manifest.js +346 -0
package/README.md CHANGED
@@ -26,7 +26,7 @@
26
26
  * Gap-less positional lists with automatic reordering via `actsAsList`, including models with numeric, string, or UUID primary keys (see [docs/acts-as-list.md](docs/acts-as-list.md))
27
27
  * Rails-style nested-attribute writes on frontend-model `save()` (see [docs/nested-attributes.md](docs/nested-attributes.md))
28
28
  * Async-aware test-data factories with inherited traits, graph-first native association autosave, metadata-aware override precedence, callbacks, sequences, linting, and a process-global reload-retention budget that bounds cache-busted re-import memory (see [docs/factories.md](docs/factories.md))
29
- * Opt-in Benchmark-style test profiling with privacy-safe rich JSON and directly reusable duration-aware shard manifests (see [docs/test-profiling.md](docs/test-profiling.md))
29
+ * Opt-in Benchmark-style test profiling with privacy-safe rich JSON, directly reusable duration-aware shard manifests, and strict generic shard-profile aggregation (see [docs/test-profiling.md](docs/test-profiling.md))
30
30
  * Per-row association counts via `.withCount(...)`, including cohort-safe intersected filters, safe batching of structurally identical aggregates, and automatic IN-list chunking for large parent sets, on frontend and backend queries (see [docs/with-count.md](docs/with-count.md))
31
31
  * Consumer-defined per-row SQL aggregates/computations via `.queryData(...)`, with compatible projections sharing a roundtrip while preserving declared alias-overwrite order and automatic IN-list chunking for large parent sets, on frontend and backend queries (see [docs/query-data.md](docs/query-data.md))
32
32
  * Per-record ability checks via `.abilities(...)` on frontend queries + `record.can(action)` (see [docs/abilities.md](docs/abilities.md))
@@ -107,7 +107,7 @@ The checked-in root `Dockerfile` and `compose.yml` define one canonical `dev` se
107
107
 
108
108
  Prerequisites: Docker with the Compose v2 plugin, and this repository checked out at `$DEV_HOME_PATH/velocious` (default `DEV_HOME_PATH`: `/home/dev`).
109
109
 
110
- First-use setup: copy `.env.example` to the git-ignored `.env` and set `GH_CONFIG_SOURCE_PATH` to an existing host GitHub CLI config directory:
110
+ First-use setup: copy `.env.example` to the git-ignored `.env`, set `GH_CONFIG_SOURCE_PATH` to an existing host GitHub CLI config directory, set `AI_PROVIDER_RUNTIME_SOURCE_PATH` to the dedicated writable provider runtime, and replace `AGENT_CONTEXT_SOURCE_PATH` with one exact immutable bundle directory:
111
111
 
112
112
  ```bash
113
113
  cp .env.example .env
@@ -123,7 +123,7 @@ docker compose exec dev bash
123
123
  scripts/docker-run.sh npm ci # one-off command in a disposable container
124
124
  ```
125
125
 
126
- The dev service preserves the complete `$DEV_HOME_PATH` bind at `/home/dev`, so dependencies, caches, settings, and `node_modules` persist naturally across runs. Install dependencies with the normal package commands inside the service (for example `docker compose exec dev npm ci`), never at image build time.
126
+ The dev service preserves the complete `$DEV_HOME_PATH` bind at `/home/dev`, so dependencies, lane-local caches, settings, and `node_modules` persist naturally across runs. Codex, Kimi, and OpenCode authentication survives lane recreation through the dedicated provider-runtime bind, while `/opt/hermes-agent-context` supplies one read-only reviewed guide/skills bundle. Install dependencies with the normal package commands inside the service (for example `docker compose exec dev npm ci`), never at image build time.
127
127
 
128
128
  Concurrent isolated instances use the standard Compose project-name contract plus a distinct development home per instance:
129
129
 
@@ -132,7 +132,7 @@ COMPOSE_PROJECT_NAME=velocious-review DEV_HOME_PATH=/srv/dev-homes/review \
132
132
  docker compose up --build --detach dev
133
133
  ```
134
134
 
135
- GitHub CLI authentication is the sole authorized credential boundary: the host config directory named by `GH_CONFIG_SOURCE_PATH` is mounted read-only at `/home/dev/.config/gh`, with container-side `GH_CONFIG_DIR` pointing there. Do not add SSH keys or other credential mounts. Kimi (and other provider) credentials are intentionally kept out of the tracked Compose files they are an external operational override layered on by the calling environment. Threadwire is not installed in the image or the project; it remains parent orchestration resolved through unversioned `npx` outside the container.
135
+ The authorized credential boundaries are the writable provider runtime and the read-only GitHub CLI config. The normal dev service mounts no npm credentials, SSH keys, `/opt/data`, mutable agent-context discovery links, or broad shared roots. At startup, the provider bootstrap requires real `.local` and `.local/share` runtime directories, validates and preserves the provider runtime's canonical relative aliases, serializes shared provider-link migration, then creates exact lane-home provider and `/opt/hermes-agent-context` discovery links, preserving conflicts only at those managed targets under `~/.provider-runtime-migration-backups/<timestamp>-<unique-suffix>/`. The preflight rejects resolved provider-runtime and agent-context sources that contain one another. Threadwire remains parent orchestration, with its provider executable overrides pointed directly at `/usr/local/bin/codex`, `/usr/local/bin/kimi`, and `/usr/local/bin/opencode`. See the setup guide for source-path preflight and the exact lane-local OpenCode state contract.
136
136
 
137
137
  After changing the Docker artifacts, run the checked-in static contract verifier:
138
138
 
@@ -239,6 +239,10 @@ npx velocious test --profile-json tmp/test-profile.json \
239
239
  --timing-manifest-output tmp/test-timings.json
240
240
  npx velocious test --groups=4 --group-number=1 \
241
241
  --timing-manifest tmp/test-timings.json
242
+
243
+ # After every shard wrote rich JSON, merge the complete set for the next run
244
+ npx velocious test:timing-manifest:merge --output tmp/test-timings.json \
245
+ tmp/profile-1.json tmp/profile-2.json tmp/profile-3.json tmp/profile-4.json
242
246
  ```
243
247
 
244
248
  See [test profiling](docs/test-profiling.md) for lifecycle accounting, custom
@@ -327,12 +331,17 @@ separators:
327
331
  }
328
332
  ```
329
333
 
330
- Files absent from the manifest, unknown files, invalid duration values, and
331
- unreadable or malformed JSON all fall back to the existing deterministic
332
- heuristic. The heuristic weights files by spec directory (`system/` = 20, `frontend-models/` = 10,
333
- `controller/` = 3, default = 1) with a 2x multiplier for `.browser-spec.js`
334
- files. The heaviest files are assigned first to the group with the least
335
- accumulated weight, producing balanced wall-clock times across groups.
334
+ Files absent from the manifest and zero-duration entries use the existing
335
+ deterministic heuristic; stale entries are ignored. When `--timing-manifest` is
336
+ explicitly supplied, its file must be readable and contain a plain JSON object
337
+ with canonical relative paths and finite non-negative durations. Invalid input
338
+ fails the command even without sharding flags. A compact
339
+ measured/heuristic/stale summary reports coverage.
340
+ The heuristic weights files by spec directory (`system/` = 20,
341
+ `frontend-models/` = 10, `controller/` = 3, default = 1) with a 2x multiplier
342
+ for `.browser-spec.js` files. The heaviest files are assigned first to the group
343
+ with the least accumulated weight, producing balanced wall-clock times across
344
+ groups.
336
345
 
337
346
  The algorithm is deterministic: the same file list always produces the same
338
347
  group assignments.
@@ -2501,6 +2510,13 @@ Supported schedule syntax:
2501
2510
  - `every: ["1h", {firstIn: "30s"}]`
2502
2511
  - `every: ["1 day", {firstIn: "5 minutes"}]`
2503
2512
 
2513
+ Each recurring tick completes after its enqueue is durably stored and workers
2514
+ are notified. Dispatch runs through the coalesced background-job drain without
2515
+ holding the schedule's in-flight enqueue marker, so a slow dispatcher cannot
2516
+ suppress later ticks. Use `deduplicateWhileQueued` together with a durable
2517
+ `concurrencyKey` / `maxConcurrency` limit when a recurring logical job must have
2518
+ at most one queued or running execution.
2519
+
2504
2520
  Or a 5-field POSIX crontab expression via `cron`:
2505
2521
 
2506
2522
  ```js
@@ -222,7 +222,11 @@ export default class BackgroundJobsMain {
222
222
  options: jobClass._withQueue(options)
223
223
  })
224
224
  this._notifyEnqueued()
225
- await this._drain()
225
+ // Persistence is the scheduler enqueue boundary. Dispatch remains
226
+ // coalesced, but a slow active drain must not make the recurring
227
+ // scheduler treat this job key as still being enqueued and suppress
228
+ // later timer occurrences.
229
+ void this._drain()
226
230
  }
227
231
  })
228
232
  await this.scheduler.start()
@@ -284,6 +288,7 @@ export default class BackgroundJobsMain {
284
288
  this._disconnectBeaconHandlers()
285
289
  try {
286
290
  await this.scheduler?.stop()
291
+ if (this._drainPromise) await this._drainPromise
287
292
  } finally {
288
293
  try {
289
294
  await this._drainWorkerHandoffAdoptions()
@@ -0,0 +1,14 @@
1
+ // @ts-check
2
+
3
+ import BaseCommand from "../../../base-command.js"
4
+
5
+ /** CLI command for merging complete rich test-profile shards into timing history. */
6
+ export default class TestTimingManifestMerge extends BaseCommand {
7
+ /**
8
+ * Runs execute.
9
+ * @returns {Promise<ReturnType<typeof JSON.parse>>} - Resolves with the merged manifest.
10
+ */
11
+ async execute() {
12
+ return await this.getConfiguration().getEnvironmentHandler().cliCommandsTestTimingManifestMerge(this)
13
+ }
14
+ }
@@ -406,6 +406,15 @@ export default class VelociousEnvironmentHandlerBase {
406
406
  throw new Error("cliCommandsTest not implemented")
407
407
  }
408
408
 
409
+ /**
410
+ * Runs cli commands test timing manifest merge.
411
+ * @param {import("../cli/base-command.js").default} _command - Command.
412
+ * @returns {Promise<ReturnType<typeof JSON.parse>>} - Resolves with the command result.
413
+ */
414
+ async cliCommandsTestTimingManifestMerge(_command) {
415
+ throw new Error("cliCommandsTestTimingManifestMerge not implemented")
416
+ }
417
+
409
418
  /**
410
419
  * Runs cli commands background jobs main.
411
420
  * @param {import("../cli/base-command.js").default} _command - Command.
@@ -0,0 +1,108 @@
1
+ // @ts-check
2
+
3
+ import BaseCommand from "../../../../../../cli/base-command.js"
4
+ import fs from "node:fs/promises"
5
+ import path from "node:path"
6
+ import { writeTimingManifest } from "../../../../../../testing/test-profile-output.js"
7
+ import { mergeTestProfileTimingManifests } from "../../../../../../testing/timing-manifest.js"
8
+
9
+ /**
10
+ * @typedef {object} TimingManifestMergeArguments
11
+ * @property {string[]} inputPaths - Rich profile input paths.
12
+ * @property {string} outputPath - Plain timing manifest output path.
13
+ */
14
+
15
+ /** Node implementation for timing-manifest aggregation. */
16
+ export default class TestTimingManifestMerge extends BaseCommand {
17
+ /**
18
+ * Runs execute.
19
+ * @returns {Promise<Record<string, number>>} - Complete merged timing manifest.
20
+ */
21
+ async execute() {
22
+ const {inputPaths, outputPath} = parseTimingManifestMergeArguments(this.processArgs || [], process.cwd())
23
+ const inputs = []
24
+
25
+ for (const inputPath of inputPaths) {
26
+ let content
27
+
28
+ try {
29
+ content = await fs.readFile(inputPath, "utf8")
30
+ } catch (error) {
31
+ throw new Error(`Failed to read test profile: ${inputPath}`, {cause: error})
32
+ }
33
+
34
+ let profile
35
+
36
+ try {
37
+ profile = JSON.parse(content)
38
+ } catch (error) {
39
+ throw new Error(`Failed to parse test profile: ${inputPath}`, {cause: error})
40
+ }
41
+
42
+ inputs.push({profile, source: inputPath})
43
+ }
44
+
45
+ const timingManifest = mergeTestProfileTimingManifests(inputs)
46
+
47
+ await writeTimingManifest({outputPath, timingManifest})
48
+ console.log(`Merged ${inputPaths.length} test profile shards into ${outputPath} (${Object.keys(timingManifest).length} files)`)
49
+
50
+ return timingManifest
51
+ }
52
+ }
53
+
54
+ /**
55
+ * Recognizes one output option spelling.
56
+ * @param {string} argument - Current argument.
57
+ * @param {string | undefined} nextArgument - Following argument.
58
+ * @returns {{matched: boolean, skipNext: boolean, value: string | undefined}} - Parsed output option.
59
+ */
60
+ function timingManifestOutputArgument(argument, nextArgument) {
61
+ if (argument === "--output") {
62
+ return {matched: true, skipNext: true, value: nextArgument}
63
+ }
64
+
65
+ if (argument.startsWith("--output=")) {
66
+ return {matched: true, skipNext: false, value: argument.slice("--output=".length)}
67
+ }
68
+
69
+ return {matched: false, skipNext: false, value: undefined}
70
+ }
71
+
72
+ /**
73
+ * Parses strict merge arguments and resolves their paths.
74
+ * @param {string[]} processArgs - Raw CLI arguments, including command name.
75
+ * @param {string} cwd - Command working directory.
76
+ * @returns {TimingManifestMergeArguments} - Validated resolved paths.
77
+ */
78
+ export function parseTimingManifestMergeArguments(processArgs, cwd) {
79
+ const commandName = processArgs[0] || "test:timing-manifest:merge"
80
+ const inputPaths = []
81
+ let outputPath
82
+
83
+ for (let index = 1; index < processArgs.length; index++) {
84
+ const argument = processArgs[index]
85
+ const outputArgument = timingManifestOutputArgument(argument, processArgs[index + 1])
86
+
87
+ if (outputArgument.matched) {
88
+ if (!outputArgument.value || outputArgument.value.startsWith("-")) throw new Error("Missing value for --output")
89
+ if (outputPath) throw new Error("--output may only be provided once")
90
+ outputPath = path.resolve(cwd, outputArgument.value)
91
+ if (outputArgument.skipNext) index++
92
+ continue
93
+ }
94
+
95
+ if (argument.startsWith("-")) throw new Error(`Unknown argument for ${commandName}: ${argument}`)
96
+ inputPaths.push(path.resolve(cwd, argument))
97
+ }
98
+
99
+ if (!outputPath) throw new Error("--output is required")
100
+ if (inputPaths.length === 0) throw new Error("At least one rich test profile input is required")
101
+
102
+ const uniqueInputPaths = new Set(inputPaths)
103
+
104
+ if (uniqueInputPaths.size !== inputPaths.length) throw new Error("Each rich test profile input must be provided once")
105
+ if (uniqueInputPaths.has(outputPath)) throw new Error("Timing manifest output must not overwrite an input profile")
106
+
107
+ return {inputPaths, outputPath}
108
+ }
@@ -10,6 +10,11 @@ import { formatTestProfileSummary, writeTestProfileOutputs } from "../../../../t
10
10
  import TestRunner from "../../../../testing/test-runner.js"
11
11
  import TestSuiteSplitter from "../../../../testing/test-suite-splitter.js"
12
12
  import { normalizeExamplePatterns, parseFilters } from "../../../../testing/test-filter-parser.js"
13
+ import {
14
+ canonicalTimingManifestPath,
15
+ timingManifestFileSetHash,
16
+ validateTimingManifest
17
+ } from "../../../../testing/timing-manifest.js"
13
18
  import { prepareSourcePeerPackage } from "../../source-peer-package.js"
14
19
 
15
20
  export default class VelociousCliCommandsTest extends BaseCommand {
@@ -95,14 +100,28 @@ export default class VelociousCliCommandsTest extends BaseCommand {
95
100
 
96
101
  try {
97
102
  const discoverTestFiles = async () => {
103
+ const timingManifest = await loadTimingManifest(profileOptions.timingManifestPath)
98
104
  let discoveredTestFiles = await testFilesFinder.findTestFiles()
105
+ const lineFilters = testFilesFinder.getLineFiltersByFile()
106
+
107
+ if (profiler) {
108
+ const discoveredFilePaths = discoveredTestFiles.map((filePath) => {
109
+ return canonicalTimingManifestPath(path.relative(directory, filePath))
110
+ })
111
+
112
+ profiler.setSelection({
113
+ discoveredFileCount: discoveredTestFiles.length,
114
+ hasLineFilters: Object.keys(lineFilters).length > 0,
115
+ pathBase: process.env.VELOCIOUS_TEST_DIR ? "test-directory" : "configuration-directory",
116
+ testFileSetHash: timingManifestFileSetHash(discoveredFilePaths)
117
+ })
118
+ }
99
119
 
100
120
  if (groups !== undefined || groupNumber !== undefined) {
101
121
  if (groups === undefined || groupNumber === undefined) {
102
122
  throw new Error("Both --groups and --group-number must be provided together")
103
123
  }
104
124
 
105
- const timingManifest = await loadTimingManifest(profileOptions.timingManifestPath)
106
125
  const splitter = new TestSuiteSplitter({
107
126
  groups,
108
127
  groupNumber,
@@ -111,6 +130,15 @@ export default class VelociousCliCommandsTest extends BaseCommand {
111
130
  timingManifest
112
131
  })
113
132
 
133
+ if (profileOptions.timingManifestPath) {
134
+ const coverage = splitter.getTimingManifestCoverage()
135
+
136
+ console.log(picocolors.cyan(
137
+ `Timing manifest coverage: measured=${coverage.measuredFiles} ` +
138
+ `heuristic=${coverage.heuristicFiles} stale=${coverage.staleEntries}`
139
+ ))
140
+ }
141
+
114
142
  discoveredTestFiles = splitter.getGroupFiles()
115
143
  console.log(picocolors.cyan(`Running group ${groupNumber} of ${groups} (${discoveredTestFiles.length} files)`))
116
144
  }
@@ -158,6 +186,9 @@ export default class VelociousCliCommandsTest extends BaseCommand {
158
186
  process.once("SIGTERM", () => { void handleSignal("SIGTERM") })
159
187
 
160
188
  await testRunner.prepare()
189
+ const effectiveExcludeTagCount = testRunner.getExcludeTagSet().size
190
+
191
+ profiler?.setSelection({excludeTagCount: effectiveExcludeTagCount})
161
192
 
162
193
  if (testRunner.getTestsCount() === 0) {
163
194
  await finalizeProfile("no-tests")
@@ -170,7 +201,7 @@ export default class VelociousCliCommandsTest extends BaseCommand {
170
201
  const lineFilters = testRunner.getLineFilters()
171
202
  const hasLineFilters = Object.keys(lineFilters).length > 0
172
203
  const hasExampleFilters = examplePatterns.length > 0
173
- const hasTagFilters = includeTags.length > 0 || excludeTags.length > 0
204
+ const hasTagFilters = includeTags.length > 0 || effectiveExcludeTagCount > 0
174
205
 
175
206
  if ((hasTagFilters || hasLineFilters || hasExampleFilters) && executedTests === 0) {
176
207
  console.error(picocolors.red("\nNo tests matched the provided filters"))
@@ -277,20 +308,30 @@ export function resolveTestProfileOptions({cwd, profile, profileJsonPath, timing
277
308
  }
278
309
 
279
310
  /**
280
- * Loads an optional JSON timing manifest. Unreadable or malformed input intentionally falls back to heuristics.
311
+ * Loads and validates an explicitly supplied plain JSON timing manifest.
281
312
  * @param {string | undefined} timingManifestPath - Timing manifest path.
282
- * @returns {Promise<ReturnType<typeof JSON.parse> | undefined>} - Parsed manifest when readable and valid JSON.
313
+ * @returns {Promise<Record<string, number> | undefined>} - Canonical manifest, or undefined when not requested.
283
314
  */
284
315
  export async function loadTimingManifest(timingManifestPath) {
285
316
  if (!timingManifestPath) return undefined
286
317
 
318
+ let content
319
+
287
320
  try {
288
- return JSON.parse(await fs.readFile(timingManifestPath, "utf8"))
321
+ content = await fs.readFile(timingManifestPath, "utf8")
289
322
  } catch (error) {
290
- if (error instanceof Error) return undefined
323
+ throw new Error(`Failed to read timing manifest: ${timingManifestPath}`, {cause: error})
324
+ }
325
+
326
+ let parsed
291
327
 
292
- throw error
328
+ try {
329
+ parsed = JSON.parse(content)
330
+ } catch (error) {
331
+ throw new Error(`Failed to parse timing manifest: ${timingManifestPath}`, {cause: error})
293
332
  }
333
+
334
+ return validateTimingManifest(parsed, {source: `Timing manifest ${timingManifestPath}`})
294
335
  }
295
336
 
296
337
  /**
@@ -14,6 +14,7 @@ import CliCommandsLintRelationships from "./node/cli/commands/lint/relationships
14
14
  import CliCommandsRoutes from "./node/cli/commands/routes.js"
15
15
  import CliCommandsServer from "./node/cli/commands/server.js"
16
16
  import CliCommandsTest from "./node/cli/commands/test.js"
17
+ import CliCommandsTestTimingManifestMerge from "./node/cli/commands/test/timing-manifest/merge.js"
17
18
  import CliCommandsBackgroundJobsMain from "./node/cli/commands/background-jobs-main.js"
18
19
  import CliCommandsBackgroundJobsWorker from "./node/cli/commands/background-jobs-worker.js"
19
20
  import CliCommandsBackgroundJobsRunner from "./node/cli/commands/background-jobs-runner.js"
@@ -830,6 +831,15 @@ export default class VelociousEnvironmentHandlerNode extends Base{
830
831
  return await this.forwardCommand(command, CliCommandsTest)
831
832
  }
832
833
 
834
+ /**
835
+ * Runs cli commands test timing manifest merge.
836
+ * @param {import("../cli/base-command.js").default} command - Command.
837
+ * @returns {Promise<ReturnType<typeof JSON.parse>>} - Resolves with the command result.
838
+ */
839
+ async cliCommandsTestTimingManifestMerge(command) {
840
+ return await this.forwardCommand(command, CliCommandsTestTimingManifestMerge)
841
+ }
842
+
833
843
  /**
834
844
  * Runs cli commands background jobs main.
835
845
  * @param {import("../cli/base-command.js").default} command - Command.
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/background-jobs/main.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/background-jobs/main.js"],"names":[],"mappings":"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"}