@vtxmacro/cli 2026.9.57 → 2026.9.58
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 +48 -9
- 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.58",
|
|
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.58",
|
|
81
81
|
codex_package_name: "@openai/codex",
|
|
82
82
|
codex_version: "0.155.0",
|
|
83
83
|
copilot_sdk_package_name: "@github/copilot-sdk",
|
|
@@ -48958,6 +48958,17 @@ var init_hyperliquid_public_read = __esm({
|
|
|
48958
48958
|
let outcome = "cancelled";
|
|
48959
48959
|
let settled;
|
|
48960
48960
|
let acquiring = false;
|
|
48961
|
+
let observedRateLimit;
|
|
48962
|
+
let pendingPhase = null;
|
|
48963
|
+
const setPendingPhase = (next) => {
|
|
48964
|
+
if (next === pendingPhase) return;
|
|
48965
|
+
const previous = pendingPhase;
|
|
48966
|
+
pendingPhase = next;
|
|
48967
|
+
try {
|
|
48968
|
+
options.reservation?.onPendingPhaseChange?.(previous, next);
|
|
48969
|
+
} catch {
|
|
48970
|
+
}
|
|
48971
|
+
};
|
|
48961
48972
|
try {
|
|
48962
48973
|
checkAbort(signal);
|
|
48963
48974
|
if (ttlMs) {
|
|
@@ -48966,6 +48977,7 @@ var init_hyperliquid_public_read = __esm({
|
|
|
48966
48977
|
if (existing) return existing;
|
|
48967
48978
|
const running = pending2.get(key);
|
|
48968
48979
|
if (!running) break;
|
|
48980
|
+
setPendingPhase("cache");
|
|
48969
48981
|
await new Promise((resolve13, reject) => {
|
|
48970
48982
|
const aborted2 = () => {
|
|
48971
48983
|
signal.removeEventListener("abort", aborted2);
|
|
@@ -48985,6 +48997,7 @@ var init_hyperliquid_public_read = __esm({
|
|
|
48985
48997
|
}
|
|
48986
48998
|
if (options.reservation?.closed) throw new DOMException("Hyperliquid account read was cancelled.", "AbortError");
|
|
48987
48999
|
acquiring = true;
|
|
49000
|
+
setPendingPhase("admission");
|
|
48988
49001
|
permit = await admit(apiUrl, requestType, signal, void 0, deadline);
|
|
48989
49002
|
acquiring = false;
|
|
48990
49003
|
armDeadline(Math.min(deadline, permit?.expiresAt ?? Infinity));
|
|
@@ -49001,6 +49014,7 @@ var init_hyperliquid_public_read = __esm({
|
|
|
49001
49014
|
signal.addEventListener("abort", transportAborted, { once: true });
|
|
49002
49015
|
});
|
|
49003
49016
|
const transport = (async () => {
|
|
49017
|
+
setPendingPhase("transport");
|
|
49004
49018
|
const received = await fetch(`${apiUrl}/info`, {
|
|
49005
49019
|
method: "POST",
|
|
49006
49020
|
headers: { "Content-Type": "application/json" },
|
|
@@ -49009,8 +49023,9 @@ var init_hyperliquid_public_read = __esm({
|
|
|
49009
49023
|
});
|
|
49010
49024
|
checkAbort(signal);
|
|
49011
49025
|
if (received.status === 429) {
|
|
49026
|
+
observedRateLimit = new HyperliquidPublicReadError("public_rate_limited", "Hyperliquid public API returned HTTP 429.", requestType, 429);
|
|
49012
49027
|
await cooldown(apiUrl, received.headers.get("Retry-After"));
|
|
49013
|
-
throw
|
|
49028
|
+
throw observedRateLimit;
|
|
49014
49029
|
}
|
|
49015
49030
|
const receivedPayload = await received.json().catch((error48) => {
|
|
49016
49031
|
if (error48 instanceof SyntaxError) return {};
|
|
@@ -49021,6 +49036,7 @@ var init_hyperliquid_public_read = __esm({
|
|
|
49021
49036
|
})();
|
|
49022
49037
|
({ response, payload } = await Promise.race([transport, aborted2]));
|
|
49023
49038
|
} finally {
|
|
49039
|
+
setPendingPhase(null);
|
|
49024
49040
|
if (transportAborted) signal.removeEventListener("abort", transportAborted);
|
|
49025
49041
|
}
|
|
49026
49042
|
if (!response.ok) {
|
|
@@ -49038,6 +49054,7 @@ var init_hyperliquid_public_read = __esm({
|
|
|
49038
49054
|
}
|
|
49039
49055
|
return result2;
|
|
49040
49056
|
} catch (error48) {
|
|
49057
|
+
if (observedRateLimit) throw observedRateLimit;
|
|
49041
49058
|
if (options.signal?.aborted) {
|
|
49042
49059
|
outcome = "cancelled";
|
|
49043
49060
|
throw abortError2(options.signal);
|
|
@@ -49048,6 +49065,7 @@ var init_hyperliquid_public_read = __esm({
|
|
|
49048
49065
|
if (error48 instanceof Error && (error48.name === "TimeoutError" || error48.name === "AbortError")) throw new HyperliquidPublicReadError("public_timeout", "Hyperliquid public request timed out.", requestType);
|
|
49049
49066
|
throw error48;
|
|
49050
49067
|
} finally {
|
|
49068
|
+
setPendingPhase(null);
|
|
49051
49069
|
clearTimeout(timer);
|
|
49052
49070
|
options.signal?.removeEventListener("abort", callerAborted);
|
|
49053
49071
|
controller.abort();
|
|
@@ -50155,7 +50173,7 @@ var init_network_debug = __esm({
|
|
|
50155
50173
|
});
|
|
50156
50174
|
|
|
50157
50175
|
// lib/runtime/hyperliquid-account-state-adapter.ts
|
|
50158
|
-
var unsupportedUserActiveAssetCache, MAX_UNSUPPORTED_USER_ACTIVE_ASSET_CACHE_KEYS, UNSUPPORTED_USER_ACTIVE_ASSET_STORAGE_KEY, USER_FILLS_CACHE_STORAGE_PREFIX, ACCOUNT_STATE_CACHE_STORAGE_PREFIX, browserUserFillsCache, browserUserFillsInFlight, HYPERLIQUID_USER_FILLS_PROVIDER_PAGE_CAP, browserAccountStateCache, browserAccountStateInFlight, UNSUPPORTED_USER_ACTIVE_ASSET_DETAIL_PATTERNS, unsupportedUserActiveAssetCacheHydrated, hydrateUnsupportedUserActiveAssetCache, persistUnsupportedUserActiveAssetCache, toPositiveFinite, toFinite, firstFiniteNumber, parseFundingUsdcFromInfoPosition, buildActiveAssetCacheKey, buildUserFillsCacheKey, buildUserFillsStorageKey, buildAccountStateCacheKey, buildAccountStateStorageKey, hasActiveInfoRateLimitCooldown, requireNonNegativeConfigSeconds, requireAccountStateCacheConfig, requireUserFillsCacheConfig, normalizeFillSymbol, buildSymbolFilter, filterFillsBySymbols, readBrowserUserFillsCache, writeBrowserUserFillsCache, cloneBrowserAccountStateResult, withAccountStateEvidence, readBrowserAccountStateCache, writeBrowserAccountStateCache, isRateLimitError, createAbortError, waitForSharedBrowserRequest, waitForSharedBrowserUserFills, getBrowserActiveAssetTypeCandidates, normalizeHyperliquidErrorDetail, isUnsupportedUserActiveAssetError, rememberUnsupportedUserActiveAssetKey, parseInfoPositions, requireFinitePromptMetric, requirePromptClearinghouseState, requirePromptSpotState, normalizePerpDexName, listConfiguredPerpDexs, listPerpDexsForAccountState, prefixHip3PositionCoins, aggregateClearinghouseResponses, hasCompletePerpDexAccountMetrics, normalizeBrowserFillToTradeHistory, isPerpFill,
|
|
50176
|
+
var unsupportedUserActiveAssetCache, MAX_UNSUPPORTED_USER_ACTIVE_ASSET_CACHE_KEYS, UNSUPPORTED_USER_ACTIVE_ASSET_STORAGE_KEY, USER_FILLS_CACHE_STORAGE_PREFIX, ACCOUNT_STATE_CACHE_STORAGE_PREFIX, browserUserFillsCache, browserUserFillsInFlight, HYPERLIQUID_USER_FILLS_PROVIDER_PAGE_CAP, browserAccountStateCache, browserAccountStateInFlight, UNSUPPORTED_USER_ACTIVE_ASSET_DETAIL_PATTERNS, unsupportedUserActiveAssetCacheHydrated, hydrateUnsupportedUserActiveAssetCache, persistUnsupportedUserActiveAssetCache, toPositiveFinite, toFinite, firstFiniteNumber, parseFundingUsdcFromInfoPosition, buildActiveAssetCacheKey, buildUserFillsCacheKey, buildUserFillsStorageKey, buildAccountStateCacheKey, buildAccountStateStorageKey, hasActiveInfoRateLimitCooldown, requireNonNegativeConfigSeconds, requireAccountStateCacheConfig, requireUserFillsCacheConfig, normalizeFillSymbol, buildSymbolFilter, filterFillsBySymbols, readBrowserUserFillsCache, writeBrowserUserFillsCache, cloneBrowserAccountStateResult, withAccountStateEvidence, readBrowserAccountStateCache, writeBrowserAccountStateCache, isRateLimitError, createAbortError, waitForSharedBrowserRequest, waitForSharedBrowserUserFills, getBrowserActiveAssetTypeCandidates, normalizeHyperliquidErrorDetail, isUnsupportedUserActiveAssetError, rememberUnsupportedUserActiveAssetKey, parseInfoPositions, requireFinitePromptMetric, requirePromptClearinghouseState, requirePromptSpotState, normalizePerpDexName, listConfiguredPerpDexs, listPerpDexsForAccountState, prefixHip3PositionCoins, aggregateClearinghouseResponses, hasCompletePerpDexAccountMetrics, normalizeBrowserFillToTradeHistory, isPerpFill, settleAccountReads, fetchHyperliquidInfoRead, fetchHyperliquidInfoPayload, requireHyperliquidApiUrl, requireWalletAddress, parseInfoPositionSnapshot, fetchBrowserAccountState, fetchBrowserAccountStateUncached, fetchBrowserUserFills, fetchBrowserPositionSnapshot;
|
|
50159
50177
|
var init_hyperliquid_account_state_adapter = __esm({
|
|
50160
50178
|
"lib/runtime/hyperliquid-account-state-adapter.ts"() {
|
|
50161
50179
|
"use strict";
|
|
@@ -50823,15 +50841,14 @@ var init_hyperliquid_account_state_adapter = __esm({
|
|
|
50823
50841
|
}
|
|
50824
50842
|
return true;
|
|
50825
50843
|
};
|
|
50826
|
-
|
|
50844
|
+
settleAccountReads = async (reads, controller) => {
|
|
50827
50845
|
try {
|
|
50828
50846
|
return await Promise.all(reads);
|
|
50829
50847
|
} catch (error48) {
|
|
50830
|
-
|
|
50831
|
-
|
|
50832
|
-
|
|
50833
|
-
|
|
50834
|
-
}
|
|
50848
|
+
controller.abort(error48);
|
|
50849
|
+
const settled = await Promise.allSettled(reads);
|
|
50850
|
+
for (const result2 of settled) {
|
|
50851
|
+
if (result2.status === "rejected" && result2.reason instanceof HyperliquidPublicReadError && result2.reason.code === "public_rate_limited") throw result2.reason;
|
|
50835
50852
|
}
|
|
50836
50853
|
throw error48;
|
|
50837
50854
|
}
|
|
@@ -50990,6 +51007,26 @@ var init_hyperliquid_account_state_adapter = __esm({
|
|
|
50990
51007
|
{ type: "userDexAbstraction", user: walletAddress }
|
|
50991
51008
|
] : []
|
|
50992
51009
|
], input.signal, { cacheAccountMode: true, cacheValidUntilMs: input.publicReadDeadlineMs });
|
|
51010
|
+
if (input.onPublicReadPendingChange) {
|
|
51011
|
+
const pending3 = { cache: 0, admission: 0, transport: 0 };
|
|
51012
|
+
const reportPending = input.onPublicReadPendingChange;
|
|
51013
|
+
reservation.onPendingPhaseChange = (previous, next) => {
|
|
51014
|
+
if (previous) pending3[previous] -= 1;
|
|
51015
|
+
if (next) pending3[next] += 1;
|
|
51016
|
+
reportPending({ ...pending3 });
|
|
51017
|
+
};
|
|
51018
|
+
try {
|
|
51019
|
+
reportPending({ ...pending3 });
|
|
51020
|
+
} catch {
|
|
51021
|
+
}
|
|
51022
|
+
}
|
|
51023
|
+
const parentSignal = input.signal;
|
|
51024
|
+
const readController = new AbortController();
|
|
51025
|
+
const cancelReads = () => readController.abort(parentSignal?.reason);
|
|
51026
|
+
parentSignal?.addEventListener("abort", cancelReads, { once: true });
|
|
51027
|
+
if (parentSignal?.aborted) cancelReads();
|
|
51028
|
+
input = { ...input, signal: readController.signal };
|
|
51029
|
+
const awaitAccountReads = (reads) => settleAccountReads(reads, readController);
|
|
50993
51030
|
try {
|
|
50994
51031
|
const userFeesPromise = input.includeEffectiveTakerRate === true ? (async () => ({
|
|
50995
51032
|
...await readHyperliquidPublicInfo(apiUrl, { type: "userFees", user: walletAddress }, { signal: input.signal, reservation }).catch((error48) => {
|
|
@@ -51239,6 +51276,8 @@ var init_hyperliquid_account_state_adapter = __esm({
|
|
|
51239
51276
|
}
|
|
51240
51277
|
};
|
|
51241
51278
|
} finally {
|
|
51279
|
+
parentSignal?.removeEventListener("abort", cancelReads);
|
|
51280
|
+
readController.abort();
|
|
51242
51281
|
await releaseHyperliquidPublicReadReservation(reservation);
|
|
51243
51282
|
}
|
|
51244
51283
|
};
|