@vivantel/virage-cli 0.1.97 → 0.1.98

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.
@@ -30,14 +30,28 @@ import { runPack } from "../cli/pack.js";
30
30
  import { runTelemetryStatus, runTelemetryOn, runTelemetryOff, runTelemetryInit, runTelemetryPreview, runTelemetryFlush, } from "../cli/telemetry.js";
31
31
  import { printBanner } from "../cli/banner.js";
32
32
  config({ quiet: true });
33
- // Expand -vvv etc. into individual -v flags before commander parses
34
- const argv = process.argv.flatMap((arg) => /^-v+$/.test(arg)
35
- ? arg
36
- .slice(1)
37
- .split("")
38
- .map((c) => `-${c}`)
39
- : [arg]);
33
+ // Top-level command aliases not expressible as a single Commander .alias()
34
+ const TOP_LEVEL_ALIASES = {
35
+ b: "benchmark",
36
+ bench: "benchmark",
37
+ tm: "telemetry",
38
+ v: "validate",
39
+ };
40
+ // Expand -vvv etc. into individual -v flags, and rewrite top-level command aliases
41
+ const argv = process.argv.flatMap((arg, i, arr) => {
42
+ if (/^-v+$/.test(arg)) {
43
+ return arg
44
+ .slice(1)
45
+ .split("")
46
+ .map((c) => `-${c}`);
47
+ }
48
+ if (i === 2 && TOP_LEVEL_ALIASES[arg]) {
49
+ return [TOP_LEVEL_ALIASES[arg]];
50
+ }
51
+ return [arg];
52
+ });
40
53
  const program = new Command();
54
+ program.configureHelp({ sortSubcommands: true });
41
55
  function handleError(error) {
42
56
  createOut(0).error(error instanceof Error ? error.message : String(error));
43
57
  if (error instanceof RagError && error.suggestion) {
@@ -523,13 +537,15 @@ program
523
537
  });
524
538
  const benchmark = program
525
539
  .command("benchmark")
540
+ .alias("b")
526
541
  .description("Performance benchmarking tools");
527
542
  benchmark
528
543
  .command("embedder")
544
+ .alias("e")
529
545
  .description("Benchmark any configured embedder (latency p50/p95/p99 + tokens/sec)")
530
546
  .option("-c, --config <path>", "Path to virage.config.json", "./virage.config.json")
