@vtxmacro/cli 2026.10.47 → 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.47", 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, 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,8 +224,20 @@ var init_constants = __esm({
146
224
  OAUTH_STATE: 32,
147
225
  OAUTH_CALLBACK_PATH: 16
148
226
  };
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;
149
235
  EXIT_CODE_INTERRUPTED = 130;
150
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;
151
241
  }
152
242
  });
153
243
 
@@ -224,6 +314,56 @@ var init_types = __esm({
224
314
  }
225
315
  });
226
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
+
227
367
  // lib/agent-core/client.ts
228
368
  import { randomUUID as randomUUID2 } from "node:crypto";
229
369
  function normalizeApiUrl(value) {
@@ -287,29 +427,15 @@ var init_client = __esm({
287
427
  init_define_VTX_PI_MODEL_POLICY();
288
428
  init_agent_cli_release();
289
429
  init_types();
430
+ init_byokProviderRegistry();
290
431
  init_constants();
291
432
  SECRET_RESPONSE_FIELDS = /* @__PURE__ */ new Set([
292
433
  "provider_key_slots",
293
434
  "hyperliquid_signing_key",
294
435
  "local_ai_api_key",
295
436
  "openai_compatible_api_key",
296
- "openai_api_key",
297
- "anthropic_api_key",
298
- "gemini_api_key",
299
- "grok_api_key",
300
- "groq_api_key",
301
- "openrouter_api_key",
302
- "venice_api_key",
303
- "deepseek_api_key",
304
- "mistral_api_key",
305
- "together_api_key",
306
- "fireworks_api_key",
307
- "byteplus_api_key",
308
- "cerebras_api_key",
309
- "moonshot_api_key",
310
- "alibaba_cloud_model_studio_api_key",
311
- "amazon_bedrock_api_key",
312
- "lightning_api_key"
437
+ // Every BYOK provider's key field, from the one provider registry.
438
+ ...BYOK_PROVIDERS.map((provider) => provider.apiKeyField)
313
439
  ]);
314
440
  VtxAgentClient = class _VtxAgentClient {
315
441
  constructor(config) {
@@ -866,6 +992,7 @@ var init_server = __esm({
866
992
  init_define_VTX_GROK_POLICY();
867
993
  init_define_VTX_PI_MODEL_POLICY();
868
994
  init_client();
995
+ init_byokProviderRegistry();
869
996
  init_config();
870
997
  init_hyperliquid_market_symbol();
871
998
  VTX_MCP_TOOLS = [
@@ -1113,22 +1240,8 @@ var init_server = __esm({
1113
1240
  "hyperliquid_signing_key",
1114
1241
  "local_ai_api_key",
1115
1242
  "openai_compatible_api_key",
1116
- "openai_api_key",
1117
- "anthropic_api_key",
1118
- "gemini_api_key",
1119
- "grok_api_key",
1120
- "groq_api_key",
1121
- "openrouter_api_key",
1122
- "venice_api_key",
1123
- "deepseek_api_key",
1124
- "mistral_api_key",
1125
- "together_api_key",
1126
- "fireworks_api_key",
1127
- "byteplus_api_key",
1128
- "cerebras_api_key",
1129
- "moonshot_api_key",
1130
- "alibaba_cloud_model_studio_api_key",
1131
- "lightning_api_key"
1243
+ // Every BYOK provider's key field, from the one provider registry.
1244
+ ...BYOK_PROVIDERS.map((provider) => provider.apiKeyField)
1132
1245
  ]);
1133
1246
  }
1134
1247
  });
@@ -1737,8 +1850,6 @@ var runtime_policy_generated_default = {
1737
1850
  observed_activity_recent_ms: 8e3,
1738
1851
  startup_hold_activation_gap_ms: 9e4,
1739
1852
  hidden_ticker_update_interval_ms: 16,
1740
- client_close_fill_sync_attempts: 3,
1741
- client_close_fill_sync_retry_step_ms: 300,
1742
1853
  post_leverage_update_order_delay_ms: 250,
1743
1854
  takeover_telemetry_error_chars: 500,
1744
1855
  takeover_telemetry_error_name_chars: 120,
@@ -1896,8 +2007,7 @@ var runtime_policy_generated_default = {
1896
2007
  debug_navbar_profile_entries: 12
1897
2008
  },
1898
2009
  login_page: {
1899
- desktop_bridge_poll_ms: 250,
1900
- turnstile_site_key_log_chars: 10
2010
+ desktop_bridge_poll_ms: 250
1901
2011
  },
1902
2012
  screener_page: {
1903
2013
  search_save_debounce_ms: 250,
@@ -2060,7 +2170,6 @@ var runtime_policy_generated_default = {
2060
2170
  protective_actions: {
2061
2171
  adoption_request_timeout_milliseconds: 2e4,
2062
2172
  idle_recheck_seconds: 60,
2063
- attention_refresh_seconds: 60,
2064
2173
  evidence_max_items: 32,
2065
2174
  evidence_shared_read_seconds: 10,
2066
2175
  retry_delay_seconds: 15,
@@ -2097,6 +2206,9 @@ var runtime_policy_generated_default = {
2097
2206
  max_fills_per_execution: 20,
2098
2207
  max_fill_payload_bytes: 32768
2099
2208
  },
2209
+ prompt_contract: {
2210
+ contract_version: "2026-08-24.1"
2211
+ },
2100
2212
  loop_early_return_retry_milliseconds: 5e3,
2101
2213
  window_handoff_cleanup_retry_milliseconds: 1e3,
2102
2214
  ai_schedule_pause_min_milliseconds: 1e3,
@@ -2190,10 +2302,6 @@ var runtime_policy_generated_default = {
2190
2302
  },
2191
2303
  defaults: {
2192
2304
  server_ai_max_slippage: 5
2193
- },
2194
- risk: {
2195
- max_order_notional: 5e3,
2196
- max_position_notional: 1e4
2197
2305
  }
2198
2306
  },
2199
2307
  agent_cli: {
@@ -2459,7 +2567,6 @@ var runtime_policy_generated_default = {
2459
2567
  capacity_recovery_weight_per_minute: 120,
2460
2568
  background_floor_weight: 120,
2461
2569
  background_admission_wait_seconds: 90,
2462
- cooldown_seconds: 60,
2463
2570
  metadata_ttl_seconds: 300,
2464
2571
  user_fees_ttl_seconds: 300,
2465
2572
  account_mode_ttl_seconds: 30,
@@ -2595,9 +2702,9 @@ var runtime_policy_generated_default = {
2595
2702
  page_start_poll_seconds: 1,
2596
2703
  profiles_read_timeout_seconds: 30,
2597
2704
  command_notice_reconnect_max_seconds: 60,
2598
- sleep_quiet_milliseconds: 3e3,
2705
+ sleep_quiet_milliseconds: 1500,
2599
2706
  sleep_max_seconds: 60,
2600
- sleep_min_seconds: 10,
2707
+ sleep_min_seconds: 5,
2601
2708
  sleep_alarm_grace_seconds: 15,
2602
2709
  sleep_elastic_below_milliseconds: 1e3,
2603
2710
  sleep_request_wait_milliseconds: 4e3,
@@ -3896,59 +4003,37 @@ init_define_VTX_GROK_POLICY();
3896
4003
  init_define_VTX_PI_MODEL_POLICY();
3897
4004
 
3898
4005
  // lib/runtime/runtime-redaction.ts
3899
- var REDACTED_VALUE = "[REDACTED]";
3900
- var WHITESPACE_CLASS = String.raw`[\t\n\v\f\r \x1c-\x1f\x85\xa0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]`;
3901
- var SEPARATOR = WHITESPACE_CLASS;
3902
- var VALUE_RUN = String.raw`[^,\t\n\v\f\r ]+`;
3903
- var NAME_LETTER_VARIANTS = {
3904
- s: String.raw`[s\u017f]`,
3905
- k: String.raw`[k\u212a]`,
3906
- i: String.raw`[i\u0131\u0130]`
3907
- };
3908
- var NAME_START = "(?:^|[^A-Za-z0-9_.-])";
3909
- var NAME_PREFIX = "[A-Za-z0-9_.-]*";
3910
- var secretName = (word) => Array.from(word, (letter) => NAME_LETTER_VARIANTS[letter] ?? letter).join("");
3911
- var SECRET_NAME_WORDS = `(?:${[
3912
- "key",
3913
- "token",
3914
- "secret",
3915
- "password",
3916
- "passphrase",
3917
- "credentials",
3918
- "credential",
3919
- "authorization"
3920
- ].map(secretName).join("|")})`;
3921
- var NAMED_VALUE = String.raw`("[^"]*"|'[^']*'` + String.raw`|(?:[^,\t\n\v\f\r ]*${SECRET_NAME_WORDS}(?:[:=]${SEPARATOR}+|${SEPARATOR}+[:=]${SEPARATOR}*))*${VALUE_RUN})`;
3922
- var SECRET_QUERY_PARAM_PATTERN = new RegExp(
3923
- `([?&](?:${NAME_PREFIX}${SECRET_NAME_WORDS}|${secretName("auth")}|${secretName("sig")}|${secretName("signature")})=)${NAMED_VALUE}`,
3924
- "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])
3925
4012
  );
3926
- var BEARER_TOKEN_PATTERN = new RegExp(
3927
- String.raw`(\bBearer${SEPARATOR}+)(?:[^,;\t\n\v\f\r ]*${SECRET_NAME_WORDS}(?:[:=]${SEPARATOR}+|${SEPARATOR}+[:=]${SEPARATOR}*))*[^,;\t\n\v\f\r ]+`,
3928
- "gi"
3929
- );
3930
- var ASSIGNMENT_SEPARATOR = `['"]?${SEPARATOR}*[:=]${SEPARATOR}*`;
3931
- var AUTHORIZATION_SCHEMES = "(?:Bearer|Basic|Digest|Token|Bot|Negotiate|NTLM|ApiKey)";
3932
- var assignmentPattern = (nameStart) => new RegExp(
3933
- `(${nameStart}(?:${secretName("authorization")}${ASSIGNMENT_SEPARATOR}['"]?${AUTHORIZATION_SCHEMES}${SEPARATOR}+|${SECRET_NAME_WORDS}${ASSIGNMENT_SEPARATOR}))${NAMED_VALUE}`,
3934
- "gi"
3935
- );
3936
- var SECRET_ASSIGNMENT_PATTERN = assignmentPattern(`${NAME_START}${NAME_PREFIX}`);
3937
- var SECRET_WORD_ASSIGNMENT_PATTERN = assignmentPattern(
3938
- `(?:^|[^A-Za-z0-9_])(?:(?:${["api", "access", "private"].map(secretName).join("|")})[_ -]?)?`
3939
- );
3940
- 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}");
3941
4014
  var redactAssignedValue = (_match, prefix, value) => {
3942
4015
  const quote = value[0] === '"' || value[0] === "'" ? value[0] : "";
3943
4016
  const closing = quote && value.length > 1 && value[value.length - 1] === quote ? quote : "";
3944
4017
  return `${prefix}${quote}${REDACTED_VALUE}${closing}`;
3945
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
+ }));
3946
4028
  var sanitizeRuntimeDiagnosticValue = (value) => {
3947
4029
  const normalized = String(value || "");
3948
4030
  if (!normalized) {
3949
4031
  return normalized;
3950
4032
  }
3951
- 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
+ );
3952
4037
  };
3953
4038
 
3954
4039
  // lib/cli-release/updater.ts