@vivantel/virage-cli 0.1.84 → 0.1.87
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/dist/ansi.d.ts +14 -0
- package/dist/ansi.d.ts.map +1 -0
- package/dist/ansi.js +25 -0
- package/dist/ansi.js.map +1 -0
- package/dist/bin/virage.js +85 -22
- package/dist/bin/virage.js.map +1 -1
- package/dist/cli/benchmark.d.ts +1 -0
- package/dist/cli/benchmark.d.ts.map +1 -1
- package/dist/cli/benchmark.js +41 -43
- package/dist/cli/benchmark.js.map +1 -1
- package/dist/cli/check.d.ts +1 -0
- package/dist/cli/check.d.ts.map +1 -1
- package/dist/cli/check.js +20 -16
- package/dist/cli/check.js.map +1 -1
- package/dist/cli/chunks-report.d.ts +1 -1
- package/dist/cli/chunks-report.d.ts.map +1 -1
- package/dist/cli/chunks-report.js +16 -11
- package/dist/cli/chunks-report.js.map +1 -1
- package/dist/cli/eval-suite.d.ts.map +1 -1
- package/dist/cli/eval-suite.js +6 -6
- package/dist/cli/eval-suite.js.map +1 -1
- package/dist/cli/evaluate.d.ts +1 -0
- package/dist/cli/evaluate.d.ts.map +1 -1
- package/dist/cli/evaluate.js +37 -34
- package/dist/cli/evaluate.js.map +1 -1
- package/dist/cli/experiment.d.ts +3 -1
- package/dist/cli/experiment.d.ts.map +1 -1
- package/dist/cli/experiment.js +41 -39
- package/dist/cli/experiment.js.map +1 -1
- package/dist/cli/init.d.ts +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +25 -24
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/install-hooks.d.ts +1 -0
- package/dist/cli/install-hooks.d.ts.map +1 -1
- package/dist/cli/install-hooks.js +24 -11
- package/dist/cli/install-hooks.js.map +1 -1
- package/dist/cli/pack.d.ts +1 -0
- package/dist/cli/pack.d.ts.map +1 -1
- package/dist/cli/pack.js +9 -16
- package/dist/cli/pack.js.map +1 -1
- package/dist/cli/query-cmd.d.ts +1 -0
- package/dist/cli/query-cmd.d.ts.map +1 -1
- package/dist/cli/query-cmd.js +26 -21
- package/dist/cli/query-cmd.js.map +1 -1
- package/dist/cli/report.d.ts +1 -1
- package/dist/cli/report.d.ts.map +1 -1
- package/dist/cli/report.js +27 -29
- package/dist/cli/report.js.map +1 -1
- package/dist/cli/store-cmd.d.ts +2 -0
- package/dist/cli/store-cmd.d.ts.map +1 -1
- package/dist/cli/store-cmd.js +37 -33
- package/dist/cli/store-cmd.js.map +1 -1
- package/dist/cli/telemetry.d.ts +6 -6
- package/dist/cli/telemetry.d.ts.map +1 -1
- package/dist/cli/telemetry.js +58 -48
- package/dist/cli/telemetry.js.map +1 -1
- package/dist/cli/update.d.ts +1 -1
- package/dist/cli/update.d.ts.map +1 -1
- package/dist/cli/update.js +3 -6
- package/dist/cli/update.js.map +1 -1
- package/dist/cli/validate.d.ts +1 -1
- package/dist/cli/validate.d.ts.map +1 -1
- package/dist/cli/validate.js +9 -14
- package/dist/cli/validate.js.map +1 -1
- package/dist/cli/viz.d.ts +1 -0
- package/dist/cli/viz.d.ts.map +1 -1
- package/dist/cli/viz.js +15 -14
- package/dist/cli/viz.js.map +1 -1
- package/dist/cli-telemetry.d.ts +12 -0
- package/dist/cli-telemetry.d.ts.map +1 -0
- package/dist/cli-telemetry.js +83 -0
- package/dist/cli-telemetry.js.map +1 -0
- package/dist/dashboard-ui/assets/index-CJcTSfAz.js +1434 -0
- package/dist/dashboard-ui/index.html +1 -1
- package/dist/output.d.ts +13 -9
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +28 -10
- package/dist/output.js.map +1 -1
- package/dist/progress/progress-bar.d.ts +1 -12
- package/dist/progress/progress-bar.d.ts.map +1 -1
- package/dist/progress/progress-bar.js +2 -14
- package/dist/progress/progress-bar.js.map +1 -1
- package/dist/spinner.d.ts +2 -0
- package/dist/spinner.d.ts.map +1 -0
- package/dist/spinner.js +65 -0
- package/dist/spinner.js.map +1 -0
- package/package.json +3 -2
- package/dist/dashboard-ui/assets/index-BKD-_hV9.js +0 -1434
package/dist/cli/report.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { VirageDb, defaultVirageDb } from "@vivantel/virage-core";
|
|
2
|
-
import {
|
|
2
|
+
import { createOut } from "../output.js";
|
|
3
3
|
function percentile(sorted, p) {
|
|
4
4
|
if (sorted.length === 0)
|
|
5
5
|
return 0;
|
|
@@ -11,7 +11,8 @@ function fmt(ms) {
|
|
|
11
11
|
return `${ms}ms`;
|
|
12
12
|
return `${(ms / 1000).toFixed(2)}s`;
|
|
13
13
|
}
|
|
14
|
-
export async function runReport(dbPath = defaultVirageDb()) {
|
|
14
|
+
export async function runReport(dbPath = defaultVirageDb(), verbosity = 0) {
|
|
15
|
+
const out = createOut(verbosity);
|
|
15
16
|
let db;
|
|
16
17
|
let records;
|
|
17
18
|
try {
|
|
@@ -27,58 +28,55 @@ export async function runReport(dbPath = defaultVirageDb()) {
|
|
|
27
28
|
out.dim("No pipeline runs found in virage.db.");
|
|
28
29
|
return;
|
|
29
30
|
}
|
|
30
|
-
// Sort by runAt
|
|
31
31
|
records.sort((a, b) => a.runAt.localeCompare(b.runAt));
|
|
32
32
|
const latest = records[records.length - 1];
|
|
33
33
|
out.section(`📊 Observability Report (${records.length} runs)`);
|
|
34
|
-
out.
|
|
35
|
-
|
|
36
|
-
console.log(` Total duration : ${fmt(latest.durationMs)}`);
|
|
34
|
+
out.info(` Latest run : ${latest.runAt}`);
|
|
35
|
+
out.info(` Total duration : ${fmt(latest.durationMs)}`);
|
|
37
36
|
const s = latest.stages;
|
|
38
37
|
if (s.gitTracking) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
out.info(`\n Git tracking : ${fmt(s.gitTracking.durationMs)}`);
|
|
39
|
+
out.info(` Files scanned : ${s.gitTracking.filesScanned}`);
|
|
40
|
+
out.info(` To process : ${s.gitTracking.toProcess}`);
|
|
41
|
+
out.info(` To delete : ${s.gitTracking.toDelete}`);
|
|
43
42
|
}
|
|
44
43
|
if (s.chunking) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
out.info(`\n Chunking : ${fmt(s.chunking.durationMs)}`);
|
|
45
|
+
out.info(` Files processed : ${s.chunking.filesProcessed}`);
|
|
46
|
+
out.info(` Chunks generated: ${s.chunking.chunksGenerated}`);
|
|
48
47
|
if (s.chunking.errors > 0) {
|
|
49
|
-
|
|
48
|
+
out.warn(` Errors : ${s.chunking.errors}`);
|
|
50
49
|
}
|
|
51
50
|
}
|
|
52
51
|
if (s.embedding) {
|
|
53
52
|
const e = s.embedding;
|
|
54
53
|
const total = e.chunksEmbedded + e.chunksSkipped;
|
|
55
54
|
const hitRate = total > 0 ? e.chunksSkipped / total : 0;
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
out.info(`\n Embedding : ${fmt(e.durationMs)}`);
|
|
56
|
+
out.info(` Chunks embedded : ${e.chunksEmbedded}`);
|
|
57
|
+
out.info(` Chunks skipped : ${e.chunksSkipped} (cache hit rate: ${(hitRate * 100).toFixed(1)}%)`);
|
|
59
58
|
if (e.rateLimitEvents !== undefined && e.rateLimitEvents > 0) {
|
|
60
|
-
|
|
59
|
+
out.warn(` Rate limit events: ${e.rateLimitEvents}`);
|
|
61
60
|
}
|
|
62
61
|
if (e.latencySamples && e.latencySamples.length > 0) {
|
|
63
62
|
const sorted = [...e.latencySamples].sort((a, b) => a - b);
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
out.info(` API latency p50 : ${fmt(percentile(sorted, 50))}`);
|
|
64
|
+
out.info(` API latency p95 : ${fmt(percentile(sorted, 95))}`);
|
|
65
|
+
out.info(` API latency p99 : ${fmt(percentile(sorted, 99))}`);
|
|
67
66
|
}
|
|
68
67
|
}
|
|
69
68
|
if (s.upload) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
out.info(`\n Upload : ${fmt(s.upload.durationMs)}`);
|
|
70
|
+
out.info(` Uploaded : ${s.upload.uploaded}`);
|
|
71
|
+
out.info(` Deleted : ${s.upload.deleted}`);
|
|
73
72
|
}
|
|
74
|
-
// Trend across all runs
|
|
75
73
|
if (records.length > 1) {
|
|
76
74
|
const durations = records.map((r) => r.durationMs);
|
|
77
75
|
const avgDuration = durations.reduce((s, v) => s + v, 0) / durations.length;
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
out.info(`\n Average run time : ${fmt(Math.round(avgDuration))}`);
|
|
77
|
+
out.info(` Fastest run : ${fmt(Math.min(...durations))}`);
|
|
78
|
+
out.info(` Slowest run : ${fmt(Math.max(...durations))}`);
|
|
81
79
|
}
|
|
82
|
-
out.
|
|
80
|
+
out.divider();
|
|
83
81
|
}
|
|
84
82
|
//# sourceMappingURL=report.js.map
|
package/dist/cli/report.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/cli/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/cli/report.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/store-cmd.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export interface StoreStatsOptions {
|
|
2
2
|
config: string;
|
|
3
|
+
verbosity: number;
|
|
3
4
|
}
|
|
4
5
|
export interface StorePerfOptions {
|
|
5
6
|
config: string;
|
|
6
7
|
timeframeHours: number;
|
|
8
|
+
verbosity: number;
|
|
7
9
|
}
|
|
8
10
|
export declare function runStoreStats(opts: StoreStatsOptions): Promise<void>;
|
|
9
11
|
export declare function runStorePerf(opts: StorePerfOptions): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/store-cmd.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"store-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/store-cmd.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC1E;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CxE"}
|
package/dist/cli/store-cmd.js
CHANGED
|
@@ -1,50 +1,54 @@
|
|
|
1
1
|
import { loadConfig } from "@vivantel/virage-core";
|
|
2
|
+
import { createOut } from "../output.js";
|
|
3
|
+
import { withSpinner } from "../spinner.js";
|
|
2
4
|
export async function runStoreStats(opts) {
|
|
3
|
-
|
|
4
|
-
const cfg = await loadConfig(opts.config);
|
|
5
|
+
const out = createOut(opts.verbosity);
|
|
6
|
+
const cfg = await withSpinner("Loading config", () => loadConfig(opts.config));
|
|
5
7
|
const store = cfg.vectorStore;
|
|
6
8
|
if (!store.getIndexStats) {
|
|
7
|
-
|
|
9
|
+
out.error(`The configured vector store "${store.name}" does not support index stats.`);
|
|
8
10
|
process.exit(1);
|
|
9
11
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
12
|
+
const stats = await withSpinner("Fetching index stats", async () => {
|
|
13
|
+
await store.initialize();
|
|
14
|
+
return store.getIndexStats();
|
|
15
|
+
});
|
|
16
|
+
out.section("📊 Vector Index Stats");
|
|
17
|
+
out.info(` Total vectors : ${stats.totalVectors.toLocaleString()}`);
|
|
18
|
+
out.info(` Index type : ${stats.indexType}`);
|
|
19
|
+
out.info(` ANN recall@10 : ${stats.annRecallAt10 >= 0 ? (stats.annRecallAt10 * 100).toFixed(1) + "%" : "N/A"}`);
|
|
20
|
+
out.info(` Index age : ${stats.indexAgeHours >= 0 ? stats.indexAgeHours + " hours" : "unknown"}`);
|
|
21
|
+
out.info(` Dead tuple frac. : ${(stats.deadTupleFraction * 100).toFixed(1)}%`);
|
|
22
|
+
out.divider();
|
|
23
|
+
out.info("Suggestions:");
|
|
21
24
|
for (const s of stats.suggestions) {
|
|
22
|
-
|
|
25
|
+
out.info(` • ${s}`);
|
|
23
26
|
}
|
|
24
|
-
|
|
27
|
+
out.divider();
|
|
25
28
|
}
|
|
26
29
|
export async function runStorePerf(opts) {
|
|
27
|
-
|
|
28
|
-
const cfg = await loadConfig(opts.config);
|
|
30
|
+
const out = createOut(opts.verbosity);
|
|
31
|
+
const cfg = await withSpinner("Loading config", () => loadConfig(opts.config));
|
|
29
32
|
const store = cfg.vectorStore;
|
|
30
33
|
if (!store.getQueryPerfReport) {
|
|
31
|
-
|
|
34
|
+
out.error(`The configured vector store "${store.name}" does not support query performance reports.`);
|
|
32
35
|
process.exit(1);
|
|
33
36
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
37
|
+
const report = await withSpinner(`Fetching query perf for last ${opts.timeframeHours}h`, async () => {
|
|
38
|
+
await store.initialize();
|
|
39
|
+
return store.getQueryPerfReport(opts.timeframeHours);
|
|
40
|
+
});
|
|
41
|
+
out.section("📊 Query Performance Report");
|
|
42
|
+
out.info(` Timeframe : last ${report.timeframeHours}h`);
|
|
43
|
+
out.info(` p50 latency : ${report.p50LatencyMs >= 0 ? report.p50LatencyMs + " ms" : "N/A"}`);
|
|
44
|
+
out.info(` p95 latency : ${report.p95LatencyMs >= 0 ? report.p95LatencyMs + " ms" : "N/A"}`);
|
|
45
|
+
out.info(` p99 latency : ${report.p99LatencyMs >= 0 ? report.p99LatencyMs + " ms" : "N/A"}`);
|
|
46
|
+
out.info(` Slow queries : ${report.slowQueryCount >= 0 ? report.slowQueryCount : "N/A"}`);
|
|
47
|
+
if (report.suggestedIndexes.length > 0) {
|
|
48
|
+
out.divider();
|
|
49
|
+
for (const s of report.suggestedIndexes)
|
|
50
|
+
out.info(` ${s}`);
|
|
47
51
|
}
|
|
48
|
-
|
|
52
|
+
out.divider();
|
|
49
53
|
}
|
|
50
54
|
//# sourceMappingURL=store-cmd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-cmd.js","sourceRoot":"","sources":["../../src/cli/store-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"store-cmd.js","sourceRoot":"","sources":["../../src/cli/store-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAa5C,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAuB;IACzD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,gBAAgB,EAAE,GAAG,EAAE,CACnD,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CACxB,CAAC;IAEF,MAAM,KAAK,GAAgB,GAAG,CAAC,WAAW,CAAC;IAE3C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACzB,GAAG,CAAC,KAAK,CACP,gCAAgC,KAAK,CAAC,IAAI,iCAAiC,CAC5E,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,aAAc,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACrC,GAAG,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAC,YAAY,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACzE,GAAG,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IACrD,GAAG,CAAC,IAAI,CACN,yBAAyB,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAC3G,CAAC;IACF,GAAG,CAAC,IAAI,CACN,yBAAyB,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,CACjG,CAAC;IACF,GAAG,CAAC,IAAI,CACN,yBAAyB,CAAC,KAAK,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CACvE,CAAC;IACF,GAAG,CAAC,OAAO,EAAE,CAAC;IACd,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QAClC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IACD,GAAG,CAAC,OAAO,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAsB;IACvD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,gBAAgB,EAAE,GAAG,EAAE,CACnD,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CACxB,CAAC;IAEF,MAAM,KAAK,GAAgB,GAAG,CAAC,WAAW,CAAC;IAE3C,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAC9B,GAAG,CAAC,KAAK,CACP,gCAAgC,KAAK,CAAC,IAAI,+CAA+C,CAC1F,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,gCAAgC,IAAI,CAAC,cAAc,GAAG,EACtD,KAAK,IAAI,EAAE;QACT,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,kBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACxD,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAC3C,GAAG,CAAC,IAAI,CAAC,8BAA8B,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC;IACjE,GAAG,CAAC,IAAI,CACN,yBAAyB,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAC1F,CAAC;IACF,GAAG,CAAC,IAAI,CACN,yBAAyB,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAC1F,CAAC;IACF,GAAG,CAAC,IAAI,CACN,yBAAyB,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAC1F,CAAC;IACF,GAAG,CAAC,IAAI,CACN,yBAAyB,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,CACtF,CAAC;IACF,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,OAAO,EAAE,CAAC;QACd,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,gBAAgB;YAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,GAAG,CAAC,OAAO,EAAE,CAAC;AAChB,CAAC"}
|
package/dist/cli/telemetry.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export declare function runTelemetryStatus(): Promise<void>;
|
|
2
|
-
export declare function runTelemetryOn(): Promise<void>;
|
|
1
|
+
export declare function runTelemetryStatus(verbosity?: number): Promise<void>;
|
|
2
|
+
export declare function runTelemetryOn(verbosity?: number): Promise<void>;
|
|
3
3
|
export declare function runTelemetryOff(opts: {
|
|
4
4
|
tiers?: string;
|
|
5
|
-
}): Promise<void>;
|
|
6
|
-
export declare function runTelemetryInit(): Promise<void>;
|
|
7
|
-
export declare function runTelemetryPreview(): Promise<void>;
|
|
5
|
+
}, verbosity?: number): Promise<void>;
|
|
6
|
+
export declare function runTelemetryInit(verbosity?: number): Promise<void>;
|
|
7
|
+
export declare function runTelemetryPreview(verbosity?: number): Promise<void>;
|
|
8
8
|
export declare function runTelemetryFlush(opts: {
|
|
9
9
|
dryRun: boolean;
|
|
10
|
-
}): Promise<void>;
|
|
10
|
+
}, verbosity?: number): Promise<void>;
|
|
11
11
|
//# sourceMappingURL=telemetry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/cli/telemetry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/cli/telemetry.ts"],"names":[],"mappings":"AAmDA,wBAAsB,kBAAkB,CAAC,SAAS,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAwDrE;AAED,wBAAsB,cAAc,CAAC,SAAS,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjE;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EACxB,SAAS,SAAI,GACZ,OAAO,CAAC,IAAI,CAAC,CAmCf;AAID,wBAAsB,gBAAgB,CAAC,SAAS,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA6FnE;AAED,wBAAsB,mBAAmB,CAAC,SAAS,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BtE;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,EACzB,SAAS,SAAI,GACZ,OAAO,CAAC,IAAI,CAAC,CA8Cf"}
|
package/dist/cli/telemetry.js
CHANGED
|
@@ -3,6 +3,8 @@ import { existsSync } from "fs";
|
|
|
3
3
|
import { resolve } from "path";
|
|
4
4
|
import { input, confirm, select } from "@inquirer/prompts";
|
|
5
5
|
import { VirageDb, defaultVirageDb, TelemetryFlusher, DEFAULT_TELEMETRY_CONFIG, } from "@vivantel/virage-core";
|
|
6
|
+
import { createOut } from "../output.js";
|
|
7
|
+
import { withSpinner } from "../spinner.js";
|
|
6
8
|
const CONFIG_FILE = "./virage.config.json";
|
|
7
9
|
async function readConfig() {
|
|
8
10
|
try {
|
|
@@ -34,33 +36,36 @@ function getTelemetryConfig(cfg) {
|
|
|
34
36
|
},
|
|
35
37
|
};
|
|
36
38
|
}
|
|
37
|
-
export async function runTelemetryStatus() {
|
|
39
|
+
export async function runTelemetryStatus(verbosity = 0) {
|
|
40
|
+
const out = createOut(verbosity);
|
|
38
41
|
const cfg = await readConfig();
|
|
39
42
|
const tel = getTelemetryConfig(cfg);
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
console.log(` Tier 2 : ${tel.tiers.explicit_feedback.enabled ? "✅ on" : "❌ off"} (rag_feedback tool)`);
|
|
43
|
+
out.section("📊 Telemetry Status");
|
|
44
|
+
out.info(` Enabled : ${tel.enabled ? "✅ yes" : "❌ no"}`);
|
|
45
|
+
out.info(` Tier 1 : ${tel.tiers.implicit ? "✅ on" : "❌ off"} (search quality signals)`);
|
|
46
|
+
out.info(` Tier 2 : ${tel.tiers.explicit_feedback.enabled ? "✅ on" : "❌ off"} (rag_feedback tool)`);
|
|
45
47
|
if (tel.endpoint) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
try {
|
|
48
|
+
out.info(` Endpoint : ${tel.endpoint}`);
|
|
49
|
+
const reachable = await withSpinner("Checking endpoint", async () => {
|
|
49
50
|
const controller = new AbortController();
|
|
50
51
|
const timer = setTimeout(() => controller.abort(), 5000);
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
52
|
+
try {
|
|
53
|
+
const res = await fetch(tel.endpoint, {
|
|
54
|
+
method: "HEAD",
|
|
55
|
+
signal: controller.signal,
|
|
56
|
+
});
|
|
57
|
+
clearTimeout(timer);
|
|
58
|
+
return res.ok ? "✅ reachable" : `⚠️ returned ${String(res.status)}`;
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
clearTimeout(timer);
|
|
62
|
+
return "⚠️ unreachable (5s timeout)";
|
|
63
|
+
}
|
|
64
|
+
}, 500);
|
|
65
|
+
out.info(` Endpoint : ${reachable}`);
|
|
61
66
|
}
|
|
62
67
|
else {
|
|
63
|
-
|
|
68
|
+
out.info(" Endpoint : not configured (local-only)");
|
|
64
69
|
}
|
|
65
70
|
const dbPath = defaultVirageDb();
|
|
66
71
|
if (existsSync(dbPath)) {
|
|
@@ -69,26 +74,28 @@ export async function runTelemetryStatus() {
|
|
|
69
74
|
const bufferBytes = db.getTelemetryBufferSizeBytes();
|
|
70
75
|
const unflushed = db.getUnflushedSessions().length;
|
|
71
76
|
db.close();
|
|
72
|
-
|
|
73
|
-
|
|
77
|
+
out.info(` Buffer size : ~${(bufferBytes / 1024).toFixed(1)} KB`);
|
|
78
|
+
out.info(` Unflushed : ${unflushed} session(s)`);
|
|
74
79
|
}
|
|
75
80
|
catch {
|
|
76
|
-
|
|
81
|
+
out.dim(" Buffer size : (could not open DB)");
|
|
77
82
|
}
|
|
78
83
|
}
|
|
79
84
|
else {
|
|
80
|
-
|
|
85
|
+
out.dim(" Buffer size : (no DB yet)");
|
|
81
86
|
}
|
|
82
|
-
|
|
87
|
+
out.divider();
|
|
83
88
|
}
|
|
84
|
-
export async function runTelemetryOn() {
|
|
89
|
+
export async function runTelemetryOn(verbosity = 0) {
|
|
90
|
+
const out = createOut(verbosity);
|
|
85
91
|
const cfg = await readConfig();
|
|
86
92
|
const existing = cfg["telemetry"] ?? {};
|
|
87
93
|
cfg["telemetry"] = { ...existing, enabled: true };
|
|
88
94
|
await writeConfig(cfg);
|
|
89
|
-
|
|
95
|
+
out.success("Telemetry enabled. Run 'virage telemetry status' to verify.");
|
|
90
96
|
}
|
|
91
|
-
export async function runTelemetryOff(opts) {
|
|
97
|
+
export async function runTelemetryOff(opts, verbosity = 0) {
|
|
98
|
+
const out = createOut(verbosity);
|
|
92
99
|
const cfg = await readConfig();
|
|
93
100
|
const existing = cfg["telemetry"] ?? {};
|
|
94
101
|
if (opts.tiers === "explicit_feedback") {
|
|
@@ -102,31 +109,31 @@ export async function runTelemetryOff(opts) {
|
|
|
102
109
|
},
|
|
103
110
|
};
|
|
104
111
|
await writeConfig(cfg);
|
|
105
|
-
|
|
112
|
+
out.success("Tier 2 (rag_feedback) disabled.");
|
|
106
113
|
return;
|
|
107
114
|
}
|
|
108
115
|
cfg["telemetry"] = { ...existing, enabled: false };
|
|
109
116
|
await writeConfig(cfg);
|
|
110
|
-
// Clear buffered telemetry
|
|
111
117
|
const dbPath = defaultVirageDb();
|
|
112
118
|
if (existsSync(dbPath)) {
|
|
113
119
|
try {
|
|
114
120
|
const db = new VirageDb(dbPath);
|
|
115
121
|
db.clearTelemetryData();
|
|
116
122
|
db.close();
|
|
117
|
-
|
|
123
|
+
out.info("Local telemetry buffer cleared.");
|
|
118
124
|
}
|
|
119
125
|
catch {
|
|
120
|
-
|
|
126
|
+
out.warn("Could not clear telemetry buffer (DB open elsewhere?)");
|
|
121
127
|
}
|
|
122
128
|
}
|
|
123
|
-
|
|
129
|
+
out.success("Telemetry disabled.");
|
|
124
130
|
}
|
|
125
131
|
const COMMUNITY_ENDPOINT = "https://telemetry.virage.vivantel.dev/ingest";
|
|
126
|
-
export async function runTelemetryInit() {
|
|
132
|
+
export async function runTelemetryInit(verbosity = 0) {
|
|
133
|
+
const out = createOut(verbosity);
|
|
127
134
|
const cfg = await readConfig();
|
|
128
135
|
const existing = getTelemetryConfig(cfg);
|
|
129
|
-
|
|
136
|
+
out.section("🔧 Telemetry setup");
|
|
130
137
|
const endpointChoice = await select({
|
|
131
138
|
message: "Telemetry endpoint:",
|
|
132
139
|
choices: [
|
|
@@ -198,18 +205,19 @@ export async function runTelemetryInit() {
|
|
|
198
205
|
};
|
|
199
206
|
cfg["telemetry"] = updated;
|
|
200
207
|
await writeConfig(cfg);
|
|
201
|
-
|
|
208
|
+
out.success(`Telemetry configured in ${resolve(CONFIG_FILE)}`);
|
|
202
209
|
if (enableTier2) {
|
|
203
|
-
|
|
210
|
+
out.info("\nTier 2 disclosure: Claude will call rag_feedback on " +
|
|
204
211
|
`~${Math.round(samplingRate * 100)}% of searches.\n` +
|
|
205
212
|
" Always-on for anomalies (0 results or >10 results).\n" +
|
|
206
213
|
` Capped at 20 calls/session (~${updated.tiers.explicit_feedback.max_token_budget_percent}% of token budget).\n`);
|
|
207
214
|
}
|
|
208
215
|
}
|
|
209
|
-
export async function runTelemetryPreview() {
|
|
216
|
+
export async function runTelemetryPreview(verbosity = 0) {
|
|
217
|
+
const out = createOut(verbosity);
|
|
210
218
|
const dbPath = defaultVirageDb();
|
|
211
219
|
if (!existsSync(dbPath)) {
|
|
212
|
-
|
|
220
|
+
out.info("No virage.db found. Run the MCP server first.");
|
|
213
221
|
return;
|
|
214
222
|
}
|
|
215
223
|
const cfg = await readConfig();
|
|
@@ -218,51 +226,53 @@ export async function runTelemetryPreview() {
|
|
|
218
226
|
try {
|
|
219
227
|
const unflushed = db.getUnflushedSessions();
|
|
220
228
|
if (unflushed.length === 0) {
|
|
221
|
-
|
|
229
|
+
out.info("No unflushed sessions to preview.");
|
|
222
230
|
return;
|
|
223
231
|
}
|
|
224
232
|
const latest = unflushed[unflushed.length - 1];
|
|
225
233
|
const flusher = new TelemetryFlusher(db, tel);
|
|
226
234
|
const payload = flusher.buildSessionSummaryPayload(latest.id);
|
|
235
|
+
// Raw JSON output — intentional console.log for machine-readable stdout
|
|
227
236
|
console.log(JSON.stringify(payload, null, 2));
|
|
228
237
|
}
|
|
229
238
|
finally {
|
|
230
239
|
db.close();
|
|
231
240
|
}
|
|
232
241
|
}
|
|
233
|
-
export async function runTelemetryFlush(opts) {
|
|
242
|
+
export async function runTelemetryFlush(opts, verbosity = 0) {
|
|
243
|
+
const out = createOut(verbosity);
|
|
234
244
|
if (opts.dryRun) {
|
|
235
|
-
await runTelemetryPreview();
|
|
245
|
+
await runTelemetryPreview(verbosity);
|
|
236
246
|
return;
|
|
237
247
|
}
|
|
238
248
|
const dbPath = defaultVirageDb();
|
|
239
249
|
if (!existsSync(dbPath)) {
|
|
240
|
-
|
|
250
|
+
out.info("No virage.db found. Nothing to flush.");
|
|
241
251
|
return;
|
|
242
252
|
}
|
|
243
253
|
const cfg = await readConfig();
|
|
244
254
|
const tel = getTelemetryConfig(cfg);
|
|
245
255
|
if (!tel.endpoint) {
|
|
246
|
-
|
|
256
|
+
out.info("No endpoint configured. Use 'virage telemetry init' to set one.");
|
|
247
257
|
return;
|
|
248
258
|
}
|
|
249
259
|
const db = new VirageDb(dbPath);
|
|
250
260
|
try {
|
|
251
261
|
const unflushed = db.getUnflushedSessions();
|
|
252
262
|
if (unflushed.length === 0) {
|
|
253
|
-
|
|
263
|
+
out.info("Nothing to flush.");
|
|
254
264
|
return;
|
|
255
265
|
}
|
|
256
266
|
const flusher = new TelemetryFlusher(db, tel);
|
|
257
267
|
let succeeded = 0;
|
|
258
268
|
for (const session of unflushed) {
|
|
259
|
-
const ok = await flusher.flush(session.id);
|
|
269
|
+
const ok = await withSpinner(`Flushing session ${session.id.slice(0, 8)}`, () => flusher.flush(session.id));
|
|
260
270
|
if (ok)
|
|
261
271
|
succeeded++;
|
|
262
272
|
}
|
|
263
|
-
|
|
273
|
+
out.success(`Flushed ${succeeded}/${unflushed.length} session(s).`);
|
|
264
274
|
if (succeeded < unflushed.length) {
|
|
265
|
-
|
|
275
|
+
out.warn(`${unflushed.length - succeeded} session(s) failed — will retry on next MCP start.`);
|
|
266
276
|
}
|
|
267
277
|
}
|
|
268
278
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/cli/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EACL,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,wBAAwB,GAEzB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/cli/telemetry.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/update.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function runUpdate(configPath: string): Promise<void>;
|
|
1
|
+
export declare function runUpdate(configPath: string, verbosity?: number): Promise<void>;
|
|
2
2
|
//# sourceMappingURL=update.d.ts.map
|
package/dist/cli/update.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/cli/update.ts"],"names":[],"mappings":"AAiPA,wBAAsB,SAAS,
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/cli/update.ts"],"names":[],"mappings":"AAiPA,wBAAsB,SAAS,CAC7B,UAAU,EAAE,MAAM,EAClB,SAAS,SAAI,GACZ,OAAO,CAAC,IAAI,CAAC,CAqQf"}
|
package/dist/cli/update.js
CHANGED
|
@@ -4,7 +4,7 @@ import { existsSync } from "fs";
|
|
|
4
4
|
import { join } from "path";
|
|
5
5
|
import { execFile } from "child_process";
|
|
6
6
|
import { promisify } from "util";
|
|
7
|
-
import {
|
|
7
|
+
import { createOut } from "../output.js";
|
|
8
8
|
import { discoverAgentPlugins, runAgentPlugin } from "./agent-plugin.js";
|
|
9
9
|
import { resolveSkillsPackagePath, syncSkills } from "./skills.js";
|
|
10
10
|
import { detectPackageManager, buildInstallCommand, buildGlobalInstallCommand, getLocalPluginDir, getGlobalPluginDir, buildPluginPrefixInstallCommand, runInstall, } from "./pkg-manager.js";
|
|
@@ -161,14 +161,14 @@ async function getPackageInstallLocation(cwd, packageName) {
|
|
|
161
161
|
return "node_modules";
|
|
162
162
|
return "global-npm";
|
|
163
163
|
}
|
|
164
|
-
export async function runUpdate(configPath) {
|
|
164
|
+
export async function runUpdate(configPath, verbosity = 0) {
|
|
165
|
+
const out = createOut(verbosity);
|
|
165
166
|
const cwd = process.cwd();
|
|
166
167
|
const hasPackageJson = existsSync(join(cwd, "package.json"));
|
|
167
168
|
const hasVirageConfig = existsSync(configPath);
|
|
168
169
|
if (!hasPackageJson && !hasVirageConfig) {
|
|
169
170
|
out.warn(`No config file found at ${configPath}.`);
|
|
170
171
|
out.dim("Run `virage init` first to configure your project.");
|
|
171
|
-
console.log();
|
|
172
172
|
return;
|
|
173
173
|
}
|
|
174
174
|
const isGlobal = !hasPackageJson;
|
|
@@ -199,7 +199,6 @@ export async function runUpdate(configPath) {
|
|
|
199
199
|
const unknownLatest = statuses.filter((s) => s.latest === "unknown");
|
|
200
200
|
if (outdated.length === 0) {
|
|
201
201
|
out.success("All virage packages are up to date.");
|
|
202
|
-
console.log();
|
|
203
202
|
}
|
|
204
203
|
else {
|
|
205
204
|
out.info(`\nFound ${outdated.length} outdated package(s):`);
|
|
@@ -215,7 +214,6 @@ export async function runUpdate(configPath) {
|
|
|
215
214
|
}
|
|
216
215
|
if (statuses.length === 0) {
|
|
217
216
|
out.warn("No virage packages to update.");
|
|
218
|
-
console.log();
|
|
219
217
|
return;
|
|
220
218
|
}
|
|
221
219
|
// Let user pick which packages to update
|
|
@@ -379,6 +377,5 @@ export async function runUpdate(configPath) {
|
|
|
379
377
|
}
|
|
380
378
|
}
|
|
381
379
|
out.success("Done.");
|
|
382
|
-
console.log();
|
|
383
380
|
}
|
|
384
381
|
//# sourceMappingURL=update.js.map
|