@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/exo-harness.ts +188 -93
- package/bin/vtx-mcp.js +190 -121
- package/bin/vtx-service-bootstrap.js +120 -87
- package/bin/vtx-service-launcher.js +53 -44
- package/bin/vtx.js +3081 -3465
- package/package.json +1 -1
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.
|
|
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,
|
|
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
|
-
|
|
321
|
-
|
|
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
|
-
|
|
1141
|
-
|
|
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:
|
|
2705
|
+
sleep_quiet_milliseconds: 1500,
|
|
2615
2706
|
sleep_max_seconds: 60,
|
|
2616
|
-
sleep_min_seconds:
|
|
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
|
-
|
|
3916
|
-
var
|
|
3917
|
-
var
|
|
3918
|
-
var
|
|
3919
|
-
|
|
3920
|
-
|
|
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
|
|
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
|
|
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
|