@vtxmacro/cli 2026.9.22 → 2026.9.23

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.
@@ -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.22",
19
+ package_version: "2026.9.23",
20
20
  codex_package_name: "@openai/codex",
21
21
  codex_version: "0.153.3",
22
22
  copilot_sdk_package_name: "@github/copilot-sdk",
package/bin/vtx.js CHANGED
@@ -69,7 +69,7 @@ var init_agent_cli_release = __esm({
69
69
  "agent-cli-release.json"() {
70
70
  agent_cli_release_default = {
71
71
  package_name: "@vtxmacro/cli",
72
- package_version: "2026.9.22",
72
+ package_version: "2026.9.23",
73
73
  codex_package_name: "@openai/codex",
74
74
  codex_version: "0.153.3",
75
75
  copilot_sdk_package_name: "@github/copilot-sdk",
@@ -36140,6 +36140,7 @@ var init_runner = __esm({
36140
36140
  const agentAbort = new AbortController();
36141
36141
  let agentLoop = Promise.resolve();
36142
36142
  let modelCatalogRefresh = null;
36143
+ let providerRateLimitRefresh = null;
36143
36144
  let wakeDrain;
36144
36145
  const drainSignal = new Promise((resolve10) => {
36145
36146
  wakeDrain = resolve10;
@@ -37272,68 +37273,72 @@ var init_runner = __esm({
37272
37273
  providerCooldownReason = null;
37273
37274
  providerQuotaSnapshot = null;
37274
37275
  }
37275
- if (this.dependencies.codexAdapter.readAccountRateLimits && currentTime >= nextProviderRateLimitRefreshAt) {
37276
- try {
37277
- const refreshVersion = providerCooldownVersion;
37278
- const refreshStartedAt = now();
37279
- const refreshedRateLimits = await this.dependencies.codexAdapter.readAccountRateLimits(
37280
- Date.now() + Math.min(2e3, settings.hostHeartbeatMs),
37281
- this.options.signal
37282
- );
37283
- if (refreshVersion !== providerCooldownVersion) continue;
37284
- providerRateLimits = refreshedRateLimits;
37285
- providerRateLimitsObservedAtMs = now();
37286
- const refreshedAt = now();
37287
- const usableSnapshot = usableProviderQuotaSnapshot(
37288
- providerRateLimits,
37289
- knownProviderQuotaSnapshot,
37290
- refreshedAt
37291
- );
37292
- providerQuotaRecoveryObservedAtMs = usableSnapshot ? refreshStartedAt : null;
37293
- retainKnownQuotaWindows(providerRateLimits.rateLimits);
37294
- const refreshedRetryAt = codexAccountRateLimitReached(providerRateLimits) ? codexRateLimitRetryAtMs(providerRateLimits) ?? refreshedAt + DEFAULT_CODEX_ACCOUNT_COOLDOWN_MS : null;
37295
- if (refreshedRetryAt !== null && refreshedRetryAt > refreshedAt) {
37296
- providerRetryAtMs = Math.max(providerRetryAtMs ?? 0, refreshedRetryAt);
37297
- providerCooldownReason = "provider_limit_snapshot";
37298
- retainQuotaSnapshot(providerRateLimits);
37299
- } else if (providerRetryAtMs !== null && !codexAccountRateLimitReached(providerRateLimits) && providerRateLimits.rateLimits.limitId === providerQuotaSnapshot?.limitId && [providerRateLimits.rateLimits.primary, providerRateLimits.rateLimits.secondary].some((window2) => window2 !== null) && ["primary", "secondary"].every((key) => {
37300
- const window2 = refreshedRateLimits.rateLimits[key];
37301
- const previous = providerQuotaSnapshot?.[key];
37302
- if (previous && (!window2 || window2.windowDurationMins !== previous.windowDurationMins)) {
37303
- return false;
37276
+ if (this.dependencies.codexAdapter.readAccountRateLimits && currentTime >= nextProviderRateLimitRefreshAt && !providerRateLimitRefresh) {
37277
+ nextProviderRateLimitRefreshAt = Infinity;
37278
+ providerRateLimitRefresh = Promise.resolve().then(async () => {
37279
+ try {
37280
+ const refreshVersion = providerCooldownVersion;
37281
+ const refreshStartedAt = now();
37282
+ const refreshedRateLimits = await this.dependencies.codexAdapter.readAccountRateLimits(
37283
+ Date.now() + Math.min(2e3, settings.hostHeartbeatMs),
37284
+ agentAbort.signal
37285
+ );
37286
+ if (agentAbort.signal.aborted || refreshVersion !== providerCooldownVersion) return;
37287
+ providerRateLimits = refreshedRateLimits;
37288
+ providerRateLimitsObservedAtMs = now();
37289
+ const refreshedAt = now();
37290
+ const usableSnapshot = usableProviderQuotaSnapshot(
37291
+ providerRateLimits,
37292
+ knownProviderQuotaSnapshot,
37293
+ refreshedAt
37294
+ );
37295
+ providerQuotaRecoveryObservedAtMs = usableSnapshot ? refreshStartedAt : null;
37296
+ retainKnownQuotaWindows(providerRateLimits.rateLimits);
37297
+ const refreshedRetryAt = codexAccountRateLimitReached(providerRateLimits) ? codexRateLimitRetryAtMs(providerRateLimits) ?? refreshedAt + DEFAULT_CODEX_ACCOUNT_COOLDOWN_MS : null;
37298
+ if (refreshedRetryAt !== null && refreshedRetryAt > refreshedAt) {
37299
+ providerRetryAtMs = Math.max(providerRetryAtMs ?? 0, refreshedRetryAt);
37300
+ providerCooldownReason = "provider_limit_snapshot";
37301
+ retainQuotaSnapshot(providerRateLimits);
37302
+ } else if (providerRetryAtMs !== null && !codexAccountRateLimitReached(providerRateLimits) && providerRateLimits.rateLimits.limitId === providerQuotaSnapshot?.limitId && [providerRateLimits.rateLimits.primary, providerRateLimits.rateLimits.secondary].some((window2) => window2 !== null) && ["primary", "secondary"].every((key) => {
37303
+ const window2 = refreshedRateLimits.rateLimits[key];
37304
+ const previous = providerQuotaSnapshot?.[key];
37305
+ if (previous && (!window2 || window2.windowDurationMins !== previous.windowDurationMins)) {
37306
+ return false;
37307
+ }
37308
+ return window2 === null || window2.resetsAt !== null && window2.resetsAt * 1e3 > refreshedAt && window2.usedPercent < 100;
37309
+ })) {
37310
+ emitDiagnostic("provider_cooldown_cleared", {
37311
+ reason: providerCooldownReason,
37312
+ recovery: "provider_quota_restored",
37313
+ active_attempts: active.size,
37314
+ provider_weekly_quota: providerWeeklyQuotaFromRateLimits(
37315
+ providerRateLimits,
37316
+ providerRateLimitsObservedAtMs,
37317
+ refreshedAt
37318
+ )
37319
+ });
37320
+ providerRetryAtMs = null;
37321
+ providerCooldownReason = null;
37322
+ providerQuotaSnapshot = null;
37304
37323
  }
37305
- return window2 === null || window2.resetsAt !== null && window2.resetsAt * 1e3 > refreshedAt && window2.usedPercent < 100;
37306
- })) {
37307
- emitDiagnostic("provider_cooldown_cleared", {
37308
- reason: providerCooldownReason,
37309
- recovery: "provider_quota_restored",
37310
- active_attempts: active.size,
37324
+ emitDiagnostic("provider_rate_limits_refreshed", {
37311
37325
  provider_weekly_quota: providerWeeklyQuotaFromRateLimits(
37312
37326
  providerRateLimits,
37313
37327
  providerRateLimitsObservedAtMs,
37314
- refreshedAt
37315
- )
37328
+ now()
37329
+ ),
37330
+ active_attempts: active.size
37316
37331
  });
37317
- providerRetryAtMs = null;
37318
- providerCooldownReason = null;
37319
- providerQuotaSnapshot = null;
37332
+ } catch (error48) {
37333
+ emitDiagnostic("provider_rate_limits_refresh_failed", {
37334
+ failure_category: error48 instanceof CodexAppServerError ? error48.category : "adapter",
37335
+ failure_code: error48 instanceof CodexAppServerError ? error48.code : "provider_rate_limits_refresh_failed"
37336
+ });
37337
+ } finally {
37338
+ nextProviderRateLimitRefreshAt = now() + settings.providerRateLimitRefreshMs;
37339
+ providerRateLimitRefresh = null;
37320
37340
  }
37321
- emitDiagnostic("provider_rate_limits_refreshed", {
37322
- provider_weekly_quota: providerWeeklyQuotaFromRateLimits(
37323
- providerRateLimits,
37324
- providerRateLimitsObservedAtMs,
37325
- now()
37326
- ),
37327
- active_attempts: active.size
37328
- });
37329
- } catch (error48) {
37330
- emitDiagnostic("provider_rate_limits_refresh_failed", {
37331
- failure_category: error48 instanceof CodexAppServerError ? error48.category : "adapter",
37332
- failure_code: error48 instanceof CodexAppServerError ? error48.code : "provider_rate_limits_refresh_failed"
37333
- });
37334
- } finally {
37335
- nextProviderRateLimitRefreshAt = now() + settings.providerRateLimitRefreshMs;
37336
- }
37341
+ });
37337
37342
  }
37338
37343
  const expiresAt = receipt.advertisement_expires_at ? Date.parse(receipt.advertisement_expires_at) : 0;
37339
37344
  const renewalDue = currentTime >= nextAdvertisementAttemptAt && expiresAt - currentTime <= settings.advertisementRefreshLeadMs;
@@ -37497,6 +37502,14 @@ var init_runner = __esm({
37497
37502
  0,
37498
37503
  claimCallRoundTripMs - (claim.schema_version === "external_inference_job_claim_result_v3" ? claim.server_processing_ms : 0)
37499
37504
  );
37505
+ emitDiagnostic("claim_batch_received", {
37506
+ claim_count: claim.claims.length,
37507
+ round_trip_ms: claimCallRoundTripMs,
37508
+ server_processing_ms: claim.schema_version === "external_inference_job_claim_result_v3" ? claim.server_processing_ms : null,
37509
+ transport_residual_ms: claimTransportResidualMs,
37510
+ minimum_freshness_remaining_ms: claim.claims.length ? Math.min(...claim.claims.map((item) => item.provider_dispatch_freshness_remaining_ms)) : null,
37511
+ active_attempts: active.size
37512
+ });
37500
37513
  if (claim.claims.length === 0) {
37501
37514
  await mutateReceipt((current) => ({
37502
37515
  ...current,
@@ -37674,6 +37687,7 @@ var init_runner = __esm({
37674
37687
  const agentCleanup = Promise.allSettled([
37675
37688
  agentLoop,
37676
37689
  modelCatalogRefresh,
37690
+ providerRateLimitRefresh,
37677
37691
  Promise.resolve().then(async () => {
37678
37692
  await settings.agentRuntime?.adapter.close();
37679
37693
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vtxmacro/cli",
3
- "version": "2026.9.22",
3
+ "version": "2026.9.23",
4
4
  "description": "VTX Macro CLI, MCP server, and durable external inference host.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",