@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.
- package/bin/exo-harness.ts +3 -1
- package/bin/vtx-mcp.js +4 -2
- package/bin/vtx-service-bootstrap.js +4 -2
- package/bin/vtx-service-launcher.js +3 -1
- package/bin/vtx.js +87 -13
- package/package.json +1 -1
package/bin/exo-harness.ts
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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") ||
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
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 }));
|