@vtxmacro/cli 2026.10.48 → 2026.10.49

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,12 +43,106 @@ 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.48", 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.49", 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
+ }
48
+ });
49
+
50
+ // lib/shared-contracts.generated.ts
51
+ var AI_SNAPSHOT_WIRE_FORMAT, HYPERLIQUID_EXCHANGE_SPECIFICATION, HYPERLIQUID_ROW_WEIGHTED_INFO_CHARGE, ERROR_REDACTION_RULES;
52
+ var init_shared_contracts_generated = __esm({
53
+ "lib/shared-contracts.generated.ts"() {
54
+ "use strict";
55
+ init_define_VTX_CLAUDE_CODE_POLICY();
56
+ init_define_VTX_EXO_POLICY();
57
+ init_define_VTX_GROK_POLICY();
58
+ init_define_VTX_PI_MODEL_POLICY();
59
+ AI_SNAPSHOT_WIRE_FORMAT = {
60
+ "compact_transport_version": 2,
61
+ "packed_fields": 3,
62
+ "packed_entry_fields": 2
63
+ };
64
+ HYPERLIQUID_EXCHANGE_SPECIFICATION = {
65
+ "l1_signing_chain_id": 1337,
66
+ "action_nonce_bytes": 8,
67
+ "max_orders_per_batch": 16,
68
+ "position_tpsl_order_count": 2,
69
+ "price_significant_figures": 5,
70
+ "integer_price_minimum": 1e5,
71
+ "perp_price_max_decimals": 6,
72
+ "hip3_asset_id_base": 1e5,
73
+ "hip3_asset_id_dex_stride": 1e4,
74
+ "trailing_retracement_pct_max_decimals": 3,
75
+ "good_til_cancelled_time_in_force": "Gtc",
76
+ "max_deployer_fee_scale": 3,
77
+ "deployer_fee_scale_multiplier": 2,
78
+ "growth_mode_fee_factor": 0.1,
79
+ "aligned_quote_non_deployer_fee_factor": 0.8
80
+ };
81
+ HYPERLIQUID_ROW_WEIGHTED_INFO_CHARGE = {
82
+ "base_weight": 20,
83
+ "rows_per_extra_weight": 20,
84
+ "request_types": [
85
+ "userFills",
86
+ "userFillsByTime",
87
+ "historicalOrders",
88
+ "twapHistory",
89
+ "userTwapSliceFills",
90
+ "userFunding",
91
+ "userNonFundingLedgerUpdates"
92
+ ]
93
+ };
94
+ ERROR_REDACTION_RULES = {
95
+ "redacted_value": "[REDACTED]",
96
+ "fragments": {
97
+ "separator": "[\\t\\n\\v\\f\\r \\x1c-\\x1f\\x85\\xa0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]",
98
+ "value_run": "[^,\\t\\n\\v\\f\\r ]+",
99
+ "name_start": "(?:^|[^A-Za-z0-9_.-])",
100
+ "name_prefix": "[A-Za-z0-9_.-]*",
101
+ "secret_name_words": "(?:[k\\u212a]ey|to[k\\u212a]en|[s\\u017f]ecret|pa[s\\u017f][s\\u017f]word|pa[s\\u017f][s\\u017f]phra[s\\u017f]e|credent[i\\u0131\\u0130]al[s\\u017f]|credent[i\\u0131\\u0130]al|author[i\\u0131\\u0130]zat[i\\u0131\\u0130]on)",
102
+ "name_value_separator": "(?:[:=]${separator}+|${separator}+[:=]${separator}*)",
103
+ "named_value": "(\"[^\"]*\"|'[^']*'|(?:[^,\\t\\n\\v\\f\\r ]*${secret_name_words}${name_value_separator})*${value_run})",
104
+ "assignment_separator": "['\"]?${separator}*[:=]${separator}*",
105
+ "authorization_schemes": "(?:Bearer|Basic|Digest|Token|Bot|Negotiate|NTLM|ApiKey)",
106
+ "assigned_name": "(?:author[i\\u0131\\u0130]zat[i\\u0131\\u0130]on${assignment_separator}['\"]?${authorization_schemes}${separator}+|${secret_name_words}${assignment_separator})"
107
+ },
108
+ "rules": [
109
+ {
110
+ "name": "bearer_token",
111
+ "ignore_case": true,
112
+ "replacement": "keep_prefix",
113
+ "pattern": "(\\bBearer${separator}+)(?:[^,;\\t\\n\\v\\f\\r ]*${secret_name_words}${name_value_separator})*[^,;\\t\\n\\v\\f\\r ]+"
114
+ },
115
+ {
116
+ "name": "secret_word_assignment",
117
+ "ignore_case": true,
118
+ "replacement": "assigned_value",
119
+ "pattern": "((?:^|[^A-Za-z0-9_])(?:(?:ap[i\\u0131\\u0130]|acce[s\\u017f][s\\u017f]|pr[i\\u0131\\u0130]vate)[_ -]?)?${assigned_name})${named_value}"
120
+ },
121
+ {
122
+ "name": "secret_token",
123
+ "ignore_case": false,
124
+ "replacement": "whole",
125
+ "pattern": "\\b(?:AIza[A-Za-z0-9_-]+|sk-[A-Za-z0-9._-]+|xai-[A-Za-z0-9]{20,}|gsk_[A-Za-z0-9]{20,}|AQ\\.[A-Za-z0-9._-]+|0x[a-fA-F0-9]{64})\\b"
126
+ },
127
+ {
128
+ "name": "secret_query_param",
129
+ "ignore_case": true,
130
+ "replacement": "assigned_value",
131
+ "pattern": "([?&](?:${name_prefix}${secret_name_words}|auth|[s\\u017f][i\\u0131\\u0130]g|[s\\u017f][i\\u0131\\u0130]gnature)=)${named_value}"
132
+ },
133
+ {
134
+ "name": "secret_assignment",
135
+ "ignore_case": true,
136
+ "replacement": "assigned_value",
137
+ "pattern": "(${name_start}${name_prefix}${assigned_name})${named_value}"
138
+ }
139
+ ]
140
+ };
47
141
  }
48
142
  });
