@vtxmacro/cli 2026.10.40 → 2026.10.42
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-mcp.js +1 -1
- package/bin/vtx-service-bootstrap.js +1 -1
- package/bin/vtx.js +34 -12
- package/package.json +1 -1
package/bin/vtx-mcp.js
CHANGED
|
@@ -43,7 +43,7 @@ var init_define_VTX_PI_MODEL_POLICY = __esm({
|
|
|
43
43
|
var agent_cli_release_default;
|
|
44
44
|
var init_agent_cli_release = __esm({
|
|
45
45
|
"agent-cli-release.json"() {
|
|
46
|
-
agent_cli_release_default = { package_name: "@vtxmacro/cli", package_version: "2026.10.
|
|
46
|
+
agent_cli_release_default = { package_name: "@vtxmacro/cli", package_version: "2026.10.42", codex_package_name: "@openai/codex", codex_version: "0.155.0", copilot_sdk_package_name: "@github/copilot-sdk", copilot_sdk_version: "1.0.0-beta.8", copilot_cli_package_name: "@github/copilot", copilot_cli_version: "1.0.80", deepseek_harness_version: "0.1.1-rc.2", deepseek_harness_packages: ["@deepseek-ai/dsh-agent", "@deepseek-ai/dsh-agent-instructions", "@deepseek-ai/dsh-agent-loop", "@deepseek-ai/dsh-agent-spine-demo", "@deepseek-ai/dsh-anonymous-user-id", "@deepseek-ai/dsh-atomic-write", "@deepseek-ai/dsh-attachment", "@deepseek-ai/dsh-brand", "@deepseek-ai/dsh-code-runtime", "@deepseek-ai/dsh-credentials", "@deepseek-ai/dsh-fs", "@deepseek-ai/dsh-goal", "@deepseek-ai/dsh-goal-round-driver", "@deepseek-ai/dsh-home-paths", "@deepseek-ai/dsh-invariants", "@deepseek-ai/dsh-jobs", "@deepseek-ai/dsh-jobs-local", "@deepseek-ai/dsh-launch-environment", "@deepseek-ai/dsh-llm", "@deepseek-ai/dsh-llm-deepseek", "@deepseek-ai/dsh-llm-retry", "@deepseek-ai/dsh-output-retention", "@deepseek-ai/dsh-sandbox", "@deepseek-ai/dsh-sandbox-policy", "@deepseek-ai/dsh-scope", "@deepseek-ai/dsh-session", "@deepseek-ai/dsh-session-checkpoint-policy", "@deepseek-ai/dsh-session-persistence", "@deepseek-ai/dsh-session-persistence-jsonl", "@deepseek-ai/dsh-session-projection", "@deepseek-ai/dsh-session-title", "@deepseek-ai/dsh-settings", "@deepseek-ai/dsh-shell", "@deepseek-ai/dsh-shell-env", "@deepseek-ai/dsh-skill", "@deepseek-ai/dsh-skill-filesystem", "@deepseek-ai/dsh-subprocess", "@deepseek-ai/dsh-system-prompt", "@deepseek-ai/dsh-timeout", "@deepseek-ai/dsh-tool-bash", "@deepseek-ai/dsh-tool-goal", "@deepseek-ai/dsh-tool-jobs", "@deepseek-ai/dsh-tool-skill", "@deepseek-ai/dsh-tools", "@deepseek-ai/dsh-typert-protocol", "@deepseek-ai/dsh-user-approval"], deepseek_cordis_package_name: "@deepseek-ai/cordis", deepseek_cordis_version: "4.0.1", deepseek_support_packages: { "@deepseek-ai/cordis-plugin-timer": "1.1.3" }, platforms: { "linux-x64": { package_name: "@openai/codex-linux-x64", target: "x86_64-unknown-linux-musl", binary_name: "codex", sha256: "660e159a49e823ac8e5986cb238f73158ce4b957d40d9292f8de90862644b501" }, "win32-x64": { package_name: "@openai/codex-win32-x64", target: "x86_64-pc-windows-msvc", binary_name: "codex.exe", sha256: "e4c11374bd9de8ad5c3b7617fd4654bb7839901edb0863f9930666863c7a021b" } }, pi_coding_agent_package_name: "@earendil-works/pi-coding-agent", pi_ai_package_name: "@earendil-works/pi-ai", pi_version: "0.85.1", pi_support_packages: ["@earendil-works/pi-agent-core", "@earendil-works/pi-telemetry", "@earendil-works/pi-tui", "@earendil-works/chord"], grok_version: "1.0.30", grok_platforms: { "linux-x64": { package_name: "@xai-official/grok-linux-x64", binary_name: "grok", sha256: "504dd6546ab991b75d36698242875ce461489cd1f8cd84285873cb55bd5c7d54" }, "win32-x64": { package_name: "@xai-official/grok-win32-x64", binary_name: "grok.exe", sha256: "48736d1a4342a801ea26d0ecde4c516b653f791399065adaa55973f83abd8867" } } };
|
|
47
47
|
}
|
|
48
48
|
});
|
|
49
49
|
|
|
@@ -14,7 +14,7 @@ import { dirname as dirname4, relative as relative4, resolve as resolve4 } from
|
|
|
14
14
|
import { fileURLToPath } from "node:url";
|
|
15
15
|
|
|
16
16
|
// agent-cli-release.json
|
|
17
|
-
var agent_cli_release_default = { package_name: "@vtxmacro/cli", package_version: "2026.10.
|
|
17
|
+
var agent_cli_release_default = { package_name: "@vtxmacro/cli", package_version: "2026.10.42", codex_package_name: "@openai/codex", codex_version: "0.155.0", copilot_sdk_package_name: "@github/copilot-sdk", copilot_sdk_version: "1.0.0-beta.8", copilot_cli_package_name: "@github/copilot", copilot_cli_version: "1.0.80", deepseek_harness_version: "0.1.1-rc.2", deepseek_harness_packages: ["@deepseek-ai/dsh-agent", "@deepseek-ai/dsh-agent-instructions", "@deepseek-ai/dsh-agent-loop", "@deepseek-ai/dsh-agent-spine-demo", "@deepseek-ai/dsh-anonymous-user-id", "@deepseek-ai/dsh-atomic-write", "@deepseek-ai/dsh-attachment", "@deepseek-ai/dsh-brand", "@deepseek-ai/dsh-code-runtime", "@deepseek-ai/dsh-credentials", "@deepseek-ai/dsh-fs", "@deepseek-ai/dsh-goal", "@deepseek-ai/dsh-goal-round-driver", "@deepseek-ai/dsh-home-paths", "@deepseek-ai/dsh-invariants", "@deepseek-ai/dsh-jobs", "@deepseek-ai/dsh-jobs-local", "@deepseek-ai/dsh-launch-environment", "@deepseek-ai/dsh-llm", "@deepseek-ai/dsh-llm-deepseek", "@deepseek-ai/dsh-llm-retry", "@deepseek-ai/dsh-output-retention", "@deepseek-ai/dsh-sandbox", "@deepseek-ai/dsh-sandbox-policy", "@deepseek-ai/dsh-scope", "@deepseek-ai/dsh-session", "@deepseek-ai/dsh-session-checkpoint-policy", "@deepseek-ai/dsh-session-persistence", "@deepseek-ai/dsh-session-persistence-jsonl", "@deepseek-ai/dsh-session-projection", "@deepseek-ai/dsh-session-title", "@deepseek-ai/dsh-settings", "@deepseek-ai/dsh-shell", "@deepseek-ai/dsh-shell-env", "@deepseek-ai/dsh-skill", "@deepseek-ai/dsh-skill-filesystem", "@deepseek-ai/dsh-subprocess", "@deepseek-ai/dsh-system-prompt", "@deepseek-ai/dsh-timeout", "@deepseek-ai/dsh-tool-bash", "@deepseek-ai/dsh-tool-goal", "@deepseek-ai/dsh-tool-jobs", "@deepseek-ai/dsh-tool-skill", "@deepseek-ai/dsh-tools", "@deepseek-ai/dsh-typert-protocol", "@deepseek-ai/dsh-user-approval"], deepseek_cordis_package_name: "@deepseek-ai/cordis", deepseek_cordis_version: "4.0.1", deepseek_support_packages: { "@deepseek-ai/cordis-plugin-timer": "1.1.3" }, platforms: { "linux-x64": { package_name: "@openai/codex-linux-x64", target: "x86_64-unknown-linux-musl", binary_name: "codex", sha256: "660e159a49e823ac8e5986cb238f73158ce4b957d40d9292f8de90862644b501" }, "win32-x64": { package_name: "@openai/codex-win32-x64", target: "x86_64-pc-windows-msvc", binary_name: "codex.exe", sha256: "e4c11374bd9de8ad5c3b7617fd4654bb7839901edb0863f9930666863c7a021b" } }, pi_coding_agent_package_name: "@earendil-works/pi-coding-agent", pi_ai_package_name: "@earendil-works/pi-ai", pi_version: "0.85.1", pi_support_packages: ["@earendil-works/pi-agent-core", "@earendil-works/pi-telemetry", "@earendil-works/pi-tui", "@earendil-works/chord"], grok_version: "1.0.30", grok_platforms: { "linux-x64": { package_name: "@xai-official/grok-linux-x64", binary_name: "grok", sha256: "504dd6546ab991b75d36698242875ce461489cd1f8cd84285873cb55bd5c7d54" }, "win32-x64": { package_name: "@xai-official/grok-win32-x64", binary_name: "grok.exe", sha256: "48736d1a4342a801ea26d0ecde4c516b653f791399065adaa55973f83abd8867" } } };
|
|
18
18
|
|
|
19
19
|
// lib/runtime-policy.generated.json
|
|
20
20
|
var runtime_policy_generated_default = {
|
package/bin/vtx.js
CHANGED
|
@@ -122,7 +122,7 @@ var init_routing = __esm({
|
|
|
122
122
|
var agent_cli_release_default;
|
|
123
123
|
var init_agent_cli_release = __esm({
|
|
124
124
|
"agent-cli-release.json"() {
|
|
125
|
-
agent_cli_release_default = { package_name: "@vtxmacro/cli", package_version: "2026.10.
|
|
125
|
+
agent_cli_release_default = { package_name: "@vtxmacro/cli", package_version: "2026.10.42", codex_package_name: "@openai/codex", codex_version: "0.155.0", copilot_sdk_package_name: "@github/copilot-sdk", copilot_sdk_version: "1.0.0-beta.8", copilot_cli_package_name: "@github/copilot", copilot_cli_version: "1.0.80", deepseek_harness_version: "0.1.1-rc.2", deepseek_harness_packages: ["@deepseek-ai/dsh-agent", "@deepseek-ai/dsh-agent-instructions", "@deepseek-ai/dsh-agent-loop", "@deepseek-ai/dsh-agent-spine-demo", "@deepseek-ai/dsh-anonymous-user-id", "@deepseek-ai/dsh-atomic-write", "@deepseek-ai/dsh-attachment", "@deepseek-ai/dsh-brand", "@deepseek-ai/dsh-code-runtime", "@deepseek-ai/dsh-credentials", "@deepseek-ai/dsh-fs", "@deepseek-ai/dsh-goal", "@deepseek-ai/dsh-goal-round-driver", "@deepseek-ai/dsh-home-paths", "@deepseek-ai/dsh-invariants", "@deepseek-ai/dsh-jobs", "@deepseek-ai/dsh-jobs-local", "@deepseek-ai/dsh-launch-environment", "@deepseek-ai/dsh-llm", "@deepseek-ai/dsh-llm-deepseek", "@deepseek-ai/dsh-llm-retry", "@deepseek-ai/dsh-output-retention", "@deepseek-ai/dsh-sandbox", "@deepseek-ai/dsh-sandbox-policy", "@deepseek-ai/dsh-scope", "@deepseek-ai/dsh-session", "@deepseek-ai/dsh-session-checkpoint-policy", "@deepseek-ai/dsh-session-persistence", "@deepseek-ai/dsh-session-persistence-jsonl", "@deepseek-ai/dsh-session-projection", "@deepseek-ai/dsh-session-title", "@deepseek-ai/dsh-settings", "@deepseek-ai/dsh-shell", "@deepseek-ai/dsh-shell-env", "@deepseek-ai/dsh-skill", "@deepseek-ai/dsh-skill-filesystem", "@deepseek-ai/dsh-subprocess", "@deepseek-ai/dsh-system-prompt", "@deepseek-ai/dsh-timeout", "@deepseek-ai/dsh-tool-bash", "@deepseek-ai/dsh-tool-goal", "@deepseek-ai/dsh-tool-jobs", "@deepseek-ai/dsh-tool-skill", "@deepseek-ai/dsh-tools", "@deepseek-ai/dsh-typert-protocol", "@deepseek-ai/dsh-user-approval"], deepseek_cordis_package_name: "@deepseek-ai/cordis", deepseek_cordis_version: "4.0.1", deepseek_support_packages: { "@deepseek-ai/cordis-plugin-timer": "1.1.3" }, platforms: { "linux-x64": { package_name: "@openai/codex-linux-x64", target: "x86_64-unknown-linux-musl", binary_name: "codex", sha256: "660e159a49e823ac8e5986cb238f73158ce4b957d40d9292f8de90862644b501" }, "win32-x64": { package_name: "@openai/codex-win32-x64", target: "x86_64-pc-windows-msvc", binary_name: "codex.exe", sha256: "e4c11374bd9de8ad5c3b7617fd4654bb7839901edb0863f9930666863c7a021b" } }, pi_coding_agent_package_name: "@earendil-works/pi-coding-agent", pi_ai_package_name: "@earendil-works/pi-ai", pi_version: "0.85.1", pi_support_packages: ["@earendil-works/pi-agent-core", "@earendil-works/pi-telemetry", "@earendil-works/pi-tui", "@earendil-works/chord"], grok_version: "1.0.30", grok_platforms: { "linux-x64": { package_name: "@xai-official/grok-linux-x64", binary_name: "grok", sha256: "504dd6546ab991b75d36698242875ce461489cd1f8cd84285873cb55bd5c7d54" }, "win32-x64": { package_name: "@xai-official/grok-win32-x64", binary_name: "grok.exe", sha256: "48736d1a4342a801ea26d0ecde4c516b653f791399065adaa55973f83abd8867" } } };
|
|
126
126
|
}
|
|
127
127
|
});
|
|
128
128
|
|
|
@@ -60314,7 +60314,7 @@ var init_hyperliquid_public_capacity = __esm({
|
|
|
60314
60314
|
});
|
|
60315
60315
|
|
|
60316
60316
|
// lib/runtime/hyperliquid-public-read.ts
|
|
60317
|
-
var policy, weights, recoveryPolicy, budgets, unpersistedBudgets, cache, pending2, PREFIX, priorityRank, createHyperliquidPublicPriorityScope, promoteHyperliquidPublicPriority, hostTransport, hyperliquidPrivateInfoHeldOff, abortError2, checkAbort, wait, waitUnlessPromoted, storage, loadBudget, saveBudget, withBudgetLock, HyperliquidPublicReadError, getHyperliquidPublicReadBudget, cooldownError, recoveryWaitError, ranks, mostUrgentRank, lastRank, capacityPolicy, READERS_KEY, memoryReaders, unwrittenReaders, validSchedule, readTradingReaders, noteTradingReader, noteHyperliquidTradingRuntime, noteHyperliquidUnscheduledTradingRead, hyperliquidDemandWindowMs, greatestCommonDivisor, heldDemand, isHeldBack, reservationRank, classBoundaries, everyone, slotOf, windowWeights, foldDemand, demandFor, heldBackDecision, fallbackDelayMs, admit, rowWeightedCharge, settleRowWeightedReservation, cooldown, finishHyperliquidRecoveryRequest, assertHyperliquidRecoveryDispatch, validateHyperliquidRecoveryDispatch, cacheTtlMs, eligibleCache, reserveHyperliquidPublicReads, releaseHyperliquidPublicReadReservation, admitHyperliquidExchangeRequest, recordHyperliquidExchangeResponse, readHyperliquidPublicInfo;
|
|
60317
|
+
var policy, weights, recoveryPolicy, budgets, unpersistedBudgets, cache, pending2, PREFIX, priorityRank, createHyperliquidPublicPriorityScope, promoteHyperliquidPublicPriority, hostTransport, hyperliquidPrivateInfoHeldOff, abortError2, checkAbort, wait, waitUnlessPromoted, storage, loadBudget, saveBudget, withBudgetLock, HyperliquidPublicReadError, getHyperliquidPublicReadBudget, cooldownError, recoveryWaitError, ranks, mostUrgentRank, lastRank, capacityPolicy, READERS_KEY, memoryReaders, unwrittenReaders, validSchedule, readTradingReaders, noteTradingReader, noteHyperliquidTradingRuntime, noteHyperliquidUnscheduledTradingRead, noteHyperliquidTradingRuntimeAttach, hyperliquidDemandWindowMs, greatestCommonDivisor, heldDemand, isHeldBack, reservationRank, classBoundaries, everyone, slotOf, windowWeights, foldDemand, demandFor, heldBackDecision, fallbackDelayMs, admit, rowWeightedCharge, settleRowWeightedReservation, cooldown, finishHyperliquidRecoveryRequest, assertHyperliquidRecoveryDispatch, validateHyperliquidRecoveryDispatch, cacheTtlMs, eligibleCache, reserveHyperliquidPublicReads, releaseHyperliquidPublicReadReservation, admitHyperliquidExchangeRequest, recordHyperliquidExchangeResponse, readHyperliquidPublicInfo;
|
|
60318
60318
|
var init_hyperliquid_public_read = __esm({
|
|
60319
60319
|
"lib/runtime/hyperliquid-public-read.ts"() {
|
|
60320
60320
|
"use strict";
|
|
@@ -60480,7 +60480,7 @@ var init_hyperliquid_public_read = __esm({
|
|
|
60480
60480
|
READERS_KEY = "vtx:hl-trading-readers:v1";
|
|
60481
60481
|
memoryReaders = [];
|
|
60482
60482
|
unwrittenReaders = /* @__PURE__ */ new Map();
|
|
60483
|
-
validSchedule = (schedule) => Number.isFinite(schedule.loopMs) && schedule.loopMs > 0 && Number.isFinite(schedule.cycleMs) && schedule.cycleMs >= 0 && Number.isFinite(schedule.startedAt) && (schedule.firstCycleEndedAt == null || Number.isFinite(schedule.firstCycleEndedAt)) && (schedule.offCadenceAt == null || Number.isFinite(schedule.offCadenceAt));
|
|
60483
|
+
validSchedule = (schedule) => Number.isFinite(schedule.loopMs) && schedule.loopMs > 0 && Number.isFinite(schedule.cycleMs) && schedule.cycleMs >= 0 && Number.isFinite(schedule.startedAt) && (schedule.firstCycleEndedAt == null || Number.isFinite(schedule.firstCycleEndedAt)) && (schedule.offCadenceAt == null || Number.isFinite(schedule.offCadenceAt)) && (schedule.loopChangedAt == null || Number.isFinite(schedule.loopChangedAt));
|
|
60484
60484
|
readTradingReaders = (now) => {
|
|
60485
60485
|
let readers = memoryReaders;
|
|
60486
60486
|
try {
|
|
@@ -60498,12 +60498,14 @@ var init_hyperliquid_public_read = __esm({
|
|
|
60498
60498
|
}
|
|
60499
60499
|
return readers.filter((reader) => reader.until > now);
|
|
60500
60500
|
};
|
|
60501
|
-
noteTradingReader = async (id2, entry) => {
|
|
60501
|
+
noteTradingReader = async (id2, entry, replaces = () => false) => {
|
|
60502
60502
|
if (hostTransport) return;
|
|
60503
60503
|
await withBudgetLock(READERS_KEY, void 0, () => {
|
|
60504
60504
|
const now = Date.now();
|
|
60505
60505
|
const added = entry ? entry(now) : null;
|
|
60506
|
-
const
|
|
60506
|
+
const current = readTradingReaders(now);
|
|
60507
|
+
const replaced = new Set(current.filter((reader) => reader.id !== id2 && replaces(reader.id)).map((reader) => reader.id));
|
|
60508
|
+
const readers = current.filter((reader) => reader.id !== id2 && !replaced.has(reader.id));
|
|
60507
60509
|
if (added) readers.push(added);
|
|
60508
60510
|
memoryReaders = readers;
|
|
60509
60511
|
try {
|
|
@@ -60513,6 +60515,7 @@ var init_hyperliquid_public_read = __esm({
|
|
|
60513
60515
|
unwrittenReaders.clear();
|
|
60514
60516
|
} catch {
|
|
60515
60517
|
unwrittenReaders.set(id2, added);
|
|
60518
|
+
for (const otherId of replaced) unwrittenReaders.set(otherId, null);
|
|
60516
60519
|
}
|
|
60517
60520
|
});
|
|
60518
60521
|
};
|
|
@@ -60524,6 +60527,11 @@ var init_hyperliquid_public_read = __esm({
|
|
|
60524
60527
|
id2,
|
|
60525
60528
|
(now) => ({ id: id2, notedAt: now, until: now + capacityPolicy.horizonMs })
|
|
60526
60529
|
);
|
|
60530
|
+
noteHyperliquidTradingRuntimeAttach = (profileKey2, id2) => noteTradingReader(
|
|
60531
|
+
id2,
|
|
60532
|
+
(now) => ({ id: id2, notedAt: now, until: now + capacityPolicy.horizonMs }),
|
|
60533
|
+
(otherId) => otherId.startsWith(`${profileKey2}:`)
|
|
60534
|
+
);
|
|
60527
60535
|
hyperliquidDemandWindowMs = () => capacityPolicy.windowMs;
|
|
60528
60536
|
greatestCommonDivisor = (left, right) => {
|
|
60529
60537
|
let [a, b3] = [left, right];
|
|
@@ -60540,7 +60548,12 @@ var init_hyperliquid_public_read = __esm({
|
|
|
60540
60548
|
}
|
|
60541
60549
|
const releaseAfterMs = linedUpMs + Math.max(...schedules.map((schedule) => schedule.loopMs)) + Math.max(...schedules.map((schedule) => schedule.cycleMs)) + capacityPolicy.windowMs;
|
|
60542
60550
|
if (releaseAfterMs >= capacityPolicy.horizonMs) return buckets;
|
|
60543
|
-
const
|
|
60551
|
+
const phased = schedules.filter((schedule) => capacityPolicy.windowMs % schedule.loopMs !== 0);
|
|
60552
|
+
const offCadenceAt = Math.max(
|
|
60553
|
+
0,
|
|
60554
|
+
...phased.length > 1 ? phased.map((schedule) => schedule.offCadenceAt ?? 0) : [],
|
|
60555
|
+
...schedules.map((schedule) => (schedule.loopChangedAt === void 0 ? schedule.offCadenceAt : schedule.loopChangedAt) ?? 0)
|
|
60556
|
+
);
|
|
60544
60557
|
const startups = schedules.map((schedule) => ({
|
|
60545
60558
|
from: schedule.startedAt,
|
|
60546
60559
|
to: Math.min(schedule.firstCycleEndedAt ?? now, schedule.startedAt + schedule.loopMs + schedule.cycleMs)
|
|
@@ -129437,9 +129450,11 @@ var init_engine = __esm({
|
|
|
129437
129450
|
this._startedAtMs = null;
|
|
129438
129451
|
this._firstCycleEndedAtMs = null;
|
|
129439
129452
|
this._agentDrivenCycles = false;
|
|
129440
|
-
// The latest slot this runtime missed
|
|
129441
|
-
// grid its on-cadence
|
|
129453
|
+
// The latest slot this runtime missed (and the latest it missed when its
|
|
129454
|
+
// loop changed), whether it has no next run, and the grid its on-cadence
|
|
129455
|
+
// runs follow (see _armExecutionLoopTimer).
|
|
129442
129456
|
this._lastOffCadenceAtMs = null;
|
|
129457
|
+
this._lastLoopChangedAtMs = null;
|
|
129443
129458
|
this._noNextRun = false;
|
|
129444
129459
|
this._cadenceGridMs = null;
|
|
129445
129460
|
this._cadenceLoopMs = null;
|
|
@@ -130349,7 +130364,11 @@ var init_engine = __esm({
|
|
|
130349
130364
|
const leftGridMs = this._cadenceRunMs ?? this._cadenceGridMs;
|
|
130350
130365
|
const leftLoopMs = this._cadenceLoopMs;
|
|
130351
130366
|
const lastLeftSlotMs = leftGridMs != null && leftLoopMs != null && expectedFireAtMs > leftGridMs ? leftGridMs + (Math.ceil((expectedFireAtMs - leftGridMs) / leftLoopMs) - 1) * leftLoopMs : expectedFireAtMs - loopMs;
|
|
130352
|
-
|
|
130367
|
+
const missedMs = Math.max(expectedFireAtMs - loopMs, lastLeftSlotMs);
|
|
130368
|
+
this._lastOffCadenceAtMs = Math.max(this._lastOffCadenceAtMs ?? 0, missedMs);
|
|
130369
|
+
if (leftLoopMs != null && leftLoopMs !== loopMs) {
|
|
130370
|
+
this._lastLoopChangedAtMs = Math.max(this._lastLoopChangedAtMs ?? 0, missedMs);
|
|
130371
|
+
}
|
|
130353
130372
|
}
|
|
130354
130373
|
if (continuesCadence) {
|
|
130355
130374
|
this._cadencePendingMs = gridPointMs;
|
|
@@ -130589,11 +130608,12 @@ var init_engine = __esm({
|
|
|
130589
130608
|
}
|
|
130590
130609
|
const startController = new AbortController();
|
|
130591
130610
|
this._startAbortController = startController;
|
|
130592
|
-
void
|
|
130611
|
+
void noteHyperliquidTradingRuntimeAttach(profileId, this._tradingRuntimeKey(profileId)).catch(() => void 0);
|
|
130593
130612
|
this._startedAtMs = Date.now();
|
|
130594
130613
|
this._firstCycleEndedAtMs = null;
|
|
130595
130614
|
this._agentDrivenCycles = false;
|
|
130596
130615
|
this._lastOffCadenceAtMs = null;
|
|
130616
|
+
this._lastLoopChangedAtMs = null;
|
|
130597
130617
|
this._noNextRun = false;
|
|
130598
130618
|
this._cadenceGridMs = null;
|
|
130599
130619
|
this._cadenceLoopMs = null;
|
|
@@ -134531,7 +134551,8 @@ var init_engine = __esm({
|
|
|
134531
134551
|
return null;
|
|
134532
134552
|
}
|
|
134533
134553
|
}
|
|
134534
|
-
// One entry per engine instance: a tab that hands a profile over never removes the new owner's
|
|
134554
|
+
// One entry per engine instance: a tab that hands a profile over never removes the new owner's,
|
|
134555
|
+
// and an attach replaces what the profile's earlier runtimes on this device left.
|
|
134535
134556
|
_tradingRuntimeKey(profileId) {
|
|
134536
134557
|
return `${profileId}:${this._instanceId}`;
|
|
134537
134558
|
}
|
|
@@ -134549,7 +134570,8 @@ var init_engine = __esm({
|
|
|
134549
134570
|
cycleMs: this._analysisStaleAfterMs,
|
|
134550
134571
|
startedAt: this._startedAtMs,
|
|
134551
134572
|
firstCycleEndedAt: this._firstCycleEndedAtMs,
|
|
134552
|
-
offCadenceAt: this._lastOffCadenceAtMs
|
|
134573
|
+
offCadenceAt: this._lastOffCadenceAtMs,
|
|
134574
|
+
loopChangedAt: this._lastLoopChangedAtMs
|
|
134553
134575
|
}) : noteHyperliquidUnscheduledTradingRead(key);
|
|
134554
134576
|
void noted.catch(() => void 0);
|
|
134555
134577
|
}
|