@vtxmacro/cli 2026.10.29 → 2026.10.31

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.
@@ -991,6 +991,7 @@ var runtime_policy_generated_default = {
991
991
  oauth_login_timeout_ms: 6e5,
992
992
  mcp_request_timeout_ms: 15e3,
993
993
  mcp_retry_after_max_ms: 864e5,
994
+ mcp_rejection_reason_max_chars: 300,
994
995
  credential_command_timeout_ms: 15e3,
995
996
  credential_command_termination_timeout_ms: 5e3,
996
997
  credential_command_output_max_bytes: 1048576,
@@ -1303,7 +1304,8 @@ var runtime_policy_generated_default = {
1303
1304
  running_report_interval_seconds: 5,
1304
1305
  page_start_wait_seconds: 45,
1305
1306
  page_start_poll_seconds: 1,
1306
- profiles_read_timeout_seconds: 30
1307
+ profiles_read_timeout_seconds: 30,
1308
+ command_notice_reconnect_max_seconds: 60
1307
1309
  }
1308
1310
  },
1309
1311
  websocket: {
package/bin/vtx-mcp.js CHANGED
@@ -37,7 +37,7 @@ var init_define_VTX_PI_MODEL_POLICY = __esm({
37
37
  var agent_cli_release_default;
38
38
  var init_agent_cli_release = __esm({
39
39
  "agent-cli-release.json"() {
40
- agent_cli_release_default = { package_name: "@vtxmacro/cli", package_version: "2026.10.29", 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" } } };
40
+ agent_cli_release_default = { package_name: "@vtxmacro/cli", package_version: "2026.10.31", 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" } } };
41
41
  }
42
42
  });
43
43
 
@@ -2228,6 +2228,7 @@ var runtime_policy_generated_default = {
2228
2228
  oauth_login_timeout_ms: 6e5,
2229
2229
  mcp_request_timeout_ms: 15e3,
2230
2230
  mcp_retry_after_max_ms: 864e5,
2231
+ mcp_rejection_reason_max_chars: 300,
2231
2232
  credential_command_timeout_ms: 15e3,
2232
2233
  credential_command_termination_timeout_ms: 5e3,
2233
2234
  credential_command_output_max_bytes: 1048576,
@@ -2540,7 +2541,8 @@ var runtime_policy_generated_default = {
2540
2541
  running_report_interval_seconds: 5,
2541
2542
  page_start_wait_seconds: 45,
2542
2543
  page_start_poll_seconds: 1,
2543
- profiles_read_timeout_seconds: 30
2544
+ profiles_read_timeout_seconds: 30,
2545
+ command_notice_reconnect_max_seconds: 60
2544
2546
  }
2545
2547
  },
2546
2548
  websocket: {
@@ -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.29", 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.31", 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 = {
@@ -935,6 +935,7 @@ var runtime_policy_generated_default = {
935
935
  oauth_login_timeout_ms: 6e5,
936
936
  mcp_request_timeout_ms: 15e3,
937
937
  mcp_retry_after_max_ms: 864e5,
938
+ mcp_rejection_reason_max_chars: 300,
938
939
  credential_command_timeout_ms: 15e3,
939
940
  credential_command_termination_timeout_ms: 5e3,
940
941
  credential_command_output_max_bytes: 1048576,
@@ -1247,7 +1248,8 @@ var runtime_policy_generated_default = {
1247
1248
  running_report_interval_seconds: 5,
1248
1249
  page_start_wait_seconds: 45,
1249
1250
  page_start_poll_seconds: 1,
1250
- profiles_read_timeout_seconds: 30
1251
+ profiles_read_timeout_seconds: 30,
1252
+ command_notice_reconnect_max_seconds: 60
1251
1253
  }
1252
1254
  },
1253
1255
  websocket: {
@@ -919,6 +919,7 @@ var runtime_policy_generated_default = {
919
919
  oauth_login_timeout_ms: 6e5,
920
920
  mcp_request_timeout_ms: 15e3,
921
921
  mcp_retry_after_max_ms: 864e5,
922
+ mcp_rejection_reason_max_chars: 300,
922
923
  credential_command_timeout_ms: 15e3,
923
924
  credential_command_termination_timeout_ms: 5e3,
924
925
  credential_command_output_max_bytes: 1048576,
@@ -1231,7 +1232,8 @@ var runtime_policy_generated_default = {
1231
1232
  running_report_interval_seconds: 5,
1232
1233
  page_start_wait_seconds: 45,
1233
1234
  page_start_poll_seconds: 1,
1234
- profiles_read_timeout_seconds: 30
1235
+ profiles_read_timeout_seconds: 30,
1236
+ command_notice_reconnect_max_seconds: 60
1235
1237
  }
1236
1238
  },
1237
1239
  websocket: {
package/bin/vtx.js CHANGED
@@ -113,7 +113,7 @@ var init_routing = __esm({
113
113
  var agent_cli_release_default;
114
114
  var init_agent_cli_release = __esm({
115
115
  "agent-cli-release.json"() {
116
- agent_cli_release_default = { package_name: "@vtxmacro/cli", package_version: "2026.10.29", 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" } } };
116
+ agent_cli_release_default = { package_name: "@vtxmacro/cli", package_version: "2026.10.31", 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" } } };
117
117
  }
118
118
  });
119
119
 
@@ -1039,6 +1039,7 @@ var init_runtime_policy_generated = __esm({
1039
1039
  oauth_login_timeout_ms: 6e5,
1040
1040
  mcp_request_timeout_ms: 15e3,
1041
1041
  mcp_retry_after_max_ms: 864e5,
1042
+ mcp_rejection_reason_max_chars: 300,
1042
1043
  credential_command_timeout_ms: 15e3,
1043
1044
  credential_command_termination_timeout_ms: 5e3,
1044
1045
  credential_command_output_max_bytes: 1048576,
@@ -1351,7 +1352,8 @@ var init_runtime_policy_generated = __esm({
1351
1352
  running_report_interval_seconds: 5,
1352
1353
  page_start_wait_seconds: 45,
1353
1354
  page_start_poll_seconds: 1,
1354
- profiles_read_timeout_seconds: 30
1355
+ profiles_read_timeout_seconds: 30,
1356
+ command_notice_reconnect_max_seconds: 60
1355
1357
  }
1356
1358
  },
1357
1359
  websocket: {
@@ -20867,6 +20869,7 @@ var init_runtime_policy_generated2 = __esm({
20867
20869
  oauth_login_timeout_ms: 6e5,
20868
20870
  mcp_request_timeout_ms: 15e3,
20869
20871
  mcp_retry_after_max_ms: 864e5,
20872
+ mcp_rejection_reason_max_chars: 300,
20870
20873
  credential_command_timeout_ms: 15e3,
20871
20874
  credential_command_termination_timeout_ms: 5e3,
20872
20875
  credential_command_output_max_bytes: 1048576,
@@ -21179,7 +21182,8 @@ var init_runtime_policy_generated2 = __esm({
21179
21182
  running_report_interval_seconds: 5,
21180
21183
  page_start_wait_seconds: 45,
21181
21184
  page_start_poll_seconds: 1,
21182
- profiles_read_timeout_seconds: 30
21185
+ profiles_read_timeout_seconds: 30,
21186
+ command_notice_reconnect_max_seconds: 60
21183
21187
  }
21184
21188
  },
21185
21189
  websocket: {
@@ -25102,7 +25106,7 @@ var init_mcp_transport = __esm({
25102
25106
  });
25103
25107
 
25104
25108
  // lib/inference-host/mcp-client.ts
25105
- var EXTERNAL_INFERENCE_MCP_PROTOCOL_VERSION, EXTERNAL_INFERENCE_AUTOMATED_HOST_TOOLS, EXTERNAL_INFERENCE_OPERATIONAL_TOOLS, ClaimTiming, ExternalInferenceMcpError, DEFAULT_REQUEST_TIMEOUT_MS, MAX_RETRY_AFTER_MS, SSE_DATA_FIELD_PREFIX, PUBLIC_TOOL_ERROR_PREFIX, parseRetryAfterMs, identifierSchema2, safeCodeSchema2, publicFailureCodeSchema, publicToolErrorSchema, structuredPublicToolErrorSchema, parsePublicToolError, hostMutationResultSchema, attemptStartResultSchema, agentConnectResultSchema, agentHeartbeatResultSchema, timestampSchema2, positiveGenerationSchema, jsonObjectSchema, agentAssignmentNextArgumentsSchema, agentDataCapabilityDescriptorSchema, agentAssignmentNextResultSchema, agentAssignmentHeartbeatArgumentsSchema, agentAssignmentHeartbeatResultSchema, agentDataCallArgumentsSchema, agentDataCallResultSchema, agentDecisionTimingSchema, agentDecisionSubmitArgumentsSchema, agentDecisionSubmitResultSchema, agentDecisionStatusArgumentsSchema, agentDecisionStatusResultSchema, agentAssignmentReleaseArgumentsSchema, agentAssignmentReleaseResultSchema, jobCompletionResultSchema, jobFailureResultSchema, toolContracts, discoveryResultSchema, toolListResultSchema, inlineStructuredContentSchema, protocolMeta, parseJsonDocument, parseSseDocuments, parseResponseDocuments, exactOperationalInventory, exactJson, invalidBoundResult, verifyToolResult, ExternalInferenceMcpClient;
25109
+ var EXTERNAL_INFERENCE_MCP_PROTOCOL_VERSION, EXTERNAL_INFERENCE_AUTOMATED_HOST_TOOLS, EXTERNAL_INFERENCE_OPERATIONAL_TOOLS, ClaimTiming, ExternalInferenceMcpError, DEFAULT_REQUEST_TIMEOUT_MS, MAX_RETRY_AFTER_MS, SSE_DATA_FIELD_PREFIX, PUBLIC_TOOL_ERROR_PREFIX, parseRetryAfterMs, identifierSchema2, safeCodeSchema2, publicFailureCodeSchema, publicToolErrorSchema, structuredPublicToolErrorSchema, MAX_REJECTION_REASON_CHARS, CONTROL_CHARACTERS, publicRejectionReason, parsePublicToolError, hostMutationResultSchema, attemptStartResultSchema, agentConnectResultSchema, agentHeartbeatResultSchema, timestampSchema2, positiveGenerationSchema, jsonObjectSchema, agentAssignmentNextArgumentsSchema, agentDataCapabilityDescriptorSchema, agentAssignmentNextResultSchema, agentAssignmentHeartbeatArgumentsSchema, agentAssignmentHeartbeatResultSchema, agentDataCallArgumentsSchema, agentDataCallResultSchema, agentDecisionTimingSchema, agentDecisionSubmitArgumentsSchema, agentDecisionSubmitResultSchema, agentDecisionStatusArgumentsSchema, agentDecisionStatusResultSchema, agentAssignmentReleaseArgumentsSchema, agentAssignmentReleaseResultSchema, jobCompletionResultSchema, jobFailureResultSchema, toolContracts, discoveryResultSchema, toolListResultSchema, inlineStructuredContentSchema, protocolMeta, parseJsonDocument, parseSseDocuments, parseResponseDocuments, exactOperationalInventory, exactJson, invalidBoundResult, verifyToolResult, ExternalInferenceMcpClient;
25106
25110
  var init_mcp_client = __esm({
25107
25111
  "lib/inference-host/mcp-client.ts"() {
25108
25112
  "use strict";
@@ -25288,6 +25292,15 @@ var init_mcp_client = __esm({
25288
25292
  structuredPublicToolErrorSchema = publicToolErrorSchema.extend({
25289
25293
  schema_version: external_exports.literal("vtx_insights_tool_error_v1")
25290
25294
  });
25295
+ MAX_REJECTION_REASON_CHARS = runtime_policy_generated_default2.external_inference.host_core.mcp_rejection_reason_max_chars;
25296
+ CONTROL_CHARACTERS = /[\u0000-\u001f\u007f]/gu;
25297
+ publicRejectionReason = (text) => {
25298
+ const marker = text.indexOf(PUBLIC_TOOL_ERROR_PREFIX);
25299
+ const [firstLine = ""] = (marker < 0 ? text : text.slice(0, marker)).split("\n");
25300
+ const reason = firstLine.replace(CONTROL_CHARACTERS, " ").trim();
25301
+ if (!reason) return null;
25302
+ return reason.length > MAX_REJECTION_REASON_CHARS ? `${reason.slice(0, MAX_REJECTION_REASON_CHARS)}\u2026` : reason;
25303
+ };
25291
25304
  parsePublicToolError = (text) => {
25292
25305
  const marker = text.lastIndexOf(PUBLIC_TOOL_ERROR_PREFIX);
25293
25306
  if (marker < 0) return null;
@@ -26061,7 +26074,8 @@ var init_mcp_client = __esm({
26061
26074
  const hasPublicToolErrorMarker = hasStructuredPublicToolErrorMarker || errorText2.includes(PUBLIC_TOOL_ERROR_PREFIX);
26062
26075
  const completionEvidenceExpired = name === "inference.job.complete" && (publicToolError ? publicToolError.failure_code === "completion_evidence_expired" && publicToolError.phase === "validation" && publicToolError.retryable === false && publicToolError.terminal_before_execution === true : !hasPublicToolErrorMarker && errorText2.includes("External inference completion evidence window expired"));
26063
26076
  const hostNotClaimable = name === "inference.job.claim" && publicToolError?.failure_code === "host_not_claimable" && publicToolError.phase === "admission" && publicToolError.retryable === true && publicToolError.terminal_before_execution === true;
26064
- const definitivelyNotApplied = (name === "inference.agent.decision.submit" || name === "inference.agent.data.call") && publicToolError?.phase === "validation" && publicToolError.retryable === false && publicToolError.terminal_before_execution === true && (name === "inference.agent.decision.submit" && publicToolError.failure_code === "agent_decision_schema_invalid" || publicToolError.failure_code === "invalid_arguments" && publicToolError.reason_code === "schema_validation") || (name === "inference.host.register" || name === "inference.host.advertise") && (errorText2.includes("Advertisement time is outside the allowed clock skew.") || errorText2.includes("Advertisement is already expired.")) || (name === "inference.agent.next" || name === "inference.agent.heartbeat") && (errorText2.includes("Advertisement time is outside the allowed clock skew.") || errorText2.includes("Advertisement is already expired.") || errorText2.includes("Heartbeat time is outside the allowed clock skew.")) || name === "inference.host.heartbeat" && errorText2.includes("Heartbeat time is outside the allowed clock skew.") || name === "inference.job.claim" && (errorText2.includes(
26077
+ const definitivelyNotApplied = (name === "inference.agent.decision.submit" || name === "inference.agent.data.call") && publicToolError?.phase === "validation" && publicToolError.retryable === false && publicToolError.terminal_before_execution === true && (name === "inference.agent.decision.submit" && publicToolError.failure_code === "agent_decision_schema_invalid" || publicToolError.failure_code === "invalid_arguments" && publicToolError.reason_code === "schema_validation") || // The server refused the result before recording it.
26078
+ name === "inference.agent.complete" && publicToolError?.failure_code === "result_contract_invalid" && publicToolError.phase === "validation" && publicToolError.retryable === false && publicToolError.terminal_before_execution === true || (name === "inference.host.register" || name === "inference.host.advertise") && (errorText2.includes("Advertisement time is outside the allowed clock skew.") || errorText2.includes("Advertisement is already expired.")) || (name === "inference.agent.next" || name === "inference.agent.heartbeat") && (errorText2.includes("Advertisement time is outside the allowed clock skew.") || errorText2.includes("Advertisement is already expired.") || errorText2.includes("Heartbeat time is outside the allowed clock skew.")) || name === "inference.host.heartbeat" && errorText2.includes("Heartbeat time is outside the allowed clock skew.") || name === "inference.job.claim" && (errorText2.includes(
26065
26079
  "External inference claim request was not applied before its generation became stale"
26066
26080
  ) || errorText2.includes("External inference host advertisement is expired or superseded")) || name === "inference.job.complete" && completionEvidenceExpired;
26067
26081
  const retryableInfrastructureRejection = EXTERNAL_INFERENCE_AUTOMATED_HOST_TOOLS.includes(name) && (errorText2.includes("External inference polling is at its configured concurrency limit") || errorText2.includes("The Insights action reached the response timeout") || errorText2.includes("Insights capability failed without exposing private runtime details"));
@@ -26069,12 +26083,13 @@ var init_mcp_client = __esm({
26069
26083
  const retryableHeartbeatClockSkew = name === "inference.host.heartbeat" && definitivelyNotApplied;
26070
26084
  const retryableAdvertisementClockSkew = (name === "inference.host.register" || name === "inference.host.advertise") && definitivelyNotApplied;
26071
26085
  const staleHostHeartbeatGeneration = name === "inference.host.heartbeat" && errorText2.includes("Heartbeat generations do not match the current host authority.");
26086
+ const rejectionReason = publicRejectionReason(errorText2);
26072
26087
  const obsoleteClaimReplay = name === "inference.job.claim" && errorText2.includes(
26073
26088
  "External inference claim replay is no longer dispatchable"
26074
26089
  );
26075
26090
  throw new ExternalInferenceMcpError(
26076
26091
  completionEvidenceExpired ? "completion_evidence_expired" : staleHostHeartbeatGeneration ? "generation_stale" : obsoleteClaimReplay ? "claim_replay_obsolete" : "tool_rejected",
26077
- `Insights MCP rejected ${name}.`,
26092
+ rejectionReason ? `Insights MCP rejected ${name}: ${rejectionReason}` : `Insights MCP rejected ${name}.`,
26078
26093
  {
26079
26094
  definitivelyNotApplied: definitivelyNotApplied || staleHostHeartbeatGeneration,
26080
26095
  // Claim polling is an idempotent control-plane operation. During an
@@ -51798,7 +51813,7 @@ Waiting for approval...
51798
51813
  Math.floor(Date.parse(localDispatchDeadline) - now().getTime())
51799
51814
  )
51800
51815
  },
51801
- instructions: "Treat system_prompt and user_prompt as separate VTX-delivered roles. Use context_json and satisfy output_schema_json exactly. Send only the final result through agent-complete stdin; do not execute trading tools yourself. For Server Provider jobs enforce both provider dispatch deadlines at actual provider entry and report the self-attested provider_dispatched_at timestamp. If the budget expires before dispatch, use agent-fail with not_dispatched.",
51816
+ instructions: "Treat system_prompt and user_prompt as separate VTX-delivered roles. Use context_json and satisfy output_schema_json exactly. Send only the final result through agent-complete stdin; do not execute trading tools yourself. Its result field is a JSON string that satisfies output_schema_json itself: for provider_response jobs that is the provider response envelope, with the model output ($defs.model_output) as the JSON text of response_text. For Server Provider jobs enforce both provider dispatch deadlines at actual provider entry and report the self-attested provider_dispatched_at timestamp. If the budget expires before dispatch, use agent-fail with not_dispatched.",
51802
51817
  complete_command: "vtx inference-host agent-complete --json",
51803
51818
  fail_command: "vtx inference-host agent-fail --json"
51804
51819
  }, parsed.json),
@@ -51838,6 +51853,7 @@ Waiting for approval...
51838
51853
  if (state2.pending_terminal.kind !== "complete") {
51839
51854
  throw new Error("The active attempt already has a pending failure request. Retry agent-fail.");
51840
51855
  }
51856
+ warnings.push("Resending the stored completion whose outcome is unconfirmed; new input was not read.");
51841
51857
  request = state2.pending_terminal.request;
51842
51858
  } else {
51843
51859
  const input = await parseAgentStdin(dependencies, [
@@ -51896,7 +51912,18 @@ Waiting for approval...
51896
51912
  pending_terminal: { kind: "complete", request }
51897
51913
  });
51898
51914
  }
51899
- const result = await session.client.callTool("inference.agent.complete", request);
51915
+ let result;
51916
+ try {
51917
+ result = await session.client.callTool("inference.agent.complete", request);
51918
+ } catch (error48) {
51919
+ if (error48 instanceof ExternalInferenceMcpError && error48.definitivelyNotApplied) {
51920
+ await writeInferenceAgentAttemptState(config2.statePath, {
51921
+ ...state2,
51922
+ pending_terminal: null
51923
+ });
51924
+ }
51925
+ throw error48;
51926
+ }
51900
51927
  await clearInferenceAgentNextState(config2.statePath);
51901
51928
  await clearInferenceAgentAttemptState(config2.statePath);
51902
51929
  return {
@@ -109511,6 +109538,7 @@ var init_provider_observability = __esm({
109511
109538
  if (typeof raw.credential_ref === "string" && /^[a-f0-9]{64}$/.test(raw.credential_ref)) result.credential_ref = raw.credential_ref;
109512
109539
  if (raw.execution_mode === "client" || raw.execution_mode === "server") result.execution_mode = raw.execution_mode;
109513
109540
  if (raw.timeout_bound === "attempt_cap") result.timeout_bound = "attempt_cap";
109541
+ if (raw.google_surface === "public" || raw.google_surface === "vertex") result.google_surface = raw.google_surface;
109514
109542
  if (typeof raw.quota_project_ref === "string" && /^[a-f0-9]{64}$/.test(raw.quota_project_ref) && raw.quota_project_source === "provider_quota_subject") {
109515
109543
  result.quota_project_ref = raw.quota_project_ref;
109516
109544
  result.quota_project_source = "provider_quota_subject";
@@ -114833,7 +114861,7 @@ var init_native_request_parameters = __esm({
114833
114861
  });
114834
114862
 
114835
114863
  // lib/runtime/provider-client.ts
114836
- var mapOpenAiCompatibleNativeRequestPath, isRetryableProviderFailureForFallback, extractRuntimeProviderFailureStatusCode, isModelSpecificProviderFailure, emptyProviderContentError, isEmptyProviderContentFailure, emptyReplyForInternalAttempt, isEmptyProviderMessageFailure, isRetryableProviderAttemptFailure, providerRejectedRequestError, OPTIONAL_CONTRACT_PARAMETER_TOKENS, OPTIONAL_CONTRACT_REJECTION_TOKENS, OPTIONAL_CONTRACT_GRAMMAR_TOKENS, isOptionalContractParameterRejection, OPTIONAL_CONTRACT_REQUEST_KEYS, OPTIONAL_CONTRACT_EXTRA_BODY_KEYS, resolveEmptyContentRetryPolicy, isKeySpecificOrTransientProviderFailure, providerDispatchClockMs, beginProviderDispatch, providerDispatchLatencyMs, attachProviderDispatchFailure, attachProviderFailureTrace, toRuntimeExecutionMode, buildNoneReasoningPayload, normalizeLevelValue, buildRuntimeReasoningPayload, resolveProviderReasoningParameters, requestedReasoningParameters, usesReasoningCompletionTokens, shouldRequestReasoningTrace, normalizeProviderToken, runtimeProviderForByokProvider, findByokProviderForRuntime, findNativeRequestParametersForModel, modelHasNativeRequestApiSurface, asRequestRecord, setDottedRequestValue, normalizeProviderMaxTokens, applyRuntimeRequestContract, normalizeProvider2, requireProviderEndpoint, SSE_DATA_FIELD_PREFIX2, estimateTokenCount, normalizeUsageCount, buildOpenAiUsagePayload, buildAnthropicUsagePayload, buildGoogleUsagePayload, normalizeProviderUsageMetrics, providerResponseSignals, fetchProvider, readProviderPayload, emitRuntimeDelta, readProviderTextStream, extractOpenAiCompatibleDeltaText, readOpenAiCompatibleTextStream, rawProviderTextForDebug, extractProviderErrorDetail, buildCanonicalProviderFailureMessage, toProviderNetworkDebugError, REASONING_ONLY_CONTENT_TYPES, extractOpenAiContentPartText, extractOpenAiReasoningPartText, extractOpenAiMessageContent, extractOpenAiMessageReasoningContent, extractOpenAiCompatibleText, normalizeRuntimeChatHistory, calculateProviderCost, callOpenAiCompatible, extractOpenAiResponsesText, extractOpenAiResponsesReasoning, callOpenAiResponses, extractAnthropicMessageText, extractAnthropicReasoningContent, callAnthropic, isVertexExpressKey, googlePublicModelIdRegexes, shouldUseGooglePublicEndpointForModel, normalizeGoogleModelId, shouldRetryGoogleVertexRequestPublicly, GOOGLE_VERTEX_PUBLIC_RETRY_NOTE, buildGoogleRequest, isGoogleReasoningPart, extractGoogleMessageText, extractGoogleReasoningContent, extractGoogleSafetyMetadata, GOOGLE_BLOCKED_FINISH_REASONS, googleProviderBlockReason, callGoogle, resolveRuntimeProvider, defaultInvocationContext, defaultProviderTransport, invocationFailureCode, buildBrowserInvocation, resolveProviderSecretKey, resolveNativeProviderCredentialSlots, resolveProviderSecretKeySlots, requireOpenAiCompatibleRuntimeBaseUrl, runtimeSubscriptionPlan, runtimeKeySlotSupportsModel, invokeRuntimeProviderAttempt, runtimeProviderInvoker, invokeRuntimeProvider;
114864
+ var mapOpenAiCompatibleNativeRequestPath, isRetryableProviderFailureForFallback, extractRuntimeProviderFailureStatusCode, isModelSpecificProviderFailure, emptyProviderContentError, isEmptyProviderContentFailure, emptyReplyForInternalAttempt, isEmptyProviderMessageFailure, isRetryableProviderAttemptFailure, providerRejectedRequestError, OPTIONAL_CONTRACT_PARAMETER_TOKENS, OPTIONAL_CONTRACT_REJECTION_TOKENS, OPTIONAL_CONTRACT_GRAMMAR_TOKENS, isOptionalContractParameterRejection, OPTIONAL_CONTRACT_REQUEST_KEYS, OPTIONAL_CONTRACT_EXTRA_BODY_KEYS, resolveEmptyContentRetryPolicy, isKeySpecificOrTransientProviderFailure, providerDispatchClockMs, beginProviderDispatch, providerDispatchLatencyMs, attachProviderDispatchFailure, attachProviderFailureTrace, toRuntimeExecutionMode, buildNoneReasoningPayload, normalizeLevelValue, buildRuntimeReasoningPayload, resolveProviderReasoningParameters, requestedReasoningParameters, usesReasoningCompletionTokens, shouldRequestReasoningTrace, normalizeProviderToken, runtimeProviderForByokProvider, findByokProviderForRuntime, findNativeRequestParametersForModel, modelHasNativeRequestApiSurface, asRequestRecord, setDottedRequestValue, normalizeProviderMaxTokens, applyRuntimeRequestContract, normalizeProvider2, requireProviderEndpoint, SSE_DATA_FIELD_PREFIX2, estimateTokenCount, normalizeUsageCount, buildOpenAiUsagePayload, buildAnthropicUsagePayload, buildGoogleUsagePayload, normalizeProviderUsageMetrics, providerResponseSignals, fetchProvider, readProviderPayload, emitRuntimeDelta, readProviderTextStream, extractOpenAiCompatibleDeltaText, readOpenAiCompatibleTextStream, rawProviderTextForDebug, extractProviderErrorDetail, buildCanonicalProviderFailureMessage, toProviderNetworkDebugError, REASONING_ONLY_CONTENT_TYPES, extractOpenAiContentPartText, extractOpenAiReasoningPartText, extractOpenAiMessageContent, extractOpenAiMessageReasoningContent, extractOpenAiCompatibleText, normalizeRuntimeChatHistory, calculateProviderCost, callOpenAiCompatible, extractOpenAiResponsesText, extractOpenAiResponsesReasoning, callOpenAiResponses, extractAnthropicMessageText, extractAnthropicReasoningContent, callAnthropic, isAqGoogleKey, googleKeySurfaces, googleKeySurfaceProbes, probeGoogleKeySurface, resolveGoogleKeySurface, forgetGoogleKeySurfaceAfterAuthorizationFailure, googlePublicModelIdRegexes, shouldUseGooglePublicEndpointForModel, normalizeGoogleModelId, shouldRetryGoogleVertexRequestPublicly, GOOGLE_VERTEX_PUBLIC_RETRY_NOTE, buildGoogleRequest, isGoogleReasoningPart, extractGoogleMessageText, extractGoogleReasoningContent, extractGoogleSafetyMetadata, GOOGLE_BLOCKED_FINISH_REASONS, googleProviderBlockReason, callGoogle, resolveRuntimeProvider, defaultInvocationContext, defaultProviderTransport, invocationFailureCode, buildBrowserInvocation, resolveProviderSecretKey, resolveNativeProviderCredentialSlots, resolveProviderSecretKeySlots, requireOpenAiCompatibleRuntimeBaseUrl, runtimeSubscriptionPlan, runtimeKeySlotSupportsModel, invokeRuntimeProviderAttempt, runtimeProviderInvoker, invokeRuntimeProvider;
114837
114865
  var init_provider_client = __esm({
114838
114866
  "lib/runtime/provider-client.ts"() {
114839
114867
  "use strict";
@@ -115876,7 +115904,7 @@ var init_provider_client = __esm({
115876
115904
  }
115877
115905
  const googleKey = provider === "google" ? String(resolveProviderSecretKey("google", secrets) || "").trim() : "";
115878
115906
  const googleUsesPublicEndpoint = provider === "google" ? shouldUseGooglePublicEndpointForModel(config2, catalogMatch.id) : false;
115879
- const googleContextKey = googleUsesPublicEndpoint ? "google_ai_studio" : googleKey.startsWith("AQ") ? "google_vertex_express" : googleKey.startsWith("AIza") ? "google_ai_studio" : null;
115907
+ const googleContextKey = googleUsesPublicEndpoint ? "google_ai_studio" : googleKey.startsWith("AQ") ? googleKeySurfaces.get(googleKey) === "public" ? "google_ai_studio" : "google_vertex_express" : googleKey.startsWith("AIza") ? "google_ai_studio" : null;
115880
115908
  const contextPrice = googleContextKey ? catalogMatch.pricing_contexts?.[googleContextKey] : null;
115881
115909
  if (provider === "google" && googleContextKey === "google_vertex_express" && !contextPrice) {
115882
115910
  return {
@@ -116465,7 +116493,47 @@ var init_provider_client = __esm({
116465
116493
  throw attachProviderFailureTrace(sanitizedError, trace.id);
116466
116494
  }
116467
116495
  };
116468
- isVertexExpressKey = (apiKey) => apiKey.trim().startsWith("AQ.");
116496
+ isAqGoogleKey = (apiKey) => apiKey.trim().startsWith("AQ.");
116497
+ googleKeySurfaces = /* @__PURE__ */ new Map();
116498
+ googleKeySurfaceProbes = /* @__PURE__ */ new Map();
116499
+ probeGoogleKeySurface = async (apiKey, config2) => {
116500
+ const requestUrl2 = new URL(requireProviderEndpoint(config2, "google_public_models_url"));
116501
+ requestUrl2.searchParams.set("key", apiKey);
116502
+ requestUrl2.searchParams.set("pageSize", "1");
116503
+ let response;
116504
+ try {
116505
+ response = await fetchProvider(requestUrl2.toString(), {
116506
+ method: "GET",
116507
+ signal: AbortSignal.timeout(config2.google_key_surface_probe_timeout_seconds * MS_PER_SECOND)
116508
+ });
116509
+ } catch {
116510
+ return null;
116511
+ }
116512
+ const status = response.status;
116513
+ if (status === HTTP_STATUS.OK) return "public";
116514
+ if (status === HTTP_STATUS.REQUEST_TIMEOUT || status === HTTP_STATUS.TOO_MANY_REQUESTS) return null;
116515
+ if (status >= HTTP_STATUS.BAD_REQUEST && status < HTTP_STATUS.INTERNAL_SERVER_ERROR) return "vertex";
116516
+ return null;
116517
+ };
116518
+ resolveGoogleKeySurface = async (apiKey, config2, signal) => {
116519
+ const key = apiKey.trim();
116520
+ if (!isAqGoogleKey(key)) return "public";
116521
+ const remembered = googleKeySurfaces.get(key);
116522
+ if (remembered) return remembered;
116523
+ let probe = googleKeySurfaceProbes.get(key);
116524
+ if (!probe) {
116525
+ probe = probeGoogleKeySurface(key, config2).then((surface2) => {
116526
+ if (surface2) googleKeySurfaces.set(key, surface2);
116527
+ return surface2;
116528
+ }).finally(() => googleKeySurfaceProbes.delete(key));
116529
+ googleKeySurfaceProbes.set(key, probe);
116530
+ }
116531
+ const surface = await awaitProviderOperation(probe, signal);
116532
+ return surface ?? "vertex";
116533
+ };
116534
+ forgetGoogleKeySurfaceAfterAuthorizationFailure = (apiKey, status) => {
116535
+ if (status === HTTP_STATUS.UNAUTHORIZED || status === HTTP_STATUS.FORBIDDEN) googleKeySurfaces.delete(apiKey.trim());
116536
+ };
116469
116537
  googlePublicModelIdRegexes = (config2) => {
116470
116538
  const raw = config2.google_public_model_id_regexes;
116471
116539
  if (!Array.isArray(raw) || raw.length === 0) {
@@ -116624,7 +116692,7 @@ var init_provider_client = __esm({
116624
116692
  return GOOGLE_BLOCKED_FINISH_REASONS.has(finishReason.toLowerCase()) ? finishReason : null;
116625
116693
  };
116626
116694
  callGoogle = async (apiKey, config2, model, systemPrompt, userPrompt, extraMessages, temperature, maxTokens, reasoningPayload, runtimeRequestContract, runtimeMode, signal, nativeRequestParameters, nativeRequestParameterValues, egress) => {
116627
- const vertexExpress = isVertexExpressKey(apiKey) && !shouldUseGooglePublicEndpointForModel(config2, model);
116695
+ const vertexExpress = !shouldUseGooglePublicEndpointForModel(config2, model) && await resolveGoogleKeySurface(apiKey, config2, signal) === "vertex";
116628
116696
  const reasoningParams = resolveProviderReasoningParameters("google", reasoningPayload);
116629
116697
  let { requestUrl: requestUrl2, payload } = buildGoogleRequest(
116630
116698
  apiKey,
@@ -116662,7 +116730,11 @@ var init_provider_client = __esm({
116662
116730
  url: requestUrl2.toString()
116663
116731
  });
116664
116732
  let response = null;
116665
- const credentialDiagnostics = { ...await googleCredentialDiagnostics(apiKey), ...egress ? { egress_route: egress.route } : {} };
116733
+ let credentialDiagnostics = {
116734
+ ...await googleCredentialDiagnostics(apiKey),
116735
+ ...egress ? { egress_route: egress.route } : {},
116736
+ google_surface: vertexExpress ? "vertex" : "public"
116737
+ };
116666
116738
  const requestHeaders = { "Content-Type": "application/json" };
116667
116739
  const dispatch = async () => {
116668
116740
  if (egress) {
@@ -116752,6 +116824,7 @@ var init_provider_client = __esm({
116752
116824
  body: payload
116753
116825
  });
116754
116826
  response = null;
116827
+ credentialDiagnostics = { ...credentialDiagnostics, google_surface: "public" };
116755
116828
  dispatchMarker = beginProviderDispatch(payload);
116756
116829
  dispatchMarker.providerDiagnostics = credentialDiagnostics;
116757
116830
  response = await dispatch();
@@ -116769,6 +116842,7 @@ var init_provider_client = __esm({
116769
116842
  rawText: rawProviderTextForDebug(payloadJson, rawText)
116770
116843
  });
116771
116844
  if (!response.ok) {
116845
+ forgetGoogleKeySurfaceAfterAuthorizationFailure(apiKey, response.status);
116772
116846
  const providerDetail = extractProviderErrorDetail(payloadJson, rawText) || "Google request failed";
116773
116847
  const detail = retriedPublicGeminiEndpoint ? `${GOOGLE_VERTEX_PUBLIC_RETRY_NOTE} The Gemini retry also failed: ${providerDetail}` : providerDetail;
116774
116848
  throw new Error(buildCanonicalProviderFailureMessage({ response, detail, runtimeMode }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vtxmacro/cli",
3
- "version": "2026.10.29",
3
+ "version": "2026.10.31",
4
4
  "description": "VTX Macro CLI, MCP server, and durable external inference host.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",