@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/exo-harness.ts +189 -78
- package/bin/vtx-mcp.js +191 -106
- package/bin/vtx-service-bootstrap.js +121 -72
- package/bin/vtx-service-launcher.js +54 -29
- package/bin/vtx.js +3344 -3570
- 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,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
|
-
|
|
297
|
-
|
|
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
|
-
|
|
1117
|
-
|
|
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:
|
|
2705
|
+
sleep_quiet_milliseconds: 1500,
|
|
2599
2706
|
sleep_max_seconds: 60,
|
|
2600
|
-
sleep_min_seconds:
|
|
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
|
-
|
|
3900
|
-
var
|
|
3901
|
-
var
|
|
3902
|
-
var
|
|
3903
|
-
|
|
3904
|
-
|
|
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
|
|
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
|
|
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
|