@vtxmacro/cli 2026.10.2 → 2026.10.3

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 CHANGED
@@ -142,10 +142,10 @@ var VtxAgentClient = class _VtxAgentClient {
142
142
  body: payload
143
143
  });
144
144
  }
145
- pollBrowserLogin(loginCode) {
145
+ pollBrowserLogin(loginCode, verifier) {
146
146
  return this.request("/auth/agent-tokens/login/poll", {
147
147
  method: "POST",
148
- body: { login_code: loginCode }
148
+ body: { login_code: loginCode, verifier }
149
149
  });
150
150
  }
151
151
  revokeToken(tokenId, reason = "cli_revoked") {
@@ -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.10.2",
19
+ package_version: "2026.10.3",
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.10.2",
80
+ package_version: "2026.10.3",
81
81
  codex_package_name: "@openai/codex",
82
82
  codex_version: "0.155.0",
83
83
  copilot_sdk_package_name: "@github/copilot-sdk",
@@ -48455,10 +48455,10 @@ var init_client = __esm({
48455
48455
  body: payload
48456
48456
  });
48457
48457
  }
48458
- pollBrowserLogin(loginCode) {
48458
+ pollBrowserLogin(loginCode, verifier) {
48459
48459
  return this.request("/auth/agent-tokens/login/poll", {
48460
48460
  method: "POST",
48461
- body: { login_code: loginCode }
48461
+ body: { login_code: loginCode, verifier }
48462
48462
  });
48463
48463
  }
48464
48464
  revokeToken(tokenId, reason = "cli_revoked") {
@@ -56604,8 +56604,8 @@ var init_units = __esm({
56604
56604
  });
56605
56605
 
56606
56606
  // node_modules/ethers/lib.esm/utils/uuid.js
56607
- function uuidV4(randomBytes11) {
56608
- const bytes3 = getBytes(randomBytes11, "randomBytes");
56607
+ function uuidV4(randomBytes12) {
56608
+ const bytes3 = getBytes(randomBytes12, "randomBytes");
56609
56609
  bytes3[6] = bytes3[6] & 15 | 64;
56610
56610
  bytes3[8] = bytes3[8] & 63 | 128;
56611
56611
  const value = hexlify(bytes3);
@@ -60023,7 +60023,7 @@ function weierstrass(curveDef) {
60023
60023
  function prepSig(msgHash, privateKey, opts = defaultSigOpts) {
60024
60024
  if (["recovered", "canonical"].some((k) => k in opts))
60025
60025
  throw new Error("sign() legacy options not supported");
60026
- const { hash: hash4, randomBytes: randomBytes11 } = CURVE;
60026
+ const { hash: hash4, randomBytes: randomBytes12 } = CURVE;
60027
60027
  let { lowS, prehash, extraEntropy: ent } = opts;
60028
60028
  if (lowS == null)
60029
60029
  lowS = true;
@@ -60034,7 +60034,7 @@ function weierstrass(curveDef) {
60034
60034
  const d = normPrivateKeyToScalar(privateKey);
60035
60035
  const seedArgs = [int2octets(d), int2octets(h1int)];
60036
60036
  if (ent != null) {
60037
- const e = ent === true ? randomBytes11(Fp2.BYTES) : ent;
60037
+ const e = ent === true ? randomBytes12(Fp2.BYTES) : ent;
60038
60038
  seedArgs.push(ensureBytes("extraEntropy", e));
60039
60039
  }
60040
60040
  const seed = concatBytes2(...seedArgs);
@@ -77479,7 +77479,7 @@ var require_websocket = __commonJS({
77479
77479
  var http2 = __require("http");
77480
77480
  var net = __require("net");
77481
77481
  var tls = __require("tls");
77482
- var { randomBytes: randomBytes11, createHash: createHash14 } = __require("crypto");
77482
+ var { randomBytes: randomBytes12, createHash: createHash15 } = __require("crypto");
77483
77483
  var { Duplex, Readable } = __require("stream");
77484
77484
  var { URL: URL2 } = __require("url");
77485
77485
  var PerMessageDeflate2 = require_permessage_deflate();
@@ -78017,7 +78017,7 @@ var require_websocket = __commonJS({
78017
78017
  }
78018
78018
  }
78019
78019
  const defaultPort = isSecure ? 443 : 80;
78020
- const key = randomBytes11(16).toString("base64");
78020
+ const key = randomBytes12(16).toString("base64");
78021
78021
  const request = isSecure ? https2.request : http2.request;
78022
78022
  const protocolSet = /* @__PURE__ */ new Set();
78023
78023
  let perMessageDeflate;
@@ -78147,7 +78147,7 @@ var require_websocket = __commonJS({
78147
78147
  abortHandshake(websocket, socket, "Invalid Upgrade header");
78148
78148
  return;
78149
78149
  }
78150
- const digest2 = createHash14("sha1").update(key + GUID).digest("base64");
78150
+ const digest2 = createHash15("sha1").update(key + GUID).digest("base64");
78151
78151
  if (res.headers["sec-websocket-accept"] !== digest2) {
78152
78152
  abortHandshake(websocket, socket, "Invalid Sec-WebSocket-Accept header");
78153
78153
  return;
@@ -78525,7 +78525,7 @@ var require_websocket_server = __commonJS({
78525
78525
  var EventEmitter = __require("events");
78526
78526
  var http2 = __require("http");
78527
78527
  var { Duplex } = __require("stream");
78528
- var { createHash: createHash14 } = __require("crypto");
78528
+ var { createHash: createHash15 } = __require("crypto");
78529
78529
  var extension2 = require_extension();
78530
78530
  var PerMessageDeflate2 = require_permessage_deflate();
78531
78531
  var subprotocol2 = require_subprotocol();
@@ -78832,7 +78832,7 @@ var require_websocket_server = __commonJS({
78832
78832
  );
78833
78833
  }
78834
78834
  if (this._state > RUNNING) return abortHandshake(socket, 503);
78835
- const digest2 = createHash14("sha1").update(key + GUID).digest("base64");
78835
+ const digest2 = createHash15("sha1").update(key + GUID).digest("base64");
78836
78836
  const headers = [
78837
78837
  "HTTP/1.1 101 Switching Protocols",
78838
78838
  "Upgrade: websocket",
@@ -89406,7 +89406,9 @@ var init_runtime_execution = __esm({
89406
89406
  execution_metadata: {
89407
89407
  trigger_price: leg.triggerPrice,
89408
89408
  reason_code: reasonCode,
89409
- terminal_order_status: evidence.orderStatus
89409
+ terminal_order_status: evidence.orderStatus,
89410
+ protected_size: leg.size,
89411
+ position_tpsl: leg.positionTpsl === true || evidence.isPositionTpsl === true
89410
89412
  }
89411
89413
  };
89412
89414
  }
@@ -95222,7 +95224,7 @@ var vtx_exports = {};
95222
95224
  __export(vtx_exports, {
95223
95225
  runVtxCli: () => runVtxCli
95224
95226
  });
95225
- import { randomUUID as randomUUID16 } from "node:crypto";
95227
+ import { createHash as createHash14, randomBytes as randomBytes11, randomUUID as randomUUID16 } from "node:crypto";
95226
95228
  import { spawn as spawn12 } from "node:child_process";
95227
95229
  function render2(value, json2) {
95228
95230
  if (json2) {
@@ -95476,21 +95478,25 @@ async function runBrowserLogin(args, config2, json2) {
95476
95478
  apiUrl: config2.apiUrl,
95477
95479
  activeProfileId: config2.activeProfileId
95478
95480
  });
95479
- const started = await client.startBrowserLogin({ display_name: displayName, scopes });
95481
+ const verifier = randomBytes11(32).toString("base64url");
95482
+ const verifierHash = createHash14("sha256").update(verifier).digest("hex");
95483
+ const started = await client.startBrowserLogin({ display_name: displayName, scopes, verifier_hash: verifierHash });
95480
95484
  if (!noOpen) {
95481
95485
  try {
95482
95486
  openBrowser(started.verification_uri_complete);
95483
95487
  } catch {
95484
95488
  }
95485
95489
  }
95486
- const intro = json2 ? "" : `Open this URL to approve VTX CLI access:
95490
+ process.stderr.write(
95491
+ `Open this URL to approve VTX CLI access:
95487
95492
  ${started.verification_uri_complete}
95488
95493
 
95489
95494
  Waiting for approval...
95490
- `;
95495
+ `
95496
+ );
95491
95497
  const deadline = Date.now() + timeoutSeconds * 1e3;
95492
95498
  while (Date.now() < deadline) {
95493
- const polled = await client.pollBrowserLogin(started.login_code);
95499
+ const polled = await client.pollBrowserLogin(started.login_code, verifier);
95494
95500
  if (polled.status === "approved") {
95495
95501
  const token = String(polled.token || "").trim();
95496
95502
  if (!token) {
@@ -95499,7 +95505,7 @@ Waiting for approval...
95499
95505
  await writeStoredAgentAuth(config2.tokenPath, { token });
95500
95506
  return {
95501
95507
  exitCode: 0,
95502
- stdout: `${intro}${render2({ status: "logged_in", token_metadata: polled.token_metadata ?? null }, json2)}`,
95508
+ stdout: render2({ status: "logged_in", token_metadata: polled.token_metadata ?? null }, json2),
95503
95509
  stderr: ""
95504
95510
  };
95505
95511
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vtxmacro/cli",
3
- "version": "2026.10.2",
3
+ "version": "2026.10.3",
4
4
  "description": "VTX Macro CLI, MCP server, and durable external inference host.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",