49
143
 
50
144
  // lib/constants.ts
51
- var MS_PER_SECOND, SECONDS_PER_MINUTE, MINUTES_PER_HOUR, HOURS_PER_DAY, DAYS_PER_WEEK, MS_PER_MINUTE, SECONDS_PER_HOUR, SECONDS_PER_DAY, SECONDS_PER_WEEK, MINUTES_PER_DAY, MINUTES_PER_WEEK, MS_PER_HOUR, MS_PER_DAY, READ_STAMP_TIE_MS, BACKOFF_GROWTH_FACTOR, BYTES_PER_KIB, BYTES_PER_MIB, OWNER_ONLY_FILE_MODE, OWNER_ONLY_DIRECTORY_MODE, GROUP_OTHER_PERMISSION_BITS, JSON_INDENT_SPACES, INT32_MIN, INT32_MAX, CANDLE_TIMEFRAME_SECONDS, HTTP_STATUS, AI_COST_ESTIMATE_PERIOD_DAYS, SECONDS_PER_AI_COST_ESTIMATE_PERIOD, NODE_ARGV_COMMAND_ARGS_START, EXIT_CODE_TEMPFAIL, JSON_RPC_ERROR_CODES, INFERENCE_HOST_PROCESS_LOCK_RECORD_SCHEMA_VERSION, INFERENCE_HOST_RECLAIM_GUARD_CREATE_PASSES, LINUX_PROC_STAT_COMM_TERMINATOR_CHARS, INFERENCE_HOST_RANDOM_BYTES, HYPERLIQUID_EXCHANGE_SPECIFICATION, HYPERLIQUID_TIF_GTC, EXIT_CODE_INTERRUPTED, EXIT_CODE_SIGNAL_BASE;
145
+ var MS_PER_SECOND, SECONDS_PER_MINUTE, MINUTES_PER_HOUR, HOURS_PER_DAY, DAYS_PER_WEEK, MS_PER_MINUTE, SECONDS_PER_HOUR, SECONDS_PER_DAY, SECONDS_PER_WEEK, MINUTES_PER_DAY, MINUTES_PER_WEEK, MS_PER_HOUR, MS_PER_DAY, READ_STAMP_TIE_MS, BACKOFF_GROWTH_FACTOR, BYTES_PER_KIB, BYTES_PER_MIB, OWNER_ONLY_FILE_MODE, OWNER_ONLY_DIRECTORY_MODE, GROUP_OTHER_PERMISSION_BITS, JSON_INDENT_SPACES, INT32_MIN, INT32_MAX, HTTP_STATUS, AI_COST_ESTIMATE_PERIOD_DAYS, SECONDS_PER_AI_COST_ESTIMATE_PERIOD, NODE_ARGV_COMMAND_ARGS_START, EXIT_CODE_TEMPFAIL, JSON_RPC_ERROR_CODES, INFERENCE_HOST_PROCESS_LOCK_RECORD_SCHEMA_VERSION, INFERENCE_HOST_RECLAIM_GUARD_CREATE_PASSES, LINUX_PROC_STAT_COMM_TERMINATOR_CHARS, INFERENCE_HOST_RANDOM_BYTES, HYPERLIQUID_TIF_GTC, HYPERLIQUID_ROW_WEIGHTED_INFO_REQUESTS, HYPERLIQUID_ROW_WEIGHTED_INFO_BASE_WEIGHT, HYPERLIQUID_INFO_ROWS_PER_EXTRA_WEIGHT, HYPERLIQUID_MAX_DEPLOYER_FEE_SCALE, HYPERLIQUID_DEPLOYER_FEE_SCALE_MULTIPLIER, HYPERLIQUID_GROWTH_MODE_FEE_FACTOR, HYPERLIQUID_ALIGNED_QUOTE_NON_DEPLOYER_FEE_FACTOR, EXIT_CODE_INTERRUPTED, EXIT_CODE_SIGNAL_BASE, AI_SNAPSHOT_COMPACT_TRANSPORT_VERSION, AI_SNAPSHOT_PACKED_FIELDS, AI_SNAPSHOT_PACKED_ENTRY_FIELDS, BYOK_PROVIDER_DISPLAY_ORDER_STEP;
52
146
  var init_constants = __esm({
53
147
  "lib/constants.ts"() {
54
148
  "use strict";
@@ -56,6 +150,7 @@ var init_constants = __esm({
56
150
  init_define_VTX_EXO_POLICY();
57
151
  init_define_VTX_GROK_POLICY();
58
152
  init_define_VTX_PI_MODEL_POLICY();
153
+ init_shared_contracts_generated();
59
154
  MS_PER_SECOND = 1e3;
60
155
  SECONDS_PER_MINUTE = 60;
61
156
  MINUTES_PER_HOUR = 60;
@@ -79,23 +174,6 @@ var init_constants = __esm({
79
174
  JSON_INDENT_SPACES = 2;
80
175
  INT32_MIN = -(2 ** 31);
81
176
  INT32_MAX = 2 ** 31 - 1;
82
- CANDLE_TIMEFRAME_SECONDS = {
83
- "1m": SECONDS_PER_MINUTE,
84
- "3m": 3 * SECONDS_PER_MINUTE,
85
- "5m": 5 * SECONDS_PER_MINUTE,
86
- "15m": 15 * SECONDS_PER_MINUTE,
87
- "30m": 30 * SECONDS_PER_MINUTE,
88
- "1h": SECONDS_PER_HOUR,
89
- "2h": 2 * SECONDS_PER_HOUR,
90
- "4h": 4 * SECONDS_PER_HOUR,
91
- "6h": 6 * SECONDS_PER_HOUR,
92
- "8h": 8 * SECONDS_PER_HOUR,
93
- "12h": 12 * SECONDS_PER_HOUR,
94
- "1d": SECONDS_PER_DAY,
95
- "3d": 3 * SECONDS_PER_DAY,
96
- "1w": SECONDS_PER_WEEK,
97
- "1M": 30 * SECONDS_PER_DAY
98
- };
99
177
  HTTP_STATUS = {
100
178
  OK: 200,
101
179
  ACCEPTED: 202,
@@ -146,32 +224,20 @@ var init_constants = __esm({
146
224
  OAUTH_STATE: 32,
147
225
  OAUTH_CALLBACK_PATH: 16
148
226
  };
149
- HYPERLIQUID_EXCHANGE_SPECIFICATION = {
150
- // Chain ID of the phantom-agent EIP-712 domain L1 actions sign.
151
- l1_signing_chain_id: 1337,
152
- // A signed action hash appends the nonce (and expiresAfter) as big-endian uint64.
153
- action_nonce_bytes: 8,
154
- // Largest atomic order group VTX sends.
155
- max_orders_per_batch: 16,
156
- // A positionTpsl group is exactly one stop-loss and one take-profit order.
157
- position_tpsl_order_count: 2,
158
- // Prices carry at most this many significant figures...
159
- price_significant_figures: 5,
160
- // ...unless they are integers at or above this, which keep every digit.
161
- integer_price_minimum: 1e5,
162
- // A perp price has at most this many decimals minus the asset's szDecimals.
163
- perp_price_max_decimals: 6,
164
- // A HIP-3 builder-DEX asset ID is base + dex index * stride + index in meta.
165
- hip3_asset_id_base: 1e5,
166
- hip3_asset_id_dex_stride: 1e4,
167
- // A trailing stop's percent retracement carries at most this many decimals.
168
- trailing_retracement_pct_max_decimals: 3,
169
- // Good-til-cancelled time in force as the order wire spells it.
170
- good_til_cancelled_time_in_force: "Gtc"
171
- };
172
227
  HYPERLIQUID_TIF_GTC = HYPERLIQUID_EXCHANGE_SPECIFICATION.good_til_cancelled_time_in_force;
228
+ HYPERLIQUID_ROW_WEIGHTED_INFO_REQUESTS = HYPERLIQUID_ROW_WEIGHTED_INFO_CHARGE.request_types;
229
+ HYPERLIQUID_ROW_WEIGHTED_INFO_BASE_WEIGHT = HYPERLIQUID_ROW_WEIGHTED_INFO_CHARGE.base_weight;
230
+ HYPERLIQUID_INFO_ROWS_PER_EXTRA_WEIGHT = HYPERLIQUID_ROW_WEIGHTED_INFO_CHARGE.rows_per_extra_weight;
231
+ HYPERLIQUID_MAX_DEPLOYER_FEE_SCALE = HYPERLIQUID_EXCHANGE_SPECIFICATION.max_deployer_fee_scale;
232
+ HYPERLIQUID_DEPLOYER_FEE_SCALE_MULTIPLIER = HYPERLIQUID_EXCHANGE_SPECIFICATION.deployer_fee_scale_multiplier;
233
+ HYPERLIQUID_GROWTH_MODE_FEE_FACTOR = HYPERLIQUID_EXCHANGE_SPECIFICATION.growth_mode_fee_factor;
234
+ HYPERLIQUID_ALIGNED_QUOTE_NON_DEPLOYER_FEE_FACTOR = HYPERLIQUID_EXCHANGE_SPECIFICATION.aligned_quote_non_deployer_fee_factor;
173
235
  EXIT_CODE_INTERRUPTED = 130;
174
236
  EXIT_CODE_SIGNAL_BASE = 128;
237
+ AI_SNAPSHOT_COMPACT_TRANSPORT_VERSION = AI_SNAPSHOT_WIRE_FORMAT.compact_transport_version;
238
+ AI_SNAPSHOT_PACKED_FIELDS = AI_SNAPSHOT_WIRE_FORMAT.packed_fields;
239
+ AI_SNAPSHOT_PACKED_ENTRY_FIELDS = AI_SNAPSHOT_WIRE_FORMAT.packed_entry_fields;
240
+ BYOK_PROVIDER_DISPLAY_ORDER_STEP = 10;
175
241
  }
176
242
  });
177
243
 
@@ -248,6 +314,56 @@ var init_types = __esm({
248
314
  }
249
315
  });
250
316
 
317
+ // lib/byokProviderRegistry.ts
318
+ function normalizeProviderAlias(value) {
319
+ return String(value ?? "").trim().toLowerCase().replace(/[._-]+/g, " ").replace(/\s+/g, " ");
320
+ }
321
+ var BYOK_UI_GROUP, BYOK_PROVIDER_ENTRIES, BYOK_PROVIDERS, BYOK_PROVIDER_KEY_BY_ALIAS;
322
+ var init_byokProviderRegistry = __esm({
323
+ "lib/byokProviderRegistry.ts"() {
324
+ "use strict";
325
+ init_define_VTX_CLAUDE_CODE_POLICY();
326
+ init_define_VTX_EXO_POLICY();
327
+ init_define_VTX_GROK_POLICY();
328
+ init_define_VTX_PI_MODEL_POLICY();
329
+ init_constants();
330
+ BYOK_UI_GROUP = "byok";
331
+ BYOK_PROVIDER_ENTRIES = [
332
+ { key: "alibaba_cloud_model_studio", runtimeProvider: "alibaba_cloud_model_studio", displayName: "Alibaba Cloud Model Studio", apiKeyField: "alibaba_cloud_model_studio_api_key", envKey: "ALIBABA_CLOUD_MODEL_STUDIO_API_KEY", baseUrl: "https://dashscope-us.aliyuncs.com/compatible-mode/v1", modelsUrl: "https://dashscope-us.aliyuncs.com/compatible-mode/v1/models", requestContractStrategy: "extra_body_enable_thinking", clientRuntimeSupported: true, uiGroup: BYOK_UI_GROUP, providerKind: "direct", aliases: ["alibaba", "alibaba cloud", "dashscope", "model studio"] },
333
+ { key: "amazon_bedrock", runtimeProvider: "amazon_bedrock", displayName: "Amazon Bedrock", apiKeyField: "amazon_bedrock_api_key", envKey: "AMAZON_API_KEY", baseUrl: "https://bedrock-mantle.us-east-1.api.aws/v1", modelsUrl: "https://bedrock-mantle.us-east-1.api.aws/v1/models", requestContractStrategy: "top_level_reasoning_effort", clientRuntimeSupported: true, uiGroup: BYOK_UI_GROUP, providerKind: "hosted", aliases: ["amazon", "aws", "aws bedrock", "bedrock"] },
334
+ { key: "anthropic", runtimeProvider: "anthropic", displayName: "Anthropic", apiKeyField: "anthropic_api_key", envKey: "ANTHROPIC_API_KEY", baseUrl: null, modelsUrl: null, requestContractStrategy: "native", clientRuntimeSupported: true, uiGroup: BYOK_UI_GROUP, providerKind: "direct", aliases: ["claude"] },
335
+ { key: "byteplus", runtimeProvider: "byteplus", displayName: "BytePlus", apiKeyField: "byteplus_api_key", envKey: "BYTEPLUS_API_KEY", baseUrl: "https://ark.ap-southeast.bytepluses.com/api/coding/v3", modelsUrl: "https://ark.ap-southeast.bytepluses.com/api/coding/v3/models", requestContractStrategy: "extra_body_thinking_type", clientRuntimeSupported: true, uiGroup: BYOK_UI_GROUP, providerKind: "hosted", aliases: ["bytedance", "byteplus coding plan", "ark"] },
336
+ { key: "cerebras", runtimeProvider: "cerebras", displayName: "Cerebras", apiKeyField: "cerebras_api_key", envKey: "CEREBRAS_API_KEY", baseUrl: "https://api.cerebras.ai/v1", modelsUrl: "https://api.cerebras.ai/v1/models", requestContractStrategy: "top_level_reasoning_effort_and_extra_body_disable_reasoning", clientRuntimeSupported: true, uiGroup: BYOK_UI_GROUP, providerKind: "hosted", aliases: [] },
337
+ { key: "deepseek", runtimeProvider: "deepseek", displayName: "DeepSeek", apiKeyField: "deepseek_api_key", envKey: "DEEPSEEK_API_KEY", baseUrl: "https://api.deepseek.com", modelsUrl: "https://api.deepseek.com/models", requestContractStrategy: "deepseek_extra_body", clientRuntimeSupported: true, uiGroup: BYOK_UI_GROUP, providerKind: "direct", aliases: ["deep seek", "deepseek ai", "deepseek.ai"] },
338
+ { key: "fireworks", runtimeProvider: "fireworks", displayName: "Fireworks AI", apiKeyField: "fireworks_api_key", envKey: "FIREWORKS_API_KEY", baseUrl: "https://api.fireworks.ai/inference/v1", modelsUrl: "https://api.fireworks.ai/inference/v1/models", requestContractStrategy: "top_level_reasoning_effort_and_extra_body_thinking_type", clientRuntimeSupported: true, uiGroup: BYOK_UI_GROUP, providerKind: "hosted", aliases: ["fireworks ai"] },
339
+ { key: "google", runtimeProvider: "gemini", displayName: "Google Gemini", apiKeyField: "gemini_api_key", envKey: "GOOGLE_AI_PLATFORM_API_KEY", baseUrl: null, modelsUrl: null, requestContractStrategy: "native", clientRuntimeSupported: true, uiGroup: BYOK_UI_GROUP, providerKind: "direct", aliases: ["gemini"] },
340
+ { key: "groq", runtimeProvider: "groq", displayName: "Groq", apiKeyField: "groq_api_key", envKey: "GROQ_API_KEY", baseUrl: "https://api.groq.com/openai/v1", modelsUrl: "https://api.groq.com/openai/v1/models", requestContractStrategy: "native", clientRuntimeSupported: true, uiGroup: BYOK_UI_GROUP, providerKind: "hosted", aliases: ["groqcloud", "groq cloud"] },
341
+ { key: "lightning", runtimeProvider: "lightning", displayName: "Lightning AI", apiKeyField: "lightning_api_key", envKey: "LIGHTNING_API_KEY", baseUrl: "https://lightning.ai/api/v1", modelsUrl: "https://lightning.ai/api/v1/models", requestContractStrategy: "none", clientRuntimeSupported: true, uiGroup: BYOK_UI_GROUP, providerKind: "hosted", aliases: ["litai", "lightning ai"] },
342
+ { key: "mistral", runtimeProvider: "mistral", displayName: "Mistral", apiKeyField: "mistral_api_key", envKey: "MISTRAL_API_KEY", baseUrl: "https://api.mistral.ai/v1", modelsUrl: "https://api.mistral.ai/v1/models", requestContractStrategy: "top_level_reasoning_effort", clientRuntimeSupported: true, uiGroup: BYOK_UI_GROUP, providerKind: "direct", aliases: ["mistral ai"] },
343
+ { key: "moonshot", runtimeProvider: "moonshot", displayName: "Moonshot/Kimi", apiKeyField: "moonshot_api_key", envKey: "MOONSHOT_API_KEY", baseUrl: "https://api.moonshot.ai/v1", modelsUrl: "https://api.moonshot.ai/v1/models", requestContractStrategy: "extra_body_thinking_type", clientRuntimeSupported: true, uiGroup: BYOK_UI_GROUP, providerKind: "direct", aliases: ["kimi", "moonshot ai"] },
344
+ { key: "openai", runtimeProvider: "openai", displayName: "OpenAI", apiKeyField: "openai_api_key", envKey: "OPENAI_API_KEY", baseUrl: "https://api.openai.com/v1", modelsUrl: "https://api.openai.com/v1/models", requestContractStrategy: "native", clientRuntimeSupported: true, uiGroup: BYOK_UI_GROUP, providerKind: "direct", aliases: [] },
345
+ { key: "openrouter", runtimeProvider: "openrouter", displayName: "OpenRouter", apiKeyField: "openrouter_api_key", envKey: "OPENROUTER_API_KEY", baseUrl: "https://openrouter.ai/api/v1", modelsUrl: "https://openrouter.ai/api/v1/models", requestContractStrategy: "openrouter", clientRuntimeSupported: true, uiGroup: BYOK_UI_GROUP, providerKind: "hosted", aliases: ["open-router", "open router", "openrouter ai"] },
346
+ { key: "together", runtimeProvider: "together", displayName: "Together AI", apiKeyField: "together_api_key", envKey: "TOGETHER_API_KEY", baseUrl: "https://api.together.xyz/v1", modelsUrl: "https://api.together.xyz/v1/models", requestContractStrategy: "top_level_reasoning_effort_and_extra_body_reasoning_enabled", clientRuntimeSupported: true, uiGroup: BYOK_UI_GROUP, providerKind: "hosted", aliases: ["together ai"] },
347
+ { key: "venice", runtimeProvider: "venice", displayName: "Venice AI", apiKeyField: "venice_api_key", envKey: "VENICE_API_KEY", baseUrl: "https://api.venice.ai/api/v1", modelsUrl: "https://api.venice.ai/api/v1/models", requestContractStrategy: "venice", clientRuntimeSupported: true, uiGroup: BYOK_UI_GROUP, providerKind: "hosted", aliases: ["venice.ai"] },
348
+ { key: "xai", runtimeProvider: "grok", displayName: "xAI", apiKeyField: "grok_api_key", envKey: "XAI_API_KEY", baseUrl: "https://api.x.ai/v1", modelsUrl: "https://api.x.ai/v1/models", requestContractStrategy: "native", clientRuntimeSupported: true, uiGroup: BYOK_UI_GROUP, providerKind: "direct", aliases: ["x", "x.ai", "grok"] },
349
+ { key: "zai", runtimeProvider: "zai", displayName: "Z.ai", apiKeyField: "zai_api_key", envKey: "ZAI_API_KEY", baseUrl: "https://api.z.ai/api/paas/v4", modelsUrl: "https://api.z.ai/api/paas/v4/models", requestContractStrategy: "top_level_reasoning_effort_and_extra_body_thinking_type", clientRuntimeSupported: true, uiGroup: BYOK_UI_GROUP, providerKind: "direct", aliases: ["zhipu", "zhipu ai", "knowledge atlas"] }
350
+ ];
351
+ BYOK_PROVIDERS = BYOK_PROVIDER_ENTRIES.map((provider, index) => ({
352
+ ...provider,
353
+ displayOrder: (index + 1) * BYOK_PROVIDER_DISPLAY_ORDER_STEP
354
+ }));
355
+ BYOK_PROVIDER_KEY_BY_ALIAS = /* @__PURE__ */ new Map();
356
+ for (const provider of BYOK_PROVIDERS) {
357
+ for (const alias of [provider.key, provider.displayName, ...provider.aliases]) {
358
+ const normalizedAlias = normalizeProviderAlias(alias);
359
+ if (!BYOK_PROVIDER_KEY_BY_ALIAS.has(normalizedAlias)) {
360
+ BYOK_PROVIDER_KEY_BY_ALIAS.set(normalizedAlias, provider.key);
361
+ }
362
+ }
363
+ }
364
+ }
365
+ });
366
+
251
367
  // lib/agent-core/client.ts
252
368
  import { randomUUID as randomUUID2 } from "node:crypto";
253
369
  function normalizeApiUrl(value) {
@@ -311,29 +427,15 @@ var init_client = __esm({
311
427
  init_define_VTX_PI_MODEL_POLICY();
312
428
  init_agent_cli_release();
313
429
  init_types();
430
+ init_byokProviderRegistry();
314
431
  init_constants();
315
432
  SECRET_RESPONSE_FIELDS = /* @__PURE__ */ new Set([
316
433
  "provider_key_slots",
317
434
  "hyperliquid_signing_key",
318
435
  "local_ai_api_key",
319
436
  "openai_compatible_api_key",
320
- "openai_api_key",
321
- "anthropic_api_key",
322
- "gemini_api_key",
323
- "grok_api_key",
324
- "groq_api_key",
325
- "openrouter_api_key",
326
- "venice_api_key",
327
- "deepseek_api_key",
328
- "mistral_api_key",
329
- "together_api_key",
330
- "fireworks_api_key",
331
- "byteplus_api_key",
332
- "cerebras_api_key",
333
- "moonshot_api_key",
334
- "alibaba_cloud_model_studio_api_key",
335
- "amazon_bedrock_api_key",
336
- "lightning_api_key"
437
+ // Every BYOK provider's key field, from the one provider registry.
438
+ ...BYOK_PROVIDERS.map((provider) => provider.apiKeyField)
337
439
  ]);
338
440
  VtxAgentClient = class _VtxAgentClient {
339
441
  constructor(config) {
@@ -890,6 +992,7 @@ var init_server = __esm({
890
992
  init_define_VTX_GROK_POLICY();
891
993
  init_define_VTX_PI_MODEL_POLICY();
892
994
  init_client();
995
+ init_byokProviderRegistry();
893
996
  init_config();
894
997
  init_hyperliquid_market_symbol();
895
998
  VTX_MCP_TOOLS = [
@@ -1137,22 +1240,8 @@ var init_server = __esm({
1137
1240
  "hyperliquid_signing_key",
1138
1241
  "local_ai_api_key",
1139
1242
  "openai_compatible_api_key",
1140
- "openai_api_key",
1141
- "anthropic_api_key",
1142
- "gemini_api_key",
1143
- "grok_api_key",
1144
- "groq_api_key",
1145
- "openrouter_api_key",
1146
- "venice_api_key",
1147
- "deepseek_api_key",
1148
- "mistral_api_key",
1149
- "together_api_key",
1150
- "fireworks_api_key",
1151
- "byteplus_api_key",
1152
- "cerebras_api_key",
1153
- "moonshot_api_key",
1154
- "alibaba_cloud_model_studio_api_key",
1155
- "lightning_api_key"
1243
+ // Every BYOK provider's key field, from the one provider registry.
1244
+ ...BYOK_PROVIDERS.map((provider) => provider.apiKeyField)
1156
1245
  ]);
1157
1246
  }
1158
1247
  });
@@ -1918,8 +2007,7 @@ var runtime_policy_generated_default = {
1918
2007
  debug_navbar_profile_entries: 12
1919
2008
  },
1920
2009
  login_page: {
1921
- desktop_bridge_poll_ms: 250,
1922
- turnstile_site_key_log_chars: 10
2010
+ desktop_bridge_poll_ms: 250
1923
2011
  },
1924
2012
  screener_page: {
1925
2013
  search_save_debounce_ms: 250,
@@ -2118,6 +2206,9 @@ var runtime_policy_generated_default = {
2118
2206
  max_fills_per_execution: 20,
2119
2207
  max_fill_payload_bytes: 32768
2120
2208
  },
2209
+ prompt_contract: {
2210
+ contract_version: "2026-08-24.1"
2211
+ },
2121
2212
  loop_early_return_retry_milliseconds: 5e3,
2122
2213
  window_handoff_cleanup_retry_milliseconds: 1e3,
2123
2214
  ai_schedule_pause_min_milliseconds: 1e3,
@@ -2611,9 +2702,9 @@ var runtime_policy_generated_default = {
2611
2702
  page_start_poll_seconds: 1,
2612
2703
  profiles_read_timeout_seconds: 30,
2613
2704
  command_notice_reconnect_max_seconds: 60,
2614
- sleep_quiet_milliseconds: 3e3,
2705
+ sleep_quiet_milliseconds: 1500,
2615
2706
  sleep_max_seconds: 60,
2616
- sleep_min_seconds: 10,
2707
+ sleep_min_seconds: 5,
2617
2708
  sleep_alarm_grace_seconds: 15,
2618
2709
  sleep_elastic_below_milliseconds: 1e3,
2619
2710
  sleep_request_wait_milliseconds: 4e3,
@@ -3912,59 +4003,37 @@ init_define_VTX_GROK_POLICY();
3912
4003
  init_define_VTX_PI_MODEL_POLICY();
3913
4004
 
3914
4005
  // lib/runtime/runtime-redaction.ts
3915
- var REDACTED_VALUE = "[REDACTED]";
3916
- var WHITESPACE_CLASS = String.raw`[\t\n\v\f\r \x1c-\x1f\x85\xa0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]`;
3917
- var SEPARATOR = WHITESPACE_CLASS;
3918
- var VALUE_RUN = String.raw`[^,\t\n\v\f\r ]+`;
3919
- var NAME_LETTER_VARIANTS = {
3920
- s: String.raw`[s\u017f]`,
3921
- k: String.raw`[k\u212a]`,
3922
- i: String.raw`[i\u0131\u0130]`
3923
- };
3924
- var NAME_START = "(?:^|[^A-Za-z0-9_.-])";
3925
- var NAME_PREFIX = "[A-Za-z0-9_.-]*";
3926
- var secretName = (word) => Array.from(word, (letter) => NAME_LETTER_VARIANTS[letter] ?? letter).join("");
3927
- var SECRET_NAME_WORDS = `(?:${[
3928
- "key",
3929
- "token",
3930
- "secret",
3931
- "password",
3932
- "passphrase",
3933
- "credentials",
3934
- "credential",
3935
- "authorization"
3936
- ].map(secretName).join("|")})`;
3937
- var NAMED_VALUE = String.raw`("[^"]*"|'[^']*'` + String.raw`|(?:[^,\t\n\v\f\r ]*${SECRET_NAME_WORDS}(?:[:=]${SEPARATOR}+|${SEPARATOR}+[:=]${SEPARATOR}*))*${VALUE_RUN})`;
3938
- var SECRET_QUERY_PARAM_PATTERN = new RegExp(
3939
- `([?&](?:${NAME_PREFIX}${SECRET_NAME_WORDS}|${secretName("auth")}|${secretName("sig")}|${secretName("signature")})=)${NAMED_VALUE}`,
3940
- "gi"
4006
+ init_shared_contracts_generated();
4007
+ var { redacted_value: REDACTED_VALUE, fragments: FRAGMENTS, rules: RULES } = ERROR_REDACTION_RULES;
4008
+ var FRAGMENT_REFERENCE = /\$\{(\w+)\}/g;
4009
+ var expandFragments = (pattern) => pattern.replace(
4010
+ FRAGMENT_REFERENCE,
4011
+ (_reference, name) => expandFragments(FRAGMENTS[name])
3941
4012
  );
3942
- var BEARER_TOKEN_PATTERN = new RegExp(
3943
- String.raw`(\bBearer${SEPARATOR}+)(?:[^,;\t\n\v\f\r ]*${SECRET_NAME_WORDS}(?:[:=]${SEPARATOR}+|${SEPARATOR}+[:=]${SEPARATOR}*))*[^,;\t\n\v\f\r ]+`,
3944
- "gi"
3945
- );
3946
- var ASSIGNMENT_SEPARATOR = `['"]?${SEPARATOR}*[:=]${SEPARATOR}*`;
3947
- var AUTHORIZATION_SCHEMES = "(?:Bearer|Basic|Digest|Token|Bot|Negotiate|NTLM|ApiKey)";
3948
- var assignmentPattern = (nameStart) => new RegExp(
3949
- `(${nameStart}(?:${secretName("authorization")}${ASSIGNMENT_SEPARATOR}['"]?${AUTHORIZATION_SCHEMES}${SEPARATOR}+|${SECRET_NAME_WORDS}${ASSIGNMENT_SEPARATOR}))${NAMED_VALUE}`,
3950
- "gi"
3951
- );
3952
- var SECRET_ASSIGNMENT_PATTERN = assignmentPattern(`${NAME_START}${NAME_PREFIX}`);
3953
- var SECRET_WORD_ASSIGNMENT_PATTERN = assignmentPattern(
3954
- `(?:^|[^A-Za-z0-9_])(?:(?:${["api", "access", "private"].map(secretName).join("|")})[_ -]?)?`
3955
- );
3956
- var SECRET_TOKEN_PATTERN = /\b(?:AIza[A-Za-z0-9_-]+|sk-[A-Za-z0-9._-]+|xai-[A-Za-z0-9]{20,}|gsk_[A-Za-z0-9]{20,}|AQ\.[A-Za-z0-9._-]+|0x[a-fA-F0-9]{64})\b/g;
4013
+ var WHITESPACE_CLASS = expandFragments("${separator}");
3957
4014
  var redactAssignedValue = (_match, prefix, value) => {
3958
4015
  const quote = value[0] === '"' || value[0] === "'" ? value[0] : "";
3959
4016
  const closing = quote && value.length > 1 && value[value.length - 1] === quote ? quote : "";
3960
4017
  return `${prefix}${quote}${REDACTED_VALUE}${closing}`;
3961
4018
  };
4019
+ var REPLACEMENTS = {
4020
+ keep_prefix: (_match, prefix) => `${prefix}${REDACTED_VALUE}`,
4021
+ assigned_value: redactAssignedValue,
4022
+ whole: () => REDACTED_VALUE
4023
+ };
4024
+ var REDACTIONS = RULES.map((rule) => ({
4025
+ pattern: new RegExp(expandFragments(rule.pattern), rule.ignore_case ? "gi" : "g"),
4026
+ replacement: REPLACEMENTS[rule.replacement]
4027
+ }));
3962
4028
  var sanitizeRuntimeDiagnosticValue = (value) => {
3963
4029
  const normalized = String(value || "");
3964
4030
  if (!normalized) {
3965
4031
  return normalized;
3966
4032
  }
3967
- return normalized.replace(BEARER_TOKEN_PATTERN, `$1${REDACTED_VALUE}`).replace(SECRET_WORD_ASSIGNMENT_PATTERN, redactAssignedValue).replace(SECRET_TOKEN_PATTERN, REDACTED_VALUE).replace(SECRET_QUERY_PARAM_PATTERN, redactAssignedValue).replace(SECRET_ASSIGNMENT_PATTERN, redactAssignedValue);
4033
+ return REDACTIONS.reduce(
4034
+ (text, { pattern, replacement }) => text.replace(pattern, replacement),
4035
+ normalized
4036
+ );
3968
4037
  };
3969
4038
 
3970
4039
  // lib/cli-release/updater.ts