@vtxmacro/cli 2026.9.54 → 2026.9.55
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/bin/vtx-service-bootstrap.js +1 -1
- package/bin/vtx.js +54 -18
- package/package.json +1 -1
|
@@ -16,7 +16,7 @@ import { fileURLToPath } from "node:url";
|
|
|
16
16
|
// agent-cli-release.json
|
|
17
17
|
var agent_cli_release_default = {
|
|
18
18
|
package_name: "@vtxmacro/cli",
|
|
19
|
-
package_version: "2026.9.
|
|
19
|
+
package_version: "2026.9.55",
|
|
20
20
|
codex_package_name: "@openai/codex",
|
|
21
21
|
codex_version: "0.155.0",
|
|
22
22
|
copilot_sdk_package_name: "@github/copilot-sdk",
|
package/bin/vtx.js
CHANGED
|
@@ -77,7 +77,7 @@ var init_agent_cli_release = __esm({
|
|
|
77
77
|
"agent-cli-release.json"() {
|
|
78
78
|
agent_cli_release_default = {
|
|
79
79
|
package_name: "@vtxmacro/cli",
|
|
80
|
-
package_version: "2026.9.
|
|
80
|
+
package_version: "2026.9.55",
|
|
81
81
|
codex_package_name: "@openai/codex",
|
|
82
82
|
codex_version: "0.155.0",
|
|
83
83
|
copilot_sdk_package_name: "@github/copilot-sdk",
|
|
@@ -21519,7 +21519,8 @@ var init_mcp_client = __esm({
|
|
|
21519
21519
|
this.#initialized = true;
|
|
21520
21520
|
}
|
|
21521
21521
|
async callTool(name, argumentsValue, options = {}) {
|
|
21522
|
-
const
|
|
21522
|
+
const timingObserver = name === "inference.job.claim" ? options.onClaimTiming : name === "inference.host.heartbeat" ? options.onHostHeartbeatTiming : void 0;
|
|
21523
|
+
const timing = timingObserver ? new ClaimTiming() : void 0;
|
|
21523
21524
|
let outcome = "failure";
|
|
21524
21525
|
try {
|
|
21525
21526
|
if (!this.#initialized) {
|
|
@@ -21598,7 +21599,7 @@ var init_mcp_client = __esm({
|
|
|
21598
21599
|
if (timing) {
|
|
21599
21600
|
const receipt = Object.freeze({ ...timing.finish(outcome), transport_route: this.#transport.route });
|
|
21600
21601
|
try {
|
|
21601
|
-
void Promise.resolve(
|
|
21602
|
+
void Promise.resolve(timingObserver?.(receipt)).catch(() => void 0);
|
|
21602
21603
|
} catch {
|
|
21603
21604
|
}
|
|
21604
21605
|
}
|
|
@@ -32615,6 +32616,39 @@ var init_runner = __esm({
|
|
|
32615
32616
|
};
|
|
32616
32617
|
const hostHeartbeatAbort = new AbortController();
|
|
32617
32618
|
stopHostHeartbeatLoop = () => hostHeartbeatAbort.abort();
|
|
32619
|
+
const backgroundHostHeartbeat = async (advertisementGeneration, allowOfflineProjection, deadlineAtMs) => {
|
|
32620
|
+
const startedAt = performance.now();
|
|
32621
|
+
let clientTiming;
|
|
32622
|
+
try {
|
|
32623
|
+
await hostHeartbeat("healthy", {
|
|
32624
|
+
signal: hostHeartbeatAbort.signal,
|
|
32625
|
+
// A liveness request must not inherit the general MCP timeout,
|
|
32626
|
+
// which can exceed the server's host-staleness window. Generation
|
|
32627
|
+
// recovery shares this deadline with its first attempt.
|
|
32628
|
+
timeoutMs: settings.hostHeartbeatMs,
|
|
32629
|
+
deadlineAtMs,
|
|
32630
|
+
onHostHeartbeatTiming: (timing) => {
|
|
32631
|
+
clientTiming = timing;
|
|
32632
|
+
}
|
|
32633
|
+
}, false, allowOfflineProjection, 0, advertisementGeneration);
|
|
32634
|
+
} catch (error48) {
|
|
32635
|
+
if (!hostHeartbeatAbort.signal.aborted && !drainRequested) {
|
|
32636
|
+
emitDiagnostic("host_heartbeat_request_failed", {
|
|
32637
|
+
elapsed_ms: Math.max(0, Math.round(performance.now() - startedAt)),
|
|
32638
|
+
request_timeout_ms: settings.hostHeartbeatMs,
|
|
32639
|
+
advertisement_generation: advertisementGeneration,
|
|
32640
|
+
failure_code: safeFailureCode(
|
|
32641
|
+
error48 instanceof ExternalInferenceMcpError ? error48.code : "",
|
|
32642
|
+
"heartbeat_failed"
|
|
32643
|
+
),
|
|
32644
|
+
http_status_code: error48 instanceof ExternalInferenceMcpError ? error48.httpStatusCode : null,
|
|
32645
|
+
retry_after_ms: error48 instanceof ExternalInferenceMcpError ? error48.retryAfterMs : null,
|
|
32646
|
+
...clientTiming ? { client_timing: clientTiming } : {}
|
|
32647
|
+
});
|
|
32648
|
+
}
|
|
32649
|
+
throw error48;
|
|
32650
|
+
}
|
|
32651
|
+
};
|
|
32618
32652
|
let nextHostHeartbeatAt = now() + settings.hostHeartbeatMs;
|
|
32619
32653
|
hostHeartbeatLoop = (async () => {
|
|
32620
32654
|
while (!drainRequested && !hostHeartbeatAbort.signal.aborted) {
|
|
@@ -32643,19 +32677,16 @@ var init_runner = __esm({
|
|
|
32643
32677
|
}
|
|
32644
32678
|
}
|
|
32645
32679
|
if (drainRequested || hostHeartbeatAbort.signal.aborted) return;
|
|
32646
|
-
const
|
|
32680
|
+
const heartbeatDeadlineAtMs = Date.now() + settings.hostHeartbeatMs;
|
|
32647
32681
|
const attemptedAdvertisementGeneration = receipt.advertisement_generation;
|
|
32648
32682
|
try {
|
|
32649
|
-
await
|
|
32650
|
-
|
|
32651
|
-
{ signal: hostHeartbeatAbort.signal },
|
|
32652
|
-
false,
|
|
32683
|
+
await backgroundHostHeartbeat(
|
|
32684
|
+
attemptedAdvertisementGeneration,
|
|
32653
32685
|
// The server evaluates advertisement expiry when it receives
|
|
32654
32686
|
// the heartbeat. A request sent just before expiry can therefore
|
|
32655
32687
|
// truthfully return offline; the advertisement loop owns repair.
|
|
32656
32688
|
true,
|
|
32657
|
-
|
|
32658
|
-
attemptedAdvertisementGeneration
|
|
32689
|
+
heartbeatDeadlineAtMs
|
|
32659
32690
|
);
|
|
32660
32691
|
} catch (error48) {
|
|
32661
32692
|
if (hostHeartbeatAbort.signal.aborted || drainRequested) return;
|
|
@@ -32664,13 +32695,10 @@ var init_runner = __esm({
|
|
|
32664
32695
|
const recoveryAdvertisementGeneration = receipt.advertisement_generation > attemptedAdvertisementGeneration ? receipt.advertisement_generation : errorCode === "generation_stale" && pendingAdvertisement && pendingAdvertisement.advertisement_generation === attemptedAdvertisementGeneration + 1 ? pendingAdvertisement.advertisement_generation : null;
|
|
32665
32696
|
if (errorCode === "generation_stale" && recoveryAdvertisementGeneration !== null) {
|
|
32666
32697
|
try {
|
|
32667
|
-
await
|
|
32668
|
-
|
|
32669
|
-
{ signal: hostHeartbeatAbort.signal },
|
|
32670
|
-
false,
|
|
32698
|
+
await backgroundHostHeartbeat(
|
|
32699
|
+
recoveryAdvertisementGeneration,
|
|
32671
32700
|
false,
|
|
32672
|
-
|
|
32673
|
-
recoveryAdvertisementGeneration
|
|
32701
|
+
heartbeatDeadlineAtMs
|
|
32674
32702
|
);
|
|
32675
32703
|
if (receipt.advertisement_generation < recoveryAdvertisementGeneration) {
|
|
32676
32704
|
await mutateReceipt((current) => current.advertisement_generation >= recoveryAdvertisementGeneration ? current : {
|
|
@@ -49839,6 +49867,8 @@ var init_network_debug = __esm({
|
|
|
49839
49867
|
kind: input.kind,
|
|
49840
49868
|
label: input.label,
|
|
49841
49869
|
transport: "browser",
|
|
49870
|
+
providerTransport: input.kind === "provider" ? input.providerTransport ?? "direct" : null,
|
|
49871
|
+
actualRelayPath: input.kind === "provider" && input.providerTransport === "server_relay" ? "/llm/native-provider-relay" : null,
|
|
49842
49872
|
method: (input.method || "POST").toUpperCase(),
|
|
49843
49873
|
targetProtocol,
|
|
49844
49874
|
targetHost,
|
|
@@ -92451,13 +92481,14 @@ var init_constraint_contract = __esm({
|
|
|
92451
92481
|
});
|
|
92452
92482
|
|
|
92453
92483
|
// lib/runtime/provider-observability.ts
|
|
92454
|
-
var record4, identifier, count3, normalizeProviderDiagnostics;
|
|
92484
|
+
var MAX_DIAGNOSTIC_LIST_ITEMS, record4, identifier, count3, normalizeProviderDiagnostics;
|
|
92455
92485
|
var init_provider_observability = __esm({
|
|
92456
92486
|
"lib/runtime/provider-observability.ts"() {
|
|
92457
92487
|
"use strict";
|
|
92458
92488
|
init_define_VTX_EXO_POLICY();
|
|
92459
92489
|
init_define_VTX_GROK_POLICY();
|
|
92460
92490
|
init_define_VTX_PI_MODEL_POLICY();
|
|
92491
|
+
MAX_DIAGNOSTIC_LIST_ITEMS = 16;
|
|
92461
92492
|
record4 = (v) => v !== null && typeof v === "object" && !Array.isArray(v) ? v : {};
|
|
92462
92493
|
identifier = (v) => typeof v === "string" && /^[A-Za-z0-9][A-Za-z0-9_.:/-]{0,255}$/.test(v) ? v : void 0;
|
|
92463
92494
|
count3 = (v) => {
|
|
@@ -92479,7 +92510,7 @@ var init_provider_observability = __esm({
|
|
|
92479
92510
|
result2.quota_project_source = "provider_quota_subject";
|
|
92480
92511
|
}
|
|
92481
92512
|
if (Array.isArray(raw.quota_violations)) {
|
|
92482
|
-
const violations = raw.quota_violations.slice(0,
|
|
92513
|
+
const violations = raw.quota_violations.slice(0, MAX_DIAGNOSTIC_LIST_ITEMS).map((item) => {
|
|
92483
92514
|
const v = record4(item);
|
|
92484
92515
|
const out = {};
|
|
92485
92516
|
const metric = identifier(v.metric), id2 = identifier(v.id), value2 = count3(v.value);
|
|
@@ -92493,6 +92524,11 @@ var init_provider_observability = __esm({
|
|
|
92493
92524
|
}).filter((v) => Object.keys(v).length > 0);
|
|
92494
92525
|
if (violations.length) result2.quota_violations = violations;
|
|
92495
92526
|
}
|
|
92527
|
+
const outputValidation = record4(raw.output_validation);
|
|
92528
|
+
if (Array.isArray(outputValidation.expected_symbols)) {
|
|
92529
|
+
const symbols = outputValidation.expected_symbols.slice(0, MAX_DIAGNOSTIC_LIST_ITEMS).map(identifier).filter((symbol2) => symbol2 !== void 0);
|
|
92530
|
+
if (symbols.length) result2.output_validation = { expected_symbols: [...new Set(symbols)] };
|
|
92531
|
+
}
|
|
92496
92532
|
return result2;
|
|
92497
92533
|
};
|
|
92498
92534
|
}
|