@vtxmacro/cli 2026.10.52 → 2026.10.53

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
@@ -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.52", 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" } } };
46
+ agent_cli_release_default = { package_name: "@vtxmacro/cli", package_version: "2026.10.53", 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.52", 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" } } };
17
+ var agent_cli_release_default = { package_name: "@vtxmacro/cli", package_version: "2026.10.53", 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.52", 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" } } };
125
+ agent_cli_release_default = { package_name: "@vtxmacro/cli", package_version: "2026.10.53", 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
 
@@ -59016,7 +59016,7 @@ function getProfileHeaders(baseHeaders = {}, explicitProfileId) {
59016
59016
  if (profileId) headers["x-profile-id"] = profileId.toString();
59017
59017
  return headers;
59018
59018
  }
59019
- var configuredApiTransport, getApiUrl, browserCacheMode, sendApiRequest, apiFetch, sleep, DEVICE_CLOCK_HEADER, deviceClockHeader, API_NO_ROUTE_DETAIL, isMissingApiRoute, sendExchangeMutationReport, inFlightClientGetRequests, recentClientGetResponses, clientGetRequestGenerations, initializedClientGetRequestKeys, CLIENT_GET_DEDUPE_TTL_MS, CLIENT_RUNTIME_STATUSES_DEDUPE_TTL_MS, CLIENT_LLM_CONFIG_PRIME_TTL_MS, AUTH_BOOTSTRAP_GET_MAX_ATTEMPTS, AUTH_BOOTSTRAP_RETRY_JITTER_MS, singleUserHostCache, canUseClientGetRequestCache, clientGetRequestCacheActive, invalidateClientGetRequestCache, raceWithAbortSignal, shareClientGetRequest, clientGetRequestKey, clientPreferencesRequestKey, invalidateClientPreferencesCache, parseRetryAfterMs2, resolveAuthBootstrapRetryDelayMs, fetchAuthBootstrapGetWithRetry, annotateMarketDataRequestError, buildMarketDataFetchError, buildMarketDataNetworkError, buildMarketDataResponseBodyError, isTransientNetworkFetchError, createIdempotencyKey, getErrorMessage, getErrorPayloadOrEmpty, getErrorPayloadOrFallbackDetail, getErrorMessageFromResponse, throwUnauthorizedIfNeeded, activeProfileId, PROFILE_STORAGE_KEY;
59019
+ var configuredApiTransport, getApiUrl, withoutContentType, browserRequestInit, sendApiRequest, apiFetch, sleep, DEVICE_CLOCK_HEADER, deviceClockHeader, API_NO_ROUTE_DETAIL, isMissingApiRoute, sendExchangeMutationReport, inFlightClientGetRequests, recentClientGetResponses, clientGetRequestGenerations, initializedClientGetRequestKeys, CLIENT_GET_DEDUPE_TTL_MS, CLIENT_RUNTIME_STATUSES_DEDUPE_TTL_MS, CLIENT_LLM_CONFIG_PRIME_TTL_MS, AUTH_BOOTSTRAP_GET_MAX_ATTEMPTS, AUTH_BOOTSTRAP_RETRY_JITTER_MS, singleUserHostCache, canUseClientGetRequestCache, clientGetRequestCacheActive, invalidateClientGetRequestCache, raceWithAbortSignal, shareClientGetRequest, clientGetRequestKey, clientPreferencesRequestKey, invalidateClientPreferencesCache, parseRetryAfterMs2, resolveAuthBootstrapRetryDelayMs, fetchAuthBootstrapGetWithRetry, annotateMarketDataRequestError, buildMarketDataFetchError, buildMarketDataNetworkError, buildMarketDataResponseBodyError, isTransientNetworkFetchError, createIdempotencyKey, getErrorMessage, getErrorPayloadOrEmpty, getErrorPayloadOrFallbackDetail, getErrorMessageFromResponse, throwUnauthorizedIfNeeded, activeProfileId, PROFILE_STORAGE_KEY;
59020
59020
  var init_shared = __esm({
59021
59021
  "lib/api/shared.ts"() {
59022
59022
  "use strict";
@@ -59045,9 +59045,26 @@ var init_shared = __esm({
59045
59045
  RFC1918_172_BLOCK_SECOND_OCTET
59046
59046
  );
59047
59047
  };
59048
- browserCacheMode = (init2) => typeof window !== "undefined" && init2?.cache === "no-store" ? { ...init2, cache: "default" } : init2;
59048
+ withoutContentType = (headers) => {
59049
+ if (headers instanceof Headers) {
59050
+ const kept2 = new Headers(headers);
59051
+ kept2.delete("Content-Type");
59052
+ return kept2;
59053
+ }
59054
+ const entries = Array.isArray(headers) ? headers : Object.entries(headers);
59055
+ const kept = entries.filter(([name]) => name.toLowerCase() !== "content-type");
59056
+ return Array.isArray(headers) ? kept : Object.fromEntries(kept);
59057
+ };
59058
+ browserRequestInit = (init2) => {
59059
+ if (typeof window === "undefined" || !init2) return init2;
59060
+ const shaped = init2.cache === "no-store" ? { ...init2, cache: "default" } : init2;
59061
+ const method = (init2.method ?? "GET").toUpperCase();
59062
+ const bodyless = init2.body == null && (method === "GET" || method === "HEAD");
59063
+ if (!bodyless || !init2.headers || !new Headers(init2.headers).has("Content-Type")) return shaped;
59064
+ return { ...shaped, headers: withoutContentType(init2.headers) };
59065
+ };
59049
59066
  sendApiRequest = (input, requested) => {
59050
- const init2 = browserCacheMode(requested);
59067
+ const init2 = browserRequestInit(requested);
59051
59068
  const transport = configuredApiTransport;
59052
59069
  if (!transport) return fetch(input, init2);
59053
59070
  const headers = new Headers(init2?.headers ?? (input instanceof Request ? input.headers : void 0));
@@ -105499,7 +105516,7 @@ var init_native_position_protection = __esm({
105499
105516
  });
105500
105517
 
105501
105518
  // lib/runtime/native-protection-device.ts
105502
- var NATIVE_PROTECTION_RECORD_VERSION, nativeProtectionStorage, resolveStorage, setNativeProtectionStorage, recordKey, isMember, isRetracement, isLot, isStandbyAdd, readNativeProtectionRecord, versioned, writeNativeProtectionRecord, NO_FILLS, nativeFillsPageFromUserFills, fillsReader, flatReadOf, orderFillTimes, namedOrderId, NativeOrderNotSentError, withDispatchBoundary, attempt, notSentRestores, errorText, actionOf, isOpenInDirection2, coverRows, restingOrderIdAt, definitivelyRefused, TRAILING_LOT_FIRED, TRAILING_LOT_POSITION_ENDED, TRAILING_LOT_OTHER_SIDE, lotFillLeftPosition, lotOfAdd, ORDER_ID_PATTERN, lotFillOrderId, lotPositionSince, ownLotOrderIds, lotRetracement, lotReport, sendTrailingLot, planNativeFillLot, planNativeStandbyAdd, nameNativeStandbyAdd, dropNativeStandbyAdd, dropNativePendingLot, planNativePendingLot, planNativeOpen, recordEntryChildren, observeMembers, UNKNOWN_ORDER_RESPONSE, resolveUnknownOrderIds, plannedPair, resolveStandbyAdds, settleNativeProtectionAfterFill, reconcileNativeProtection;
105519
+ var NATIVE_PROTECTION_RECORD_VERSION, owesMove, owingMove, moveMade, nativeProtectionStorage, resolveStorage, setNativeProtectionStorage, recordKey, isMember, isRetracement, isLot, isStandbyAdd, readNativeProtectionRecord, versioned, writeNativeProtectionRecord, NO_FILLS, nativeFillsPageFromUserFills, fillsReader, flatReadOf, orderFillTimes, namedOrderId, NativeOrderNotSentError, withDispatchBoundary, attempt, notSentRestores, errorText, actionOf, isOpenInDirection2, coverRows, restingOrderIdAt, definitivelyRefused, TRAILING_LOT_FIRED, TRAILING_LOT_POSITION_ENDED, TRAILING_LOT_OTHER_SIDE, lotFillLeftPosition, lotOfAdd, ORDER_ID_PATTERN, lotFillOrderId, lotPositionSince, ownLotOrderIds, lotRetracement, lotReport, sendTrailingLot, planNativeFillLot, planNativeStandbyAdd, nameNativeStandbyAdd, dropNativeStandbyAdd, dropNativePendingLot, planNativePendingLot, planNativeOpen, recordEntryChildren, observeMembers, UNKNOWN_ORDER_RESPONSE, resolveUnknownOrderIds, cancellingThroughVtx, moveMember, plannedPair, resolveStandbyAdds, settleNativeProtectionAfterFill, reconcileNativeProtection;
105503
105520
  var init_native_protection_device = __esm({
105504
105521
  "lib/runtime/native-protection-device.ts"() {
105505
105522
  "use strict";
@@ -105513,6 +105530,20 @@ var init_native_protection_device = __esm({
105513
105530
  init_order_identity();
105514
105531
  init_native_position_protection();
105515
105532
  NATIVE_PROTECTION_RECORD_VERSION = 1;
105533
+ owesMove = (member) => member.pendingMove != null && (member.pendingMove.clientOrderId === member.clientOrderId || member.pendingMove.pendingClientOrderId != null && member.pendingMove.pendingClientOrderId === member.clientOrderId);
105534
+ owingMove = (member, afterMs) => ({
105535
+ ...member,
105536
+ pendingMove: {
105537
+ afterMs: Math.max(owesMove(member) ? member.pendingMove?.afterMs ?? 0 : 0, afterMs),
105538
+ clientOrderId: member.clientOrderId,
105539
+ // A modify journaled before this fill still owes this move once it is named.
105540
+ ...member.pendingModify ? { pendingClientOrderId: member.pendingModify.clientOrderId } : {}
105541
+ }
105542
+ });
105543
+ moveMade = (member) => {
105544
+ const { pendingMove: _made, ...rest } = member;
105545
+ return rest;
105546
+ };
105516
105547
  nativeProtectionStorage = null;
105517
105548
  resolveStorage = () => {
105518
105549
  if (nativeProtectionStorage) return nativeProtectionStorage;
@@ -105530,7 +105561,7 @@ var init_native_protection_device = __esm({
105530
105561
  isMember = (value) => {
105531
105562
  if (!value || typeof value !== "object") return false;
105532
105563
  const member = value;
105533
- return (member.kind === "sl" || member.kind === "tp") && typeof member.clientOrderId === "string" && (member.orderId === null || typeof member.orderId === "number" && Number.isSafeInteger(member.orderId)) && typeof member.trigger === "string" && (member.placedAtMs === null || typeof member.placedAtMs === "number") && typeof member.sentAtMs === "number" && typeof member.replacedOnce === "boolean" && (member.plannedAfterMs === void 0 || typeof member.plannedAfterMs === "number") && (member.pendingModify === void 0 || typeof member.pendingModify === "object" && member.pendingModify !== null && typeof member.pendingModify.clientOrderId === "string" && typeof member.pendingModify.trigger === "string" && typeof member.pendingModify.sentAtMs === "number");
105564
+ return (member.kind === "sl" || member.kind === "tp") && typeof member.clientOrderId === "string" && (member.orderId === null || typeof member.orderId === "number" && Number.isSafeInteger(member.orderId)) && typeof member.trigger === "string" && (member.placedAtMs === null || typeof member.placedAtMs === "number") && typeof member.sentAtMs === "number" && typeof member.replacedOnce === "boolean" && (member.plannedAfterMs === void 0 || typeof member.plannedAfterMs === "number") && (member.pendingMove === void 0 || typeof member.pendingMove === "object" && member.pendingMove !== null && Number.isFinite(member.pendingMove.afterMs) && typeof member.pendingMove.clientOrderId === "string" && (member.pendingMove.pendingClientOrderId === void 0 || typeof member.pendingMove.pendingClientOrderId === "string")) && (member.pendingModify === void 0 || typeof member.pendingModify === "object" && member.pendingModify !== null && typeof member.pendingModify.clientOrderId === "string" && typeof member.pendingModify.trigger === "string" && typeof member.pendingModify.sentAtMs === "number");
105534
105565
  };
105535
105566
  isRetracement = (value) => {
105536
105567
  if (!value || typeof value !== "object") return false;
@@ -105887,11 +105918,11 @@ var init_native_protection_device = __esm({
105887
105918
  recordEntryChildren = (record6, entryResponse) => ({
105888
105919
  ...record6,
105889
105920
  phase: "active",
105890
- members: record6.members.map((member, index) => ({
105921
+ members: record6.members.map((member, index) => owingMove({
105891
105922
  ...member,
105892
105923
  // The entry is member 0 of the action; its children follow in order.
105893
105924
  orderId: member.orderId ?? restingOrderIdAt(entryResponse, index + 1)
105894
- }))
105925
+ }, 0))
105895
105926
  });
105896
105927
  observeMembers = (record6, page) => record6.members.map((member) => ({
105897
105928
  member,
@@ -105936,6 +105967,82 @@ var init_native_protection_device = __esm({
105936
105967
  }
105937
105968
  return { ...record6, members };
105938
105969
  };
105970
+ cancellingThroughVtx = async (io, orderId) => {
105971
+ if (!io.userCancelledOrder) return false;
105972
+ try {
105973
+ return await io.userCancelledOrder(orderId);
105974
+ } catch (error48) {
105975
+ if (io.endsPass?.(error48)) throw error48;
105976
+ return true;
105977
+ }
105978
+ };
105979
+ moveMember = async (args) => {
105980
+ const { io, symbol: symbol2, member, orderId, trigger, clientOrderId } = args;
105981
+ const action = actionOf(member.kind);
105982
+ const sentAtMs = io.nowMs();
105983
+ const journaled = { ...member, orderId, pendingModify: { clientOrderId, trigger, sentAtMs } };
105984
+ if (!args.journal(journaled)) {
105985
+ return {
105986
+ member,
105987
+ landed: false,
105988
+ report: {
105989
+ order_id: String(orderId),
105990
+ symbol: symbol2,
105991
+ action,
105992
+ status: "failed",
105993
+ execution_metadata: { reason_code: "protective_lifecycle_persistence_failed", trigger_price: trigger }
105994
+ }
105995
+ };
105996
+ }
105997
+ const outcome = await notSentRestores(
105998
+ () => attempt(io, () => io.modifyPositionOrder({
105999
+ orderId,
106000
+ kind: member.kind,
106001
+ triggerPrice: Number(trigger),
106002
+ clientOrderId
106003
+ })),
106004
+ () => args.journal(member)
106005
+ );
106006
+ if (!outcome.ok && outcome.refused) {
106007
+ if (outcome.error instanceof NativeOrderNotSentError) args.journal(member);
106008
+ return {
106009
+ member: { ...member, orderId },
106010
+ landed: false,
106011
+ report: {
106012
+ order_id: String(orderId),
106013
+ symbol: symbol2,
106014
+ action,
106015
+ status: "failed",
106016
+ execution_metadata: {
106017
+ reason_code: outcome.error instanceof NativeOrderNotSentError ? "protective_modify_not_sent" : "protective_modify_rejected",
106018
+ trigger_price: trigger,
106019
+ error: errorText(outcome.error)
106020
+ }
106021
+ }
106022
+ };
106023
+ }
106024
+ const newOrderId = outcome.ok ? restingOrderIdAt(outcome.response, 0) : null;
106025
+ const { pendingModify: _applied, pendingMove: _moved, ...rest } = journaled;
106026
+ return {
106027
+ // Otherwise the journal stays: reconciliation names the new order or
106028
+ // proves it never landed.
106029
+ member: newOrderId != null ? { ...rest, clientOrderId, orderId: newOrderId, trigger, placedAtMs: null, sentAtMs } : journaled,
106030
+ landed: newOrderId != null,
106031
+ report: {
106032
+ order_id: String(newOrderId ?? orderId),
106033
+ symbol: symbol2,
106034
+ action,
106035
+ status: newOrderId != null ? "executed" : "failed",
106036
+ execution_metadata: {
106037
+ reason_code: newOrderId != null ? "protective_native_moved_to_position_entry" : "protective_modify_outcome_unknown",
106038
+ trigger_price: trigger,
106039
+ position_tpsl: true,
106040
+ protected_size: args.protectedSize,
106041
+ ...newOrderId != null ? { replaced_order_id: String(orderId) } : {}
106042
+ }
106043
+ }
106044
+ };
106045
+ };
105939
106046
  plannedPair = (settings, afterMs, io) => ["sl", "tp"].filter((kind) => (kind === "sl" ? settings.stopLoss : settings.takeProfit) != null).map((kind) => ({
105940
106047
  kind,
105941
106048
  clientOrderId: clientOrderIdForMutation(io.newMutationId()),
@@ -106051,6 +106158,13 @@ var init_native_protection_device = __esm({
106051
106158
  const settlingAdds = (record6.standby ?? []).length > 0;
106052
106159
  const boundary = await resolveStandbyAdds({ record: record6, settings: input.settings, io, fills, position, page });
106053
106160
  record6 = boundary.record;
106161
+ if (record6.phase === "entry_pending" || boundary.addFillMs != null) {
106162
+ const afterMs = boundary.addFillMs ?? 0;
106163
+ record6 = {
106164
+ ...record6,
106165
+ members: record6.members.map((member) => member.retiredReason || member.userCancelledOrderId != null || member.plannedAfterMs != null ? member : owingMove(member, afterMs))
106166
+ };
106167
+ }
106054
106168
  if (boundary.undecided) {
106055
106169
  return { record: record6, reports };
106056
106170
  }
@@ -106058,6 +106172,29 @@ var init_native_protection_device = __esm({
106058
106172
  if (record6.positionOrderId == null && boundary.addFillMs == null && !settlingAdds && ORDER_ID_PATTERN.test(entryOrderId)) {
106059
106173
  record6 = { ...record6, positionOrderId: entryOrderId };
106060
106174
  }
106175
+ const observations = observeMembers(record6, page);
106176
+ const restingTrigger = (kind) => {
106177
+ const observed = observations.find((entry) => entry.member.kind === kind);
106178
+ return observed?.row?.trigger_px != null ? String(observed.row.trigger_px) : null;
106179
+ };
106180
+ let eventMs = Math.max(
106181
+ 0,
106182
+ ...observations.map((entry) => entry.row?.timestamp ?? entry.member.placedAtMs ?? 0),
106183
+ // An add's own fill, the fill each member's move answers, and the fill a
106184
+ // planned pair answers: Hyperliquid's times.
106185
+ boundary.addFillMs ?? 0,
106186
+ ...record6.members.map((member) => Math.max(owesMove(member) ? member.pendingMove?.afterMs ?? 0 : 0, member.plannedAfterMs ?? 0))
106187
+ );
106188
+ if (eventMs <= 0 && input.entryOrderId) {
106189
+ const entryStatus = await io.readOrderStatus(input.entryOrderId);
106190
+ eventMs = entryStatus.statusTimestampMs ?? 0;
106191
+ }
106192
+ const gate = nativePlacementGate({
106193
+ eventMs,
106194
+ position: position.size,
106195
+ positionStateMs: position.stateTimeMs ?? Number.NEGATIVE_INFINITY,
106196
+ isLong: record6.isLong
106197
+ });
106061
106198
  if (!isOpenInDirection2(position.size, record6.isLong)) {
106062
106199
  reports.push({
106063
106200
  order_id: input.entryOrderId,
@@ -106069,13 +106206,15 @@ var init_native_protection_device = __esm({
106069
106206
  live_position_size: position.size
106070
106207
  }
106071
106208
  });
106072
- return { record: { ...record6, phase: "active" }, reports };
106209
+ return {
106210
+ record: {
106211
+ ...record6,
106212
+ phase: "active",
106213
+ ...gate === "not_required" ? { members: record6.members.map(moveMade) } : {}
106214
+ },
106215
+ reports
106216
+ };
106073
106217
  }
106074
- const observations = observeMembers(record6, page);
106075
- const restingTrigger = (kind) => {
106076
- const observed = observations.find((entry) => entry.member.kind === kind);
106077
- return observed?.row?.trigger_px != null ? String(observed.row.trigger_px) : null;
106078
- };
106079
106218
  if (position.entryPrice == null) {
106080
106219
  reports.push({
106081
106220
  order_id: input.entryOrderId,
@@ -106094,89 +106233,33 @@ var init_native_protection_device = __esm({
106094
106233
  fillSize: input.fillSize,
106095
106234
  resting: { sl: restingTrigger("sl"), tp: restingTrigger("tp") }
106096
106235
  });
106097
- let eventMs = Math.max(
106098
- 0,
106099
- ...observations.map((entry) => entry.row?.timestamp ?? entry.member.placedAtMs ?? 0),
106100
- // An add's own fill, and the fill a planned pair answers: Hyperliquid's times.
106101
- boundary.addFillMs ?? 0,
106102
- ...record6.members.map((member) => member.plannedAfterMs ?? 0)
106103
- );
106104
- if (eventMs <= 0 && input.entryOrderId) {
106105
- const entryStatus = await io.readOrderStatus(input.entryOrderId);
106106
- eventMs = entryStatus.statusTimestampMs ?? 0;
106107
- }
106108
- const gate = nativePlacementGate({
106109
- eventMs,
106110
- position: position.size,
106111
- positionStateMs: position.stateTimeMs ?? Number.NEGATIVE_INFINITY,
106112
- isLong: record6.isLong
106113
- });
106114
106236
  const members = [...record6.members];
106115
106237
  for (const step of actions) {
106116
106238
  if (step.action === "place_trailing") continue;
106117
106239
  const index = members.findIndex((member) => member.kind === step.kind);
106118
106240
  const existing = index >= 0 ? members[index] : null;
106119
106241
  if (existing?.userCancelledOrderId != null || existing?.retiredReason) continue;
106242
+ if (existing?.pendingModify) continue;
106120
106243
  const clientOrderId = clientOrderIdForMutation(io.newMutationId());
106121
106244
  if (step.action === "modify") {
106122
106245
  const row = observations.find((entry) => entry.member.kind === step.kind)?.row;
106123
106246
  if (!row) continue;
106124
- const sentAtMs2 = io.nowMs();
106125
- members[index] = {
106126
- ...members[index],
106127
- orderId: row.oid,
106128
- pendingModify: { clientOrderId, trigger: step.trigger, sentAtMs: sentAtMs2 }
106129
- };
106130
- if (!io.persist({ ...record6, phase: "active", members })) {
106131
- members[index] = existing;
106132
- reports.push({
106133
- order_id: String(row.oid),
106134
- symbol: symbol2,
106135
- action: actionOf(step.kind),
106136
- status: "failed",
106137
- execution_metadata: { reason_code: "protective_lifecycle_persistence_failed", trigger_price: step.trigger }
106138
- });
106139
- continue;
106140
- }
106141
- const outcome2 = await attempt(io, () => io.modifyPositionOrder({
106142
- orderId: row.oid,
106143
- kind: step.kind,
106144
- triggerPrice: Number(step.trigger),
106145
- clientOrderId
106146
- }));
106147
- if (!outcome2.ok && outcome2.refused) {
106148
- members[index] = { ...existing, orderId: row.oid };
106149
- reports.push({
106150
- order_id: String(row.oid),
106151
- symbol: symbol2,
106152
- action: actionOf(step.kind),
106153
- status: "failed",
106154
- execution_metadata: {
106155
- reason_code: outcome2.error instanceof NativeOrderNotSentError ? "protective_modify_not_sent" : "protective_modify_rejected",
106156
- trigger_price: step.trigger,
106157
- error: errorText(outcome2.error)
106158
- }
106159
- });
106160
- continue;
106161
- }
106162
- const newOrderId = outcome2.ok ? restingOrderIdAt(outcome2.response, 0) : null;
106163
- if (newOrderId != null) {
106164
- const { pendingModify: _applied, ...rest } = members[index];
106165
- members[index] = { ...rest, clientOrderId, orderId: newOrderId, trigger: step.trigger, placedAtMs: null, sentAtMs: sentAtMs2 };
106166
- }
106167
- reports.push({
106168
- order_id: String(newOrderId ?? row.oid),
106247
+ if (await cancellingThroughVtx(io, row.oid)) continue;
106248
+ const moved = await moveMember({
106249
+ io,
106169
106250
  symbol: symbol2,
106170
- action: actionOf(step.kind),
106171
- status: newOrderId != null ? "executed" : "failed",
106172
- execution_metadata: {
106173
- reason_code: newOrderId != null ? "protective_native_moved_to_position_entry" : "protective_modify_outcome_unknown",
106174
- trigger_price: step.trigger,
106175
- position_tpsl: true,
106176
- protected_size: Math.abs(position.size),
106177
- ...newOrderId != null ? { replaced_order_id: String(row.oid) } : {}
106251
+ member: members[index],
106252
+ orderId: row.oid,
106253
+ trigger: step.trigger,
106254
+ clientOrderId,
106255
+ protectedSize: Math.abs(position.size),
106256
+ journal: (member) => {
106257
+ members[index] = member;
106258
+ return io.persist({ ...record6, phase: "active", members });
106178
106259
  }
106179
106260
  });
106261
+ members[index] = moved.member;
106262
+ reports.push(moved.report);
106180
106263
  continue;
106181
106264
  }
106182
106265
  if (existing != null && existing.orderId == null && existing.plannedAfterMs == null && !unknownClientOrderIds.has(existing.clientOrderId)) {
@@ -106239,7 +106322,10 @@ var init_native_protection_device = __esm({
106239
106322
  () => io.persist({ ...record6, phase: "active", members: before })
106240
106323
  );
106241
106324
  if (!outcome.ok && outcome.refused) {
106242
- if (outcome.error instanceof NativeOrderNotSentError) members.splice(0, members.length, ...before);
106325
+ if (outcome.error instanceof NativeOrderNotSentError) {
106326
+ members.splice(0, members.length, ...before);
106327
+ io.persist({ ...record6, phase: "active", members: before });
106328
+ }
106243
106329
  reports.push({
106244
106330
  order_id: null,
106245
106331
  symbol: symbol2,
@@ -106340,7 +106426,12 @@ var init_native_protection_device = __esm({
106340
106426
  }
106341
106427
  });
106342
106428
  }
106343
- record6 = { ...record6, phase: "active", members, ...lots.length > 0 ? { lots } : {} };
106429
+ const movingKinds = new Set(actions.flatMap((step) => step.action === "modify" ? [step.kind] : []));
106430
+ const settledMembers = members.map((member) => {
106431
+ if (member.pendingMove && !owesMove(member)) return moveMade(member);
106432
+ return gate === "place" && member.pendingMove && !member.pendingModify && !movingKinds.has(member.kind) && observations.some((entry) => entry.row != null && entry.member.orderId === member.orderId) ? moveMade(member) : member;
106433
+ });
106434
+ record6 = { ...record6, phase: "active", members: settledMembers, ...lots.length > 0 ? { lots } : {} };
106344
106435
  return { record: record6, reports };
106345
106436
  };
106346
106437
  reconcileNativeProtection = async (input) => {
@@ -106394,6 +106485,24 @@ var init_native_protection_device = __esm({
106394
106485
  }) : null;
106395
106486
  };
106396
106487
  const kindEnabled = (member) => (member.kind === "sl" ? input.settings.stopLoss : input.settings.takeProfit) != null;
106488
+ const movable = positionOpen && !undecidedAdds && position.entryPrice != null;
106489
+ const moveTargets = /* @__PURE__ */ new Map();
106490
+ if (movable && position.entryPrice != null && record6.members.some(owesMove)) {
106491
+ const restingTrigger = (kind) => {
106492
+ const observed = observations.find((entry) => entry.member.kind === kind && entry.row != null && !entry.member.retiredReason && entry.member.userCancelledOrderId == null);
106493
+ return observed?.row?.trigger_px != null ? String(observed.row.trigger_px) : null;
106494
+ };
106495
+ for (const step of nativeAfterFillActions({
106496
+ settings: { ...input.settings, stopLoss: input.settings.stopLoss && { ...input.settings.stopLoss, trailing: false } },
106497
+ isLong: record6.isLong,
106498
+ sizeDecimals: input.sizeDecimals,
106499
+ position: { size: position.size, entryPrice: position.entryPrice },
106500
+ fillSize: "0",
106501
+ resting: { sl: restingTrigger("sl"), tp: restingTrigger("tp") }
106502
+ })) {
106503
+ if (step.action === "modify") moveTargets.set(step.kind, step.trigger);
106504
+ }
106505
+ }
106397
106506
  const placeMember = async (args) => {
106398
106507
  const gate = nativePlacementGate({
106399
106508
  eventMs: args.eventMs,
@@ -106532,6 +106641,47 @@ var init_native_protection_device = __esm({
106532
106641
  }
106533
106642
  continue;
106534
106643
  }
106644
+ if (member.pendingMove && !owesMove(member)) {
106645
+ anyResting = true;
106646
+ members.push(moveMade(member));
106647
+ continue;
106648
+ }
106649
+ if (member.pendingMove && movable && !member.retiredReason && member.userCancelledOrderId == null && !member.pendingModify && nativePlacementGate({
106650
+ eventMs: Math.max(member.pendingMove.afterMs, member.placedAtMs ?? 0),
106651
+ position: position.size,
106652
+ positionStateMs: stateMs,
106653
+ isLong: record6.isLong
106654
+ }) === "place") {
106655
+ const target = moveTargets.get(member.kind);
106656
+ if (target === void 0) {
106657
+ anyResting = true;
106658
+ members.push(moveMade(member));
106659
+ continue;
106660
+ }
106661
+ if (!await cancellingThroughVtx(io, row.oid)) {
106662
+ const moved = await moveMember({
106663
+ io,
106664
+ symbol: symbol2,
106665
+ member,
106666
+ orderId: row.oid,
106667
+ trigger: target,
106668
+ clientOrderId: clientOrderIdForMutation(io.newMutationId()),
106669
+ protectedSize: Math.abs(position.size),
106670
+ journal: (next) => io.persist({
106671
+ ...record6,
106672
+ members: [
106673
+ ...members,
106674
+ next,
106675
+ ...observations.slice(observationIndex + 1).map((entry) => entry.member)
106676
+ ]
106677
+ })
106678
+ });
106679
+ reports.push(moved.report);
106680
+ anyResting = true;
106681
+ members.push(moved.member);
106682
+ continue;
106683
+ }
106684
+ }
106535
106685
  anyResting = true;
106536
106686
  members.push(member);
106537
106687
  continue;
@@ -106545,9 +106695,20 @@ var init_native_protection_device = __esm({
106545
106695
  members.push(member);
106546
106696
  continue;
106547
106697
  }
106548
- if (member.orderId != null && io.userCancelledOrder && await io.userCancelledOrder(member.orderId)) {
106549
- members.push({ ...member, userCancelledOrderId: member.orderId });
106550
- continue;
106698
+ if (member.orderId != null && io.userCancelledOrder) {
106699
+ let cancelledByUser;
106700
+ try {
106701
+ cancelledByUser = await io.userCancelledOrder(member.orderId);
106702
+ } catch (error48) {
106703
+ if (io.endsPass?.(error48)) throw error48;
106704
+ anyResting = true;
106705
+ members.push(member);
106706
+ continue;
106707
+ }
106708
+ if (cancelledByUser) {
106709
+ members.push({ ...member, userCancelledOrderId: member.orderId });
106710
+ continue;
106711
+ }
106551
106712
  }
106552
106713
  if (member.plannedAfterMs != null) {
106553
106714
  if (!kindEnabled(member)) continue;
@@ -115352,6 +115513,7 @@ async function invokeProfileModelCascade(input) {
115352
115513
  if (Array.isArray(observed)) attempts = observed;
115353
115514
  if (error48 instanceof Error) error48.runtimeInvocationAttempts = attempts;
115354
115515
  const ownAttempts = attempts.filter((attempt2) => !priorIds.has(attempt2.client_invocation_id));
115516
+ if (error48 instanceof Error) Object.assign(error48, { runtimeOwnInvocationAttempts: ownAttempts });
115355
115517
  if (error48 instanceof Error) failedModels.push(fallbackAttemptFor(entry, error48, ownAttempts));
115356
115518
  if (index === entries.length - 1 || !canAdvanceProfileModel(error48, entry.kind === "external_agent" || entry.source === "external_agent", input.signal, ownAttempts)) surface(error48);
115357
115519
  lastFailure = error48;
@@ -115396,7 +115558,8 @@ var init_profile_model_cascade = __esm({
115396
115558
  // lib/runtime/model-call-failure.ts
115397
115559
  function describeModelCallFailure(error48, options = {}) {
115398
115560
  const attempts = failureAttempts(error48);
115399
- const last = attempts.at(-1);
115561
+ const ownAttempts = ownFailureAttempts(error48, options.ownAttempts);
115562
+ const last = (ownAttempts ?? attempts).at(-1);
115400
115563
  const message = getSanitizedRuntimeErrorMessage(error48) || (error48 instanceof Error ? error48.message : String(error48 ?? "")) || "The model call failed.";
115401
115564
  const status = typeof last?.provider_status_code === "number" ? last.provider_status_code : error48?.runtimeProviderStatusCode;
115402
115565
  const statusCode = typeof status === "number" && Number.isInteger(status) ? status : null;
@@ -115415,16 +115578,17 @@ function describeModelCallFailure(error48, options = {}) {
115415
115578
  detail: typeof diagnostic === "string" && diagnostic ? diagnostic : message,
115416
115579
  class: failureClass,
115417
115580
  // The provider client marks each failed attempt it would retry (a rate
115418
- // limit, a server error, a 408, a timeout, a dropped connection).
115419
- transient: !cancelled && last?.status === "failed" && last.retryable === true,
115420
- model_fallback_safe: !cancelled && canAdvanceProfileModel(error48, Boolean(options.external), options.signal),
115581
+ // limit, a server error, a 408, a timeout, a dropped connection). An empty
115582
+ // reply it has already asked again for, up to its own limit.
115583
+ transient: !cancelled && !emptyReply && last?.status === "failed" && last.retryable === true,
115584
+ model_fallback_safe: !cancelled && canAdvanceProfileModel(error48, Boolean(options.external), options.signal, ownAttempts),
115421
115585
  outcome_unknown: attempts.some((attempt2) => attempt2.status !== "succeeded" && attempt2.provider_status_code == null && !isNeverSentInvocation(attempt2)) || /outcome.?unknown|dispatch.?unknown/i.test(message),
115422
115586
  partial_output: partialOutput,
115423
115587
  retry_after_seconds: retryHintSeconds(last, error48),
115424
115588
  status_code: statusCode
115425
115589
  };
115426
115590
  }
115427
- var FAILURE_CODE_CLASSES, failureAttempts, retryHintSeconds;
115591
+ var FAILURE_CODE_CLASSES, failureAttempts, ownFailureAttempts, failingModelAttempts, retryHintSeconds;
115428
115592
  var init_model_call_failure = __esm({
115429
115593
  "lib/runtime/model-call-failure.ts"() {
115430
115594
  "use strict";
@@ -115454,6 +115618,12 @@ var init_model_call_failure = __esm({
115454
115618
  const attempts = error48?.runtimeInvocationAttempts;
115455
115619
  return Array.isArray(attempts) ? attempts : [];
115456
115620
  };
115621
+ ownFailureAttempts = (error48, ownAttempts) => {
115622
+ if (ownAttempts) return ownAttempts;
115623
+ const attached = error48?.runtimeOwnInvocationAttempts;
115624
+ return Array.isArray(attached) ? attached : void 0;
115625
+ };
115626
+ failingModelAttempts = (error48) => ownFailureAttempts(error48) ?? failureAttempts(error48);
115457
115627
  retryHintSeconds = (attempt2, error48) => {
115458
115628
  const diagnostics = attempt2?.provider_diagnostics ?? {};
115459
115629
  const hints = [
@@ -115484,7 +115654,8 @@ function serverModelCallFailure(reason, evidence) {
115484
115654
  }
115485
115655
  if (!terminal || terminal.status !== "failed") return null;
115486
115656
  const failure2 = describeModelCallFailure(reason);
115487
- const transient = failure2.class !== "out_of_credit" && (failure2.class === "rate_limit" || failure2.class === "provider_unavailable" || terminal.provider_status_code === HTTP_STATUS.TOO_MANY_REQUESTS || googleEgressUnreachable(terminal));
115657
+ const ownTerminal = failingModelAttempts(reason).at(-1);
115658
+ const transient = failure2.class !== "out_of_credit" && (failure2.class === "rate_limit" || failure2.class === "provider_unavailable" || failure2.status_code === HTTP_STATUS.TOO_MANY_REQUESTS || ownTerminal !== void 0 && googleEgressUnreachable(ownTerminal));
115488
115659
  return {
115489
115660
  report: { class: failure2.class, transient },
115490
115661
  overloaded: false,
@@ -115559,7 +115730,7 @@ var init_browser_observability = __esm({
115559
115730
  init_define_VTX_GROK_POLICY();
115560
115731
  init_define_VTX_PI_MODEL_POLICY();
115561
115732
  init_runtime_policy_generated2();
115562
- CLIENT_SOURCE_VERSION = typeof process !== "undefined" && true && "05e1243254ebccb6045684218396b0d4cd9f6495".trim() && "05e1243254ebccb6045684218396b0d4cd9f6495".trim() !== "unstamped" ? "05e1243254ebccb6045684218396b0d4cd9f6495".trim() : null;
115733
+ CLIENT_SOURCE_VERSION = typeof process !== "undefined" && true && "bca614db2bfe3a23799f3a565b8b0f5338f01287".trim() && "bca614db2bfe3a23799f3a565b8b0f5338f01287".trim() !== "unstamped" ? "bca614db2bfe3a23799f3a565b8b0f5338f01287".trim() : null;
115563
115734
  listenersInstalled = false;
115564
115735
  state = {
115565
115736
  loadedAtMs: Date.now(),
@@ -124607,6 +124778,7 @@ var init_provider_client = __esm({
124607
124778
  const normalized = detail.toLowerCase();
124608
124779
  if (isProviderOutOfCreditText(detail) || isProviderOutOfCreditReply(statusCode, "")) return PROVIDER_OUT_OF_CREDIT_FAILURE_CODE;
124609
124780
  if (statusCode === HTTP_STATUS.TOO_MANY_REQUESTS) return "rate_limit";
124781
+ if (isProviderServerErrorStatus(statusCode)) return "provider_error";
124610
124782
  if (statusCode === HTTP_STATUS.UNAUTHORIZED || statusCode === HTTP_STATUS.FORBIDDEN || normalized.includes("unauthorized") || normalized.includes("forbidden")) {
124611
124783
  return "authorization";
124612
124784
  }
@@ -127538,9 +127710,9 @@ var init_local_analysis = __esm({
127538
127710
  RUNTIME_SOURCE_DEFINITION_VERSION = "runtime-source-v1";
127539
127711
  DECISION_INPUT_DEFINITION_VERSION = "decision-input-v1";
127540
127712
  CONTEXT_ENVELOPE_DEFINITION_VERSION = "context-envelope-v2.1";
127541
- CLIENT_RUNTIME_SOURCE_VERSION = typeof process !== "undefined" && true && "05e1243254ebccb6045684218396b0d4cd9f6495".trim() && !["unknown", "unstamped", "development"].includes(
127542
- "05e1243254ebccb6045684218396b0d4cd9f6495".trim().toLowerCase()
127543
- ) ? "05e1243254ebccb6045684218396b0d4cd9f6495".trim() : null;
127713
+ CLIENT_RUNTIME_SOURCE_VERSION = typeof process !== "undefined" && true && "bca614db2bfe3a23799f3a565b8b0f5338f01287".trim() && !["unknown", "unstamped", "development"].includes(
127714
+ "bca614db2bfe3a23799f3a565b8b0f5338f01287".trim().toLowerCase()
127715
+ ) ? "bca614db2bfe3a23799f3a565b8b0f5338f01287".trim() : null;
127544
127716
  CLIENT_MAIN_PROMPT_RENDERER = "client_runtime.buildLocalRuntimePromptArtifacts:v1";
127545
127717
  CLIENT_REVIEW_PROMPT_RENDERER = "client_runtime.review_prompt_assembly:v1";
127546
127718
  resolveEffectivePromptRuntimeProvenance = (input) => ({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vtxmacro/cli",
3
- "version": "2026.10.52",
3
+ "version": "2026.10.53",
4
4
  "description": "VTX Macro CLI, MCP server, and durable external inference host.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",