531
- .option("--samples <n>", "Number of latency samples", (v) => parseInt(v, 10), 20)
532
- .option("--warmup <n>", "Number of warm-up runs", (v) => parseInt(v, 10), 3)
547
+ .option("-s, --samples <n>", "Number of latency samples", (v) => parseInt(v, 10), 20)
548
+ .option("-w, --warmup <n>", "Number of warm-up runs", (v) => parseInt(v, 10), 3)
533
549
  .action(async (opts) => {
534
550
  const verbose = program.opts().verbose;
535
551
  try {
@@ -546,17 +562,18 @@ benchmark
546
562
  });
547
563
  benchmark
548
564
  .command("chunker")
565
+ .alias("c")
549
566
  .description("Benchmark configured chunkers (latency p50/p95/p99 + KB/s throughput)")
567
+ .argument("<files...>", "File paths or glob patterns to benchmark")
550
568
  .option("-c, --config <path>", "Path to virage.config.json", "./virage.config.json")
551
- .requiredOption("--file <path>", "Path to a file to chunk")
552
- .option("--samples <n>", "Number of passes per chunker", (v) => parseInt(v, 10), 20)
553
- .option("--warmup <n>", "Number of warm-up runs", (v) => parseInt(v, 10), 3)
554
- .action(async (opts) => {
569
+ .option("-s, --samples <n>", "Number of passes per chunker", (v) => parseInt(v, 10), 20)
570
+ .option("-w, --warmup <n>", "Number of warm-up runs", (v) => parseInt(v, 10), 3)
571
+ .action(async (files, opts) => {
555
572
  const verbose = program.opts().verbose;
556
573
  try {
557
574
  await runBenchmarkChunker({
558
575
  config: opts.config,
559
- file: opts.file,
576
+ files,
560
577
  samples: opts.samples,
561
578
  warmup: opts.warmup,
562
579
  verbosity: verbose,
@@ -568,11 +585,12 @@ benchmark
568
585
  });
569
586
  benchmark
570
587
  .command("reranker")
588
+ .alias("r")
571
589
  .description("Benchmark configured reranker (latency p50/p95/p99 + passages/sec)")
572
590
  .option("-c, --config <path>", "Path to virage.config.json", "./virage.config.json")
573
- .option("--samples <n>", "Number of rerank calls", (v) => parseInt(v, 10), 20)
591
+ .option("-s, --samples <n>", "Number of rerank calls", (v) => parseInt(v, 10), 20)
574
592
  .option("--passages <n>", "Passages per rerank call", (v) => parseInt(v, 10), 10)
575
- .option("--warmup <n>", "Number of warm-up runs", (v) => parseInt(v, 10), 3)
593
+ .option("-w, --warmup <n>", "Number of warm-up runs", (v) => parseInt(v, 10), 3)
576
594
  .action(async (opts) => {
577
595
  const verbose = program.opts().verbose;
578
596
  try {
@@ -622,6 +640,7 @@ store
622
640
  });
623
641
  const telemetry = program
624
642
  .command("telemetry")
643
+ .alias("tm")
625
644
  .description("Manage telemetry collection settings and data");
626
645
  telemetry
627
646
  .command("status")
@@ -1 +1 @@
1
- {"version":3,"file":"virage.js","sourceRoot":"","sources":["../../src/bin/virage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"virage.js","sourceRoot":"","sources":["../../src/bin/virage.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export interface BenchmarkChunkerOptions {
2
2
  config: string;
3
- file: string;
3
+ files: string[];
4
4
  samples: number;
5
5
  warmup: number;
6
6
  verbosity: number;
@@ -1 +1 @@
1
- {"version":3,"file":"benchmark-chunker.d.ts","sourceRoot":"","sources":["../../src/cli/benchmark-chunker.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAOD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,IAAI,CAAC,CA+Df"}
1
+ {"version":3,"file":"benchmark-chunker.d.ts","sourceRoot":"","sources":["../../src/cli/benchmark-chunker.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAqBD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAkGf"}
@@ -1,4 +1,6 @@
1
1
  import { statSync } from "node:fs";
2
+ import { glob } from "glob";
3
+ import { minimatch } from "minimatch";
2
4
  import { loadConfig } from "@vivantel/virage-core";
3
5
  import { createOut } from "../output.js";
4
6
  import { withSpinner } from "../spinner.js";
@@ -6,51 +8,83 @@ function percentile(sorted, p) {
6
8
  const idx = Math.floor((p / 100) * sorted.length);
7
9
  return sorted[Math.min(idx, sorted.length - 1)];
8
10
  }
11
+ function matchesPattern(filePath, pattern) {
12
+ const normalized = filePath.replace(/\\/g, "/");
13
+ const normalizedPattern = pattern.replace(/\\/g, "/");
14
+ return minimatch(normalized, normalizedPattern, { matchBase: true });
15
+ }
16
+ async function expandGlobs(patterns) {
17
+ const results = await Promise.all(patterns.map((p) => glob(p, { nodir: true })));
18
+ const unique = new Set(results.flat());
19
+ return [...unique].sort();
20
+ }
9
21
  export async function runBenchmarkChunker(opts) {
10
22
  const out = createOut(opts.verbosity);
11
23
  const cfg = await loadConfig(opts.config);
12
- const fileSizeBytes = statSync(opts.file).size;
13
- const fileSizeKB = fileSizeBytes / 1024;
14
24
  out.section(`🔬 Benchmarking chunkers`);
15
- out.dim(` File : ${opts.file} (${fileSizeKB.toFixed(1)} KB)`);
16
25
  out.dim(` Config : ${opts.config}`);
17
26
  out.dim(` Samples : ${opts.samples} Warmup: ${opts.warmup}`);
27
+ let resolvedFiles;
28
+ await withSpinner("Resolving file globs", async () => {
29
+ resolvedFiles = await expandGlobs(opts.files);
30
+ }, 0);
31
+ out.dim(` Inputs : ${opts.files.join(", ")}`);
32
+ out.dim(` Resolved: ${resolvedFiles.length} file(s)`);
33
+ if (resolvedFiles.length === 0) {
34
+ out.warn("No files matched the provided patterns — nothing to benchmark.");
35
+ return;
36
+ }
18
37
  for (const { chunker } of cfg.chunkers) {
38
+ const matchedFiles = resolvedFiles.filter((f) => chunker.patterns.some((p) => matchesPattern(f, p)));
19
39
  out.section(`Chunker: ${chunker.name} @ ${chunker.version}`);
20
40
  out.dim(` Patterns: ${chunker.patterns.join(", ")}`);
41
+ if (matchedFiles.length === 0) {
42
+ out.warn(` No matched files — skipping (patterns don't match any resolved file).`);
43
+ continue;
44
+ }
45
+ const totalBytes = matchedFiles.reduce((sum, f) => sum + statSync(f).size, 0);
46
+ const totalKB = totalBytes / 1024;
47
+ out.dim(` Files : ${matchedFiles.length} matched (${totalKB.toFixed(1)} KB total)`);
21
48
  await withSpinner(`Warm-up (${opts.warmup} run${opts.warmup !== 1 ? "s" : ""})`, async () => {
22
49
  for (let i = 0; i < opts.warmup; i++) {
23
- await chunker.chunk(opts.file, "benchmark");
50
+ for (const f of matchedFiles) {
51
+ await chunker.chunk(f, "benchmark");
52
+ }
24
53
  }
25
54
  }, 0);
26
55
  const latencies = [];
27
56
  let chunkCount = 0;
28
- await withSpinner(`Running ${opts.samples} chunk passes`, async () => {
57
+ await withSpinner(`Running ${opts.samples} passes over ${matchedFiles.length} file(s)`, async () => {
29
58
  for (let i = 0; i < opts.samples; i++) {
30
59
  const t0 = performance.now();
31
- const chunks = await chunker.chunk(opts.file, "benchmark");
60
+ let count = 0;
61
+ for (const f of matchedFiles) {
62
+ const chunks = await chunker.chunk(f, "benchmark");
63
+ count += chunks.length;
64
+ }
32
65
  latencies.push(performance.now() - t0);
33
66
  if (i === 0)
34
- chunkCount = chunks.length;
67
+ chunkCount = count;
35
68
  }
36
69
  }, 0);
37
70
  latencies.sort((a, b) => a - b);
38
71
  const p50 = percentile(latencies, 50);
39
72
  const p95 = percentile(latencies, 95);
40
73
  const p99 = percentile(latencies, 99);
41
- const throughputKBs = fileSizeKB / (p50 / 1000);
74
+ const throughputKBs = totalKB / (p50 / 1000);
42
75
  const throughputMBs = throughputKBs / 1024;
43
76
  out.section("📊 Results");
44
77
  out.info(` Chunker : ${chunker.name}`);
45
78
  out.info(` Version : ${chunker.version}`);
46
- out.info(` Chunks produced : ${chunkCount}`);
79
+ out.info(` Files benchmarked : ${matchedFiles.length}`);
80
+ out.info(` Chunks produced : ${chunkCount} (first pass)`);
47
81
  out.divider();
48
- out.info(` Latency (per file)`);
82
+ out.info(` Latency (per full pass over all matched files)`);
49
83
  out.info(` p50 : ${p50.toFixed(1)} ms`);
50
84
  out.info(` p95 : ${p95.toFixed(1)} ms`);
51
85
  out.info(` p99 : ${p99.toFixed(1)} ms`);
52
86
  out.divider();
53
- out.info(` Throughput (est)`);
87
+ out.info(` Throughput (est, based on p50)`);
54
88
  out.info(` KB/s : ${throughputKBs.toFixed(1)} KB/s`);
55
89
  out.info(` MB/s : ${throughputMBs.toFixed(3)} MB/s`);
56
90
  out.divider();
@@ -1 +1 @@
1
- {"version":3,"file":"benchmark-chunker.js","sourceRoot":"","sources":["../../src/cli/benchmark-chunker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"benchmark-chunker.js","sourceRoot":"","sources":["../../src/cli/benchmark-chunker.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/cli/dashboard.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AA6TD,wBAAsB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqiBxE"}
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/cli/dashboard.ts"],"names":[],"mappings":"AA4BA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAqWD,wBAAsB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6iBxE"}
@@ -80,60 +80,90 @@ async function getCachedConfig(configPath) {
80
80
  configCache = { path: configPath, cfg };
81
81
  return cfg;
82
82
  }
83
- // ─── Status helpers (preserved from original) ─────────────────────────────────
84
- async function getStatus(dbPath) {
83
+ // ─── Status / chunk helpers prefer vector DB, fall back to SQLite ────────────
84
+ function histogramBuckets(sizes) {
85
+ const defs = [
86
+ { label: "< 200 chars", min: 0, max: 200 },
87
+ { label: "200–500 chars", min: 200, max: 500 },
88
+ { label: "500–1k chars", min: 500, max: 1000 },
89
+ { label: "1k–2k chars", min: 1000, max: 2000 },
90
+ { label: "> 2k chars", min: 2000, max: Infinity },
91
+ ];
92
+ return defs.map((b) => ({
93
+ label: b.label,
94
+ count: sizes.filter((s) => s >= b.min && s < b.max).length,
95
+ }));
96
+ }
97
+ async function getStatus(dbPath, cfg) {
85
98
  let totalChunks = 0;
86
99
  let totalEmbeddings = 0;
100
+ const memoryMB = Math.round(process.memoryUsage().heapUsed / 1024 / 1024);
87
101
  try {
88
- const db = new VirageDb(dbPath);
89
- totalChunks = db.getAllChunks().length;
90
- totalEmbeddings = db.getAll().length;
91
- db.close();
102
+ if (cfg?.vectorStore.getStats) {
103
+ const stats = await cfg.vectorStore.getStats();
104
+ totalChunks = stats.documentCount;
105
+ totalEmbeddings = stats.documentCount;
106
+ }
107
+ else {
108
+ const db = new VirageDb(dbPath);
109
+ totalChunks = db.getAllChunks().length;
110
+ totalEmbeddings = db.getAll().length;
111
+ db.close();
112
+ }
92
113
  }
93
114
  catch {
94
115
  /* db may not exist yet */
95
116
  }
96
- const memoryMB = Math.round(process.memoryUsage().heapUsed / 1024 / 1024);
97
117
  return { totalChunks, totalEmbeddings, memoryMB };
98
118
  }
99
- async function getChunksHistogram(dbPath) {
119
+ async function getChunksHistogram(dbPath, cfg) {
100
120
  try {
121
+ if (cfg?.vectorStore.listAll) {
122
+ const docs = await cfg.vectorStore.listAll();
123
+ const sizes = docs.map((d) => d.denseText.length);
124
+ return { histogram: histogramBuckets(sizes) };
125
+ }
101
126
  const db = new VirageDb(dbPath);
102
127
  const chunks = db.getAllChunks();
103
128
  db.close();
104
129
  const sizes = chunks.map((c) => c.denseText?.length ?? 0);
105
- const buckets = [
106
- { label: "< 200 chars", min: 0, max: 200 },
107
- { label: "200–500 chars", min: 200, max: 500 },
108
- { label: "500–1k chars", min: 500, max: 1000 },
109
- { label: "1k–2k chars", min: 1000, max: 2000 },
110
- { label: "> 2k chars", min: 2000, max: Infinity },
111
- ];
112
- const histogram = buckets.map((b) => ({
113
- label: b.label,
114
- count: sizes.filter((s) => s >= b.min && s < b.max).length,
115
- }));
116
- return { histogram };
130
+ return { histogram: histogramBuckets(sizes) };
117
131
  }
118
132
  catch {
119
133
  return { histogram: [] };
120
134
  }
121
135
  }
122
- async function getAnomalies(dbPath) {
136
+ async function getAnomalies(dbPath, cfg) {
123
137
  try {
124
- const db = new VirageDb(dbPath);
125
- const chunks = db.getAll();
126
- db.close();
127
- if (chunks.length === 0)
138
+ let items;
139
+ if (cfg?.vectorStore.listAll) {
140
+ const docs = await cfg.vectorStore.listAll({ includeVectors: true });
141
+ items = docs.map((d) => ({
142
+ sourceFile: d.sourceFile,
143
+ denseText: d.denseText,
144
+ denseVector: d.denseVector,
145
+ }));
146
+ }
147
+ else {
148
+ const db = new VirageDb(dbPath);
149
+ const chunks = db.getAll();
150
+ db.close();
151
+ items = chunks.map((c) => ({
152
+ sourceFile: c.sourceFile ?? "unknown",
153
+ denseText: c.denseText ?? "",
154
+ denseVector: c.denseVector ?? [],
155
+ }));
156
+ }
157
+ if (items.length === 0)
128
158
  return { anomalies: [] };
129
- const norms = chunks.map((c) => Math.sqrt((c.denseVector ?? []).reduce((s, v) => s + v * v, 0)));
159
+ const norms = items.map((c) => Math.sqrt((c.denseVector ?? []).reduce((s, v) => s + v * v, 0)));
130
160
  const mean = norms.reduce((s, v) => s + v, 0) / norms.length;
131
161
  const std = Math.sqrt(norms.reduce((s, v) => s + (v - mean) ** 2, 0) / norms.length);
132
- const anomalies = chunks
162
+ const anomalies = items
133
163
  .map((c, i) => ({
134
- sourceFile: c.sourceFile ?? "unknown",
164
+ sourceFile: c.sourceFile,
135
165
  zscore: std > 0 ? Math.abs(norms[i] - mean) / std : 0,
136
- preview: (c.denseText ?? "").slice(0, 60),
166
+ preview: c.denseText.slice(0, 60),
137
167
  }))
138
168
  .filter((a) => a.zscore > 2.5)
139
169
  .sort((a, b) => b.zscore - a.zscore);
@@ -143,6 +173,19 @@ async function getAnomalies(dbPath) {
143
173
  return { anomalies: [] };
144
174
  }
145
175
  }
176
+ async function tryGetConfig(active) {
177
+ if (!active)
178
+ return undefined;
179
+ const configPath = getProjectConfigPath(active);
180
+ if (!existsSync(configPath))
181
+ return undefined;
182
+ try {
183
+ return await getCachedConfig(configPath);
184
+ }
185
+ catch {
186
+ return undefined;
187
+ }
188
+ }
146
189
  // ─── WebSocket handler ─────────────────────────────────────────────────────────
147
190
  function safeSend(ws, msg) {
148
191
  if (ws.readyState === ws.OPEN) {
@@ -321,15 +364,18 @@ export async function runDashboard(opts) {
321
364
  // ─── Existing routes ────────────────────────────────────────────────────────
322
365
  app.get("/api/status", async (_req, res) => {
323
366
  const active = activeProject();
324
- res.json(await getStatus(active?.virageDb ?? opts.dbPath));
367
+ const cfg = await tryGetConfig(active);
368
+ res.json(await getStatus(active?.virageDb ?? opts.dbPath, cfg));
325
369
  });
326
370
  app.get("/api/chunks", async (_req, res) => {
327
371
  const active = activeProject();
328
- res.json(await getChunksHistogram(active?.virageDb ?? opts.dbPath));
372
+ const cfg = await tryGetConfig(active);
373
+ res.json(await getChunksHistogram(active?.virageDb ?? opts.dbPath, cfg));
329
374
  });
330
375
  app.get("/api/embeddings/anomalies", async (_req, res) => {
331
376
  const active = activeProject();
332
- res.json(await getAnomalies(active?.virageDb ?? opts.dbPath));
377
+ const cfg = await tryGetConfig(active);
378
+ res.json(await getAnomalies(active?.virageDb ?? opts.dbPath, cfg));
333
379
  });
334
380
  app.get("/api/projects", (_req, res) => {
335
381
  res.json(projectsState);
@@ -378,20 +424,27 @@ export async function runDashboard(opts) {
378
424
  res.json(projectsState);
379
425
  });
380
426
  // ─── New chunk routes ────────────────────────────────────────────────────────
381
- app.get("/api/chunks/all", (req, res) => {
427
+ app.get("/api/chunks/all", async (req, res) => {
382
428
  const active = activeProject();
383
429
  if (!active) {
384
430
  res.status(503).json({ error: "No active project" });
385
431
  return;
386
432
  }
433
+ const sf = typeof req.query["sourceFile"] === "string" ? req.query["sourceFile"] : undefined;
387
434
  try {
435
+ const cfg = await tryGetConfig(active);
436
+ if (cfg?.vectorStore.listAll) {
437
+ let docs = await cfg.vectorStore.listAll();
438
+ if (sf)
439
+ docs = docs.filter((d) => d.sourceFile === sf);
440
+ res.json({ chunks: docs.map((d) => ({ id: d.id, sourceFile: d.sourceFile, content: d.denseText, metadata: d.metadata })) });
441
+ return;
442
+ }
388
443
  const db = new VirageDb(active.virageDb);
389
444
  let chunks = db.getAllChunks();
390
445
  db.close();
391
- const sf = req.query["sourceFile"];
392
- if (typeof sf === "string") {
446
+ if (sf)
393
447
  chunks = chunks.filter((c) => c.sourceFile === sf);
394
- }
395
448
  res.json({ chunks });
396
449
  }
397
450
  catch (err) {