vent-hq 0.4.3 → 0.4.5
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/index.mjs +22 -3
- package/dist/package-7YSGSSFT.mjs +51 -0
- package/dist/package-HTZNLUEJ.mjs +51 -0
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -494,8 +494,12 @@ function printSummary(testResults, runComplete, runId, jsonMode) {
|
|
|
494
494
|
process.stderr.write(dim(`Full details: vent status ${runId} --json`) + "\n");
|
|
495
495
|
}
|
|
496
496
|
function printError(message) {
|
|
497
|
-
|
|
498
|
-
|
|
497
|
+
const line = red(bold("error")) + ` ${message}
|
|
498
|
+
`;
|
|
499
|
+
process.stderr.write(line);
|
|
500
|
+
if (!isTTY) {
|
|
501
|
+
process.stdout.write(line);
|
|
502
|
+
}
|
|
499
503
|
}
|
|
500
504
|
function printInfo(message) {
|
|
501
505
|
process.stderr.write(blue("\u25B8") + ` ${message}
|
|
@@ -508,6 +512,9 @@ function printSuccess(message) {
|
|
|
508
512
|
|
|
509
513
|
// src/commands/run.ts
|
|
510
514
|
async function runCommand(args) {
|
|
515
|
+
const dbg = (label) => process.stdout.write(`[vent:debug] ${label}
|
|
516
|
+
`);
|
|
517
|
+
dbg("runCommand:start");
|
|
511
518
|
const apiKey = args.apiKey ?? await loadApiKey();
|
|
512
519
|
if (!apiKey) {
|
|
513
520
|
printError("No API key found. Set VENT_API_KEY, run `npx vent-hq login`, or pass --api-key.");
|
|
@@ -554,6 +561,7 @@ async function runCommand(args) {
|
|
|
554
561
|
const freePort = await findFreePort();
|
|
555
562
|
cfg.connection.agent_port = freePort;
|
|
556
563
|
}
|
|
564
|
+
dbg("submit:start");
|
|
557
565
|
printInfo("Submitting run\u2026");
|
|
558
566
|
let submitResult;
|
|
559
567
|
try {
|
|
@@ -571,6 +579,7 @@ async function runCommand(args) {
|
|
|
571
579
|
printError("Server returned no run_id. Response: " + JSON.stringify(submitResult));
|
|
572
580
|
return 2;
|
|
573
581
|
}
|
|
582
|
+
dbg(`submit:done run_id=${run_id} has_relay=${!!submitResult.relay_config}`);
|
|
574
583
|
printInfo(`Run ${run_id} created.`);
|
|
575
584
|
if (args.submit) {
|
|
576
585
|
if (submitResult.relay_config) {
|
|
@@ -590,15 +599,19 @@ async function runCommand(args) {
|
|
|
590
599
|
}
|
|
591
600
|
let relay = null;
|
|
592
601
|
if (submitResult.relay_config) {
|
|
602
|
+
dbg("relay:start");
|
|
593
603
|
printInfo("Starting relay for local agent\u2026");
|
|
594
604
|
try {
|
|
595
605
|
relay = await startRelay(submitResult.relay_config);
|
|
606
|
+
dbg("relay:connected");
|
|
596
607
|
printInfo("Relay connected, agent started.");
|
|
597
608
|
} catch (err) {
|
|
609
|
+
dbg(`relay:error ${err.message}`);
|
|
598
610
|
printError(`Relay failed: ${err.message}`);
|
|
599
611
|
return 2;
|
|
600
612
|
}
|
|
601
613
|
}
|
|
614
|
+
dbg("stream:start");
|
|
602
615
|
printInfo(`Streaming results for run ${run_id}\u2026`);
|
|
603
616
|
const abortController = new AbortController();
|
|
604
617
|
let exitCode = 0;
|
|
@@ -611,6 +624,7 @@ async function runCommand(args) {
|
|
|
611
624
|
process.on("SIGTERM", onSignal);
|
|
612
625
|
try {
|
|
613
626
|
for await (const event of streamRunEvents(run_id, apiKey, abortController.signal)) {
|
|
627
|
+
dbg(`event:${event.event_type} meta_keys=${Object.keys(event.metadata_json ?? {}).join(",")}`);
|
|
614
628
|
printEvent(event, args.json);
|
|
615
629
|
if (event.event_type === "test_completed") {
|
|
616
630
|
testResults.push(event);
|
|
@@ -634,9 +648,14 @@ async function runCommand(args) {
|
|
|
634
648
|
await relay.cleanup();
|
|
635
649
|
}
|
|
636
650
|
}
|
|
651
|
+
dbg(`summary: testResults=${testResults.length} runComplete=${!!runCompleteData} exitCode=${exitCode}`);
|
|
637
652
|
if (runCompleteData && testResults.length > 0) {
|
|
638
653
|
printSummary(testResults, runCompleteData, run_id, args.json);
|
|
654
|
+
} else if (testResults.length === 0 && exitCode !== 2) {
|
|
655
|
+
process.stdout.write(`run_id: ${run_id} \u2014 no test results received
|
|
656
|
+
`);
|
|
639
657
|
}
|
|
658
|
+
dbg(`exit:${exitCode}`);
|
|
640
659
|
return exitCode;
|
|
641
660
|
}
|
|
642
661
|
function findFreePort() {
|
|
@@ -6266,7 +6285,7 @@ async function main() {
|
|
|
6266
6285
|
process.exit(0);
|
|
6267
6286
|
}
|
|
6268
6287
|
if (command === "--version" || command === "-v") {
|
|
6269
|
-
const pkg = await import("./package-
|
|
6288
|
+
const pkg = await import("./package-7YSGSSFT.mjs");
|
|
6270
6289
|
process.stdout.write(`vent-hq ${pkg.default.version}
|
|
6271
6290
|
`);
|
|
6272
6291
|
process.exit(0);
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import "./chunk-U4M3XDTH.mjs";
|
|
3
|
+
|
|
4
|
+
// package.json
|
|
5
|
+
var package_default = {
|
|
6
|
+
name: "vent-hq",
|
|
7
|
+
version: "0.4.5",
|
|
8
|
+
type: "module",
|
|
9
|
+
description: "Vent CLI \u2014 CI/CD for voice AI agents",
|
|
10
|
+
bin: {
|
|
11
|
+
"vent-hq": "dist/index.mjs"
|
|
12
|
+
},
|
|
13
|
+
files: [
|
|
14
|
+
"dist"
|
|
15
|
+
],
|
|
16
|
+
scripts: {
|
|
17
|
+
build: "node scripts/bundle.mjs",
|
|
18
|
+
clean: "rm -rf dist"
|
|
19
|
+
},
|
|
20
|
+
keywords: [
|
|
21
|
+
"vent",
|
|
22
|
+
"cli",
|
|
23
|
+
"voice",
|
|
24
|
+
"agent",
|
|
25
|
+
"testing",
|
|
26
|
+
"ci-cd"
|
|
27
|
+
],
|
|
28
|
+
license: "MIT",
|
|
29
|
+
publishConfig: {
|
|
30
|
+
access: "public"
|
|
31
|
+
},
|
|
32
|
+
repository: {
|
|
33
|
+
type: "git",
|
|
34
|
+
url: "https://github.com/vent-hq/vent",
|
|
35
|
+
directory: "packages/cli"
|
|
36
|
+
},
|
|
37
|
+
homepage: "https://ventmcp.dev",
|
|
38
|
+
dependencies: {
|
|
39
|
+
"@clack/prompts": "^1.1.0",
|
|
40
|
+
ws: "^8.18.0"
|
|
41
|
+
},
|
|
42
|
+
devDependencies: {
|
|
43
|
+
"@types/ws": "^8.5.0",
|
|
44
|
+
"@vent/relay-client": "workspace:*",
|
|
45
|
+
"@vent/shared": "workspace:*",
|
|
46
|
+
esbuild: "^0.24.0"
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
export {
|
|
50
|
+
package_default as default
|
|
51
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import "./chunk-U4M3XDTH.mjs";
|
|
3
|
+
|
|
4
|
+
// package.json
|
|
5
|
+
var package_default = {
|
|
6
|
+
name: "vent-hq",
|
|
7
|
+
version: "0.4.4",
|
|
8
|
+
type: "module",
|
|
9
|
+
description: "Vent CLI \u2014 CI/CD for voice AI agents",
|
|
10
|
+
bin: {
|
|
11
|
+
"vent-hq": "dist/index.mjs"
|
|
12
|
+
},
|
|
13
|
+
files: [
|
|
14
|
+
"dist"
|
|
15
|
+
],
|
|
16
|
+
scripts: {
|
|
17
|
+
build: "node scripts/bundle.mjs",
|
|
18
|
+
clean: "rm -rf dist"
|
|
19
|
+
},
|
|
20
|
+
keywords: [
|
|
21
|
+
"vent",
|
|
22
|
+
"cli",
|
|
23
|
+
"voice",
|
|
24
|
+
"agent",
|
|
25
|
+
"testing",
|
|
26
|
+
"ci-cd"
|
|
27
|
+
],
|
|
28
|
+
license: "MIT",
|
|
29
|
+
publishConfig: {
|
|
30
|
+
access: "public"
|
|
31
|
+
},
|
|
32
|
+
repository: {
|
|
33
|
+
type: "git",
|
|
34
|
+
url: "https://github.com/vent-hq/vent",
|
|
35
|
+
directory: "packages/cli"
|
|
36
|
+
},
|
|
37
|
+
homepage: "https://ventmcp.dev",
|
|
38
|
+
dependencies: {
|
|
39
|
+
"@clack/prompts": "^1.1.0",
|
|
40
|
+
ws: "^8.18.0"
|
|
41
|
+
},
|
|
42
|
+
devDependencies: {
|
|
43
|
+
"@types/ws": "^8.5.0",
|
|
44
|
+
"@vent/relay-client": "workspace:*",
|
|
45
|
+
"@vent/shared": "workspace:*",
|
|
46
|
+
esbuild: "^0.24.0"
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
export {
|
|
50
|
+
package_default as default
|
|
51
|
+
};
|