@vtxmacro/cli 2026.8.26 → 2026.8.27

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 +41 -8
  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.26",
41
+ package_version: "2026.8.27",
42
42
  codex_package_name: "@openai/codex",
43
43
  codex_version: "0.147.0",
44
44
  platforms: {
@@ -28711,14 +28711,24 @@ var init_runner = __esm({
28711
28711
  return models;
28712
28712
  };
28713
28713
  FileInferenceHostRuntimeReceiptStore = class {
28714
- constructor(path) {
28714
+ constructor(path, readPrivateFile = readInferencePrivateFile) {
28715
28715
  this.path = path;
28716
+ this.readPrivateFile = readPrivateFile;
28716
28717
  }
28717
28718
  async read() {
28718
- const raw = await readInferencePrivateFile(
28719
- this.path,
28720
- "Inference host runtime receipt file"
28721
- );
28719
+ let raw = null;
28720
+ for (let attempt = 0; attempt < 3; attempt += 1) {
28721
+ try {
28722
+ raw = await this.readPrivateFile(
28723
+ this.path,
28724
+ "Inference host runtime receipt file"
28725
+ );
28726
+ break;
28727
+ } catch (error48) {
28728
+ const changedDuringRead = error48 instanceof Error && error48.message === "Inference host runtime receipt file changed while it was opened.";
28729
+ if (!changedDuringRead || attempt === 2) throw error48;
28730
+ }
28731
+ }
28722
28732
  if (raw === null) return null;
28723
28733
  try {
28724
28734
  return validateRuntimeReceipt(JSON.parse(raw));
@@ -30949,7 +30959,7 @@ async function runInferenceHostCli(argv2, env = process.env, dependencies = {})
30949
30959
  return { exitCode: 0, stdout: INFERENCE_HOST_HELP, stderr: "" };
30950
30960
  }
30951
30961
  const parsed = parseInferenceHostArgs(argv2, env);
30952
- const config2 = resolveInferenceHostConfig(env);
30962
+ const config2 = await resolveInferenceHostCommandConfig(parsed, env);
30953
30963
  if (parsed.command === "login") {
30954
30964
  return await login(config2, parsed, env, dependencies, warnings);
30955
30965
  }
@@ -31016,7 +31026,7 @@ async function runInferenceHostCli(argv2, env = process.env, dependencies = {})
31016
31026
  };
31017
31027
  }
31018
31028
  }
31019
- var INFERENCE_HOST_CLI_VERSION, runtimeReceiptPath, codexRecoveryPath, codexGuardianReceiptRoot, revocationCheckpointPath, foregroundHostLockPath, AGENT_HEARTBEAT_INTERVAL_MS, AGENT_HEARTBEAT_MAX_RETRY_DELAY_MS, retryableAgentHeartbeatError, assertRevocationCheckpoint, readRevocationCheckpoint, writeRevocationCheckpoint, clearRevocationCheckpoint, render, INFERENCE_HOST_HELP, parsePositiveInteger, parseInferenceHostArgs, defaultOpenBrowser, defaultRegisterLifecycleSignalHandlers, lifecycleCancellation, configuredCredentialStore, accountKeyForState, assertCredentialMatchesState2, revocationCheckpointForCredential, assertRevocationCheckpointMatchesLocalIdentity, fileExistsPrivately, inspectCodexAuthentication, clearLocalRuntimeArtifacts, assertDurableServiceUninstalled, assertLocalRuntimeArtifactsMayBeDiscarded, defaultRunForeground, login, codexLogin, codexLogout, localStatus, doctor, cleanupLogin, runHost, defaultReadStdin, parseAgentStdin, agentOperationId, agentSession, agentConnect, agentRun, agentNext, agentComplete, agentFail, withAgentCommandLock, serviceCommand;
31029
+ var INFERENCE_HOST_CLI_VERSION, runtimeReceiptPath, codexRecoveryPath, codexGuardianReceiptRoot, revocationCheckpointPath, foregroundHostLockPath, AGENT_HEARTBEAT_INTERVAL_MS, AGENT_HEARTBEAT_MAX_RETRY_DELAY_MS, retryableAgentHeartbeatError, assertRevocationCheckpoint, readRevocationCheckpoint, writeRevocationCheckpoint, clearRevocationCheckpoint, render, INFERENCE_HOST_HELP, parsePositiveInteger, parseInferenceHostArgs, defaultOpenBrowser, defaultRegisterLifecycleSignalHandlers, lifecycleCancellation, configuredCredentialStore, accountKeyForState, assertCredentialMatchesState2, revocationCheckpointForCredential, assertRevocationCheckpointMatchesLocalIdentity, fileExistsPrivately, inspectCodexAuthentication, clearLocalRuntimeArtifacts, assertDurableServiceUninstalled, assertLocalRuntimeArtifactsMayBeDiscarded, defaultRunForeground, login, codexLogin, codexLogout, localStatus, doctor, cleanupLogin, runHost, defaultReadStdin, parseAgentStdin, agentOperationId, agentSession, agentConnect, agentRun, agentNext, agentComplete, agentFail, withAgentCommandLock, serviceCommand, hasExplicitCredentialStoreConfiguration, commandUsesInstalledServiceCredentials, resolveInferenceHostCommandConfig;
31020
31030
  var init_cli = __esm({
31021
31031
  "lib/inference-host/cli.ts"() {
31022
31032
  "use strict";
@@ -32484,6 +32494,29 @@ Waiting for approval...
32484
32494
  }
32485
32495
  throw new Error("Usage: vtx inference-host service <install|start|stop|status|logs|uninstall>.");
32486
32496
  };
32497
+ hasExplicitCredentialStoreConfiguration = (env) => Boolean(
32498
+ String(env.VTX_INFERENCE_HOST_CREDENTIAL_STORE || "").trim() || String(env.VTX_INFERENCE_HOST_CREDENTIAL_FILE || "").trim()
32499
+ );
32500
+ commandUsesInstalledServiceCredentials = (parsed) => parsed.command === "status" || parsed.command === "doctor" || parsed.command === "service" && parsed.serviceAction === "install";
32501
+ resolveInferenceHostCommandConfig = async (parsed, env) => {
32502
+ const baseConfig = resolveInferenceHostConfig(env);
32503
+ if (!commandUsesInstalledServiceCredentials(parsed) || hasExplicitCredentialStoreConfiguration(env)) {
32504
+ return baseConfig;
32505
+ }
32506
+ const manifestPath = `${baseConfig.statePath}.service.json`;
32507
+ const manifest = await readInferenceHostServiceManifest(manifestPath);
32508
+ if (!manifest) return baseConfig;
32509
+ const installedConfig = resolveInferenceHostConfig({
32510
+ ...env,
32511
+ ...manifest.runtime_environment
32512
+ });
32513
+ if (resolve5(installedConfig.statePath) !== resolve5(baseConfig.statePath)) {
32514
+ throw new Error(
32515
+ "Installed inference-host service manifest does not match the requested local state path."
32516
+ );
32517
+ }
32518
+ return installedConfig;
32519
+ };
32487
32520
  }
32488
32521
  });
32489
32522
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vtxmacro/cli",
3
- "version": "2026.8.26",
3
+ "version": "2026.8.27",
4
4
  "description": "VTX Macro CLI, MCP server, and durable subscription inference host.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",