@vtxmacro/cli 2026.8.46 → 2026.8.48

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 (2) hide show
  1. package/bin/vtx.js +23 -7
  2. package/package.json +1 -1
package/bin/vtx.js CHANGED
@@ -38,7 +38,7 @@ var init_agent_cli_release = __esm({
38
38
  "agent-cli-release.json"() {
39
39
  agent_cli_release_default = {
40
40
  package_name: "@vtxmacro/cli",
41
- package_version: "2026.8.46",
41
+ package_version: "2026.8.48",
42
42
  codex_package_name: "@openai/codex",
43
43
  codex_version: "0.147.0",
44
44
  copilot_sdk_package_name: "@github/copilot-sdk",
@@ -18431,11 +18431,12 @@ var init_mcp_client = __esm({
18431
18431
  const retryableClaimRejection = name === "inference.job.claim" && !definitivelyNotApplied && (retryableInfrastructureRejection || errorText.includes("External inference host is not live enough to claim work") || errorText.includes("External inference host request generation is stale"));
18432
18432
  const retryableHeartbeatClockSkew = name === "inference.host.heartbeat" && definitivelyNotApplied;
18433
18433
  const retryableAdvertisementClockSkew = (name === "inference.host.register" || name === "inference.host.advertise") && definitivelyNotApplied;
18434
+ const staleHostHeartbeatGeneration = name === "inference.host.heartbeat" && errorText.includes("Heartbeat generations do not match the current host authority.");
18434
18435
  throw new ExternalInferenceMcpError(
18435
- "tool_rejected",
18436
+ staleHostHeartbeatGeneration ? "generation_stale" : "tool_rejected",
18436
18437
  `Insights MCP rejected ${name}.`,
18437
18438
  {
18438
- definitivelyNotApplied,
18439
+ definitivelyNotApplied: definitivelyNotApplied || staleHostHeartbeatGeneration,
18439
18440
  // Claim polling is an idempotent control-plane operation. During an
18440
18441
  // API rotation the MCP server can return a tool error after the
18441
18442
  // request reached the application boundary, so retain and replay
@@ -33575,6 +33576,7 @@ __export(cli_exports, {
33575
33576
  import { createHash as createHash7, randomUUID as randomUUID2 } from "node:crypto";
33576
33577
  import { spawn as spawn7 } from "node:child_process";
33577
33578
  import { lstat as lstat4, realpath as realpath4, rm as rm6 } from "node:fs/promises";
33579
+ import { hostname as osHostname } from "node:os";
33578
33580
  import { join as join7, resolve as resolve5 } from "node:path";
33579
33581
  async function runInferenceHostCli(argv2, env = process.env, dependencies = {}) {
33580
33582
  const warnings = [];
@@ -33676,7 +33678,7 @@ async function runInferenceHostCli(argv2, env = process.env, dependencies = {})
33676
33678
  };
33677
33679
  }
33678
33680
  }
33679
- var INFERENCE_HOST_CLI_VERSION, runtimeReceiptPath, codexRecoveryPath, codexGuardianReceiptRoot, revocationCheckpointPath, foregroundHostLockPath, credentialLifecycleLockPath, serviceRecoveryCommandLockPath, AGENT_HEARTBEAT_INTERVAL_MS, AGENT_HEARTBEAT_MAX_RETRY_DELAY_MS, retryableAgentHeartbeatError, assertRevocationCheckpoint, readRevocationCheckpoint, writeRevocationCheckpoint, clearRevocationCheckpoint, render, INFERENCE_HOST_HELP, parseHostConcurrency, parseInferenceHostArgs, defaultOpenBrowser, registerInferenceHostServiceControlInput, defaultRegisterLifecycleSignalHandlers, lifecycleCancellation, configuredCredentialStore, restoreInferenceHostCredentialContext, recoverInferenceHostCredentialContextTransition, accountKeyForState, assertCredentialMatchesState2, revocationCheckpointForCredential, assertRevocationCheckpointMatchesLocalIdentity, fileExistsPrivately, inspectCodexAuthentication, clearLocalRuntimeArtifacts, assertDurableServiceUninstalled, assertLocalRuntimeArtifactsMayBeDiscarded, defaultRunForeground, preparePortableDurableAdapter, defaultRunPortableDurableAdapter, login, codexLogin, codexLogout, localStatus, doctor, cleanupLogin, runHost, defaultReadStdin, parseAgentStdin, agentOperationId, agentSession, agentConnect, agentRun, agentNext, agentComplete, agentFail, withAgentCommandLock, recoveryBackupPath, serviceRecoveryTransactionPath, readServiceRecoveryTransaction, assertResumableCodexRecoveryEvidence, recoverInstalledCodexService, serviceCommand, hasExplicitCredentialStoreConfiguration, credentialEnvironmentForIdentity, commandRequiresRetainedCredentialStore, commandUsesInstalledServiceCredentials, resolveInferenceHostCommandConfig;
33681
+ var INFERENCE_HOST_CLI_VERSION, runtimeReceiptPath, codexRecoveryPath, codexGuardianReceiptRoot, revocationCheckpointPath, foregroundHostLockPath, credentialLifecycleLockPath, serviceRecoveryCommandLockPath, AGENT_HEARTBEAT_INTERVAL_MS, AGENT_HEARTBEAT_MAX_RETRY_DELAY_MS, retryableAgentHeartbeatError, assertRevocationCheckpoint, readRevocationCheckpoint, writeRevocationCheckpoint, clearRevocationCheckpoint, render, INFERENCE_HOST_HELP, parseHostConcurrency, parseInferenceHostArgs, resolveDurableServiceDisplayName, defaultOpenBrowser, registerInferenceHostServiceControlInput, defaultRegisterLifecycleSignalHandlers, lifecycleCancellation, configuredCredentialStore, restoreInferenceHostCredentialContext, recoverInferenceHostCredentialContextTransition, accountKeyForState, assertCredentialMatchesState2, revocationCheckpointForCredential, assertRevocationCheckpointMatchesLocalIdentity, fileExistsPrivately, inspectCodexAuthentication, clearLocalRuntimeArtifacts, assertDurableServiceUninstalled, assertLocalRuntimeArtifactsMayBeDiscarded, defaultRunForeground, preparePortableDurableAdapter, defaultRunPortableDurableAdapter, login, codexLogin, codexLogout, localStatus, doctor, cleanupLogin, runHost, defaultReadStdin, parseAgentStdin, agentOperationId, agentSession, agentConnect, agentRun, agentNext, agentComplete, agentFail, withAgentCommandLock, recoveryBackupPath, serviceRecoveryTransactionPath, readServiceRecoveryTransaction, assertResumableCodexRecoveryEvidence, recoverInstalledCodexService, serviceCommand, hasExplicitCredentialStoreConfiguration, credentialEnvironmentForIdentity, commandRequiresRetainedCredentialStore, commandUsesInstalledServiceCredentials, resolveInferenceHostCommandConfig;
33680
33682
  var init_cli = __esm({
33681
33683
  "lib/inference-host/cli.ts"() {
33682
33684
  "use strict";
@@ -33919,6 +33921,7 @@ Durable service:
33919
33921
  instanceExplicit,
33920
33922
  instanceFlagExplicit,
33921
33923
  displayName,
33924
+ displayNameExplicit,
33922
33925
  adapter,
33923
33926
  modelId,
33924
33927
  modelLabel,
@@ -33930,6 +33933,17 @@ Durable service:
33930
33933
  forceRecovery
33931
33934
  };
33932
33935
  };
33936
+ resolveDurableServiceDisplayName = (parsed, dependencies) => {
33937
+ if (parsed.displayNameExplicit) return parsed.displayName;
33938
+ try {
33939
+ const machineName = (dependencies.hostname ?? osHostname)().trim();
33940
+ if (machineName && machineName.length <= 128 && !/[\u0000-\u001f\u007f-\u009f]/u.test(machineName)) {
33941
+ return machineName;
33942
+ }
33943
+ } catch {
33944
+ }
33945
+ return parsed.displayName;
33946
+ };
33933
33947
  defaultOpenBrowser = (url2) => {
33934
33948
  const command = process.platform === "darwin" ? "open" : process.platform === "win32" ? "cmd" : "xdg-open";
33935
33949
  const args = process.platform === "win32" ? ["/c", "start", "", url2] : [url2];
@@ -35692,6 +35706,7 @@ Waiting for approval...
35692
35706
  if (parsed.modelId || parsed.modelLabel || parsed.reasoningEffort) {
35693
35707
  throw new Error("Durable services discover their exact model and effort catalog from the authenticated runtime.");
35694
35708
  }
35709
+ const displayName = resolveDurableServiceDisplayName(parsed, dependencies);
35695
35710
  if (adapter !== "codex") {
35696
35711
  const prepared = await (dependencies.prepareDurableAdapter ?? preparePortableDurableAdapter)(
35697
35712
  adapter
@@ -35699,7 +35714,7 @@ Waiting for approval...
35699
35714
  try {
35700
35715
  const status2 = await manager.install({
35701
35716
  adapter,
35702
- displayName: parsed.displayName,
35717
+ displayName,
35703
35718
  maxConcurrency: parsed.maxConcurrency,
35704
35719
  authenticatedAccountIdentity: prepared.preflight.authenticatedAccountIdentity,
35705
35720
  authenticatedAccountEmail: prepared.preflight.authenticatedAccountEmail,
@@ -35728,7 +35743,7 @@ Waiting for approval...
35728
35743
  });
35729
35744
  const status = await manager.install({
35730
35745
  adapter: "codex",
35731
- displayName: parsed.displayName,
35746
+ displayName,
35732
35747
  maxConcurrency: parsed.maxConcurrency,
35733
35748
  authenticatedAccountEmail: preflight?.authenticated_account_email ?? null,
35734
35749
  authenticatedAccountPlan: preflight?.authenticated_account_plan ?? null
@@ -39154,7 +39169,7 @@ async function reconcileActiveClientRuntimeExchangeMutation(profileId) {
39154
39169
  }
39155
39170
  return rememberCompletedDeferredClientRuntimeStop(profileId, result2);
39156
39171
  }
39157
- var getApiUrl, API_URL, sleep2, isTransientNetworkFetchError, createIdempotencyKey, getErrorMessage, getErrorPayloadOrEmpty, getErrorPayloadOrFallbackDetail, getErrorMessageFromResponse, _activeProfileId, PROFILE_STORAGE_KEY, completedDeferredClientRuntimeStops, rememberCompletedDeferredClientRuntimeStop, toNumericProfileId, shouldAttachRuntimeIdempotencyKey, attachRuntimeLeaseHeader, resolveRuntimeLeaseToken, persistRuntimeLeaseFromPayload, persistRuntimeLeaseStatusMetadata, shouldClearPersistedRuntimeLeaseOnError, isMissingRuntimeLeaseError, createRuntimeRequestError, parseClientRuntimeRequestContext, recordRuntimeAuthFailureBreadcrumb, classifyRuntimeRequestError, annotateRuntimeRequestError, parseRuntimeRetryAfterMs, shouldRecoverMissingRuntimeLease, recoverMissingRuntimeLease, isRetryableClientRuntimeStatus, shouldRetryClientRuntimeHttpStatus, resolveClientRuntimeRetryDelayMs, CLIENT_EXCHANGE_AUTHORITY_DEVICE_KEY, CLIENT_EXCHANGE_AUTHORITY_SESSION_KEY, getOrCreateClientExchangeAuthorityIdentity, resolveClientExchangeMutationAuthority, isPendingClientExchangeMutationError, clientExchangeMutationReconciliationTimers, MAX_CLIENT_EXCHANGE_RECONCILIATION_DELAY_MS, CLIENT_EXCHANGE_RECONCILIATION_CLOCK_SKEW_MS, ClientExchangeMutationRebuildRequiredError, isTerminalClientExchangeMutation, clientExchangeMutationReconciliationKey, clearScheduledClientExchangeMutationReconciliation, postClientExchangeMutationReconciliation, scheduleClientExchangeMutationReconciliation;
39172
+ var getApiUrl, API_URL, sleep2, isTransientNetworkFetchError, createIdempotencyKey, getErrorMessage, getErrorPayloadOrEmpty, getErrorPayloadOrFallbackDetail, getErrorMessageFromResponse, _activeProfileId, PROFILE_STORAGE_KEY, preferencesWriteQueue, completedDeferredClientRuntimeStops, rememberCompletedDeferredClientRuntimeStop, toNumericProfileId, shouldAttachRuntimeIdempotencyKey, attachRuntimeLeaseHeader, resolveRuntimeLeaseToken, persistRuntimeLeaseFromPayload, persistRuntimeLeaseStatusMetadata, shouldClearPersistedRuntimeLeaseOnError, isMissingRuntimeLeaseError, createRuntimeRequestError, parseClientRuntimeRequestContext, recordRuntimeAuthFailureBreadcrumb, classifyRuntimeRequestError, annotateRuntimeRequestError, parseRuntimeRetryAfterMs, shouldRecoverMissingRuntimeLease, recoverMissingRuntimeLease, isRetryableClientRuntimeStatus, shouldRetryClientRuntimeHttpStatus, resolveClientRuntimeRetryDelayMs, CLIENT_EXCHANGE_AUTHORITY_DEVICE_KEY, CLIENT_EXCHANGE_AUTHORITY_SESSION_KEY, getOrCreateClientExchangeAuthorityIdentity, resolveClientExchangeMutationAuthority, isPendingClientExchangeMutationError, clientExchangeMutationReconciliationTimers, MAX_CLIENT_EXCHANGE_RECONCILIATION_DELAY_MS, CLIENT_EXCHANGE_RECONCILIATION_CLOCK_SKEW_MS, ClientExchangeMutationRebuildRequiredError, isTerminalClientExchangeMutation, clientExchangeMutationReconciliationKey, clearScheduledClientExchangeMutationReconciliation, postClientExchangeMutationReconciliation, scheduleClientExchangeMutationReconciliation;
39158
39173
  var init_api2 = __esm({
39159
39174
  "lib/api.ts"() {
39160
39175
  "use strict";
@@ -39263,6 +39278,7 @@ var init_api2 = __esm({
39263
39278
  }
39264
39279
  }
39265
39280
  }
39281
+ preferencesWriteQueue = Promise.resolve();
39266
39282
  completedDeferredClientRuntimeStops = /* @__PURE__ */ new Set();
39267
39283
  rememberCompletedDeferredClientRuntimeStop = (profileId, result2) => {
39268
39284
  if (result2.runtime_stop_completed === true) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vtxmacro/cli",
3
- "version": "2026.8.46",
3
+ "version": "2026.8.48",
4
4
  "description": "VTX Macro CLI, MCP server, and durable subscription inference host.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",