@vtxmacro/cli 2026.9.53 → 2026.9.54
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 +4 -4
- package/bin/vtx.js +113 -91
- package/package.json +2 -2
|
@@ -16,9 +16,9 @@ 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.54",
|
|
20
20
|
codex_package_name: "@openai/codex",
|
|
21
|
-
codex_version: "0.
|
|
21
|
+
codex_version: "0.155.0",
|
|
22
22
|
copilot_sdk_package_name: "@github/copilot-sdk",
|
|
23
23
|
copilot_sdk_version: "1.0.0-beta.8",
|
|
24
24
|
copilot_cli_package_name: "@github/copilot",
|
|
@@ -82,13 +82,13 @@ var agent_cli_release_default = {
|
|
|
82
82
|
package_name: "@openai/codex-linux-x64",
|
|
83
83
|
target: "x86_64-unknown-linux-musl",
|
|
84
84
|
binary_name: "codex",
|
|
85
|
-
sha256: "
|
|
85
|
+
sha256: "660e159a49e823ac8e5986cb238f73158ce4b957d40d9292f8de90862644b501"
|
|
86
86
|
},
|
|
87
87
|
"win32-x64": {
|
|
88
88
|
package_name: "@openai/codex-win32-x64",
|
|
89
89
|
target: "x86_64-pc-windows-msvc",
|
|
90
90
|
binary_name: "codex.exe",
|
|
91
|
-
sha256: "
|
|
91
|
+
sha256: "e4c11374bd9de8ad5c3b7617fd4654bb7839901edb0863f9930666863c7a021b"
|
|
92
92
|
}
|
|
93
93
|
},
|
|
94
94
|
pi_coding_agent_package_name: "@earendil-works/pi-coding-agent",
|
package/bin/vtx.js
CHANGED
|
@@ -77,9 +77,9 @@ 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.54",
|
|
81
81
|
codex_package_name: "@openai/codex",
|
|
82
|
-
codex_version: "0.
|
|
82
|
+
codex_version: "0.155.0",
|
|
83
83
|
copilot_sdk_package_name: "@github/copilot-sdk",
|
|
84
84
|
copilot_sdk_version: "1.0.0-beta.8",
|
|
85
85
|
copilot_cli_package_name: "@github/copilot",
|
|
@@ -143,13 +143,13 @@ var init_agent_cli_release = __esm({
|
|
|
143
143
|
package_name: "@openai/codex-linux-x64",
|
|
144
144
|
target: "x86_64-unknown-linux-musl",
|
|
145
145
|
binary_name: "codex",
|
|
146
|
-
sha256: "
|
|
146
|
+
sha256: "660e159a49e823ac8e5986cb238f73158ce4b957d40d9292f8de90862644b501"
|
|
147
147
|
},
|
|
148
148
|
"win32-x64": {
|
|
149
149
|
package_name: "@openai/codex-win32-x64",
|
|
150
150
|
target: "x86_64-pc-windows-msvc",
|
|
151
151
|
binary_name: "codex.exe",
|
|
152
|
-
sha256: "
|
|
152
|
+
sha256: "e4c11374bd9de8ad5c3b7617fd4654bb7839901edb0863f9930666863c7a021b"
|
|
153
153
|
}
|
|
154
154
|
},
|
|
155
155
|
pi_coding_agent_package_name: "@earendil-works/pi-coding-agent",
|
|
@@ -40297,10 +40297,10 @@ var init_grok_transport_proxy = __esm({
|
|
|
40297
40297
|
|
|
40298
40298
|
// lib/inference-host/grok-runtime.ts
|
|
40299
40299
|
import { spawn as spawn7 } from "node:child_process";
|
|
40300
|
-
import { randomBytes as randomBytes7 } from "node:crypto";
|
|
40300
|
+
import { randomBytes as randomBytes7, randomUUID as randomUUID7 } from "node:crypto";
|
|
40301
40301
|
import { createServer as createServer4 } from "node:http";
|
|
40302
40302
|
import { join as join9 } from "node:path";
|
|
40303
|
-
import { lstat as lstat6 } from "node:fs/promises";
|
|
40303
|
+
import { link, lstat as lstat6, rm as rm8 } from "node:fs/promises";
|
|
40304
40304
|
var grokObject, grokRuntimeEnvironment, prepareGrokHome, GrokAcpSession, createGrokToolServer;
|
|
40305
40305
|
var init_grok_runtime = __esm({
|
|
40306
40306
|
"lib/inference-host/grok-runtime.ts"() {
|
|
@@ -40367,6 +40367,28 @@ var init_grok_runtime = __esm({
|
|
|
40367
40367
|
env.XDG_STATE_HOME,
|
|
40368
40368
|
env.XDG_CACHE_HOME
|
|
40369
40369
|
]) await ensureInferencePrivateDirectory(path);
|
|
40370
|
+
const agentIdPath = join9(grokHome, "agent_id");
|
|
40371
|
+
let needsAgentId = false;
|
|
40372
|
+
try {
|
|
40373
|
+
await lstat6(agentIdPath);
|
|
40374
|
+
} catch (error48) {
|
|
40375
|
+
if (error48.code !== "ENOENT") throw error48;
|
|
40376
|
+
needsAgentId = true;
|
|
40377
|
+
}
|
|
40378
|
+
if (needsAgentId) {
|
|
40379
|
+
const temporary = join9(grokHome, `.agent-id-${randomUUID7()}.tmp`);
|
|
40380
|
+
try {
|
|
40381
|
+
await writeAtomicInferencePrivateFile(temporary, `${randomUUID7()}
|
|
40382
|
+
`);
|
|
40383
|
+
try {
|
|
40384
|
+
await link(temporary, agentIdPath);
|
|
40385
|
+
} catch (error48) {
|
|
40386
|
+
if (error48.code !== "EEXIST") throw error48;
|
|
40387
|
+
}
|
|
40388
|
+
} finally {
|
|
40389
|
+
await rm8(temporary, { force: true });
|
|
40390
|
+
}
|
|
40391
|
+
}
|
|
40370
40392
|
await writeAtomicInferencePrivateFile(join9(grokHome, "config.toml"), "[claude_compat]\nimported = true\n");
|
|
40371
40393
|
await writeAtomicInferencePrivateFile(join9(grokHome, "requirements.toml"), [
|
|
40372
40394
|
"[auth]",
|
|
@@ -40586,7 +40608,7 @@ var init_grok_runtime = __esm({
|
|
|
40586
40608
|
|
|
40587
40609
|
// lib/inference-host/grok-state.ts
|
|
40588
40610
|
import { constants as constants2 } from "node:fs";
|
|
40589
|
-
import { lstat as lstat7, mkdtemp as mkdtemp4, open as open3, readdir as readdir3, realpath as realpath6, rm as
|
|
40611
|
+
import { lstat as lstat7, mkdtemp as mkdtemp4, open as open3, readdir as readdir3, realpath as realpath6, rm as rm9, rmdir, unlink, writeFile as writeFile3 } from "node:fs/promises";
|
|
40590
40612
|
import { basename as basename3, dirname as dirname8, join as join10, resolve as resolve6 } from "node:path";
|
|
40591
40613
|
var markerName, ownedName, invalid, missing, sessionIdValid, directory, nativeDirectory, roots, owner, nativeFile, encodedCwd, nativeSession, removeEmptyNativeGroup, createGrokOwnedWorkspace, bindGrokOwnedSession, validateGrokOwnedThread, releaseGrokOwnedWorkspace, cleanupGrokOwnedState;
|
|
40592
40614
|
var init_grok_state = __esm({
|
|
@@ -40755,7 +40777,7 @@ var init_grok_state = __esm({
|
|
|
40755
40777
|
await writeAtomicInferencePrivateFile(join10(workspace, markerName), JSON.stringify(value));
|
|
40756
40778
|
return workspace;
|
|
40757
40779
|
} catch (error48) {
|
|
40758
|
-
await
|
|
40780
|
+
await rm9(workspace, { recursive: true, force: true });
|
|
40759
40781
|
throw error48;
|
|
40760
40782
|
}
|
|
40761
40783
|
};
|
|
@@ -40788,11 +40810,11 @@ var init_grok_state = __esm({
|
|
|
40788
40810
|
if (session) {
|
|
40789
40811
|
await owner(options, workspace);
|
|
40790
40812
|
if (await nativeSession(value, false) !== session) throw invalid();
|
|
40791
|
-
await
|
|
40813
|
+
await rm9(session, { recursive: true, force: true });
|
|
40792
40814
|
await removeEmptyNativeGroup(dirname8(session), workspace);
|
|
40793
40815
|
}
|
|
40794
40816
|
await owner(options, workspace);
|
|
40795
|
-
await
|
|
40817
|
+
await rm9(workspace, { recursive: true, force: true });
|
|
40796
40818
|
};
|
|
40797
40819
|
cleanupGrokOwnedState = async (options) => {
|
|
40798
40820
|
let scope;
|
|
@@ -40824,7 +40846,7 @@ var init_grok_state = __esm({
|
|
|
40824
40846
|
});
|
|
40825
40847
|
|
|
40826
40848
|
// lib/inference-host/grok-adapter.ts
|
|
40827
|
-
import { randomUUID as
|
|
40849
|
+
import { randomUUID as randomUUID8 } from "node:crypto";
|
|
40828
40850
|
import { join as join11 } from "node:path";
|
|
40829
40851
|
var unwrap, list, nonempty, integer2, grokModelCapabilities, grokPromptUsage, agentProfile, modelState, assertSelection, GrokBuildAdapter;
|
|
40830
40852
|
var init_grok_adapter = __esm({
|
|
@@ -41090,7 +41112,7 @@ var init_grok_adapter = __esm({
|
|
|
41090
41112
|
activeThread = { ...activeThread, effectiveModel: observedModel };
|
|
41091
41113
|
await agent.onThreadReady?.(activeThread);
|
|
41092
41114
|
}
|
|
41093
|
-
const callId =
|
|
41115
|
+
const callId = randomUUID8();
|
|
41094
41116
|
const tool = name;
|
|
41095
41117
|
const result3 = await agent.executeTool({ callId, tool, arguments: args });
|
|
41096
41118
|
evidence.push({ callId, tool, arguments: args, success: result3.success });
|
|
@@ -41196,7 +41218,7 @@ var init_grok_adapter = __esm({
|
|
|
41196
41218
|
if (update.sessionUpdate === "agent_message_chunk" && firstToken === null) firstToken = Date.now() - startedAt;
|
|
41197
41219
|
if (update.sessionUpdate === "agent_thought_chunk" && Buffer.byteLength(thought) + Buffer.byteLength(text2) <= 3e5) thought += text2;
|
|
41198
41220
|
};
|
|
41199
|
-
const promptId =
|
|
41221
|
+
const promptId = randomUUID8();
|
|
41200
41222
|
const result2 = await session.request("session/prompt", {
|
|
41201
41223
|
sessionId,
|
|
41202
41224
|
prompt: [{ type: "text", text: input.userPrompt }],
|
|
@@ -41375,9 +41397,9 @@ var init_grok_auth = __esm({
|
|
|
41375
41397
|
|
|
41376
41398
|
// lib/inference-host/exo-adapter.ts
|
|
41377
41399
|
import { spawn as spawn9 } from "node:child_process";
|
|
41378
|
-
import { randomUUID as
|
|
41400
|
+
import { randomUUID as randomUUID9, timingSafeEqual as timingSafeEqual2 } from "node:crypto";
|
|
41379
41401
|
import { createServer as createServer5 } from "node:http";
|
|
41380
|
-
import { access as access3, lstat as lstat8, readdir as readdir4, realpath as realpath7, rm as
|
|
41402
|
+
import { access as access3, lstat as lstat8, readdir as readdir4, realpath as realpath7, rm as rm10 } from "node:fs/promises";
|
|
41381
41403
|
import { basename as basename4, dirname as dirname9, join as join12, resolve as resolve7 } from "node:path";
|
|
41382
41404
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
41383
41405
|
var import_ajv3, failure, object4, validModel, receiptUsage, assertOwnedRuntime, cleanupExoOwnedState, ExoForegroundAdapter;
|
|
@@ -41439,7 +41461,7 @@ var init_exo_adapter = __esm({
|
|
|
41439
41461
|
if (!match || !entry.isDirectory() || entry.isSymbolicLink()) throw failure("exo_state_not_owned");
|
|
41440
41462
|
await assertOwnedRuntime(join12(root, entry.name), match[1]);
|
|
41441
41463
|
}
|
|
41442
|
-
await
|
|
41464
|
+
await rm10(root, { recursive: true, force: true });
|
|
41443
41465
|
};
|
|
41444
41466
|
ExoForegroundAdapter = class {
|
|
41445
41467
|
constructor(options) {
|
|
@@ -41559,7 +41581,7 @@ var init_exo_adapter = __esm({
|
|
|
41559
41581
|
const credential = await this.options.credentialStore.read(input.signal);
|
|
41560
41582
|
const provider = selected.model.split("/")[0];
|
|
41561
41583
|
if (!credential || credential.provider !== provider) throw failure("exo_credential_required", false, "auth");
|
|
41562
|
-
const id2 = agent?.durableThread?.threadId ??
|
|
41584
|
+
const id2 = agent?.durableThread?.threadId ?? randomUUID9();
|
|
41563
41585
|
const runtimeRoot = agent?.durableThread ? await this.ownedRoot(agent.durableThread) : join12(await realpath7(this.options.stateRoot), `${agent ? "agent" : "attempt"}-${id2}`);
|
|
41564
41586
|
let thread = { threadId: id2, threadPath: runtimeRoot, effectiveModel: input.requestedModel, effectiveReasoningEffort: input.requestedReasoningEffort };
|
|
41565
41587
|
const owner2 = agent?.durableThread ? await assertOwnedRuntime(runtimeRoot, id2) : null;
|
|
@@ -41573,7 +41595,7 @@ var init_exo_adapter = __esm({
|
|
|
41573
41595
|
const relay = () => abort.abort();
|
|
41574
41596
|
input.signal?.addEventListener("abort", relay, { once: true });
|
|
41575
41597
|
const timer = setTimeout(relay, Math.max(0, input.deadlineAtMs - started));
|
|
41576
|
-
const token =
|
|
41598
|
+
const token = randomUUID9();
|
|
41577
41599
|
let dispatched = false;
|
|
41578
41600
|
let terminal = null;
|
|
41579
41601
|
let workerFailure = null;
|
|
@@ -41699,7 +41721,7 @@ var init_exo_adapter = __esm({
|
|
|
41699
41721
|
}
|
|
41700
41722
|
await agent?.onThreadReady?.(thread);
|
|
41701
41723
|
try {
|
|
41702
|
-
await this.command([...args, "conversation", "send", "vtx", "trading",
|
|
41724
|
+
await this.command([...args, "conversation", "send", "vtx", "trading", randomUUID9()], env, abort.signal);
|
|
41703
41725
|
} catch (error48) {
|
|
41704
41726
|
if (!terminal) throw error48;
|
|
41705
41727
|
}
|
|
@@ -41771,11 +41793,11 @@ var init_exo_adapter = __esm({
|
|
|
41771
41793
|
this.active.delete(abort);
|
|
41772
41794
|
server.closeAllConnections();
|
|
41773
41795
|
await new Promise((done) => server.close(() => done()));
|
|
41774
|
-
if (!agent) await
|
|
41796
|
+
if (!agent) await rm10(runtimeRoot, { recursive: true, force: true });
|
|
41775
41797
|
}
|
|
41776
41798
|
}
|
|
41777
41799
|
async releaseThread(thread) {
|
|
41778
|
-
await
|
|
41800
|
+
await rm10(await this.ownedRoot(thread), { recursive: true, force: true });
|
|
41779
41801
|
}
|
|
41780
41802
|
async close() {
|
|
41781
41803
|
this.closing = true;
|
|
@@ -42374,7 +42396,7 @@ var init_durable_adapter = __esm({
|
|
|
42374
42396
|
});
|
|
42375
42397
|
|
|
42376
42398
|
// lib/inference-host/service-launcher-state.ts
|
|
42377
|
-
import { access as access4, readFile as readFile9, rm as
|
|
42399
|
+
import { access as access4, readFile as readFile9, rm as rm11 } from "node:fs/promises";
|
|
42378
42400
|
import { dirname as dirname12, isAbsolute as isAbsolute5, join as join13, relative as relative3, resolve as resolve10 } from "node:path";
|
|
42379
42401
|
var launcherSibling, within, launcherSelection, readLauncherSelection, readLauncherState, writeLauncherState, targetForSelection;
|
|
42380
42402
|
var init_service_launcher_state = __esm({
|
|
@@ -42634,9 +42656,9 @@ var init_runtime_policy_generated2 = __esm({
|
|
|
42634
42656
|
|
|
42635
42657
|
// lib/inference-host/service.ts
|
|
42636
42658
|
import { spawn as spawn10 } from "node:child_process";
|
|
42637
|
-
import { randomUUID as
|
|
42659
|
+
import { randomUUID as randomUUID10 } from "node:crypto";
|
|
42638
42660
|
import { createWriteStream, readFileSync as readFileSync2 } from "node:fs";
|
|
42639
|
-
import { access as access5, chmod as chmod3, mkdir as mkdir3, readFile as readFile10, rm as
|
|
42661
|
+
import { access as access5, chmod as chmod3, mkdir as mkdir3, readFile as readFile10, rm as rm12, writeFile as writeFile4 } from "node:fs/promises";
|
|
42640
42662
|
import { homedir as homedir2 } from "node:os";
|
|
42641
42663
|
import { dirname as dirname13, join as join14, resolve as resolve11 } from "node:path";
|
|
42642
42664
|
var SERVICE_NAME, SYSTEMD_UNIT, LAUNCHD_LABEL, SERVICE_COOPERATIVE_STOP_SECONDS, SERVICE_UPDATE_STARTUP_SECONDS, INFERENCE_HOST_SERVICE_DRAIN_COMMAND, INFERENCE_HOST_SERVICE_QUIESCE_COMMAND, InferenceHostBootstrapRestartRequiredError, inferenceHostServiceChildEnvironment, isWindowsSubsystemForLinux, inferenceHostServiceManifestPath, inferenceHostServiceDesiredPath, inferenceHostServiceLogPath, inferenceHostServiceRuntimePath, xmlEscape, plistEscape, systemdQuote, defaultRunCommand, probeInferenceHostLauncher, managerName, assertRuntimeEnvironment, withoutConcurrencyLimit, assertServicePath, manifestGeneration, assertWorker, assertManifest, assertServiceRuntimeState, assertDesiredState, readInferenceHostServiceManifest, readManifestAcrossAtomicReplacement, readInferenceHostServiceRuntime, readRuntimeAcrossAtomicReplacement, readInferenceHostServiceDesired, readDesiredAcrossAtomicReplacement, writeDesired, runtimeEnvironment, serviceBootstrapArguments, windowsOwnedCommandLine, vbScriptString, windowsServiceLauncher, windowsTaskXml, systemdUnit, launchAgentPlist, sameWorker, sameServiceDefinition, sameWorkerSet, InferenceHostServiceManager, appendServiceLog, spawnInferenceHostServiceChild, runInferenceHostServiceSupervisor;
|
|
@@ -42713,7 +42735,7 @@ var init_service = __esm({
|
|
|
42713
42735
|
}));
|
|
42714
42736
|
});
|
|
42715
42737
|
probeInferenceHostLauncher = async (executable, destination, bytes3, runCommand = defaultRunCommand) => {
|
|
42716
|
-
const probe = `${destination}.${
|
|
42738
|
+
const probe = `${destination}.${randomUUID10()}.probe.js`;
|
|
42717
42739
|
try {
|
|
42718
42740
|
await writeAtomicInferencePrivateFile(probe, bytes3);
|
|
42719
42741
|
const result2 = await runCommand(executable, [probe]);
|
|
@@ -42721,7 +42743,7 @@ var init_service = __esm({
|
|
|
42721
42743
|
throw new Error("Copied service launcher failed its isolated startup check.");
|
|
42722
42744
|
}
|
|
42723
42745
|
} finally {
|
|
42724
|
-
await
|
|
42746
|
+
await rm12(probe, { force: true });
|
|
42725
42747
|
}
|
|
42726
42748
|
};
|
|
42727
42749
|
managerName = (platform) => {
|
|
@@ -43217,7 +43239,7 @@ WantedBy=default.target
|
|
|
43217
43239
|
const previousRuntimeUpdatedAt = previousRuntime?.manifest_generation === manifest.generation ? Date.parse(previousRuntime.updated_at) : Number.NaN;
|
|
43218
43240
|
const restoredManifest = preserveGeneration ? manifest : assertManifest({
|
|
43219
43241
|
...manifest,
|
|
43220
|
-
generation:
|
|
43242
|
+
generation: randomUUID10(),
|
|
43221
43243
|
installed_at: this.now().toISOString()
|
|
43222
43244
|
});
|
|
43223
43245
|
await writeAtomicInferencePrivateFile(
|
|
@@ -43374,16 +43396,16 @@ ${cleanup.stderr}`)) {
|
|
|
43374
43396
|
);
|
|
43375
43397
|
}
|
|
43376
43398
|
}
|
|
43377
|
-
await
|
|
43399
|
+
await rm12(this.definitionPath(), { force: true }).catch(() => void 0);
|
|
43378
43400
|
if (this.platform === "win32") {
|
|
43379
|
-
await
|
|
43401
|
+
await rm12(this.windowsLauncherPath(), { force: true }).catch(() => void 0);
|
|
43380
43402
|
}
|
|
43381
|
-
await
|
|
43382
|
-
await
|
|
43383
|
-
await
|
|
43384
|
-
if (!existingRecovery) await
|
|
43403
|
+
await rm12(this.manifestPath(), { force: true }).catch(() => void 0);
|
|
43404
|
+
await rm12(this.desiredPath(), { force: true }).catch(() => void 0);
|
|
43405
|
+
await rm12(this.runtimePath(), { force: true }).catch(() => void 0);
|
|
43406
|
+
if (!existingRecovery) await rm12(this.serviceBootstrapPath(), { force: true }).catch(() => void 0);
|
|
43385
43407
|
for (const suffix of [".service-launcher.json", ".service-bootstrap.previous.js"]) {
|
|
43386
|
-
if (!existingRecovery) await
|
|
43408
|
+
if (!existingRecovery) await rm12(launcherSibling(this.manifestPath(), suffix), { force: true }).catch(() => void 0);
|
|
43387
43409
|
}
|
|
43388
43410
|
if (this.platform === "linux") {
|
|
43389
43411
|
await this.runCommand("systemctl", ["--user", "daemon-reload"]).catch(() => void 0);
|
|
@@ -43535,7 +43557,7 @@ ${cleanup.stderr}`)) {
|
|
|
43535
43557
|
].sort((left, right) => left.instance_name.localeCompare(right.instance_name));
|
|
43536
43558
|
const manifest = assertManifest({
|
|
43537
43559
|
schema_version: "vtx_inference_service_v3",
|
|
43538
|
-
generation:
|
|
43560
|
+
generation: randomUUID10(),
|
|
43539
43561
|
installed_at: this.now().toISOString(),
|
|
43540
43562
|
executable: this.executable,
|
|
43541
43563
|
script: this.script,
|
|
@@ -43758,7 +43780,7 @@ ${result2.stderr}`)) {
|
|
|
43758
43780
|
if (remaining.length === 0) return await this.uninstallUnlocked();
|
|
43759
43781
|
return await this.replaceManifestUnlocked({
|
|
43760
43782
|
...manifest,
|
|
43761
|
-
generation:
|
|
43783
|
+
generation: randomUUID10(),
|
|
43762
43784
|
installed_at: this.now().toISOString(),
|
|
43763
43785
|
workers: remaining
|
|
43764
43786
|
}, await readInferenceHostServiceDesired(this.desiredPath()));
|
|
@@ -43781,20 +43803,20 @@ ${result2.stderr}`)) {
|
|
|
43781
43803
|
${result2.stderr}`)) {
|
|
43782
43804
|
throw new Error(`Background service uninstall failed: ${result2.stderr.trim()}`);
|
|
43783
43805
|
}
|
|
43784
|
-
await
|
|
43785
|
-
if (this.platform === "win32") await
|
|
43806
|
+
await rm12(this.definitionPath(), { force: true });
|
|
43807
|
+
if (this.platform === "win32") await rm12(this.windowsLauncherPath(), { force: true });
|
|
43786
43808
|
if (this.platform === "linux") await this.runCommand("systemctl", ["--user", "daemon-reload"]);
|
|
43787
|
-
await
|
|
43788
|
-
await
|
|
43789
|
-
await
|
|
43809
|
+
await rm12(this.manifestPath(), { force: true });
|
|
43810
|
+
await rm12(this.desiredPath(), { force: true });
|
|
43811
|
+
await rm12(this.runtimePath(), { force: true });
|
|
43790
43812
|
if (!preserveRecovery) {
|
|
43791
|
-
await
|
|
43813
|
+
await rm12(this.serviceBootstrapPath(), { force: true });
|
|
43792
43814
|
for (const suffix of [".service-launcher.json", ".service-bootstrap.previous.js"]) {
|
|
43793
|
-
await
|
|
43815
|
+
await rm12(launcherSibling(this.manifestPath(), suffix), { force: true });
|
|
43794
43816
|
}
|
|
43795
|
-
await
|
|
43796
|
-
await
|
|
43797
|
-
await
|
|
43817
|
+
await rm12(this.serviceReleasePath(), { force: true });
|
|
43818
|
+
await rm12(this.serviceReleaseRejectionPath(), { force: true });
|
|
43819
|
+
await rm12(this.serviceReleasesPath(), { recursive: true, force: true });
|
|
43798
43820
|
}
|
|
43799
43821
|
return {
|
|
43800
43822
|
installed: false,
|
|
@@ -44257,9 +44279,9 @@ __export(cli_exports, {
|
|
|
44257
44279
|
registerInferenceHostServiceControlInput: () => registerInferenceHostServiceControlInput,
|
|
44258
44280
|
runInferenceHostCli: () => runInferenceHostCli
|
|
44259
44281
|
});
|
|
44260
|
-
import { createHash as createHash12, randomUUID as
|
|
44282
|
+
import { createHash as createHash12, randomUUID as randomUUID11 } from "node:crypto";
|
|
44261
44283
|
import { spawn as spawn11 } from "node:child_process";
|
|
44262
|
-
import { lstat as lstat9, realpath as realpath8, rm as
|
|
44284
|
+
import { lstat as lstat9, realpath as realpath8, rm as rm13 } from "node:fs/promises";
|
|
44263
44285
|
import { hostname as osHostname } from "node:os";
|
|
44264
44286
|
import { join as join15, resolve as resolve12 } from "node:path";
|
|
44265
44287
|
async function runInferenceHostCli(argv2, env = process.env, dependencies = {}) {
|
|
@@ -44898,7 +44920,7 @@ Durable service:
|
|
|
44898
44920
|
runtimeReceiptPath(config2),
|
|
44899
44921
|
"Inference host runtime receipt file"
|
|
44900
44922
|
);
|
|
44901
|
-
await
|
|
44923
|
+
await rm13(codexGuardianReceiptRoot(config2), { recursive: true, force: true });
|
|
44902
44924
|
await clearInferencePrivateFile(
|
|
44903
44925
|
codexRecoveryPath(config2),
|
|
44904
44926
|
"Codex attempt recovery file"
|
|
@@ -45166,7 +45188,7 @@ Waiting for approval...
|
|
|
45166
45188
|
await writeInferenceHostCredentialContextTransition(config2, previousCredentialContext);
|
|
45167
45189
|
await writeInferenceHostCredentialContext(config2);
|
|
45168
45190
|
const keyPair = generateExternalInferenceEnvelopeKeyPair();
|
|
45169
|
-
const hostId =
|
|
45191
|
+
const hostId = randomUUID11();
|
|
45170
45192
|
const beginLogin = dependencies.beginLogin ?? beginInferenceOAuthLogin;
|
|
45171
45193
|
const loginStore = {
|
|
45172
45194
|
kind: store.kind,
|
|
@@ -46054,7 +46076,7 @@ Waiting for approval...
|
|
|
46054
46076
|
}
|
|
46055
46077
|
return record5;
|
|
46056
46078
|
};
|
|
46057
|
-
agentOperationId = (kind) => `${kind}-${
|
|
46079
|
+
agentOperationId = (kind) => `${kind}-${randomUUID11()}`;
|
|
46058
46080
|
agentSession = async (config2, dependencies, warnings, signal) => {
|
|
46059
46081
|
if (await readRevocationCheckpoint(config2)) {
|
|
46060
46082
|
throw new Error("Inference host revocation recovery must finish first.");
|
|
@@ -47133,7 +47155,7 @@ Waiting for approval...
|
|
|
47133
47155
|
if (recoveryRaw === null && existingTransaction?.phase !== "reconciled") {
|
|
47134
47156
|
throw new Error("Codex recovery evidence changed before service recovery began.");
|
|
47135
47157
|
}
|
|
47136
|
-
const transactionId = existingTransaction?.transaction_id ??
|
|
47158
|
+
const transactionId = existingTransaction?.transaction_id ?? randomUUID11();
|
|
47137
47159
|
const backupPath = existingTransaction?.recovery_backup_path ?? recoveryBackupPath(config2, transactionId);
|
|
47138
47160
|
if (!existingTransaction) {
|
|
47139
47161
|
await writeAtomicInferencePrivateFile(backupPath, recoveryRaw);
|
|
@@ -47281,7 +47303,7 @@ Waiting for approval...
|
|
|
47281
47303
|
serviceRecoveryTransactionPath(config2),
|
|
47282
47304
|
"Inference-host service recovery transaction"
|
|
47283
47305
|
);
|
|
47284
|
-
await
|
|
47306
|
+
await rm13(backupPath, { force: true });
|
|
47285
47307
|
}
|
|
47286
47308
|
}
|
|
47287
47309
|
} finally {
|
|
@@ -47556,7 +47578,7 @@ Waiting for approval...
|
|
|
47556
47578
|
});
|
|
47557
47579
|
|
|
47558
47580
|
// lib/agent-core/config.ts
|
|
47559
|
-
import { mkdir as mkdir5, readFile as readFile11, rm as
|
|
47581
|
+
import { mkdir as mkdir5, readFile as readFile11, rm as rm14, writeFile as writeFile5 } from "node:fs/promises";
|
|
47560
47582
|
import { dirname as dirname14, join as join16 } from "node:path";
|
|
47561
47583
|
import { homedir as homedir3 } from "node:os";
|
|
47562
47584
|
function defaultBaseDir() {
|
|
@@ -47600,7 +47622,7 @@ async function writeStoredAgentAuth(path, auth) {
|
|
|
47600
47622
|
`, { encoding: "utf8", mode: 384 });
|
|
47601
47623
|
}
|
|
47602
47624
|
async function clearStoredAgentAuth(path) {
|
|
47603
|
-
await
|
|
47625
|
+
await rm14(path, { force: true });
|
|
47604
47626
|
}
|
|
47605
47627
|
async function readRuntimeState(path) {
|
|
47606
47628
|
try {
|
|
@@ -47635,7 +47657,7 @@ async function writeRuntimeState(path, state) {
|
|
|
47635
47657
|
`, { encoding: "utf8", mode: 384 });
|
|
47636
47658
|
}
|
|
47637
47659
|
async function clearRuntimeState(path) {
|
|
47638
|
-
await
|
|
47660
|
+
await rm14(path, { force: true });
|
|
47639
47661
|
}
|
|
47640
47662
|
var init_config2 = __esm({
|
|
47641
47663
|
"lib/agent-core/config.ts"() {
|
|
@@ -47667,7 +47689,7 @@ var init_types = __esm({
|
|
|
47667
47689
|
});
|
|
47668
47690
|
|
|
47669
47691
|
// lib/agent-core/client.ts
|
|
47670
|
-
import { randomUUID as
|
|
47692
|
+
import { randomUUID as randomUUID12 } from "node:crypto";
|
|
47671
47693
|
function normalizeApiUrl(value) {
|
|
47672
47694
|
const parsed = String(value || "").trim();
|
|
47673
47695
|
if (!parsed) {
|
|
@@ -47934,7 +47956,7 @@ var init_client = __esm({
|
|
|
47934
47956
|
return this.request("/trading/ai/runtime/decision", {
|
|
47935
47957
|
method: "POST",
|
|
47936
47958
|
profileId,
|
|
47937
|
-
idempotencyKey:
|
|
47959
|
+
idempotencyKey: randomUUID12(),
|
|
47938
47960
|
headers: { "x-client-runtime-lease": leaseToken },
|
|
47939
47961
|
body: payload
|
|
47940
47962
|
});
|
|
@@ -47943,7 +47965,7 @@ var init_client = __esm({
|
|
|
47943
47965
|
return this.request("/trading/ai/runtime/trade-sync", {
|
|
47944
47966
|
method: "POST",
|
|
47945
47967
|
profileId,
|
|
47946
|
-
idempotencyKey:
|
|
47968
|
+
idempotencyKey: randomUUID12(),
|
|
47947
47969
|
headers: { "x-client-runtime-lease": leaseToken },
|
|
47948
47970
|
body: payload
|
|
47949
47971
|
});
|
|
@@ -47952,7 +47974,7 @@ var init_client = __esm({
|
|
|
47952
47974
|
return this.request("/trading/ai/runtime/error", {
|
|
47953
47975
|
method: "POST",
|
|
47954
47976
|
profileId,
|
|
47955
|
-
idempotencyKey:
|
|
47977
|
+
idempotencyKey: randomUUID12(),
|
|
47956
47978
|
headers: { "x-client-runtime-lease": leaseToken },
|
|
47957
47979
|
body: payload
|
|
47958
47980
|
});
|
|
@@ -47964,7 +47986,7 @@ var init_client = __esm({
|
|
|
47964
47986
|
return this.request("/trading/market-order", {
|
|
47965
47987
|
method: "POST",
|
|
47966
47988
|
profileId,
|
|
47967
|
-
idempotencyKey:
|
|
47989
|
+
idempotencyKey: randomUUID12(),
|
|
47968
47990
|
body: payload
|
|
47969
47991
|
});
|
|
47970
47992
|
}
|
|
@@ -47972,7 +47994,7 @@ var init_client = __esm({
|
|
|
47972
47994
|
return this.request("/trading/limit-order", {
|
|
47973
47995
|
method: "POST",
|
|
47974
47996
|
profileId,
|
|
47975
|
-
idempotencyKey:
|
|
47997
|
+
idempotencyKey: randomUUID12(),
|
|
47976
47998
|
body: payload
|
|
47977
47999
|
});
|
|
47978
48000
|
}
|
|
@@ -47980,7 +48002,7 @@ var init_client = __esm({
|
|
|
47980
48002
|
return this.request("/trading/cancel-order", {
|
|
47981
48003
|
method: "POST",
|
|
47982
48004
|
profileId,
|
|
47983
|
-
idempotencyKey:
|
|
48005
|
+
idempotencyKey: randomUUID12(),
|
|
47984
48006
|
body: payload
|
|
47985
48007
|
});
|
|
47986
48008
|
}
|
|
@@ -47999,7 +48021,7 @@ var init_client = __esm({
|
|
|
47999
48021
|
return this.request("/trading/ai/start", {
|
|
48000
48022
|
method: "POST",
|
|
48001
48023
|
profileId,
|
|
48002
|
-
idempotencyKey:
|
|
48024
|
+
idempotencyKey: randomUUID12(),
|
|
48003
48025
|
body: payload
|
|
48004
48026
|
});
|
|
48005
48027
|
}
|
|
@@ -48007,7 +48029,7 @@ var init_client = __esm({
|
|
|
48007
48029
|
return this.request("/trading/ai/stop", {
|
|
48008
48030
|
method: "POST",
|
|
48009
48031
|
profileId,
|
|
48010
|
-
idempotencyKey:
|
|
48032
|
+
idempotencyKey: randomUUID12(),
|
|
48011
48033
|
body: {}
|
|
48012
48034
|
});
|
|
48013
48035
|
}
|
|
@@ -48015,7 +48037,7 @@ var init_client = __esm({
|
|
|
48015
48037
|
return this.request("/trading/ai/assistant/start", {
|
|
48016
48038
|
method: "POST",
|
|
48017
48039
|
profileId,
|
|
48018
|
-
idempotencyKey:
|
|
48040
|
+
idempotencyKey: randomUUID12(),
|
|
48019
48041
|
body: {}
|
|
48020
48042
|
});
|
|
48021
48043
|
}
|
|
@@ -48023,7 +48045,7 @@ var init_client = __esm({
|
|
|
48023
48045
|
return this.request("/trading/ai/assistant/stop", {
|
|
48024
48046
|
method: "POST",
|
|
48025
48047
|
profileId,
|
|
48026
|
-
idempotencyKey:
|
|
48048
|
+
idempotencyKey: randomUUID12(),
|
|
48027
48049
|
body: {}
|
|
48028
48050
|
});
|
|
48029
48051
|
}
|
|
@@ -48031,7 +48053,7 @@ var init_client = __esm({
|
|
|
48031
48053
|
return this.request("/trading/ai/runtime/session/start", {
|
|
48032
48054
|
method: "POST",
|
|
48033
48055
|
profileId,
|
|
48034
|
-
idempotencyKey:
|
|
48056
|
+
idempotencyKey: randomUUID12(),
|
|
48035
48057
|
body: payload
|
|
48036
48058
|
});
|
|
48037
48059
|
}
|
|
@@ -48042,7 +48064,7 @@ var init_client = __esm({
|
|
|
48042
48064
|
return this.request("/trading/ai/runtime/session/stop", {
|
|
48043
48065
|
method: "POST",
|
|
48044
48066
|
profileId,
|
|
48045
|
-
idempotencyKey:
|
|
48067
|
+
idempotencyKey: randomUUID12(),
|
|
48046
48068
|
body: payload
|
|
48047
48069
|
});
|
|
48048
48070
|
}
|
|
@@ -48059,7 +48081,7 @@ var init_client = __esm({
|
|
|
48059
48081
|
}).request("/trading/ai/runtime/session/stop", {
|
|
48060
48082
|
method: "POST",
|
|
48061
48083
|
profileId,
|
|
48062
|
-
idempotencyKey:
|
|
48084
|
+
idempotencyKey: randomUUID12(),
|
|
48063
48085
|
body: payload
|
|
48064
48086
|
});
|
|
48065
48087
|
}
|
|
@@ -48076,7 +48098,7 @@ import {
|
|
|
48076
48098
|
unlinkSync,
|
|
48077
48099
|
writeFileSync
|
|
48078
48100
|
} from "node:fs";
|
|
48079
|
-
import { randomUUID as
|
|
48101
|
+
import { randomUUID as randomUUID13 } from "node:crypto";
|
|
48080
48102
|
import { dirname as dirname15 } from "node:path";
|
|
48081
48103
|
var parseStoredValues, FileBackedProtectionStorage, clientRuntimeProtectionStatePath;
|
|
48082
48104
|
var init_protection_storage = __esm({
|
|
@@ -48136,7 +48158,7 @@ var init_protection_storage = __esm({
|
|
|
48136
48158
|
mkdirSync(dirname15(this.path), { recursive: true, mode: 448 });
|
|
48137
48159
|
const serialized = `${JSON.stringify(values)}
|
|
48138
48160
|
`;
|
|
48139
|
-
const temporaryPath = `${this.path}.${process.pid}.${
|
|
48161
|
+
const temporaryPath = `${this.path}.${process.pid}.${randomUUID13()}.tmp`;
|
|
48140
48162
|
try {
|
|
48141
48163
|
writeFileSync(temporaryPath, serialized, {
|
|
48142
48164
|
encoding: "utf8",
|
|
@@ -48163,7 +48185,7 @@ var init_protection_storage = __esm({
|
|
|
48163
48185
|
});
|
|
48164
48186
|
|
|
48165
48187
|
// lib/agent-core/headless-runtime.ts
|
|
48166
|
-
import { randomUUID as
|
|
48188
|
+
import { randomUUID as randomUUID14 } from "node:crypto";
|
|
48167
48189
|
import { setTimeout as sleep } from "node:timers/promises";
|
|
48168
48190
|
function objectOrNull2(value) {
|
|
48169
48191
|
return value && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
@@ -48275,8 +48297,8 @@ async function runAndReportLocalWorkCycle(options, state, leaseToken, context) {
|
|
|
48275
48297
|
return Boolean(result2.decision || tradeSync || result2.afterDecision);
|
|
48276
48298
|
}
|
|
48277
48299
|
async function startHeadlessRuntime(options) {
|
|
48278
|
-
const runtimeSessionId =
|
|
48279
|
-
const deviceId = String(options.deviceId || "").trim() ||
|
|
48300
|
+
const runtimeSessionId = randomUUID14();
|
|
48301
|
+
const deviceId = String(options.deviceId || "").trim() || randomUUID14();
|
|
48280
48302
|
const startResponse = await options.client.startRuntime(options.profileId, {
|
|
48281
48303
|
session_id: runtimeSessionId,
|
|
48282
48304
|
device_id: deviceId,
|
|
@@ -64639,9 +64661,9 @@ var init_fragments = __esm({
|
|
|
64639
64661
|
}
|
|
64640
64662
|
const result2 = [];
|
|
64641
64663
|
while (this.#offset < top.match - 1) {
|
|
64642
|
-
const
|
|
64643
|
-
result2.push(this.#subTokenString(this.#offset + 1,
|
|
64644
|
-
this.#offset =
|
|
64664
|
+
const link2 = this.peek().linkNext;
|
|
64665
|
+
result2.push(this.#subTokenString(this.#offset + 1, link2));
|
|
64666
|
+
this.#offset = link2;
|
|
64645
64667
|
}
|
|
64646
64668
|
this.#offset = top.match + 1;
|
|
64647
64669
|
return result2;
|
|
@@ -69365,15 +69387,15 @@ var init_contract2 = __esm({
|
|
|
69365
69387
|
});
|
|
69366
69388
|
|
|
69367
69389
|
// node_modules/ethers/lib.esm/providers/ens-resolver.js
|
|
69368
|
-
function getIpfsLink(
|
|
69369
|
-
if (
|
|
69370
|
-
|
|
69371
|
-
} else if (
|
|
69372
|
-
|
|
69390
|
+
function getIpfsLink(link2) {
|
|
69391
|
+
if (link2.match(/^ipfs:\/\/ipfs\//i)) {
|
|
69392
|
+
link2 = link2.substring(12);
|
|
69393
|
+
} else if (link2.match(/^ipfs:\/\//i)) {
|
|
69394
|
+
link2 = link2.substring(7);
|
|
69373
69395
|
} else {
|
|
69374
|
-
assertArgument(false, "unsupported IPFS format", "link",
|
|
69396
|
+
assertArgument(false, "unsupported IPFS format", "link", link2);
|
|
69375
69397
|
}
|
|
69376
|
-
return `https://gateway.ipfs.io/ipfs/${
|
|
69398
|
+
return `https://gateway.ipfs.io/ipfs/${link2}`;
|
|
69377
69399
|
}
|
|
69378
69400
|
var MulticoinProviderPlugin, matcherIpfs, matchers, EnsResolver;
|
|
69379
69401
|
var init_ens_resolver = __esm({
|
|
@@ -93032,7 +93054,7 @@ var headless_local_worker_exports = {};
|
|
|
93032
93054
|
__export(headless_local_worker_exports, {
|
|
93033
93055
|
createHeadlessLocalWorker: () => createHeadlessLocalWorker
|
|
93034
93056
|
});
|
|
93035
|
-
import { randomUUID as
|
|
93057
|
+
import { randomUUID as randomUUID15 } from "node:crypto";
|
|
93036
93058
|
function objectOrNull3(value) {
|
|
93037
93059
|
return value && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
93038
93060
|
}
|
|
@@ -93461,7 +93483,7 @@ function createHeadlessLocalWorker(options) {
|
|
|
93461
93483
|
const statusMatch = errorText.match(/\b([45]\d{2})\b/);
|
|
93462
93484
|
const statusCode = statusMatch ? Number(statusMatch[1]) : null;
|
|
93463
93485
|
const failedInvocation = normalizeAiInvocationTelemetry({
|
|
93464
|
-
client_invocation_id:
|
|
93486
|
+
client_invocation_id: randomUUID15(),
|
|
93465
93487
|
use_case: "trader",
|
|
93466
93488
|
role: "primary",
|
|
93467
93489
|
attempt_index: 0,
|
|
@@ -93517,7 +93539,7 @@ function createHeadlessLocalWorker(options) {
|
|
|
93517
93539
|
billable_cached_input_tokens: normalizedUsage.cached_input_tokens
|
|
93518
93540
|
};
|
|
93519
93541
|
const invocation = normalizeAiInvocationTelemetry({
|
|
93520
|
-
client_invocation_id:
|
|
93542
|
+
client_invocation_id: randomUUID15(),
|
|
93521
93543
|
use_case: "trader",
|
|
93522
93544
|
role: "primary",
|
|
93523
93545
|
attempt_index: 0,
|
|
@@ -93781,7 +93803,7 @@ var vtx_exports = {};
|
|
|
93781
93803
|
__export(vtx_exports, {
|
|
93782
93804
|
runVtxCli: () => runVtxCli
|
|
93783
93805
|
});
|
|
93784
|
-
import { randomUUID as
|
|
93806
|
+
import { randomUUID as randomUUID16 } from "node:crypto";
|
|
93785
93807
|
import { spawn as spawn12 } from "node:child_process";
|
|
93786
93808
|
function render2(value, json2) {
|
|
93787
93809
|
if (json2) {
|
|
@@ -94195,8 +94217,8 @@ async function runVtxCli(argv2, env = process.env) {
|
|
|
94195
94217
|
});
|
|
94196
94218
|
return { exitCode: 0, stdout: render2(redactCliOutput(response2), json2), stderr: "" };
|
|
94197
94219
|
}
|
|
94198
|
-
const runtimeSessionId =
|
|
94199
|
-
const deviceId = config2.runtimeDeviceId ??
|
|
94220
|
+
const runtimeSessionId = randomUUID16();
|
|
94221
|
+
const deviceId = config2.runtimeDeviceId ?? randomUUID16();
|
|
94200
94222
|
const response = await client.startRuntime(profileId, {
|
|
94201
94223
|
session_id: runtimeSessionId,
|
|
94202
94224
|
device_id: deviceId,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vtxmacro/cli",
|
|
3
|
-
"version": "2026.9.
|
|
3
|
+
"version": "2026.9.54",
|
|
4
4
|
"description": "VTX Macro CLI, MCP server, and durable external inference host.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"undici": "8.10.0",
|
|
24
|
-
"@openai/codex": "0.
|
|
24
|
+
"@openai/codex": "0.155.0",
|
|
25
25
|
"@earendil-works/pi-coding-agent": "0.85.1",
|
|
26
26
|
"@earendil-works/pi-ai": "0.85.1",
|
|
27
27
|
"@earendil-works/pi-agent-core": "0.85.1",
|